1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package ecs
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
14)
15
16const opCreateCapacityProvider = "CreateCapacityProvider"
17
18// CreateCapacityProviderRequest generates a "aws/request.Request" representing the
19// client's request for the CreateCapacityProvider operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See CreateCapacityProvider for more information on using the CreateCapacityProvider
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the CreateCapacityProviderRequest method.
34//    req, resp := client.CreateCapacityProviderRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCapacityProvider
42func (c *ECS) CreateCapacityProviderRequest(input *CreateCapacityProviderInput) (req *request.Request, output *CreateCapacityProviderOutput) {
43	op := &request.Operation{
44		Name:       opCreateCapacityProvider,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &CreateCapacityProviderInput{}
51	}
52
53	output = &CreateCapacityProviderOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// CreateCapacityProvider API operation for Amazon EC2 Container Service.
59//
60// Creates a new capacity provider. Capacity providers are associated with an
61// Amazon ECS cluster and are used in capacity provider strategies to facilitate
62// cluster auto scaling.
63//
64// Only capacity providers using an Auto Scaling group can be created. Amazon
65// ECS tasks on AWS Fargate use the FARGATE and FARGATE_SPOT capacity providers
66// which are already created and available to all accounts in Regions supported
67// by AWS Fargate.
68//
69// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
70// with awserr.Error's Code and Message methods to get detailed information about
71// the error.
72//
73// See the AWS API reference guide for Amazon EC2 Container Service's
74// API operation CreateCapacityProvider for usage and error information.
75//
76// Returned Error Types:
77//   * ServerException
78//   These errors are usually caused by a server issue.
79//
80//   * ClientException
81//   These errors are usually caused by a client action, such as using an action
82//   or resource on behalf of a user that doesn't have permissions to use the
83//   action or resource, or specifying an identifier that is not valid.
84//
85//   * InvalidParameterException
86//   The specified parameter is invalid. Review the available parameters for the
87//   API request.
88//
89//   * LimitExceededException
90//   The limit for the resource has been exceeded.
91//
92// 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 Types:
178//   * ServerException
179//   These errors are usually caused by a server issue.
180//
181//   * 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//   * 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 the UpdateService action.
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. The service scheduler also evaluates
284//    the task placement constraints for running tasks and will stop tasks that
285//    do not meet the placement constraints. When using this strategy, you don't
286//    need to specify a desired number of tasks, a task placement strategy,
287//    or use Service Auto Scaling policies. For more information, see Service
288//    Scheduler Concepts (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html)
289//    in the Amazon Elastic Container Service Developer Guide.
290//
291// You can optionally specify a deployment configuration for your service. The
292// deployment is triggered by changing properties, such as the task definition
293// or the desired count of a service, with an UpdateService operation. The default
294// value for a replica service for minimumHealthyPercent is 100%. The default
295// value for a daemon service for minimumHealthyPercent is 0%.
296//
297// If a service is using the ECS deployment controller, the minimum healthy
298// percent represents a lower limit on the number of tasks in a service that
299// must remain in the RUNNING state during a deployment, as a percentage of
300// the desired number of tasks (rounded up to the nearest integer), and while
301// any container instances are in the DRAINING state if the service contains
302// tasks using the EC2 launch type. This parameter enables you to deploy without
303// using additional cluster capacity. For example, if your service has a desired
304// number of four tasks and a minimum healthy percent of 50%, the scheduler
305// might stop two existing tasks to free up cluster capacity before starting
306// two new tasks. Tasks for services that do not use a load balancer are considered
307// healthy if they're in the RUNNING state. Tasks for services that do use a
308// load balancer are considered healthy if they're in the RUNNING state and
309// they're reported as healthy by the load balancer. The default value for minimum
310// healthy percent is 100%.
311//
312// If a service is using the ECS deployment controller, the maximum percent
313// parameter represents an upper limit on the number of tasks in a service that
314// are allowed in the RUNNING or PENDING state during a deployment, as a percentage
315// of the desired number of tasks (rounded down to the nearest integer), and
316// while any container instances are in the DRAINING state if the service contains
317// tasks using the EC2 launch type. This parameter enables you to define the
318// deployment batch size. For example, if your service has a desired number
319// of four tasks and a maximum percent value of 200%, the scheduler may start
320// four new tasks before stopping the four older tasks (provided that the cluster
321// resources required to do this are available). The default value for maximum
322// percent is 200%.
323//
324// If a service is using either the CODE_DEPLOY or EXTERNAL deployment controller
325// types and tasks that use the EC2 launch type, the minimum healthy percent
326// and maximum percent values are used only to define the lower and upper limit
327// on the number of the tasks in the service that remain in the RUNNING state
328// while the container instances are in the DRAINING state. If the tasks in
329// the service use the Fargate launch type, the minimum healthy percent and
330// maximum percent values aren't used, although they're currently visible when
331// describing your service.
332//
333// When creating a service that uses the EXTERNAL deployment controller, you
334// can specify only parameters that aren't controlled at the task set level.
335// The only required parameter is the service name. You control your services
336// using the CreateTaskSet operation. For more information, see Amazon ECS Deployment
337// Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
338// in the Amazon Elastic Container Service Developer Guide.
339//
340// When the service scheduler launches new tasks, it determines task placement
341// in your cluster using the following logic:
342//
343//    * Determine which of the container instances in your cluster can support
344//    your service's task definition (for example, they have the required CPU,
345//    memory, ports, and container instance attributes).
346//
347//    * By default, the service scheduler attempts to balance tasks across Availability
348//    Zones in this manner (although you can choose a different placement strategy)
349//    with the placementStrategy parameter): Sort the valid container instances,
350//    giving priority to instances that have the fewest number of running tasks
351//    for this service in their respective Availability Zone. For example, if
352//    zone A has one running service task and zones B and C each have zero,
353//    valid container instances in either zone B or C are considered optimal
354//    for placement. Place the new service task on a valid container instance
355//    in an optimal Availability Zone (based on the previous steps), favoring
356//    container instances with the fewest number of running tasks for this service.
357//
358// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
359// with awserr.Error's Code and Message methods to get detailed information about
360// the error.
361//
362// See the AWS API reference guide for Amazon EC2 Container Service's
363// API operation CreateService for usage and error information.
364//
365// Returned Error Types:
366//   * ServerException
367//   These errors are usually caused by a server issue.
368//
369//   * ClientException
370//   These errors are usually caused by a client action, such as using an action
371//   or resource on behalf of a user that doesn't have permissions to use the
372//   action or resource, or specifying an identifier that is not valid.
373//
374//   * InvalidParameterException
375//   The specified parameter is invalid. Review the available parameters for the
376//   API request.
377//
378//   * ClusterNotFoundException
379//   The specified cluster could not be found. You can view your available clusters
380//   with ListClusters. Amazon ECS clusters are Region-specific.
381//
382//   * UnsupportedFeatureException
383//   The specified task is not supported in this Region.
384//
385//   * PlatformUnknownException
386//   The specified platform version does not exist.
387//
388//   * PlatformTaskDefinitionIncompatibilityException
389//   The specified platform version does not satisfy the task definition's required
390//   capabilities.
391//
392//   * AccessDeniedException
393//   You do not have authorization to perform the requested action.
394//
395// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateService
396func (c *ECS) CreateService(input *CreateServiceInput) (*CreateServiceOutput, error) {
397	req, out := c.CreateServiceRequest(input)
398	return out, req.Send()
399}
400
401// CreateServiceWithContext is the same as CreateService with the addition of
402// the ability to pass a context and additional request options.
403//
404// See CreateService for details on how to use this API operation.
405//
406// The context must be non-nil and will be used for request cancellation. If
407// the context is nil a panic will occur. In the future the SDK may create
408// sub-contexts for http.Requests. See https://golang.org/pkg/context/
409// for more information on using Contexts.
410func (c *ECS) CreateServiceWithContext(ctx aws.Context, input *CreateServiceInput, opts ...request.Option) (*CreateServiceOutput, error) {
411	req, out := c.CreateServiceRequest(input)
412	req.SetContext(ctx)
413	req.ApplyOptions(opts...)
414	return out, req.Send()
415}
416
417const opCreateTaskSet = "CreateTaskSet"
418
419// CreateTaskSetRequest generates a "aws/request.Request" representing the
420// client's request for the CreateTaskSet operation. The "output" return
421// value will be populated with the request's response once the request completes
422// successfully.
423//
424// Use "Send" method on the returned Request to send the API call to the service.
425// the "output" return value is not valid until after Send returns without error.
426//
427// See CreateTaskSet for more information on using the CreateTaskSet
428// API call, and error handling.
429//
430// This method is useful when you want to inject custom logic or configuration
431// into the SDK's request lifecycle. Such as custom headers, or retry logic.
432//
433//
434//    // Example sending a request using the CreateTaskSetRequest method.
435//    req, resp := client.CreateTaskSetRequest(params)
436//
437//    err := req.Send()
438//    if err == nil { // resp is now filled
439//        fmt.Println(resp)
440//    }
441//
442// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateTaskSet
443func (c *ECS) CreateTaskSetRequest(input *CreateTaskSetInput) (req *request.Request, output *CreateTaskSetOutput) {
444	op := &request.Operation{
445		Name:       opCreateTaskSet,
446		HTTPMethod: "POST",
447		HTTPPath:   "/",
448	}
449
450	if input == nil {
451		input = &CreateTaskSetInput{}
452	}
453
454	output = &CreateTaskSetOutput{}
455	req = c.newRequest(op, input, output)
456	return
457}
458
459// CreateTaskSet API operation for Amazon EC2 Container Service.
460//
461// Create a task set in the specified cluster and service. This is used when
462// a service uses the EXTERNAL deployment controller type. For more information,
463// see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
464// in the Amazon Elastic Container Service Developer Guide.
465//
466// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
467// with awserr.Error's Code and Message methods to get detailed information about
468// the error.
469//
470// See the AWS API reference guide for Amazon EC2 Container Service's
471// API operation CreateTaskSet for usage and error information.
472//
473// Returned Error Types:
474//   * ServerException
475//   These errors are usually caused by a server issue.
476//
477//   * ClientException
478//   These errors are usually caused by a client action, such as using an action
479//   or resource on behalf of a user that doesn't have permissions to use the
480//   action or resource, or specifying an identifier that is not valid.
481//
482//   * InvalidParameterException
483//   The specified parameter is invalid. Review the available parameters for the
484//   API request.
485//
486//   * ClusterNotFoundException
487//   The specified cluster could not be found. You can view your available clusters
488//   with ListClusters. Amazon ECS clusters are Region-specific.
489//
490//   * UnsupportedFeatureException
491//   The specified task is not supported in this Region.
492//
493//   * PlatformUnknownException
494//   The specified platform version does not exist.
495//
496//   * PlatformTaskDefinitionIncompatibilityException
497//   The specified platform version does not satisfy the task definition's required
498//   capabilities.
499//
500//   * AccessDeniedException
501//   You do not have authorization to perform the requested action.
502//
503//   * ServiceNotFoundException
504//   The specified service could not be found. You can view your available services
505//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
506//
507//   * ServiceNotActiveException
508//   The specified service is not active. You can't update a service that is inactive.
509//   If you have previously deleted a service, you can re-create it with CreateService.
510//
511// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateTaskSet
512func (c *ECS) CreateTaskSet(input *CreateTaskSetInput) (*CreateTaskSetOutput, error) {
513	req, out := c.CreateTaskSetRequest(input)
514	return out, req.Send()
515}
516
517// CreateTaskSetWithContext is the same as CreateTaskSet with the addition of
518// the ability to pass a context and additional request options.
519//
520// See CreateTaskSet for details on how to use this API operation.
521//
522// The context must be non-nil and will be used for request cancellation. If
523// the context is nil a panic will occur. In the future the SDK may create
524// sub-contexts for http.Requests. See https://golang.org/pkg/context/
525// for more information on using Contexts.
526func (c *ECS) CreateTaskSetWithContext(ctx aws.Context, input *CreateTaskSetInput, opts ...request.Option) (*CreateTaskSetOutput, error) {
527	req, out := c.CreateTaskSetRequest(input)
528	req.SetContext(ctx)
529	req.ApplyOptions(opts...)
530	return out, req.Send()
531}
532
533const opDeleteAccountSetting = "DeleteAccountSetting"
534
535// DeleteAccountSettingRequest generates a "aws/request.Request" representing the
536// client's request for the DeleteAccountSetting operation. The "output" return
537// value will be populated with the request's response once the request completes
538// successfully.
539//
540// Use "Send" method on the returned Request to send the API call to the service.
541// the "output" return value is not valid until after Send returns without error.
542//
543// See DeleteAccountSetting for more information on using the DeleteAccountSetting
544// API call, and error handling.
545//
546// This method is useful when you want to inject custom logic or configuration
547// into the SDK's request lifecycle. Such as custom headers, or retry logic.
548//
549//
550//    // Example sending a request using the DeleteAccountSettingRequest method.
551//    req, resp := client.DeleteAccountSettingRequest(params)
552//
553//    err := req.Send()
554//    if err == nil { // resp is now filled
555//        fmt.Println(resp)
556//    }
557//
558// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAccountSetting
559func (c *ECS) DeleteAccountSettingRequest(input *DeleteAccountSettingInput) (req *request.Request, output *DeleteAccountSettingOutput) {
560	op := &request.Operation{
561		Name:       opDeleteAccountSetting,
562		HTTPMethod: "POST",
563		HTTPPath:   "/",
564	}
565
566	if input == nil {
567		input = &DeleteAccountSettingInput{}
568	}
569
570	output = &DeleteAccountSettingOutput{}
571	req = c.newRequest(op, input, output)
572	return
573}
574
575// DeleteAccountSetting API operation for Amazon EC2 Container Service.
576//
577// Disables an account setting for a specified IAM user, IAM role, or the root
578// user for an account.
579//
580// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
581// with awserr.Error's Code and Message methods to get detailed information about
582// the error.
583//
584// See the AWS API reference guide for Amazon EC2 Container Service's
585// API operation DeleteAccountSetting for usage and error information.
586//
587// Returned Error Types:
588//   * ServerException
589//   These errors are usually caused by a server issue.
590//
591//   * ClientException
592//   These errors are usually caused by a client action, such as using an action
593//   or resource on behalf of a user that doesn't have permissions to use the
594//   action or resource, or specifying an identifier that is not valid.
595//
596//   * InvalidParameterException
597//   The specified parameter is invalid. Review the available parameters for the
598//   API request.
599//
600// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAccountSetting
601func (c *ECS) DeleteAccountSetting(input *DeleteAccountSettingInput) (*DeleteAccountSettingOutput, error) {
602	req, out := c.DeleteAccountSettingRequest(input)
603	return out, req.Send()
604}
605
606// DeleteAccountSettingWithContext is the same as DeleteAccountSetting with the addition of
607// the ability to pass a context and additional request options.
608//
609// See DeleteAccountSetting for details on how to use this API operation.
610//
611// The context must be non-nil and will be used for request cancellation. If
612// the context is nil a panic will occur. In the future the SDK may create
613// sub-contexts for http.Requests. See https://golang.org/pkg/context/
614// for more information on using Contexts.
615func (c *ECS) DeleteAccountSettingWithContext(ctx aws.Context, input *DeleteAccountSettingInput, opts ...request.Option) (*DeleteAccountSettingOutput, error) {
616	req, out := c.DeleteAccountSettingRequest(input)
617	req.SetContext(ctx)
618	req.ApplyOptions(opts...)
619	return out, req.Send()
620}
621
622const opDeleteAttributes = "DeleteAttributes"
623
624// DeleteAttributesRequest generates a "aws/request.Request" representing the
625// client's request for the DeleteAttributes operation. The "output" return
626// value will be populated with the request's response once the request completes
627// successfully.
628//
629// Use "Send" method on the returned Request to send the API call to the service.
630// the "output" return value is not valid until after Send returns without error.
631//
632// See DeleteAttributes for more information on using the DeleteAttributes
633// API call, and error handling.
634//
635// This method is useful when you want to inject custom logic or configuration
636// into the SDK's request lifecycle. Such as custom headers, or retry logic.
637//
638//
639//    // Example sending a request using the DeleteAttributesRequest method.
640//    req, resp := client.DeleteAttributesRequest(params)
641//
642//    err := req.Send()
643//    if err == nil { // resp is now filled
644//        fmt.Println(resp)
645//    }
646//
647// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributes
648func (c *ECS) DeleteAttributesRequest(input *DeleteAttributesInput) (req *request.Request, output *DeleteAttributesOutput) {
649	op := &request.Operation{
650		Name:       opDeleteAttributes,
651		HTTPMethod: "POST",
652		HTTPPath:   "/",
653	}
654
655	if input == nil {
656		input = &DeleteAttributesInput{}
657	}
658
659	output = &DeleteAttributesOutput{}
660	req = c.newRequest(op, input, output)
661	return
662}
663
664// DeleteAttributes API operation for Amazon EC2 Container Service.
665//
666// Deletes one or more custom attributes from an Amazon ECS resource.
667//
668// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
669// with awserr.Error's Code and Message methods to get detailed information about
670// the error.
671//
672// See the AWS API reference guide for Amazon EC2 Container Service's
673// API operation DeleteAttributes for usage and error information.
674//
675// Returned Error Types:
676//   * ClusterNotFoundException
677//   The specified cluster could not be found. You can view your available clusters
678//   with ListClusters. Amazon ECS clusters are Region-specific.
679//
680//   * TargetNotFoundException
681//   The specified target could not be found. You can view your available container
682//   instances with ListContainerInstances. Amazon ECS container instances are
683//   cluster-specific and Region-specific.
684//
685//   * InvalidParameterException
686//   The specified parameter is invalid. Review the available parameters for the
687//   API request.
688//
689// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributes
690func (c *ECS) DeleteAttributes(input *DeleteAttributesInput) (*DeleteAttributesOutput, error) {
691	req, out := c.DeleteAttributesRequest(input)
692	return out, req.Send()
693}
694
695// DeleteAttributesWithContext is the same as DeleteAttributes with the addition of
696// the ability to pass a context and additional request options.
697//
698// See DeleteAttributes for details on how to use this API operation.
699//
700// The context must be non-nil and will be used for request cancellation. If
701// the context is nil a panic will occur. In the future the SDK may create
702// sub-contexts for http.Requests. See https://golang.org/pkg/context/
703// for more information on using Contexts.
704func (c *ECS) DeleteAttributesWithContext(ctx aws.Context, input *DeleteAttributesInput, opts ...request.Option) (*DeleteAttributesOutput, error) {
705	req, out := c.DeleteAttributesRequest(input)
706	req.SetContext(ctx)
707	req.ApplyOptions(opts...)
708	return out, req.Send()
709}
710
711const opDeleteCluster = "DeleteCluster"
712
713// DeleteClusterRequest generates a "aws/request.Request" representing the
714// client's request for the DeleteCluster operation. The "output" return
715// value will be populated with the request's response once the request completes
716// successfully.
717//
718// Use "Send" method on the returned Request to send the API call to the service.
719// the "output" return value is not valid until after Send returns without error.
720//
721// See DeleteCluster for more information on using the DeleteCluster
722// API call, and error handling.
723//
724// This method is useful when you want to inject custom logic or configuration
725// into the SDK's request lifecycle. Such as custom headers, or retry logic.
726//
727//
728//    // Example sending a request using the DeleteClusterRequest method.
729//    req, resp := client.DeleteClusterRequest(params)
730//
731//    err := req.Send()
732//    if err == nil { // resp is now filled
733//        fmt.Println(resp)
734//    }
735//
736// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCluster
737func (c *ECS) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Request, output *DeleteClusterOutput) {
738	op := &request.Operation{
739		Name:       opDeleteCluster,
740		HTTPMethod: "POST",
741		HTTPPath:   "/",
742	}
743
744	if input == nil {
745		input = &DeleteClusterInput{}
746	}
747
748	output = &DeleteClusterOutput{}
749	req = c.newRequest(op, input, output)
750	return
751}
752
753// DeleteCluster API operation for Amazon EC2 Container Service.
754//
755// Deletes the specified cluster. The cluster will transition to the INACTIVE
756// state. Clusters with an INACTIVE status may remain discoverable in your account
757// for a period of time. However, this behavior is subject to change in the
758// future, so you should not rely on INACTIVE clusters persisting.
759//
760// You must deregister all container instances from this cluster before you
761// may delete it. You can list the container instances in a cluster with ListContainerInstances
762// and deregister them with DeregisterContainerInstance.
763//
764// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
765// with awserr.Error's Code and Message methods to get detailed information about
766// the error.
767//
768// See the AWS API reference guide for Amazon EC2 Container Service's
769// API operation DeleteCluster for usage and error information.
770//
771// Returned Error Types:
772//   * ServerException
773//   These errors are usually caused by a server issue.
774//
775//   * ClientException
776//   These errors are usually caused by a client action, such as using an action
777//   or resource on behalf of a user that doesn't have permissions to use the
778//   action or resource, or specifying an identifier that is not valid.
779//
780//   * InvalidParameterException
781//   The specified parameter is invalid. Review the available parameters for the
782//   API request.
783//
784//   * ClusterNotFoundException
785//   The specified cluster could not be found. You can view your available clusters
786//   with ListClusters. Amazon ECS clusters are Region-specific.
787//
788//   * ClusterContainsContainerInstancesException
789//   You cannot delete a cluster that has registered container instances. First,
790//   deregister the container instances before you can delete the cluster. For
791//   more information, see DeregisterContainerInstance.
792//
793//   * ClusterContainsServicesException
794//   You cannot delete a cluster that contains services. First, update the service
795//   to reduce its desired task count to 0 and then delete the service. For more
796//   information, see UpdateService and DeleteService.
797//
798//   * ClusterContainsTasksException
799//   You cannot delete a cluster that has active tasks.
800//
801//   * UpdateInProgressException
802//   There is already a current Amazon ECS container agent update in progress
803//   on the specified container instance. If the container agent becomes disconnected
804//   while it is in a transitional stage, such as PENDING or STAGING, the update
805//   process can get stuck in that state. However, when the agent reconnects,
806//   it resumes where it stopped previously.
807//
808// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCluster
809func (c *ECS) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error) {
810	req, out := c.DeleteClusterRequest(input)
811	return out, req.Send()
812}
813
814// DeleteClusterWithContext is the same as DeleteCluster with the addition of
815// the ability to pass a context and additional request options.
816//
817// See DeleteCluster for details on how to use this API operation.
818//
819// The context must be non-nil and will be used for request cancellation. If
820// the context is nil a panic will occur. In the future the SDK may create
821// sub-contexts for http.Requests. See https://golang.org/pkg/context/
822// for more information on using Contexts.
823func (c *ECS) DeleteClusterWithContext(ctx aws.Context, input *DeleteClusterInput, opts ...request.Option) (*DeleteClusterOutput, error) {
824	req, out := c.DeleteClusterRequest(input)
825	req.SetContext(ctx)
826	req.ApplyOptions(opts...)
827	return out, req.Send()
828}
829
830const opDeleteService = "DeleteService"
831
832// DeleteServiceRequest generates a "aws/request.Request" representing the
833// client's request for the DeleteService operation. The "output" return
834// value will be populated with the request's response once the request completes
835// successfully.
836//
837// Use "Send" method on the returned Request to send the API call to the service.
838// the "output" return value is not valid until after Send returns without error.
839//
840// See DeleteService for more information on using the DeleteService
841// API call, and error handling.
842//
843// This method is useful when you want to inject custom logic or configuration
844// into the SDK's request lifecycle. Such as custom headers, or retry logic.
845//
846//
847//    // Example sending a request using the DeleteServiceRequest method.
848//    req, resp := client.DeleteServiceRequest(params)
849//
850//    err := req.Send()
851//    if err == nil { // resp is now filled
852//        fmt.Println(resp)
853//    }
854//
855// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteService
856func (c *ECS) DeleteServiceRequest(input *DeleteServiceInput) (req *request.Request, output *DeleteServiceOutput) {
857	op := &request.Operation{
858		Name:       opDeleteService,
859		HTTPMethod: "POST",
860		HTTPPath:   "/",
861	}
862
863	if input == nil {
864		input = &DeleteServiceInput{}
865	}
866
867	output = &DeleteServiceOutput{}
868	req = c.newRequest(op, input, output)
869	return
870}
871
872// DeleteService API operation for Amazon EC2 Container Service.
873//
874// Deletes a specified service within a cluster. You can delete a service if
875// you have no running tasks in it and the desired task count is zero. If the
876// service is actively maintaining tasks, you cannot delete it, and you must
877// update the service to a desired task count of zero. For more information,
878// see UpdateService.
879//
880// When you delete a service, if there are still running tasks that require
881// cleanup, the service status moves from ACTIVE to DRAINING, and the service
882// is no longer visible in the console or in the ListServices API operation.
883// After all tasks have transitioned to either STOPPING or STOPPED status, the
884// service status moves from DRAINING to INACTIVE. Services in the DRAINING
885// or INACTIVE status can still be viewed with the DescribeServices API operation.
886// However, in the future, INACTIVE services may be cleaned up and purged from
887// Amazon ECS record keeping, and DescribeServices calls on those services return
888// a ServiceNotFoundException error.
889//
890// If you attempt to create a new service with the same name as an existing
891// service in either ACTIVE or DRAINING status, you receive an error.
892//
893// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
894// with awserr.Error's Code and Message methods to get detailed information about
895// the error.
896//
897// See the AWS API reference guide for Amazon EC2 Container Service's
898// API operation DeleteService for usage and error information.
899//
900// Returned Error Types:
901//   * ServerException
902//   These errors are usually caused by a server issue.
903//
904//   * ClientException
905//   These errors are usually caused by a client action, such as using an action
906//   or resource on behalf of a user that doesn't have permissions to use the
907//   action or resource, or specifying an identifier that is not valid.
908//
909//   * InvalidParameterException
910//   The specified parameter is invalid. Review the available parameters for the
911//   API request.
912//
913//   * ClusterNotFoundException
914//   The specified cluster could not be found. You can view your available clusters
915//   with ListClusters. Amazon ECS clusters are Region-specific.
916//
917//   * ServiceNotFoundException
918//   The specified service could not be found. You can view your available services
919//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
920//
921// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteService
922func (c *ECS) DeleteService(input *DeleteServiceInput) (*DeleteServiceOutput, error) {
923	req, out := c.DeleteServiceRequest(input)
924	return out, req.Send()
925}
926
927// DeleteServiceWithContext is the same as DeleteService with the addition of
928// the ability to pass a context and additional request options.
929//
930// See DeleteService for details on how to use this API operation.
931//
932// The context must be non-nil and will be used for request cancellation. If
933// the context is nil a panic will occur. In the future the SDK may create
934// sub-contexts for http.Requests. See https://golang.org/pkg/context/
935// for more information on using Contexts.
936func (c *ECS) DeleteServiceWithContext(ctx aws.Context, input *DeleteServiceInput, opts ...request.Option) (*DeleteServiceOutput, error) {
937	req, out := c.DeleteServiceRequest(input)
938	req.SetContext(ctx)
939	req.ApplyOptions(opts...)
940	return out, req.Send()
941}
942
943const opDeleteTaskSet = "DeleteTaskSet"
944
945// DeleteTaskSetRequest generates a "aws/request.Request" representing the
946// client's request for the DeleteTaskSet operation. The "output" return
947// value will be populated with the request's response once the request completes
948// successfully.
949//
950// Use "Send" method on the returned Request to send the API call to the service.
951// the "output" return value is not valid until after Send returns without error.
952//
953// See DeleteTaskSet for more information on using the DeleteTaskSet
954// API call, and error handling.
955//
956// This method is useful when you want to inject custom logic or configuration
957// into the SDK's request lifecycle. Such as custom headers, or retry logic.
958//
959//
960//    // Example sending a request using the DeleteTaskSetRequest method.
961//    req, resp := client.DeleteTaskSetRequest(params)
962//
963//    err := req.Send()
964//    if err == nil { // resp is now filled
965//        fmt.Println(resp)
966//    }
967//
968// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteTaskSet
969func (c *ECS) DeleteTaskSetRequest(input *DeleteTaskSetInput) (req *request.Request, output *DeleteTaskSetOutput) {
970	op := &request.Operation{
971		Name:       opDeleteTaskSet,
972		HTTPMethod: "POST",
973		HTTPPath:   "/",
974	}
975
976	if input == nil {
977		input = &DeleteTaskSetInput{}
978	}
979
980	output = &DeleteTaskSetOutput{}
981	req = c.newRequest(op, input, output)
982	return
983}
984
985// DeleteTaskSet API operation for Amazon EC2 Container Service.
986//
987// Deletes a specified task set within a service. This is used when a service
988// uses the EXTERNAL deployment controller type. For more information, see Amazon
989// ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
990// in the Amazon Elastic Container Service Developer Guide.
991//
992// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
993// with awserr.Error's Code and Message methods to get detailed information about
994// the error.
995//
996// See the AWS API reference guide for Amazon EC2 Container Service's
997// API operation DeleteTaskSet for usage and error information.
998//
999// Returned Error Types:
1000//   * ServerException
1001//   These errors are usually caused by a server issue.
1002//
1003//   * ClientException
1004//   These errors are usually caused by a client action, such as using an action
1005//   or resource on behalf of a user that doesn't have permissions to use the
1006//   action or resource, or specifying an identifier that is not valid.
1007//
1008//   * InvalidParameterException
1009//   The specified parameter is invalid. Review the available parameters for the
1010//   API request.
1011//
1012//   * ClusterNotFoundException
1013//   The specified cluster could not be found. You can view your available clusters
1014//   with ListClusters. Amazon ECS clusters are Region-specific.
1015//
1016//   * UnsupportedFeatureException
1017//   The specified task is not supported in this Region.
1018//
1019//   * AccessDeniedException
1020//   You do not have authorization to perform the requested action.
1021//
1022//   * ServiceNotFoundException
1023//   The specified service could not be found. You can view your available services
1024//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
1025//
1026//   * ServiceNotActiveException
1027//   The specified service is not active. You can't update a service that is inactive.
1028//   If you have previously deleted a service, you can re-create it with CreateService.
1029//
1030//   * TaskSetNotFoundException
1031//   The specified task set could not be found. You can view your available task
1032//   sets with DescribeTaskSets. Task sets are specific to each cluster, service
1033//   and Region.
1034//
1035// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteTaskSet
1036func (c *ECS) DeleteTaskSet(input *DeleteTaskSetInput) (*DeleteTaskSetOutput, error) {
1037	req, out := c.DeleteTaskSetRequest(input)
1038	return out, req.Send()
1039}
1040
1041// DeleteTaskSetWithContext is the same as DeleteTaskSet with the addition of
1042// the ability to pass a context and additional request options.
1043//
1044// See DeleteTaskSet for details on how to use this API operation.
1045//
1046// The context must be non-nil and will be used for request cancellation. If
1047// the context is nil a panic will occur. In the future the SDK may create
1048// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1049// for more information on using Contexts.
1050func (c *ECS) DeleteTaskSetWithContext(ctx aws.Context, input *DeleteTaskSetInput, opts ...request.Option) (*DeleteTaskSetOutput, error) {
1051	req, out := c.DeleteTaskSetRequest(input)
1052	req.SetContext(ctx)
1053	req.ApplyOptions(opts...)
1054	return out, req.Send()
1055}
1056
1057const opDeregisterContainerInstance = "DeregisterContainerInstance"
1058
1059// DeregisterContainerInstanceRequest generates a "aws/request.Request" representing the
1060// client's request for the DeregisterContainerInstance operation. The "output" return
1061// value will be populated with the request's response once the request completes
1062// successfully.
1063//
1064// Use "Send" method on the returned Request to send the API call to the service.
1065// the "output" return value is not valid until after Send returns without error.
1066//
1067// See DeregisterContainerInstance for more information on using the DeregisterContainerInstance
1068// API call, and error handling.
1069//
1070// This method is useful when you want to inject custom logic or configuration
1071// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1072//
1073//
1074//    // Example sending a request using the DeregisterContainerInstanceRequest method.
1075//    req, resp := client.DeregisterContainerInstanceRequest(params)
1076//
1077//    err := req.Send()
1078//    if err == nil { // resp is now filled
1079//        fmt.Println(resp)
1080//    }
1081//
1082// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstance
1083func (c *ECS) DeregisterContainerInstanceRequest(input *DeregisterContainerInstanceInput) (req *request.Request, output *DeregisterContainerInstanceOutput) {
1084	op := &request.Operation{
1085		Name:       opDeregisterContainerInstance,
1086		HTTPMethod: "POST",
1087		HTTPPath:   "/",
1088	}
1089
1090	if input == nil {
1091		input = &DeregisterContainerInstanceInput{}
1092	}
1093
1094	output = &DeregisterContainerInstanceOutput{}
1095	req = c.newRequest(op, input, output)
1096	return
1097}
1098
1099// DeregisterContainerInstance API operation for Amazon EC2 Container Service.
1100//
1101// Deregisters an Amazon ECS container instance from the specified cluster.
1102// This instance is no longer available to run tasks.
1103//
1104// If you intend to use the container instance for some other purpose after
1105// deregistration, you should stop all of the tasks running on the container
1106// instance before deregistration. That prevents any orphaned tasks from consuming
1107// resources.
1108//
1109// Deregistering a container instance removes the instance from a cluster, but
1110// it does not terminate the EC2 instance. If you are finished using the instance,
1111// be sure to terminate it in the Amazon EC2 console to stop billing.
1112//
1113// If you terminate a running container instance, Amazon ECS automatically deregisters
1114// the instance from your cluster (stopped container instances or instances
1115// with disconnected agents are not automatically deregistered when terminated).
1116//
1117// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1118// with awserr.Error's Code and Message methods to get detailed information about
1119// the error.
1120//
1121// See the AWS API reference guide for Amazon EC2 Container Service's
1122// API operation DeregisterContainerInstance for usage and error information.
1123//
1124// Returned Error Types:
1125//   * ServerException
1126//   These errors are usually caused by a server issue.
1127//
1128//   * ClientException
1129//   These errors are usually caused by a client action, such as using an action
1130//   or resource on behalf of a user that doesn't have permissions to use the
1131//   action or resource, or specifying an identifier that is not valid.
1132//
1133//   * InvalidParameterException
1134//   The specified parameter is invalid. Review the available parameters for the
1135//   API request.
1136//
1137//   * ClusterNotFoundException
1138//   The specified cluster could not be found. You can view your available clusters
1139//   with ListClusters. Amazon ECS clusters are Region-specific.
1140//
1141// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstance
1142func (c *ECS) DeregisterContainerInstance(input *DeregisterContainerInstanceInput) (*DeregisterContainerInstanceOutput, error) {
1143	req, out := c.DeregisterContainerInstanceRequest(input)
1144	return out, req.Send()
1145}
1146
1147// DeregisterContainerInstanceWithContext is the same as DeregisterContainerInstance with the addition of
1148// the ability to pass a context and additional request options.
1149//
1150// See DeregisterContainerInstance for details on how to use this API operation.
1151//
1152// The context must be non-nil and will be used for request cancellation. If
1153// the context is nil a panic will occur. In the future the SDK may create
1154// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1155// for more information on using Contexts.
1156func (c *ECS) DeregisterContainerInstanceWithContext(ctx aws.Context, input *DeregisterContainerInstanceInput, opts ...request.Option) (*DeregisterContainerInstanceOutput, error) {
1157	req, out := c.DeregisterContainerInstanceRequest(input)
1158	req.SetContext(ctx)
1159	req.ApplyOptions(opts...)
1160	return out, req.Send()
1161}
1162
1163const opDeregisterTaskDefinition = "DeregisterTaskDefinition"
1164
1165// DeregisterTaskDefinitionRequest generates a "aws/request.Request" representing the
1166// client's request for the DeregisterTaskDefinition operation. The "output" return
1167// value will be populated with the request's response once the request completes
1168// successfully.
1169//
1170// Use "Send" method on the returned Request to send the API call to the service.
1171// the "output" return value is not valid until after Send returns without error.
1172//
1173// See DeregisterTaskDefinition for more information on using the DeregisterTaskDefinition
1174// API call, and error handling.
1175//
1176// This method is useful when you want to inject custom logic or configuration
1177// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1178//
1179//
1180//    // Example sending a request using the DeregisterTaskDefinitionRequest method.
1181//    req, resp := client.DeregisterTaskDefinitionRequest(params)
1182//
1183//    err := req.Send()
1184//    if err == nil { // resp is now filled
1185//        fmt.Println(resp)
1186//    }
1187//
1188// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinition
1189func (c *ECS) DeregisterTaskDefinitionRequest(input *DeregisterTaskDefinitionInput) (req *request.Request, output *DeregisterTaskDefinitionOutput) {
1190	op := &request.Operation{
1191		Name:       opDeregisterTaskDefinition,
1192		HTTPMethod: "POST",
1193		HTTPPath:   "/",
1194	}
1195
1196	if input == nil {
1197		input = &DeregisterTaskDefinitionInput{}
1198	}
1199
1200	output = &DeregisterTaskDefinitionOutput{}
1201	req = c.newRequest(op, input, output)
1202	return
1203}
1204
1205// DeregisterTaskDefinition API operation for Amazon EC2 Container Service.
1206//
1207// Deregisters the specified task definition by family and revision. Upon deregistration,
1208// the task definition is marked as INACTIVE. Existing tasks and services that
1209// reference an INACTIVE task definition continue to run without disruption.
1210// Existing services that reference an INACTIVE task definition can still scale
1211// up or down by modifying the service's desired count.
1212//
1213// You cannot use an INACTIVE task definition to run new tasks or create new
1214// services, and you cannot update an existing service to reference an INACTIVE
1215// task definition. However, there may be up to a 10-minute window following
1216// deregistration where these restrictions have not yet taken effect.
1217//
1218// At this time, INACTIVE task definitions remain discoverable in your account
1219// indefinitely. However, this behavior is subject to change in the future,
1220// so you should not rely on INACTIVE task definitions persisting beyond the
1221// lifecycle of any associated tasks and services.
1222//
1223// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1224// with awserr.Error's Code and Message methods to get detailed information about
1225// the error.
1226//
1227// See the AWS API reference guide for Amazon EC2 Container Service's
1228// API operation DeregisterTaskDefinition for usage and error information.
1229//
1230// Returned Error Types:
1231//   * ServerException
1232//   These errors are usually caused by a server issue.
1233//
1234//   * ClientException
1235//   These errors are usually caused by a client action, such as using an action
1236//   or resource on behalf of a user that doesn't have permissions to use the
1237//   action or resource, or specifying an identifier that is not valid.
1238//
1239//   * InvalidParameterException
1240//   The specified parameter is invalid. Review the available parameters for the
1241//   API request.
1242//
1243// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinition
1244func (c *ECS) DeregisterTaskDefinition(input *DeregisterTaskDefinitionInput) (*DeregisterTaskDefinitionOutput, error) {
1245	req, out := c.DeregisterTaskDefinitionRequest(input)
1246	return out, req.Send()
1247}
1248
1249// DeregisterTaskDefinitionWithContext is the same as DeregisterTaskDefinition with the addition of
1250// the ability to pass a context and additional request options.
1251//
1252// See DeregisterTaskDefinition for details on how to use this API operation.
1253//
1254// The context must be non-nil and will be used for request cancellation. If
1255// the context is nil a panic will occur. In the future the SDK may create
1256// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1257// for more information on using Contexts.
1258func (c *ECS) DeregisterTaskDefinitionWithContext(ctx aws.Context, input *DeregisterTaskDefinitionInput, opts ...request.Option) (*DeregisterTaskDefinitionOutput, error) {
1259	req, out := c.DeregisterTaskDefinitionRequest(input)
1260	req.SetContext(ctx)
1261	req.ApplyOptions(opts...)
1262	return out, req.Send()
1263}
1264
1265const opDescribeCapacityProviders = "DescribeCapacityProviders"
1266
1267// DescribeCapacityProvidersRequest generates a "aws/request.Request" representing the
1268// client's request for the DescribeCapacityProviders operation. The "output" return
1269// value will be populated with the request's response once the request completes
1270// successfully.
1271//
1272// Use "Send" method on the returned Request to send the API call to the service.
1273// the "output" return value is not valid until after Send returns without error.
1274//
1275// See DescribeCapacityProviders for more information on using the DescribeCapacityProviders
1276// API call, and error handling.
1277//
1278// This method is useful when you want to inject custom logic or configuration
1279// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1280//
1281//
1282//    // Example sending a request using the DescribeCapacityProvidersRequest method.
1283//    req, resp := client.DescribeCapacityProvidersRequest(params)
1284//
1285//    err := req.Send()
1286//    if err == nil { // resp is now filled
1287//        fmt.Println(resp)
1288//    }
1289//
1290// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeCapacityProviders
1291func (c *ECS) DescribeCapacityProvidersRequest(input *DescribeCapacityProvidersInput) (req *request.Request, output *DescribeCapacityProvidersOutput) {
1292	op := &request.Operation{
1293		Name:       opDescribeCapacityProviders,
1294		HTTPMethod: "POST",
1295		HTTPPath:   "/",
1296	}
1297
1298	if input == nil {
1299		input = &DescribeCapacityProvidersInput{}
1300	}
1301
1302	output = &DescribeCapacityProvidersOutput{}
1303	req = c.newRequest(op, input, output)
1304	return
1305}
1306
1307// DescribeCapacityProviders API operation for Amazon EC2 Container Service.
1308//
1309// Describes one or more of your capacity providers.
1310//
1311// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1312// with awserr.Error's Code and Message methods to get detailed information about
1313// the error.
1314//
1315// See the AWS API reference guide for Amazon EC2 Container Service's
1316// API operation DescribeCapacityProviders for usage and error information.
1317//
1318// Returned Error Types:
1319//   * ServerException
1320//   These errors are usually caused by a server issue.
1321//
1322//   * ClientException
1323//   These errors are usually caused by a client action, such as using an action
1324//   or resource on behalf of a user that doesn't have permissions to use the
1325//   action or resource, or specifying an identifier that is not valid.
1326//
1327//   * InvalidParameterException
1328//   The specified parameter is invalid. Review the available parameters for the
1329//   API request.
1330//
1331// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeCapacityProviders
1332func (c *ECS) DescribeCapacityProviders(input *DescribeCapacityProvidersInput) (*DescribeCapacityProvidersOutput, error) {
1333	req, out := c.DescribeCapacityProvidersRequest(input)
1334	return out, req.Send()
1335}
1336
1337// DescribeCapacityProvidersWithContext is the same as DescribeCapacityProviders with the addition of
1338// the ability to pass a context and additional request options.
1339//
1340// See DescribeCapacityProviders for details on how to use this API operation.
1341//
1342// The context must be non-nil and will be used for request cancellation. If
1343// the context is nil a panic will occur. In the future the SDK may create
1344// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1345// for more information on using Contexts.
1346func (c *ECS) DescribeCapacityProvidersWithContext(ctx aws.Context, input *DescribeCapacityProvidersInput, opts ...request.Option) (*DescribeCapacityProvidersOutput, error) {
1347	req, out := c.DescribeCapacityProvidersRequest(input)
1348	req.SetContext(ctx)
1349	req.ApplyOptions(opts...)
1350	return out, req.Send()
1351}
1352
1353const opDescribeClusters = "DescribeClusters"
1354
1355// DescribeClustersRequest generates a "aws/request.Request" representing the
1356// client's request for the DescribeClusters operation. The "output" return
1357// value will be populated with the request's response once the request completes
1358// successfully.
1359//
1360// Use "Send" method on the returned Request to send the API call to the service.
1361// the "output" return value is not valid until after Send returns without error.
1362//
1363// See DescribeClusters for more information on using the DescribeClusters
1364// API call, and error handling.
1365//
1366// This method is useful when you want to inject custom logic or configuration
1367// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1368//
1369//
1370//    // Example sending a request using the DescribeClustersRequest method.
1371//    req, resp := client.DescribeClustersRequest(params)
1372//
1373//    err := req.Send()
1374//    if err == nil { // resp is now filled
1375//        fmt.Println(resp)
1376//    }
1377//
1378// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClusters
1379func (c *ECS) DescribeClustersRequest(input *DescribeClustersInput) (req *request.Request, output *DescribeClustersOutput) {
1380	op := &request.Operation{
1381		Name:       opDescribeClusters,
1382		HTTPMethod: "POST",
1383		HTTPPath:   "/",
1384	}
1385
1386	if input == nil {
1387		input = &DescribeClustersInput{}
1388	}
1389
1390	output = &DescribeClustersOutput{}
1391	req = c.newRequest(op, input, output)
1392	return
1393}
1394
1395// DescribeClusters API operation for Amazon EC2 Container Service.
1396//
1397// Describes one or more of your clusters.
1398//
1399// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1400// with awserr.Error's Code and Message methods to get detailed information about
1401// the error.
1402//
1403// See the AWS API reference guide for Amazon EC2 Container Service's
1404// API operation DescribeClusters for usage and error information.
1405//
1406// Returned Error Types:
1407//   * ServerException
1408//   These errors are usually caused by a server issue.
1409//
1410//   * ClientException
1411//   These errors are usually caused by a client action, such as using an action
1412//   or resource on behalf of a user that doesn't have permissions to use the
1413//   action or resource, or specifying an identifier that is not valid.
1414//
1415//   * InvalidParameterException
1416//   The specified parameter is invalid. Review the available parameters for the
1417//   API request.
1418//
1419// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClusters
1420func (c *ECS) DescribeClusters(input *DescribeClustersInput) (*DescribeClustersOutput, error) {
1421	req, out := c.DescribeClustersRequest(input)
1422	return out, req.Send()
1423}
1424
1425// DescribeClustersWithContext is the same as DescribeClusters with the addition of
1426// the ability to pass a context and additional request options.
1427//
1428// See DescribeClusters for details on how to use this API operation.
1429//
1430// The context must be non-nil and will be used for request cancellation. If
1431// the context is nil a panic will occur. In the future the SDK may create
1432// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1433// for more information on using Contexts.
1434func (c *ECS) DescribeClustersWithContext(ctx aws.Context, input *DescribeClustersInput, opts ...request.Option) (*DescribeClustersOutput, error) {
1435	req, out := c.DescribeClustersRequest(input)
1436	req.SetContext(ctx)
1437	req.ApplyOptions(opts...)
1438	return out, req.Send()
1439}
1440
1441const opDescribeContainerInstances = "DescribeContainerInstances"
1442
1443// DescribeContainerInstancesRequest generates a "aws/request.Request" representing the
1444// client's request for the DescribeContainerInstances operation. The "output" return
1445// value will be populated with the request's response once the request completes
1446// successfully.
1447//
1448// Use "Send" method on the returned Request to send the API call to the service.
1449// the "output" return value is not valid until after Send returns without error.
1450//
1451// See DescribeContainerInstances for more information on using the DescribeContainerInstances
1452// API call, and error handling.
1453//
1454// This method is useful when you want to inject custom logic or configuration
1455// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1456//
1457//
1458//    // Example sending a request using the DescribeContainerInstancesRequest method.
1459//    req, resp := client.DescribeContainerInstancesRequest(params)
1460//
1461//    err := req.Send()
1462//    if err == nil { // resp is now filled
1463//        fmt.Println(resp)
1464//    }
1465//
1466// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstances
1467func (c *ECS) DescribeContainerInstancesRequest(input *DescribeContainerInstancesInput) (req *request.Request, output *DescribeContainerInstancesOutput) {
1468	op := &request.Operation{
1469		Name:       opDescribeContainerInstances,
1470		HTTPMethod: "POST",
1471		HTTPPath:   "/",
1472	}
1473
1474	if input == nil {
1475		input = &DescribeContainerInstancesInput{}
1476	}
1477
1478	output = &DescribeContainerInstancesOutput{}
1479	req = c.newRequest(op, input, output)
1480	return
1481}
1482
1483// DescribeContainerInstances API operation for Amazon EC2 Container Service.
1484//
1485// Describes Amazon Elastic Container Service container instances. Returns metadata
1486// about registered and remaining resources on each container instance requested.
1487//
1488// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1489// with awserr.Error's Code and Message methods to get detailed information about
1490// the error.
1491//
1492// See the AWS API reference guide for Amazon EC2 Container Service's
1493// API operation DescribeContainerInstances for usage and error information.
1494//
1495// Returned Error Types:
1496//   * ServerException
1497//   These errors are usually caused by a server issue.
1498//
1499//   * ClientException
1500//   These errors are usually caused by a client action, such as using an action
1501//   or resource on behalf of a user that doesn't have permissions to use the
1502//   action or resource, or specifying an identifier that is not valid.
1503//
1504//   * InvalidParameterException
1505//   The specified parameter is invalid. Review the available parameters for the
1506//   API request.
1507//
1508//   * ClusterNotFoundException
1509//   The specified cluster could not be found. You can view your available clusters
1510//   with ListClusters. Amazon ECS clusters are Region-specific.
1511//
1512// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstances
1513func (c *ECS) DescribeContainerInstances(input *DescribeContainerInstancesInput) (*DescribeContainerInstancesOutput, error) {
1514	req, out := c.DescribeContainerInstancesRequest(input)
1515	return out, req.Send()
1516}
1517
1518// DescribeContainerInstancesWithContext is the same as DescribeContainerInstances with the addition of
1519// the ability to pass a context and additional request options.
1520//
1521// See DescribeContainerInstances for details on how to use this API operation.
1522//
1523// The context must be non-nil and will be used for request cancellation. If
1524// the context is nil a panic will occur. In the future the SDK may create
1525// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1526// for more information on using Contexts.
1527func (c *ECS) DescribeContainerInstancesWithContext(ctx aws.Context, input *DescribeContainerInstancesInput, opts ...request.Option) (*DescribeContainerInstancesOutput, error) {
1528	req, out := c.DescribeContainerInstancesRequest(input)
1529	req.SetContext(ctx)
1530	req.ApplyOptions(opts...)
1531	return out, req.Send()
1532}
1533
1534const opDescribeServices = "DescribeServices"
1535
1536// DescribeServicesRequest generates a "aws/request.Request" representing the
1537// client's request for the DescribeServices operation. The "output" return
1538// value will be populated with the request's response once the request completes
1539// successfully.
1540//
1541// Use "Send" method on the returned Request to send the API call to the service.
1542// the "output" return value is not valid until after Send returns without error.
1543//
1544// See DescribeServices for more information on using the DescribeServices
1545// API call, and error handling.
1546//
1547// This method is useful when you want to inject custom logic or configuration
1548// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1549//
1550//
1551//    // Example sending a request using the DescribeServicesRequest method.
1552//    req, resp := client.DescribeServicesRequest(params)
1553//
1554//    err := req.Send()
1555//    if err == nil { // resp is now filled
1556//        fmt.Println(resp)
1557//    }
1558//
1559// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServices
1560func (c *ECS) DescribeServicesRequest(input *DescribeServicesInput) (req *request.Request, output *DescribeServicesOutput) {
1561	op := &request.Operation{
1562		Name:       opDescribeServices,
1563		HTTPMethod: "POST",
1564		HTTPPath:   "/",
1565	}
1566
1567	if input == nil {
1568		input = &DescribeServicesInput{}
1569	}
1570
1571	output = &DescribeServicesOutput{}
1572	req = c.newRequest(op, input, output)
1573	return
1574}
1575
1576// DescribeServices API operation for Amazon EC2 Container Service.
1577//
1578// Describes the specified services running in your cluster.
1579//
1580// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1581// with awserr.Error's Code and Message methods to get detailed information about
1582// the error.
1583//
1584// See the AWS API reference guide for Amazon EC2 Container Service's
1585// API operation DescribeServices for usage and error information.
1586//
1587// Returned Error Types:
1588//   * ServerException
1589//   These errors are usually caused by a server issue.
1590//
1591//   * ClientException
1592//   These errors are usually caused by a client action, such as using an action
1593//   or resource on behalf of a user that doesn't have permissions to use the
1594//   action or resource, or specifying an identifier that is not valid.
1595//
1596//   * InvalidParameterException
1597//   The specified parameter is invalid. Review the available parameters for the
1598//   API request.
1599//
1600//   * ClusterNotFoundException
1601//   The specified cluster could not be found. You can view your available clusters
1602//   with ListClusters. Amazon ECS clusters are Region-specific.
1603//
1604// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServices
1605func (c *ECS) DescribeServices(input *DescribeServicesInput) (*DescribeServicesOutput, error) {
1606	req, out := c.DescribeServicesRequest(input)
1607	return out, req.Send()
1608}
1609
1610// DescribeServicesWithContext is the same as DescribeServices with the addition of
1611// the ability to pass a context and additional request options.
1612//
1613// See DescribeServices for details on how to use this API operation.
1614//
1615// The context must be non-nil and will be used for request cancellation. If
1616// the context is nil a panic will occur. In the future the SDK may create
1617// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1618// for more information on using Contexts.
1619func (c *ECS) DescribeServicesWithContext(ctx aws.Context, input *DescribeServicesInput, opts ...request.Option) (*DescribeServicesOutput, error) {
1620	req, out := c.DescribeServicesRequest(input)
1621	req.SetContext(ctx)
1622	req.ApplyOptions(opts...)
1623	return out, req.Send()
1624}
1625
1626const opDescribeTaskDefinition = "DescribeTaskDefinition"
1627
1628// DescribeTaskDefinitionRequest generates a "aws/request.Request" representing the
1629// client's request for the DescribeTaskDefinition operation. The "output" return
1630// value will be populated with the request's response once the request completes
1631// successfully.
1632//
1633// Use "Send" method on the returned Request to send the API call to the service.
1634// the "output" return value is not valid until after Send returns without error.
1635//
1636// See DescribeTaskDefinition for more information on using the DescribeTaskDefinition
1637// API call, and error handling.
1638//
1639// This method is useful when you want to inject custom logic or configuration
1640// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1641//
1642//
1643//    // Example sending a request using the DescribeTaskDefinitionRequest method.
1644//    req, resp := client.DescribeTaskDefinitionRequest(params)
1645//
1646//    err := req.Send()
1647//    if err == nil { // resp is now filled
1648//        fmt.Println(resp)
1649//    }
1650//
1651// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinition
1652func (c *ECS) DescribeTaskDefinitionRequest(input *DescribeTaskDefinitionInput) (req *request.Request, output *DescribeTaskDefinitionOutput) {
1653	op := &request.Operation{
1654		Name:       opDescribeTaskDefinition,
1655		HTTPMethod: "POST",
1656		HTTPPath:   "/",
1657	}
1658
1659	if input == nil {
1660		input = &DescribeTaskDefinitionInput{}
1661	}
1662
1663	output = &DescribeTaskDefinitionOutput{}
1664	req = c.newRequest(op, input, output)
1665	return
1666}
1667
1668// DescribeTaskDefinition API operation for Amazon EC2 Container Service.
1669//
1670// Describes a task definition. You can specify a family and revision to find
1671// information about a specific task definition, or you can simply specify the
1672// family to find the latest ACTIVE revision in that family.
1673//
1674// You can only describe INACTIVE task definitions while an active task or service
1675// references them.
1676//
1677// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1678// with awserr.Error's Code and Message methods to get detailed information about
1679// the error.
1680//
1681// See the AWS API reference guide for Amazon EC2 Container Service's
1682// API operation DescribeTaskDefinition for usage and error information.
1683//
1684// Returned Error Types:
1685//   * ServerException
1686//   These errors are usually caused by a server issue.
1687//
1688//   * ClientException
1689//   These errors are usually caused by a client action, such as using an action
1690//   or resource on behalf of a user that doesn't have permissions to use the
1691//   action or resource, or specifying an identifier that is not valid.
1692//
1693//   * InvalidParameterException
1694//   The specified parameter is invalid. Review the available parameters for the
1695//   API request.
1696//
1697// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinition
1698func (c *ECS) DescribeTaskDefinition(input *DescribeTaskDefinitionInput) (*DescribeTaskDefinitionOutput, error) {
1699	req, out := c.DescribeTaskDefinitionRequest(input)
1700	return out, req.Send()
1701}
1702
1703// DescribeTaskDefinitionWithContext is the same as DescribeTaskDefinition with the addition of
1704// the ability to pass a context and additional request options.
1705//
1706// See DescribeTaskDefinition for details on how to use this API operation.
1707//
1708// The context must be non-nil and will be used for request cancellation. If
1709// the context is nil a panic will occur. In the future the SDK may create
1710// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1711// for more information on using Contexts.
1712func (c *ECS) DescribeTaskDefinitionWithContext(ctx aws.Context, input *DescribeTaskDefinitionInput, opts ...request.Option) (*DescribeTaskDefinitionOutput, error) {
1713	req, out := c.DescribeTaskDefinitionRequest(input)
1714	req.SetContext(ctx)
1715	req.ApplyOptions(opts...)
1716	return out, req.Send()
1717}
1718
1719const opDescribeTaskSets = "DescribeTaskSets"
1720
1721// DescribeTaskSetsRequest generates a "aws/request.Request" representing the
1722// client's request for the DescribeTaskSets operation. The "output" return
1723// value will be populated with the request's response once the request completes
1724// successfully.
1725//
1726// Use "Send" method on the returned Request to send the API call to the service.
1727// the "output" return value is not valid until after Send returns without error.
1728//
1729// See DescribeTaskSets for more information on using the DescribeTaskSets
1730// API call, and error handling.
1731//
1732// This method is useful when you want to inject custom logic or configuration
1733// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1734//
1735//
1736//    // Example sending a request using the DescribeTaskSetsRequest method.
1737//    req, resp := client.DescribeTaskSetsRequest(params)
1738//
1739//    err := req.Send()
1740//    if err == nil { // resp is now filled
1741//        fmt.Println(resp)
1742//    }
1743//
1744// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskSets
1745func (c *ECS) DescribeTaskSetsRequest(input *DescribeTaskSetsInput) (req *request.Request, output *DescribeTaskSetsOutput) {
1746	op := &request.Operation{
1747		Name:       opDescribeTaskSets,
1748		HTTPMethod: "POST",
1749		HTTPPath:   "/",
1750	}
1751
1752	if input == nil {
1753		input = &DescribeTaskSetsInput{}
1754	}
1755
1756	output = &DescribeTaskSetsOutput{}
1757	req = c.newRequest(op, input, output)
1758	return
1759}
1760
1761// DescribeTaskSets API operation for Amazon EC2 Container Service.
1762//
1763// Describes the task sets in the specified cluster and service. This is used
1764// when a service uses the EXTERNAL deployment controller type. For more information,
1765// see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
1766// in the Amazon Elastic Container Service Developer Guide.
1767//
1768// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1769// with awserr.Error's Code and Message methods to get detailed information about
1770// the error.
1771//
1772// See the AWS API reference guide for Amazon EC2 Container Service's
1773// API operation DescribeTaskSets for usage and error information.
1774//
1775// Returned Error Types:
1776//   * ServerException
1777//   These errors are usually caused by a server issue.
1778//
1779//   * ClientException
1780//   These errors are usually caused by a client action, such as using an action
1781//   or resource on behalf of a user that doesn't have permissions to use the
1782//   action or resource, or specifying an identifier that is not valid.
1783//
1784//   * InvalidParameterException
1785//   The specified parameter is invalid. Review the available parameters for the
1786//   API request.
1787//
1788//   * ClusterNotFoundException
1789//   The specified cluster could not be found. You can view your available clusters
1790//   with ListClusters. Amazon ECS clusters are Region-specific.
1791//
1792//   * UnsupportedFeatureException
1793//   The specified task is not supported in this Region.
1794//
1795//   * AccessDeniedException
1796//   You do not have authorization to perform the requested action.
1797//
1798//   * ServiceNotFoundException
1799//   The specified service could not be found. You can view your available services
1800//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
1801//
1802//   * ServiceNotActiveException
1803//   The specified service is not active. You can't update a service that is inactive.
1804//   If you have previously deleted a service, you can re-create it with CreateService.
1805//
1806// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskSets
1807func (c *ECS) DescribeTaskSets(input *DescribeTaskSetsInput) (*DescribeTaskSetsOutput, error) {
1808	req, out := c.DescribeTaskSetsRequest(input)
1809	return out, req.Send()
1810}
1811
1812// DescribeTaskSetsWithContext is the same as DescribeTaskSets with the addition of
1813// the ability to pass a context and additional request options.
1814//
1815// See DescribeTaskSets for details on how to use this API operation.
1816//
1817// The context must be non-nil and will be used for request cancellation. If
1818// the context is nil a panic will occur. In the future the SDK may create
1819// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1820// for more information on using Contexts.
1821func (c *ECS) DescribeTaskSetsWithContext(ctx aws.Context, input *DescribeTaskSetsInput, opts ...request.Option) (*DescribeTaskSetsOutput, error) {
1822	req, out := c.DescribeTaskSetsRequest(input)
1823	req.SetContext(ctx)
1824	req.ApplyOptions(opts...)
1825	return out, req.Send()
1826}
1827
1828const opDescribeTasks = "DescribeTasks"
1829
1830// DescribeTasksRequest generates a "aws/request.Request" representing the
1831// client's request for the DescribeTasks operation. The "output" return
1832// value will be populated with the request's response once the request completes
1833// successfully.
1834//
1835// Use "Send" method on the returned Request to send the API call to the service.
1836// the "output" return value is not valid until after Send returns without error.
1837//
1838// See DescribeTasks for more information on using the DescribeTasks
1839// API call, and error handling.
1840//
1841// This method is useful when you want to inject custom logic or configuration
1842// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1843//
1844//
1845//    // Example sending a request using the DescribeTasksRequest method.
1846//    req, resp := client.DescribeTasksRequest(params)
1847//
1848//    err := req.Send()
1849//    if err == nil { // resp is now filled
1850//        fmt.Println(resp)
1851//    }
1852//
1853// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasks
1854func (c *ECS) DescribeTasksRequest(input *DescribeTasksInput) (req *request.Request, output *DescribeTasksOutput) {
1855	op := &request.Operation{
1856		Name:       opDescribeTasks,
1857		HTTPMethod: "POST",
1858		HTTPPath:   "/",
1859	}
1860
1861	if input == nil {
1862		input = &DescribeTasksInput{}
1863	}
1864
1865	output = &DescribeTasksOutput{}
1866	req = c.newRequest(op, input, output)
1867	return
1868}
1869
1870// DescribeTasks API operation for Amazon EC2 Container Service.
1871//
1872// Describes a specified task or tasks.
1873//
1874// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1875// with awserr.Error's Code and Message methods to get detailed information about
1876// the error.
1877//
1878// See the AWS API reference guide for Amazon EC2 Container Service's
1879// API operation DescribeTasks for usage and error information.
1880//
1881// Returned Error Types:
1882//   * ServerException
1883//   These errors are usually caused by a server issue.
1884//
1885//   * ClientException
1886//   These errors are usually caused by a client action, such as using an action
1887//   or resource on behalf of a user that doesn't have permissions to use the
1888//   action or resource, or specifying an identifier that is not valid.
1889//
1890//   * InvalidParameterException
1891//   The specified parameter is invalid. Review the available parameters for the
1892//   API request.
1893//
1894//   * ClusterNotFoundException
1895//   The specified cluster could not be found. You can view your available clusters
1896//   with ListClusters. Amazon ECS clusters are Region-specific.
1897//
1898// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasks
1899func (c *ECS) DescribeTasks(input *DescribeTasksInput) (*DescribeTasksOutput, error) {
1900	req, out := c.DescribeTasksRequest(input)
1901	return out, req.Send()
1902}
1903
1904// DescribeTasksWithContext is the same as DescribeTasks with the addition of
1905// the ability to pass a context and additional request options.
1906//
1907// See DescribeTasks for details on how to use this API operation.
1908//
1909// The context must be non-nil and will be used for request cancellation. If
1910// the context is nil a panic will occur. In the future the SDK may create
1911// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1912// for more information on using Contexts.
1913func (c *ECS) DescribeTasksWithContext(ctx aws.Context, input *DescribeTasksInput, opts ...request.Option) (*DescribeTasksOutput, error) {
1914	req, out := c.DescribeTasksRequest(input)
1915	req.SetContext(ctx)
1916	req.ApplyOptions(opts...)
1917	return out, req.Send()
1918}
1919
1920const opDiscoverPollEndpoint = "DiscoverPollEndpoint"
1921
1922// DiscoverPollEndpointRequest generates a "aws/request.Request" representing the
1923// client's request for the DiscoverPollEndpoint operation. The "output" return
1924// value will be populated with the request's response once the request completes
1925// successfully.
1926//
1927// Use "Send" method on the returned Request to send the API call to the service.
1928// the "output" return value is not valid until after Send returns without error.
1929//
1930// See DiscoverPollEndpoint for more information on using the DiscoverPollEndpoint
1931// API call, and error handling.
1932//
1933// This method is useful when you want to inject custom logic or configuration
1934// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1935//
1936//
1937//    // Example sending a request using the DiscoverPollEndpointRequest method.
1938//    req, resp := client.DiscoverPollEndpointRequest(params)
1939//
1940//    err := req.Send()
1941//    if err == nil { // resp is now filled
1942//        fmt.Println(resp)
1943//    }
1944//
1945// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpoint
1946func (c *ECS) DiscoverPollEndpointRequest(input *DiscoverPollEndpointInput) (req *request.Request, output *DiscoverPollEndpointOutput) {
1947	op := &request.Operation{
1948		Name:       opDiscoverPollEndpoint,
1949		HTTPMethod: "POST",
1950		HTTPPath:   "/",
1951	}
1952
1953	if input == nil {
1954		input = &DiscoverPollEndpointInput{}
1955	}
1956
1957	output = &DiscoverPollEndpointOutput{}
1958	req = c.newRequest(op, input, output)
1959	return
1960}
1961
1962// DiscoverPollEndpoint API operation for Amazon EC2 Container Service.
1963//
1964//
1965// This action is only used by the Amazon ECS agent, and it is not intended
1966// for use outside of the agent.
1967//
1968// Returns an endpoint for the Amazon ECS agent to poll for updates.
1969//
1970// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1971// with awserr.Error's Code and Message methods to get detailed information about
1972// the error.
1973//
1974// See the AWS API reference guide for Amazon EC2 Container Service's
1975// API operation DiscoverPollEndpoint for usage and error information.
1976//
1977// Returned Error Types:
1978//   * ServerException
1979//   These errors are usually caused by a server issue.
1980//
1981//   * ClientException
1982//   These errors are usually caused by a client action, such as using an action
1983//   or resource on behalf of a user that doesn't have permissions to use the
1984//   action or resource, or specifying an identifier that is not valid.
1985//
1986// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpoint
1987func (c *ECS) DiscoverPollEndpoint(input *DiscoverPollEndpointInput) (*DiscoverPollEndpointOutput, error) {
1988	req, out := c.DiscoverPollEndpointRequest(input)
1989	return out, req.Send()
1990}
1991
1992// DiscoverPollEndpointWithContext is the same as DiscoverPollEndpoint with the addition of
1993// the ability to pass a context and additional request options.
1994//
1995// See DiscoverPollEndpoint for details on how to use this API operation.
1996//
1997// The context must be non-nil and will be used for request cancellation. If
1998// the context is nil a panic will occur. In the future the SDK may create
1999// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2000// for more information on using Contexts.
2001func (c *ECS) DiscoverPollEndpointWithContext(ctx aws.Context, input *DiscoverPollEndpointInput, opts ...request.Option) (*DiscoverPollEndpointOutput, error) {
2002	req, out := c.DiscoverPollEndpointRequest(input)
2003	req.SetContext(ctx)
2004	req.ApplyOptions(opts...)
2005	return out, req.Send()
2006}
2007
2008const opListAccountSettings = "ListAccountSettings"
2009
2010// ListAccountSettingsRequest generates a "aws/request.Request" representing the
2011// client's request for the ListAccountSettings operation. The "output" return
2012// value will be populated with the request's response once the request completes
2013// successfully.
2014//
2015// Use "Send" method on the returned Request to send the API call to the service.
2016// the "output" return value is not valid until after Send returns without error.
2017//
2018// See ListAccountSettings for more information on using the ListAccountSettings
2019// API call, and error handling.
2020//
2021// This method is useful when you want to inject custom logic or configuration
2022// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2023//
2024//
2025//    // Example sending a request using the ListAccountSettingsRequest method.
2026//    req, resp := client.ListAccountSettingsRequest(params)
2027//
2028//    err := req.Send()
2029//    if err == nil { // resp is now filled
2030//        fmt.Println(resp)
2031//    }
2032//
2033// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAccountSettings
2034func (c *ECS) ListAccountSettingsRequest(input *ListAccountSettingsInput) (req *request.Request, output *ListAccountSettingsOutput) {
2035	op := &request.Operation{
2036		Name:       opListAccountSettings,
2037		HTTPMethod: "POST",
2038		HTTPPath:   "/",
2039		Paginator: &request.Paginator{
2040			InputTokens:     []string{"nextToken"},
2041			OutputTokens:    []string{"nextToken"},
2042			LimitToken:      "maxResults",
2043			TruncationToken: "",
2044		},
2045	}
2046
2047	if input == nil {
2048		input = &ListAccountSettingsInput{}
2049	}
2050
2051	output = &ListAccountSettingsOutput{}
2052	req = c.newRequest(op, input, output)
2053	return
2054}
2055
2056// ListAccountSettings API operation for Amazon EC2 Container Service.
2057//
2058// Lists the account settings for a specified principal.
2059//
2060// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2061// with awserr.Error's Code and Message methods to get detailed information about
2062// the error.
2063//
2064// See the AWS API reference guide for Amazon EC2 Container Service's
2065// API operation ListAccountSettings for usage and error information.
2066//
2067// Returned Error Types:
2068//   * ServerException
2069//   These errors are usually caused by a server issue.
2070//
2071//   * ClientException
2072//   These errors are usually caused by a client action, such as using an action
2073//   or resource on behalf of a user that doesn't have permissions to use the
2074//   action or resource, or specifying an identifier that is not valid.
2075//
2076//   * InvalidParameterException
2077//   The specified parameter is invalid. Review the available parameters for the
2078//   API request.
2079//
2080// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAccountSettings
2081func (c *ECS) ListAccountSettings(input *ListAccountSettingsInput) (*ListAccountSettingsOutput, error) {
2082	req, out := c.ListAccountSettingsRequest(input)
2083	return out, req.Send()
2084}
2085
2086// ListAccountSettingsWithContext is the same as ListAccountSettings with the addition of
2087// the ability to pass a context and additional request options.
2088//
2089// See ListAccountSettings for details on how to use this API operation.
2090//
2091// The context must be non-nil and will be used for request cancellation. If
2092// the context is nil a panic will occur. In the future the SDK may create
2093// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2094// for more information on using Contexts.
2095func (c *ECS) ListAccountSettingsWithContext(ctx aws.Context, input *ListAccountSettingsInput, opts ...request.Option) (*ListAccountSettingsOutput, error) {
2096	req, out := c.ListAccountSettingsRequest(input)
2097	req.SetContext(ctx)
2098	req.ApplyOptions(opts...)
2099	return out, req.Send()
2100}
2101
2102// ListAccountSettingsPages iterates over the pages of a ListAccountSettings operation,
2103// calling the "fn" function with the response data for each page. To stop
2104// iterating, return false from the fn function.
2105//
2106// See ListAccountSettings method for more information on how to use this operation.
2107//
2108// Note: This operation can generate multiple requests to a service.
2109//
2110//    // Example iterating over at most 3 pages of a ListAccountSettings operation.
2111//    pageNum := 0
2112//    err := client.ListAccountSettingsPages(params,
2113//        func(page *ecs.ListAccountSettingsOutput, lastPage bool) bool {
2114//            pageNum++
2115//            fmt.Println(page)
2116//            return pageNum <= 3
2117//        })
2118//
2119func (c *ECS) ListAccountSettingsPages(input *ListAccountSettingsInput, fn func(*ListAccountSettingsOutput, bool) bool) error {
2120	return c.ListAccountSettingsPagesWithContext(aws.BackgroundContext(), input, fn)
2121}
2122
2123// ListAccountSettingsPagesWithContext same as ListAccountSettingsPages except
2124// it takes a Context and allows setting request options on the pages.
2125//
2126// The context must be non-nil and will be used for request cancellation. If
2127// the context is nil a panic will occur. In the future the SDK may create
2128// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2129// for more information on using Contexts.
2130func (c *ECS) ListAccountSettingsPagesWithContext(ctx aws.Context, input *ListAccountSettingsInput, fn func(*ListAccountSettingsOutput, bool) bool, opts ...request.Option) error {
2131	p := request.Pagination{
2132		NewRequest: func() (*request.Request, error) {
2133			var inCpy *ListAccountSettingsInput
2134			if input != nil {
2135				tmp := *input
2136				inCpy = &tmp
2137			}
2138			req, _ := c.ListAccountSettingsRequest(inCpy)
2139			req.SetContext(ctx)
2140			req.ApplyOptions(opts...)
2141			return req, nil
2142		},
2143	}
2144
2145	for p.Next() {
2146		if !fn(p.Page().(*ListAccountSettingsOutput), !p.HasNextPage()) {
2147			break
2148		}
2149	}
2150
2151	return p.Err()
2152}
2153
2154const opListAttributes = "ListAttributes"
2155
2156// ListAttributesRequest generates a "aws/request.Request" representing the
2157// client's request for the ListAttributes operation. The "output" return
2158// value will be populated with the request's response once the request completes
2159// successfully.
2160//
2161// Use "Send" method on the returned Request to send the API call to the service.
2162// the "output" return value is not valid until after Send returns without error.
2163//
2164// See ListAttributes for more information on using the ListAttributes
2165// API call, and error handling.
2166//
2167// This method is useful when you want to inject custom logic or configuration
2168// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2169//
2170//
2171//    // Example sending a request using the ListAttributesRequest method.
2172//    req, resp := client.ListAttributesRequest(params)
2173//
2174//    err := req.Send()
2175//    if err == nil { // resp is now filled
2176//        fmt.Println(resp)
2177//    }
2178//
2179// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributes
2180func (c *ECS) ListAttributesRequest(input *ListAttributesInput) (req *request.Request, output *ListAttributesOutput) {
2181	op := &request.Operation{
2182		Name:       opListAttributes,
2183		HTTPMethod: "POST",
2184		HTTPPath:   "/",
2185		Paginator: &request.Paginator{
2186			InputTokens:     []string{"nextToken"},
2187			OutputTokens:    []string{"nextToken"},
2188			LimitToken:      "maxResults",
2189			TruncationToken: "",
2190		},
2191	}
2192
2193	if input == nil {
2194		input = &ListAttributesInput{}
2195	}
2196
2197	output = &ListAttributesOutput{}
2198	req = c.newRequest(op, input, output)
2199	return
2200}
2201
2202// ListAttributes API operation for Amazon EC2 Container Service.
2203//
2204// Lists the attributes for Amazon ECS resources within a specified target type
2205// and cluster. When you specify a target type and cluster, ListAttributes returns
2206// a list of attribute objects, one for each attribute on each resource. You
2207// can filter the list of results to a single attribute name to only return
2208// results that have that name. You can also filter the results by attribute
2209// name and value, for example, to see which container instances in a cluster
2210// are running a Linux AMI (ecs.os-type=linux).
2211//
2212// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2213// with awserr.Error's Code and Message methods to get detailed information about
2214// the error.
2215//
2216// See the AWS API reference guide for Amazon EC2 Container Service's
2217// API operation ListAttributes for usage and error information.
2218//
2219// Returned Error Types:
2220//   * ClusterNotFoundException
2221//   The specified cluster could not be found. You can view your available clusters
2222//   with ListClusters. Amazon ECS clusters are Region-specific.
2223//
2224//   * InvalidParameterException
2225//   The specified parameter is invalid. Review the available parameters for the
2226//   API request.
2227//
2228// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributes
2229func (c *ECS) ListAttributes(input *ListAttributesInput) (*ListAttributesOutput, error) {
2230	req, out := c.ListAttributesRequest(input)
2231	return out, req.Send()
2232}
2233
2234// ListAttributesWithContext is the same as ListAttributes with the addition of
2235// the ability to pass a context and additional request options.
2236//
2237// See ListAttributes for details on how to use this API operation.
2238//
2239// The context must be non-nil and will be used for request cancellation. If
2240// the context is nil a panic will occur. In the future the SDK may create
2241// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2242// for more information on using Contexts.
2243func (c *ECS) ListAttributesWithContext(ctx aws.Context, input *ListAttributesInput, opts ...request.Option) (*ListAttributesOutput, error) {
2244	req, out := c.ListAttributesRequest(input)
2245	req.SetContext(ctx)
2246	req.ApplyOptions(opts...)
2247	return out, req.Send()
2248}
2249
2250// ListAttributesPages iterates over the pages of a ListAttributes operation,
2251// calling the "fn" function with the response data for each page. To stop
2252// iterating, return false from the fn function.
2253//
2254// See ListAttributes method for more information on how to use this operation.
2255//
2256// Note: This operation can generate multiple requests to a service.
2257//
2258//    // Example iterating over at most 3 pages of a ListAttributes operation.
2259//    pageNum := 0
2260//    err := client.ListAttributesPages(params,
2261//        func(page *ecs.ListAttributesOutput, lastPage bool) bool {
2262//            pageNum++
2263//            fmt.Println(page)
2264//            return pageNum <= 3
2265//        })
2266//
2267func (c *ECS) ListAttributesPages(input *ListAttributesInput, fn func(*ListAttributesOutput, bool) bool) error {
2268	return c.ListAttributesPagesWithContext(aws.BackgroundContext(), input, fn)
2269}
2270
2271// ListAttributesPagesWithContext same as ListAttributesPages except
2272// it takes a Context and allows setting request options on the pages.
2273//
2274// The context must be non-nil and will be used for request cancellation. If
2275// the context is nil a panic will occur. In the future the SDK may create
2276// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2277// for more information on using Contexts.
2278func (c *ECS) ListAttributesPagesWithContext(ctx aws.Context, input *ListAttributesInput, fn func(*ListAttributesOutput, bool) bool, opts ...request.Option) error {
2279	p := request.Pagination{
2280		NewRequest: func() (*request.Request, error) {
2281			var inCpy *ListAttributesInput
2282			if input != nil {
2283				tmp := *input
2284				inCpy = &tmp
2285			}
2286			req, _ := c.ListAttributesRequest(inCpy)
2287			req.SetContext(ctx)
2288			req.ApplyOptions(opts...)
2289			return req, nil
2290		},
2291	}
2292
2293	for p.Next() {
2294		if !fn(p.Page().(*ListAttributesOutput), !p.HasNextPage()) {
2295			break
2296		}
2297	}
2298
2299	return p.Err()
2300}
2301
2302const opListClusters = "ListClusters"
2303
2304// ListClustersRequest generates a "aws/request.Request" representing the
2305// client's request for the ListClusters operation. The "output" return
2306// value will be populated with the request's response once the request completes
2307// successfully.
2308//
2309// Use "Send" method on the returned Request to send the API call to the service.
2310// the "output" return value is not valid until after Send returns without error.
2311//
2312// See ListClusters for more information on using the ListClusters
2313// API call, and error handling.
2314//
2315// This method is useful when you want to inject custom logic or configuration
2316// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2317//
2318//
2319//    // Example sending a request using the ListClustersRequest method.
2320//    req, resp := client.ListClustersRequest(params)
2321//
2322//    err := req.Send()
2323//    if err == nil { // resp is now filled
2324//        fmt.Println(resp)
2325//    }
2326//
2327// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClusters
2328func (c *ECS) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
2329	op := &request.Operation{
2330		Name:       opListClusters,
2331		HTTPMethod: "POST",
2332		HTTPPath:   "/",
2333		Paginator: &request.Paginator{
2334			InputTokens:     []string{"nextToken"},
2335			OutputTokens:    []string{"nextToken"},
2336			LimitToken:      "maxResults",
2337			TruncationToken: "",
2338		},
2339	}
2340
2341	if input == nil {
2342		input = &ListClustersInput{}
2343	}
2344
2345	output = &ListClustersOutput{}
2346	req = c.newRequest(op, input, output)
2347	return
2348}
2349
2350// ListClusters API operation for Amazon EC2 Container Service.
2351//
2352// Returns a list of existing clusters.
2353//
2354// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2355// with awserr.Error's Code and Message methods to get detailed information about
2356// the error.
2357//
2358// See the AWS API reference guide for Amazon EC2 Container Service's
2359// API operation ListClusters for usage and error information.
2360//
2361// Returned Error Types:
2362//   * ServerException
2363//   These errors are usually caused by a server issue.
2364//
2365//   * ClientException
2366//   These errors are usually caused by a client action, such as using an action
2367//   or resource on behalf of a user that doesn't have permissions to use the
2368//   action or resource, or specifying an identifier that is not valid.
2369//
2370//   * InvalidParameterException
2371//   The specified parameter is invalid. Review the available parameters for the
2372//   API request.
2373//
2374// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClusters
2375func (c *ECS) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
2376	req, out := c.ListClustersRequest(input)
2377	return out, req.Send()
2378}
2379
2380// ListClustersWithContext is the same as ListClusters with the addition of
2381// the ability to pass a context and additional request options.
2382//
2383// See ListClusters for details on how to use this API operation.
2384//
2385// The context must be non-nil and will be used for request cancellation. If
2386// the context is nil a panic will occur. In the future the SDK may create
2387// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2388// for more information on using Contexts.
2389func (c *ECS) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
2390	req, out := c.ListClustersRequest(input)
2391	req.SetContext(ctx)
2392	req.ApplyOptions(opts...)
2393	return out, req.Send()
2394}
2395
2396// ListClustersPages iterates over the pages of a ListClusters operation,
2397// calling the "fn" function with the response data for each page. To stop
2398// iterating, return false from the fn function.
2399//
2400// See ListClusters method for more information on how to use this operation.
2401//
2402// Note: This operation can generate multiple requests to a service.
2403//
2404//    // Example iterating over at most 3 pages of a ListClusters operation.
2405//    pageNum := 0
2406//    err := client.ListClustersPages(params,
2407//        func(page *ecs.ListClustersOutput, lastPage bool) bool {
2408//            pageNum++
2409//            fmt.Println(page)
2410//            return pageNum <= 3
2411//        })
2412//
2413func (c *ECS) ListClustersPages(input *ListClustersInput, fn func(*ListClustersOutput, bool) bool) error {
2414	return c.ListClustersPagesWithContext(aws.BackgroundContext(), input, fn)
2415}
2416
2417// ListClustersPagesWithContext same as ListClustersPages except
2418// it takes a Context and allows setting request options on the pages.
2419//
2420// The context must be non-nil and will be used for request cancellation. If
2421// the context is nil a panic will occur. In the future the SDK may create
2422// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2423// for more information on using Contexts.
2424func (c *ECS) ListClustersPagesWithContext(ctx aws.Context, input *ListClustersInput, fn func(*ListClustersOutput, bool) bool, opts ...request.Option) error {
2425	p := request.Pagination{
2426		NewRequest: func() (*request.Request, error) {
2427			var inCpy *ListClustersInput
2428			if input != nil {
2429				tmp := *input
2430				inCpy = &tmp
2431			}
2432			req, _ := c.ListClustersRequest(inCpy)
2433			req.SetContext(ctx)
2434			req.ApplyOptions(opts...)
2435			return req, nil
2436		},
2437	}
2438
2439	for p.Next() {
2440		if !fn(p.Page().(*ListClustersOutput), !p.HasNextPage()) {
2441			break
2442		}
2443	}
2444
2445	return p.Err()
2446}
2447
2448const opListContainerInstances = "ListContainerInstances"
2449
2450// ListContainerInstancesRequest generates a "aws/request.Request" representing the
2451// client's request for the ListContainerInstances operation. The "output" return
2452// value will be populated with the request's response once the request completes
2453// successfully.
2454//
2455// Use "Send" method on the returned Request to send the API call to the service.
2456// the "output" return value is not valid until after Send returns without error.
2457//
2458// See ListContainerInstances for more information on using the ListContainerInstances
2459// API call, and error handling.
2460//
2461// This method is useful when you want to inject custom logic or configuration
2462// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2463//
2464//
2465//    // Example sending a request using the ListContainerInstancesRequest method.
2466//    req, resp := client.ListContainerInstancesRequest(params)
2467//
2468//    err := req.Send()
2469//    if err == nil { // resp is now filled
2470//        fmt.Println(resp)
2471//    }
2472//
2473// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstances
2474func (c *ECS) ListContainerInstancesRequest(input *ListContainerInstancesInput) (req *request.Request, output *ListContainerInstancesOutput) {
2475	op := &request.Operation{
2476		Name:       opListContainerInstances,
2477		HTTPMethod: "POST",
2478		HTTPPath:   "/",
2479		Paginator: &request.Paginator{
2480			InputTokens:     []string{"nextToken"},
2481			OutputTokens:    []string{"nextToken"},
2482			LimitToken:      "maxResults",
2483			TruncationToken: "",
2484		},
2485	}
2486
2487	if input == nil {
2488		input = &ListContainerInstancesInput{}
2489	}
2490
2491	output = &ListContainerInstancesOutput{}
2492	req = c.newRequest(op, input, output)
2493	return
2494}
2495
2496// ListContainerInstances API operation for Amazon EC2 Container Service.
2497//
2498// Returns a list of container instances in a specified cluster. You can filter
2499// the results of a ListContainerInstances operation with cluster query language
2500// statements inside the filter parameter. For more information, see Cluster
2501// Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
2502// in the Amazon Elastic Container Service Developer Guide.
2503//
2504// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2505// with awserr.Error's Code and Message methods to get detailed information about
2506// the error.
2507//
2508// See the AWS API reference guide for Amazon EC2 Container Service's
2509// API operation ListContainerInstances for usage and error information.
2510//
2511// Returned Error Types:
2512//   * ServerException
2513//   These errors are usually caused by a server issue.
2514//
2515//   * ClientException
2516//   These errors are usually caused by a client action, such as using an action
2517//   or resource on behalf of a user that doesn't have permissions to use the
2518//   action or resource, or specifying an identifier that is not valid.
2519//
2520//   * InvalidParameterException
2521//   The specified parameter is invalid. Review the available parameters for the
2522//   API request.
2523//
2524//   * ClusterNotFoundException
2525//   The specified cluster could not be found. You can view your available clusters
2526//   with ListClusters. Amazon ECS clusters are Region-specific.
2527//
2528// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstances
2529func (c *ECS) ListContainerInstances(input *ListContainerInstancesInput) (*ListContainerInstancesOutput, error) {
2530	req, out := c.ListContainerInstancesRequest(input)
2531	return out, req.Send()
2532}
2533
2534// ListContainerInstancesWithContext is the same as ListContainerInstances with the addition of
2535// the ability to pass a context and additional request options.
2536//
2537// See ListContainerInstances for details on how to use this API operation.
2538//
2539// The context must be non-nil and will be used for request cancellation. If
2540// the context is nil a panic will occur. In the future the SDK may create
2541// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2542// for more information on using Contexts.
2543func (c *ECS) ListContainerInstancesWithContext(ctx aws.Context, input *ListContainerInstancesInput, opts ...request.Option) (*ListContainerInstancesOutput, error) {
2544	req, out := c.ListContainerInstancesRequest(input)
2545	req.SetContext(ctx)
2546	req.ApplyOptions(opts...)
2547	return out, req.Send()
2548}
2549
2550// ListContainerInstancesPages iterates over the pages of a ListContainerInstances operation,
2551// calling the "fn" function with the response data for each page. To stop
2552// iterating, return false from the fn function.
2553//
2554// See ListContainerInstances method for more information on how to use this operation.
2555//
2556// Note: This operation can generate multiple requests to a service.
2557//
2558//    // Example iterating over at most 3 pages of a ListContainerInstances operation.
2559//    pageNum := 0
2560//    err := client.ListContainerInstancesPages(params,
2561//        func(page *ecs.ListContainerInstancesOutput, lastPage bool) bool {
2562//            pageNum++
2563//            fmt.Println(page)
2564//            return pageNum <= 3
2565//        })
2566//
2567func (c *ECS) ListContainerInstancesPages(input *ListContainerInstancesInput, fn func(*ListContainerInstancesOutput, bool) bool) error {
2568	return c.ListContainerInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
2569}
2570
2571// ListContainerInstancesPagesWithContext same as ListContainerInstancesPages except
2572// it takes a Context and allows setting request options on the pages.
2573//
2574// The context must be non-nil and will be used for request cancellation. If
2575// the context is nil a panic will occur. In the future the SDK may create
2576// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2577// for more information on using Contexts.
2578func (c *ECS) ListContainerInstancesPagesWithContext(ctx aws.Context, input *ListContainerInstancesInput, fn func(*ListContainerInstancesOutput, bool) bool, opts ...request.Option) error {
2579	p := request.Pagination{
2580		NewRequest: func() (*request.Request, error) {
2581			var inCpy *ListContainerInstancesInput
2582			if input != nil {
2583				tmp := *input
2584				inCpy = &tmp
2585			}
2586			req, _ := c.ListContainerInstancesRequest(inCpy)
2587			req.SetContext(ctx)
2588			req.ApplyOptions(opts...)
2589			return req, nil
2590		},
2591	}
2592
2593	for p.Next() {
2594		if !fn(p.Page().(*ListContainerInstancesOutput), !p.HasNextPage()) {
2595			break
2596		}
2597	}
2598
2599	return p.Err()
2600}
2601
2602const opListServices = "ListServices"
2603
2604// ListServicesRequest generates a "aws/request.Request" representing the
2605// client's request for the ListServices operation. The "output" return
2606// value will be populated with the request's response once the request completes
2607// successfully.
2608//
2609// Use "Send" method on the returned Request to send the API call to the service.
2610// the "output" return value is not valid until after Send returns without error.
2611//
2612// See ListServices for more information on using the ListServices
2613// API call, and error handling.
2614//
2615// This method is useful when you want to inject custom logic or configuration
2616// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2617//
2618//
2619//    // Example sending a request using the ListServicesRequest method.
2620//    req, resp := client.ListServicesRequest(params)
2621//
2622//    err := req.Send()
2623//    if err == nil { // resp is now filled
2624//        fmt.Println(resp)
2625//    }
2626//
2627// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServices
2628func (c *ECS) ListServicesRequest(input *ListServicesInput) (req *request.Request, output *ListServicesOutput) {
2629	op := &request.Operation{
2630		Name:       opListServices,
2631		HTTPMethod: "POST",
2632		HTTPPath:   "/",
2633		Paginator: &request.Paginator{
2634			InputTokens:     []string{"nextToken"},
2635			OutputTokens:    []string{"nextToken"},
2636			LimitToken:      "maxResults",
2637			TruncationToken: "",
2638		},
2639	}
2640
2641	if input == nil {
2642		input = &ListServicesInput{}
2643	}
2644
2645	output = &ListServicesOutput{}
2646	req = c.newRequest(op, input, output)
2647	return
2648}
2649
2650// ListServices API operation for Amazon EC2 Container Service.
2651//
2652// Lists the services that are running in a specified cluster.
2653//
2654// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2655// with awserr.Error's Code and Message methods to get detailed information about
2656// the error.
2657//
2658// See the AWS API reference guide for Amazon EC2 Container Service's
2659// API operation ListServices for usage and error information.
2660//
2661// Returned Error Types:
2662//   * ServerException
2663//   These errors are usually caused by a server issue.
2664//
2665//   * ClientException
2666//   These errors are usually caused by a client action, such as using an action
2667//   or resource on behalf of a user that doesn't have permissions to use the
2668//   action or resource, or specifying an identifier that is not valid.
2669//
2670//   * InvalidParameterException
2671//   The specified parameter is invalid. Review the available parameters for the
2672//   API request.
2673//
2674//   * ClusterNotFoundException
2675//   The specified cluster could not be found. You can view your available clusters
2676//   with ListClusters. Amazon ECS clusters are Region-specific.
2677//
2678// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServices
2679func (c *ECS) ListServices(input *ListServicesInput) (*ListServicesOutput, error) {
2680	req, out := c.ListServicesRequest(input)
2681	return out, req.Send()
2682}
2683
2684// ListServicesWithContext is the same as ListServices with the addition of
2685// the ability to pass a context and additional request options.
2686//
2687// See ListServices for details on how to use this API operation.
2688//
2689// The context must be non-nil and will be used for request cancellation. If
2690// the context is nil a panic will occur. In the future the SDK may create
2691// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2692// for more information on using Contexts.
2693func (c *ECS) ListServicesWithContext(ctx aws.Context, input *ListServicesInput, opts ...request.Option) (*ListServicesOutput, error) {
2694	req, out := c.ListServicesRequest(input)
2695	req.SetContext(ctx)
2696	req.ApplyOptions(opts...)
2697	return out, req.Send()
2698}
2699
2700// ListServicesPages iterates over the pages of a ListServices operation,
2701// calling the "fn" function with the response data for each page. To stop
2702// iterating, return false from the fn function.
2703//
2704// See ListServices method for more information on how to use this operation.
2705//
2706// Note: This operation can generate multiple requests to a service.
2707//
2708//    // Example iterating over at most 3 pages of a ListServices operation.
2709//    pageNum := 0
2710//    err := client.ListServicesPages(params,
2711//        func(page *ecs.ListServicesOutput, lastPage bool) bool {
2712//            pageNum++
2713//            fmt.Println(page)
2714//            return pageNum <= 3
2715//        })
2716//
2717func (c *ECS) ListServicesPages(input *ListServicesInput, fn func(*ListServicesOutput, bool) bool) error {
2718	return c.ListServicesPagesWithContext(aws.BackgroundContext(), input, fn)
2719}
2720
2721// ListServicesPagesWithContext same as ListServicesPages except
2722// it takes a Context and allows setting request options on the pages.
2723//
2724// The context must be non-nil and will be used for request cancellation. If
2725// the context is nil a panic will occur. In the future the SDK may create
2726// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2727// for more information on using Contexts.
2728func (c *ECS) ListServicesPagesWithContext(ctx aws.Context, input *ListServicesInput, fn func(*ListServicesOutput, bool) bool, opts ...request.Option) error {
2729	p := request.Pagination{
2730		NewRequest: func() (*request.Request, error) {
2731			var inCpy *ListServicesInput
2732			if input != nil {
2733				tmp := *input
2734				inCpy = &tmp
2735			}
2736			req, _ := c.ListServicesRequest(inCpy)
2737			req.SetContext(ctx)
2738			req.ApplyOptions(opts...)
2739			return req, nil
2740		},
2741	}
2742
2743	for p.Next() {
2744		if !fn(p.Page().(*ListServicesOutput), !p.HasNextPage()) {
2745			break
2746		}
2747	}
2748
2749	return p.Err()
2750}
2751
2752const opListTagsForResource = "ListTagsForResource"
2753
2754// ListTagsForResourceRequest generates a "aws/request.Request" representing the
2755// client's request for the ListTagsForResource operation. The "output" return
2756// value will be populated with the request's response once the request completes
2757// successfully.
2758//
2759// Use "Send" method on the returned Request to send the API call to the service.
2760// the "output" return value is not valid until after Send returns without error.
2761//
2762// See ListTagsForResource for more information on using the ListTagsForResource
2763// API call, and error handling.
2764//
2765// This method is useful when you want to inject custom logic or configuration
2766// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2767//
2768//
2769//    // Example sending a request using the ListTagsForResourceRequest method.
2770//    req, resp := client.ListTagsForResourceRequest(params)
2771//
2772//    err := req.Send()
2773//    if err == nil { // resp is now filled
2774//        fmt.Println(resp)
2775//    }
2776//
2777// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTagsForResource
2778func (c *ECS) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
2779	op := &request.Operation{
2780		Name:       opListTagsForResource,
2781		HTTPMethod: "POST",
2782		HTTPPath:   "/",
2783	}
2784
2785	if input == nil {
2786		input = &ListTagsForResourceInput{}
2787	}
2788
2789	output = &ListTagsForResourceOutput{}
2790	req = c.newRequest(op, input, output)
2791	return
2792}
2793
2794// ListTagsForResource API operation for Amazon EC2 Container Service.
2795//
2796// List the tags for an Amazon ECS resource.
2797//
2798// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2799// with awserr.Error's Code and Message methods to get detailed information about
2800// the error.
2801//
2802// See the AWS API reference guide for Amazon EC2 Container Service's
2803// API operation ListTagsForResource for usage and error information.
2804//
2805// Returned Error Types:
2806//   * ServerException
2807//   These errors are usually caused by a server issue.
2808//
2809//   * ClientException
2810//   These errors are usually caused by a client action, such as using an action
2811//   or resource on behalf of a user that doesn't have permissions to use the
2812//   action or resource, or specifying an identifier that is not valid.
2813//
2814//   * ClusterNotFoundException
2815//   The specified cluster could not be found. You can view your available clusters
2816//   with ListClusters. Amazon ECS clusters are Region-specific.
2817//
2818//   * InvalidParameterException
2819//   The specified parameter is invalid. Review the available parameters for the
2820//   API request.
2821//
2822// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTagsForResource
2823func (c *ECS) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
2824	req, out := c.ListTagsForResourceRequest(input)
2825	return out, req.Send()
2826}
2827
2828// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
2829// the ability to pass a context and additional request options.
2830//
2831// See ListTagsForResource for details on how to use this API operation.
2832//
2833// The context must be non-nil and will be used for request cancellation. If
2834// the context is nil a panic will occur. In the future the SDK may create
2835// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2836// for more information on using Contexts.
2837func (c *ECS) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
2838	req, out := c.ListTagsForResourceRequest(input)
2839	req.SetContext(ctx)
2840	req.ApplyOptions(opts...)
2841	return out, req.Send()
2842}
2843
2844const opListTaskDefinitionFamilies = "ListTaskDefinitionFamilies"
2845
2846// ListTaskDefinitionFamiliesRequest generates a "aws/request.Request" representing the
2847// client's request for the ListTaskDefinitionFamilies operation. The "output" return
2848// value will be populated with the request's response once the request completes
2849// successfully.
2850//
2851// Use "Send" method on the returned Request to send the API call to the service.
2852// the "output" return value is not valid until after Send returns without error.
2853//
2854// See ListTaskDefinitionFamilies for more information on using the ListTaskDefinitionFamilies
2855// API call, and error handling.
2856//
2857// This method is useful when you want to inject custom logic or configuration
2858// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2859//
2860//
2861//    // Example sending a request using the ListTaskDefinitionFamiliesRequest method.
2862//    req, resp := client.ListTaskDefinitionFamiliesRequest(params)
2863//
2864//    err := req.Send()
2865//    if err == nil { // resp is now filled
2866//        fmt.Println(resp)
2867//    }
2868//
2869// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamilies
2870func (c *ECS) ListTaskDefinitionFamiliesRequest(input *ListTaskDefinitionFamiliesInput) (req *request.Request, output *ListTaskDefinitionFamiliesOutput) {
2871	op := &request.Operation{
2872		Name:       opListTaskDefinitionFamilies,
2873		HTTPMethod: "POST",
2874		HTTPPath:   "/",
2875		Paginator: &request.Paginator{
2876			InputTokens:     []string{"nextToken"},
2877			OutputTokens:    []string{"nextToken"},
2878			LimitToken:      "maxResults",
2879			TruncationToken: "",
2880		},
2881	}
2882
2883	if input == nil {
2884		input = &ListTaskDefinitionFamiliesInput{}
2885	}
2886
2887	output = &ListTaskDefinitionFamiliesOutput{}
2888	req = c.newRequest(op, input, output)
2889	return
2890}
2891
2892// ListTaskDefinitionFamilies API operation for Amazon EC2 Container Service.
2893//
2894// Returns a list of task definition families that are registered to your account
2895// (which may include task definition families that no longer have any ACTIVE
2896// task definition revisions).
2897//
2898// You can filter out task definition families that do not contain any ACTIVE
2899// task definition revisions by setting the status parameter to ACTIVE. You
2900// can also filter the results with the familyPrefix parameter.
2901//
2902// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2903// with awserr.Error's Code and Message methods to get detailed information about
2904// the error.
2905//
2906// See the AWS API reference guide for Amazon EC2 Container Service's
2907// API operation ListTaskDefinitionFamilies for usage and error information.
2908//
2909// Returned Error Types:
2910//   * ServerException
2911//   These errors are usually caused by a server issue.
2912//
2913//   * ClientException
2914//   These errors are usually caused by a client action, such as using an action
2915//   or resource on behalf of a user that doesn't have permissions to use the
2916//   action or resource, or specifying an identifier that is not valid.
2917//
2918//   * InvalidParameterException
2919//   The specified parameter is invalid. Review the available parameters for the
2920//   API request.
2921//
2922// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamilies
2923func (c *ECS) ListTaskDefinitionFamilies(input *ListTaskDefinitionFamiliesInput) (*ListTaskDefinitionFamiliesOutput, error) {
2924	req, out := c.ListTaskDefinitionFamiliesRequest(input)
2925	return out, req.Send()
2926}
2927
2928// ListTaskDefinitionFamiliesWithContext is the same as ListTaskDefinitionFamilies with the addition of
2929// the ability to pass a context and additional request options.
2930//
2931// See ListTaskDefinitionFamilies for details on how to use this API operation.
2932//
2933// The context must be non-nil and will be used for request cancellation. If
2934// the context is nil a panic will occur. In the future the SDK may create
2935// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2936// for more information on using Contexts.
2937func (c *ECS) ListTaskDefinitionFamiliesWithContext(ctx aws.Context, input *ListTaskDefinitionFamiliesInput, opts ...request.Option) (*ListTaskDefinitionFamiliesOutput, error) {
2938	req, out := c.ListTaskDefinitionFamiliesRequest(input)
2939	req.SetContext(ctx)
2940	req.ApplyOptions(opts...)
2941	return out, req.Send()
2942}
2943
2944// ListTaskDefinitionFamiliesPages iterates over the pages of a ListTaskDefinitionFamilies operation,
2945// calling the "fn" function with the response data for each page. To stop
2946// iterating, return false from the fn function.
2947//
2948// See ListTaskDefinitionFamilies method for more information on how to use this operation.
2949//
2950// Note: This operation can generate multiple requests to a service.
2951//
2952//    // Example iterating over at most 3 pages of a ListTaskDefinitionFamilies operation.
2953//    pageNum := 0
2954//    err := client.ListTaskDefinitionFamiliesPages(params,
2955//        func(page *ecs.ListTaskDefinitionFamiliesOutput, lastPage bool) bool {
2956//            pageNum++
2957//            fmt.Println(page)
2958//            return pageNum <= 3
2959//        })
2960//
2961func (c *ECS) ListTaskDefinitionFamiliesPages(input *ListTaskDefinitionFamiliesInput, fn func(*ListTaskDefinitionFamiliesOutput, bool) bool) error {
2962	return c.ListTaskDefinitionFamiliesPagesWithContext(aws.BackgroundContext(), input, fn)
2963}
2964
2965// ListTaskDefinitionFamiliesPagesWithContext same as ListTaskDefinitionFamiliesPages except
2966// it takes a Context and allows setting request options on the pages.
2967//
2968// The context must be non-nil and will be used for request cancellation. If
2969// the context is nil a panic will occur. In the future the SDK may create
2970// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2971// for more information on using Contexts.
2972func (c *ECS) ListTaskDefinitionFamiliesPagesWithContext(ctx aws.Context, input *ListTaskDefinitionFamiliesInput, fn func(*ListTaskDefinitionFamiliesOutput, bool) bool, opts ...request.Option) error {
2973	p := request.Pagination{
2974		NewRequest: func() (*request.Request, error) {
2975			var inCpy *ListTaskDefinitionFamiliesInput
2976			if input != nil {
2977				tmp := *input
2978				inCpy = &tmp
2979			}
2980			req, _ := c.ListTaskDefinitionFamiliesRequest(inCpy)
2981			req.SetContext(ctx)
2982			req.ApplyOptions(opts...)
2983			return req, nil
2984		},
2985	}
2986
2987	for p.Next() {
2988		if !fn(p.Page().(*ListTaskDefinitionFamiliesOutput), !p.HasNextPage()) {
2989			break
2990		}
2991	}
2992
2993	return p.Err()
2994}
2995
2996const opListTaskDefinitions = "ListTaskDefinitions"
2997
2998// ListTaskDefinitionsRequest generates a "aws/request.Request" representing the
2999// client's request for the ListTaskDefinitions operation. The "output" return
3000// value will be populated with the request's response once the request completes
3001// successfully.
3002//
3003// Use "Send" method on the returned Request to send the API call to the service.
3004// the "output" return value is not valid until after Send returns without error.
3005//
3006// See ListTaskDefinitions for more information on using the ListTaskDefinitions
3007// API call, and error handling.
3008//
3009// This method is useful when you want to inject custom logic or configuration
3010// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3011//
3012//
3013//    // Example sending a request using the ListTaskDefinitionsRequest method.
3014//    req, resp := client.ListTaskDefinitionsRequest(params)
3015//
3016//    err := req.Send()
3017//    if err == nil { // resp is now filled
3018//        fmt.Println(resp)
3019//    }
3020//
3021// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitions
3022func (c *ECS) ListTaskDefinitionsRequest(input *ListTaskDefinitionsInput) (req *request.Request, output *ListTaskDefinitionsOutput) {
3023	op := &request.Operation{
3024		Name:       opListTaskDefinitions,
3025		HTTPMethod: "POST",
3026		HTTPPath:   "/",
3027		Paginator: &request.Paginator{
3028			InputTokens:     []string{"nextToken"},
3029			OutputTokens:    []string{"nextToken"},
3030			LimitToken:      "maxResults",
3031			TruncationToken: "",
3032		},
3033	}
3034
3035	if input == nil {
3036		input = &ListTaskDefinitionsInput{}
3037	}
3038
3039	output = &ListTaskDefinitionsOutput{}
3040	req = c.newRequest(op, input, output)
3041	return
3042}
3043
3044// ListTaskDefinitions API operation for Amazon EC2 Container Service.
3045//
3046// Returns a list of task definitions that are registered to your account. You
3047// can filter the results by family name with the familyPrefix parameter or
3048// by status with the status parameter.
3049//
3050// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3051// with awserr.Error's Code and Message methods to get detailed information about
3052// the error.
3053//
3054// See the AWS API reference guide for Amazon EC2 Container Service's
3055// API operation ListTaskDefinitions for usage and error information.
3056//
3057// Returned Error Types:
3058//   * ServerException
3059//   These errors are usually caused by a server issue.
3060//
3061//   * ClientException
3062//   These errors are usually caused by a client action, such as using an action
3063//   or resource on behalf of a user that doesn't have permissions to use the
3064//   action or resource, or specifying an identifier that is not valid.
3065//
3066//   * InvalidParameterException
3067//   The specified parameter is invalid. Review the available parameters for the
3068//   API request.
3069//
3070// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitions
3071func (c *ECS) ListTaskDefinitions(input *ListTaskDefinitionsInput) (*ListTaskDefinitionsOutput, error) {
3072	req, out := c.ListTaskDefinitionsRequest(input)
3073	return out, req.Send()
3074}
3075
3076// ListTaskDefinitionsWithContext is the same as ListTaskDefinitions with the addition of
3077// the ability to pass a context and additional request options.
3078//
3079// See ListTaskDefinitions for details on how to use this API operation.
3080//
3081// The context must be non-nil and will be used for request cancellation. If
3082// the context is nil a panic will occur. In the future the SDK may create
3083// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3084// for more information on using Contexts.
3085func (c *ECS) ListTaskDefinitionsWithContext(ctx aws.Context, input *ListTaskDefinitionsInput, opts ...request.Option) (*ListTaskDefinitionsOutput, error) {
3086	req, out := c.ListTaskDefinitionsRequest(input)
3087	req.SetContext(ctx)
3088	req.ApplyOptions(opts...)
3089	return out, req.Send()
3090}
3091
3092// ListTaskDefinitionsPages iterates over the pages of a ListTaskDefinitions operation,
3093// calling the "fn" function with the response data for each page. To stop
3094// iterating, return false from the fn function.
3095//
3096// See ListTaskDefinitions method for more information on how to use this operation.
3097//
3098// Note: This operation can generate multiple requests to a service.
3099//
3100//    // Example iterating over at most 3 pages of a ListTaskDefinitions operation.
3101//    pageNum := 0
3102//    err := client.ListTaskDefinitionsPages(params,
3103//        func(page *ecs.ListTaskDefinitionsOutput, lastPage bool) bool {
3104//            pageNum++
3105//            fmt.Println(page)
3106//            return pageNum <= 3
3107//        })
3108//
3109func (c *ECS) ListTaskDefinitionsPages(input *ListTaskDefinitionsInput, fn func(*ListTaskDefinitionsOutput, bool) bool) error {
3110	return c.ListTaskDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn)
3111}
3112
3113// ListTaskDefinitionsPagesWithContext same as ListTaskDefinitionsPages except
3114// it takes a Context and allows setting request options on the pages.
3115//
3116// The context must be non-nil and will be used for request cancellation. If
3117// the context is nil a panic will occur. In the future the SDK may create
3118// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3119// for more information on using Contexts.
3120func (c *ECS) ListTaskDefinitionsPagesWithContext(ctx aws.Context, input *ListTaskDefinitionsInput, fn func(*ListTaskDefinitionsOutput, bool) bool, opts ...request.Option) error {
3121	p := request.Pagination{
3122		NewRequest: func() (*request.Request, error) {
3123			var inCpy *ListTaskDefinitionsInput
3124			if input != nil {
3125				tmp := *input
3126				inCpy = &tmp
3127			}
3128			req, _ := c.ListTaskDefinitionsRequest(inCpy)
3129			req.SetContext(ctx)
3130			req.ApplyOptions(opts...)
3131			return req, nil
3132		},
3133	}
3134
3135	for p.Next() {
3136		if !fn(p.Page().(*ListTaskDefinitionsOutput), !p.HasNextPage()) {
3137			break
3138		}
3139	}
3140
3141	return p.Err()
3142}
3143
3144const opListTasks = "ListTasks"
3145
3146// ListTasksRequest generates a "aws/request.Request" representing the
3147// client's request for the ListTasks operation. The "output" return
3148// value will be populated with the request's response once the request completes
3149// successfully.
3150//
3151// Use "Send" method on the returned Request to send the API call to the service.
3152// the "output" return value is not valid until after Send returns without error.
3153//
3154// See ListTasks for more information on using the ListTasks
3155// API call, and error handling.
3156//
3157// This method is useful when you want to inject custom logic or configuration
3158// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3159//
3160//
3161//    // Example sending a request using the ListTasksRequest method.
3162//    req, resp := client.ListTasksRequest(params)
3163//
3164//    err := req.Send()
3165//    if err == nil { // resp is now filled
3166//        fmt.Println(resp)
3167//    }
3168//
3169// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasks
3170func (c *ECS) ListTasksRequest(input *ListTasksInput) (req *request.Request, output *ListTasksOutput) {
3171	op := &request.Operation{
3172		Name:       opListTasks,
3173		HTTPMethod: "POST",
3174		HTTPPath:   "/",
3175		Paginator: &request.Paginator{
3176			InputTokens:     []string{"nextToken"},
3177			OutputTokens:    []string{"nextToken"},
3178			LimitToken:      "maxResults",
3179			TruncationToken: "",
3180		},
3181	}
3182
3183	if input == nil {
3184		input = &ListTasksInput{}
3185	}
3186
3187	output = &ListTasksOutput{}
3188	req = c.newRequest(op, input, output)
3189	return
3190}
3191
3192// ListTasks API operation for Amazon EC2 Container Service.
3193//
3194// Returns a list of tasks for a specified cluster. You can filter the results
3195// by family name, by a particular container instance, or by the desired status
3196// of the task with the family, containerInstance, and desiredStatus parameters.
3197//
3198// Recently stopped tasks might appear in the returned results. Currently, stopped
3199// tasks appear in the returned results for at least one hour.
3200//
3201// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3202// with awserr.Error's Code and Message methods to get detailed information about
3203// the error.
3204//
3205// See the AWS API reference guide for Amazon EC2 Container Service's
3206// API operation ListTasks for usage and error information.
3207//
3208// Returned Error Types:
3209//   * ServerException
3210//   These errors are usually caused by a server issue.
3211//
3212//   * ClientException
3213//   These errors are usually caused by a client action, such as using an action
3214//   or resource on behalf of a user that doesn't have permissions to use the
3215//   action or resource, or specifying an identifier that is not valid.
3216//
3217//   * InvalidParameterException
3218//   The specified parameter is invalid. Review the available parameters for the
3219//   API request.
3220//
3221//   * ClusterNotFoundException
3222//   The specified cluster could not be found. You can view your available clusters
3223//   with ListClusters. Amazon ECS clusters are Region-specific.
3224//
3225//   * ServiceNotFoundException
3226//   The specified service could not be found. You can view your available services
3227//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
3228//
3229// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasks
3230func (c *ECS) ListTasks(input *ListTasksInput) (*ListTasksOutput, error) {
3231	req, out := c.ListTasksRequest(input)
3232	return out, req.Send()
3233}
3234
3235// ListTasksWithContext is the same as ListTasks with the addition of
3236// the ability to pass a context and additional request options.
3237//
3238// See ListTasks for details on how to use this API operation.
3239//
3240// The context must be non-nil and will be used for request cancellation. If
3241// the context is nil a panic will occur. In the future the SDK may create
3242// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3243// for more information on using Contexts.
3244func (c *ECS) ListTasksWithContext(ctx aws.Context, input *ListTasksInput, opts ...request.Option) (*ListTasksOutput, error) {
3245	req, out := c.ListTasksRequest(input)
3246	req.SetContext(ctx)
3247	req.ApplyOptions(opts...)
3248	return out, req.Send()
3249}
3250
3251// ListTasksPages iterates over the pages of a ListTasks operation,
3252// calling the "fn" function with the response data for each page. To stop
3253// iterating, return false from the fn function.
3254//
3255// See ListTasks method for more information on how to use this operation.
3256//
3257// Note: This operation can generate multiple requests to a service.
3258//
3259//    // Example iterating over at most 3 pages of a ListTasks operation.
3260//    pageNum := 0
3261//    err := client.ListTasksPages(params,
3262//        func(page *ecs.ListTasksOutput, lastPage bool) bool {
3263//            pageNum++
3264//            fmt.Println(page)
3265//            return pageNum <= 3
3266//        })
3267//
3268func (c *ECS) ListTasksPages(input *ListTasksInput, fn func(*ListTasksOutput, bool) bool) error {
3269	return c.ListTasksPagesWithContext(aws.BackgroundContext(), input, fn)
3270}
3271
3272// ListTasksPagesWithContext same as ListTasksPages except
3273// it takes a Context and allows setting request options on the pages.
3274//
3275// The context must be non-nil and will be used for request cancellation. If
3276// the context is nil a panic will occur. In the future the SDK may create
3277// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3278// for more information on using Contexts.
3279func (c *ECS) ListTasksPagesWithContext(ctx aws.Context, input *ListTasksInput, fn func(*ListTasksOutput, bool) bool, opts ...request.Option) error {
3280	p := request.Pagination{
3281		NewRequest: func() (*request.Request, error) {
3282			var inCpy *ListTasksInput
3283			if input != nil {
3284				tmp := *input
3285				inCpy = &tmp
3286			}
3287			req, _ := c.ListTasksRequest(inCpy)
3288			req.SetContext(ctx)
3289			req.ApplyOptions(opts...)
3290			return req, nil
3291		},
3292	}
3293
3294	for p.Next() {
3295		if !fn(p.Page().(*ListTasksOutput), !p.HasNextPage()) {
3296			break
3297		}
3298	}
3299
3300	return p.Err()
3301}
3302
3303const opPutAccountSetting = "PutAccountSetting"
3304
3305// PutAccountSettingRequest generates a "aws/request.Request" representing the
3306// client's request for the PutAccountSetting operation. The "output" return
3307// value will be populated with the request's response once the request completes
3308// successfully.
3309//
3310// Use "Send" method on the returned Request to send the API call to the service.
3311// the "output" return value is not valid until after Send returns without error.
3312//
3313// See PutAccountSetting for more information on using the PutAccountSetting
3314// API call, and error handling.
3315//
3316// This method is useful when you want to inject custom logic or configuration
3317// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3318//
3319//
3320//    // Example sending a request using the PutAccountSettingRequest method.
3321//    req, resp := client.PutAccountSettingRequest(params)
3322//
3323//    err := req.Send()
3324//    if err == nil { // resp is now filled
3325//        fmt.Println(resp)
3326//    }
3327//
3328// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSetting
3329func (c *ECS) PutAccountSettingRequest(input *PutAccountSettingInput) (req *request.Request, output *PutAccountSettingOutput) {
3330	op := &request.Operation{
3331		Name:       opPutAccountSetting,
3332		HTTPMethod: "POST",
3333		HTTPPath:   "/",
3334	}
3335
3336	if input == nil {
3337		input = &PutAccountSettingInput{}
3338	}
3339
3340	output = &PutAccountSettingOutput{}
3341	req = c.newRequest(op, input, output)
3342	return
3343}
3344
3345// PutAccountSetting API operation for Amazon EC2 Container Service.
3346//
3347// Modifies an account setting. Account settings are set on a per-Region basis.
3348//
3349// If you change the account setting for the root user, the default settings
3350// for all of the IAM users and roles for which no individual account setting
3351// has been specified are reset. For more information, see Account Settings
3352// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html)
3353// in the Amazon Elastic Container Service Developer Guide.
3354//
3355// When serviceLongArnFormat, taskLongArnFormat, or containerInstanceLongArnFormat
3356// are specified, the Amazon Resource Name (ARN) and resource ID format of the
3357// resource type for a specified IAM user, IAM role, or the root user for an
3358// account is affected. The opt-in and opt-out account setting must be set for
3359// each Amazon ECS resource separately. The ARN and resource ID format of a
3360// resource will be defined by the opt-in status of the IAM user or role that
3361// created the resource. You must enable this setting to use Amazon ECS features
3362// such as resource tagging.
3363//
3364// When awsvpcTrunking is specified, the elastic network interface (ENI) limit
3365// for any new container instances that support the feature is changed. If awsvpcTrunking
3366// is enabled, any new container instances that support the feature are launched
3367// have the increased ENI limits available to them. For more information, see
3368// Elastic Network Interface Trunking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html)
3369// in the Amazon Elastic Container Service Developer Guide.
3370//
3371// When containerInsights is specified, the default setting indicating whether
3372// CloudWatch Container Insights is enabled for your clusters is changed. If
3373// containerInsights is enabled, any new clusters that are created will have
3374// Container Insights enabled unless you disable it during cluster creation.
3375// For more information, see CloudWatch Container Insights (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-container-insights.html)
3376// in the Amazon Elastic Container Service Developer Guide.
3377//
3378// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3379// with awserr.Error's Code and Message methods to get detailed information about
3380// the error.
3381//
3382// See the AWS API reference guide for Amazon EC2 Container Service's
3383// API operation PutAccountSetting for usage and error information.
3384//
3385// Returned Error Types:
3386//   * ServerException
3387//   These errors are usually caused by a server issue.
3388//
3389//   * ClientException
3390//   These errors are usually caused by a client action, such as using an action
3391//   or resource on behalf of a user that doesn't have permissions to use the
3392//   action or resource, or specifying an identifier that is not valid.
3393//
3394//   * InvalidParameterException
3395//   The specified parameter is invalid. Review the available parameters for the
3396//   API request.
3397//
3398// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSetting
3399func (c *ECS) PutAccountSetting(input *PutAccountSettingInput) (*PutAccountSettingOutput, error) {
3400	req, out := c.PutAccountSettingRequest(input)
3401	return out, req.Send()
3402}
3403
3404// PutAccountSettingWithContext is the same as PutAccountSetting with the addition of
3405// the ability to pass a context and additional request options.
3406//
3407// See PutAccountSetting for details on how to use this API operation.
3408//
3409// The context must be non-nil and will be used for request cancellation. If
3410// the context is nil a panic will occur. In the future the SDK may create
3411// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3412// for more information on using Contexts.
3413func (c *ECS) PutAccountSettingWithContext(ctx aws.Context, input *PutAccountSettingInput, opts ...request.Option) (*PutAccountSettingOutput, error) {
3414	req, out := c.PutAccountSettingRequest(input)
3415	req.SetContext(ctx)
3416	req.ApplyOptions(opts...)
3417	return out, req.Send()
3418}
3419
3420const opPutAccountSettingDefault = "PutAccountSettingDefault"
3421
3422// PutAccountSettingDefaultRequest generates a "aws/request.Request" representing the
3423// client's request for the PutAccountSettingDefault operation. The "output" return
3424// value will be populated with the request's response once the request completes
3425// successfully.
3426//
3427// Use "Send" method on the returned Request to send the API call to the service.
3428// the "output" return value is not valid until after Send returns without error.
3429//
3430// See PutAccountSettingDefault for more information on using the PutAccountSettingDefault
3431// API call, and error handling.
3432//
3433// This method is useful when you want to inject custom logic or configuration
3434// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3435//
3436//
3437//    // Example sending a request using the PutAccountSettingDefaultRequest method.
3438//    req, resp := client.PutAccountSettingDefaultRequest(params)
3439//
3440//    err := req.Send()
3441//    if err == nil { // resp is now filled
3442//        fmt.Println(resp)
3443//    }
3444//
3445// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSettingDefault
3446func (c *ECS) PutAccountSettingDefaultRequest(input *PutAccountSettingDefaultInput) (req *request.Request, output *PutAccountSettingDefaultOutput) {
3447	op := &request.Operation{
3448		Name:       opPutAccountSettingDefault,
3449		HTTPMethod: "POST",
3450		HTTPPath:   "/",
3451	}
3452
3453	if input == nil {
3454		input = &PutAccountSettingDefaultInput{}
3455	}
3456
3457	output = &PutAccountSettingDefaultOutput{}
3458	req = c.newRequest(op, input, output)
3459	return
3460}
3461
3462// PutAccountSettingDefault API operation for Amazon EC2 Container Service.
3463//
3464// Modifies an account setting for all IAM users on an account for whom no individual
3465// account setting has been specified. Account settings are set on a per-Region
3466// basis.
3467//
3468// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3469// with awserr.Error's Code and Message methods to get detailed information about
3470// the error.
3471//
3472// See the AWS API reference guide for Amazon EC2 Container Service's
3473// API operation PutAccountSettingDefault for usage and error information.
3474//
3475// Returned Error Types:
3476//   * ServerException
3477//   These errors are usually caused by a server issue.
3478//
3479//   * ClientException
3480//   These errors are usually caused by a client action, such as using an action
3481//   or resource on behalf of a user that doesn't have permissions to use the
3482//   action or resource, or specifying an identifier that is not valid.
3483//
3484//   * InvalidParameterException
3485//   The specified parameter is invalid. Review the available parameters for the
3486//   API request.
3487//
3488// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSettingDefault
3489func (c *ECS) PutAccountSettingDefault(input *PutAccountSettingDefaultInput) (*PutAccountSettingDefaultOutput, error) {
3490	req, out := c.PutAccountSettingDefaultRequest(input)
3491	return out, req.Send()
3492}
3493
3494// PutAccountSettingDefaultWithContext is the same as PutAccountSettingDefault with the addition of
3495// the ability to pass a context and additional request options.
3496//
3497// See PutAccountSettingDefault for details on how to use this API operation.
3498//
3499// The context must be non-nil and will be used for request cancellation. If
3500// the context is nil a panic will occur. In the future the SDK may create
3501// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3502// for more information on using Contexts.
3503func (c *ECS) PutAccountSettingDefaultWithContext(ctx aws.Context, input *PutAccountSettingDefaultInput, opts ...request.Option) (*PutAccountSettingDefaultOutput, error) {
3504	req, out := c.PutAccountSettingDefaultRequest(input)
3505	req.SetContext(ctx)
3506	req.ApplyOptions(opts...)
3507	return out, req.Send()
3508}
3509
3510const opPutAttributes = "PutAttributes"
3511
3512// PutAttributesRequest generates a "aws/request.Request" representing the
3513// client's request for the PutAttributes operation. The "output" return
3514// value will be populated with the request's response once the request completes
3515// successfully.
3516//
3517// Use "Send" method on the returned Request to send the API call to the service.
3518// the "output" return value is not valid until after Send returns without error.
3519//
3520// See PutAttributes for more information on using the PutAttributes
3521// API call, and error handling.
3522//
3523// This method is useful when you want to inject custom logic or configuration
3524// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3525//
3526//
3527//    // Example sending a request using the PutAttributesRequest method.
3528//    req, resp := client.PutAttributesRequest(params)
3529//
3530//    err := req.Send()
3531//    if err == nil { // resp is now filled
3532//        fmt.Println(resp)
3533//    }
3534//
3535// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributes
3536func (c *ECS) PutAttributesRequest(input *PutAttributesInput) (req *request.Request, output *PutAttributesOutput) {
3537	op := &request.Operation{
3538		Name:       opPutAttributes,
3539		HTTPMethod: "POST",
3540		HTTPPath:   "/",
3541	}
3542
3543	if input == nil {
3544		input = &PutAttributesInput{}
3545	}
3546
3547	output = &PutAttributesOutput{}
3548	req = c.newRequest(op, input, output)
3549	return
3550}
3551
3552// PutAttributes API operation for Amazon EC2 Container Service.
3553//
3554// Create or update an attribute on an Amazon ECS resource. If the attribute
3555// does not exist, it is created. If the attribute exists, its value is replaced
3556// with the specified value. To delete an attribute, use DeleteAttributes. For
3557// more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
3558// in the Amazon Elastic Container Service Developer Guide.
3559//
3560// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3561// with awserr.Error's Code and Message methods to get detailed information about
3562// the error.
3563//
3564// See the AWS API reference guide for Amazon EC2 Container Service's
3565// API operation PutAttributes for usage and error information.
3566//
3567// Returned Error Types:
3568//   * ClusterNotFoundException
3569//   The specified cluster could not be found. You can view your available clusters
3570//   with ListClusters. Amazon ECS clusters are Region-specific.
3571//
3572//   * TargetNotFoundException
3573//   The specified target could not be found. You can view your available container
3574//   instances with ListContainerInstances. Amazon ECS container instances are
3575//   cluster-specific and Region-specific.
3576//
3577//   * AttributeLimitExceededException
3578//   You can apply up to 10 custom attributes per resource. You can view the attributes
3579//   of a resource with ListAttributes. You can remove existing attributes on
3580//   a resource with DeleteAttributes.
3581//
3582//   * InvalidParameterException
3583//   The specified parameter is invalid. Review the available parameters for the
3584//   API request.
3585//
3586// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributes
3587func (c *ECS) PutAttributes(input *PutAttributesInput) (*PutAttributesOutput, error) {
3588	req, out := c.PutAttributesRequest(input)
3589	return out, req.Send()
3590}
3591
3592// PutAttributesWithContext is the same as PutAttributes with the addition of
3593// the ability to pass a context and additional request options.
3594//
3595// See PutAttributes for details on how to use this API operation.
3596//
3597// The context must be non-nil and will be used for request cancellation. If
3598// the context is nil a panic will occur. In the future the SDK may create
3599// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3600// for more information on using Contexts.
3601func (c *ECS) PutAttributesWithContext(ctx aws.Context, input *PutAttributesInput, opts ...request.Option) (*PutAttributesOutput, error) {
3602	req, out := c.PutAttributesRequest(input)
3603	req.SetContext(ctx)
3604	req.ApplyOptions(opts...)
3605	return out, req.Send()
3606}
3607
3608const opPutClusterCapacityProviders = "PutClusterCapacityProviders"
3609
3610// PutClusterCapacityProvidersRequest generates a "aws/request.Request" representing the
3611// client's request for the PutClusterCapacityProviders operation. The "output" return
3612// value will be populated with the request's response once the request completes
3613// successfully.
3614//
3615// Use "Send" method on the returned Request to send the API call to the service.
3616// the "output" return value is not valid until after Send returns without error.
3617//
3618// See PutClusterCapacityProviders for more information on using the PutClusterCapacityProviders
3619// API call, and error handling.
3620//
3621// This method is useful when you want to inject custom logic or configuration
3622// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3623//
3624//
3625//    // Example sending a request using the PutClusterCapacityProvidersRequest method.
3626//    req, resp := client.PutClusterCapacityProvidersRequest(params)
3627//
3628//    err := req.Send()
3629//    if err == nil { // resp is now filled
3630//        fmt.Println(resp)
3631//    }
3632//
3633// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutClusterCapacityProviders
3634func (c *ECS) PutClusterCapacityProvidersRequest(input *PutClusterCapacityProvidersInput) (req *request.Request, output *PutClusterCapacityProvidersOutput) {
3635	op := &request.Operation{
3636		Name:       opPutClusterCapacityProviders,
3637		HTTPMethod: "POST",
3638		HTTPPath:   "/",
3639	}
3640
3641	if input == nil {
3642		input = &PutClusterCapacityProvidersInput{}
3643	}
3644
3645	output = &PutClusterCapacityProvidersOutput{}
3646	req = c.newRequest(op, input, output)
3647	return
3648}
3649
3650// PutClusterCapacityProviders API operation for Amazon EC2 Container Service.
3651//
3652// Modifies the available capacity providers and the default capacity provider
3653// strategy for a cluster.
3654//
3655// You must specify both the available capacity providers and a default capacity
3656// provider strategy for the cluster. If the specified cluster has existing
3657// capacity providers associated with it, you must specify all existing capacity
3658// providers in addition to any new ones you want to add. Any existing capacity
3659// providers associated with a cluster that are omitted from a PutClusterCapacityProviders
3660// API call will be disassociated with the cluster. You can only disassociate
3661// an existing capacity provider from a cluster if it's not being used by any
3662// existing tasks.
3663//
3664// When creating a service or running a task on a cluster, if no capacity provider
3665// or launch type is specified, then the cluster's default capacity provider
3666// strategy is used. It is recommended to define a default capacity provider
3667// strategy for your cluster, however you may specify an empty array ([]) to
3668// bypass defining a default strategy.
3669//
3670// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3671// with awserr.Error's Code and Message methods to get detailed information about
3672// the error.
3673//
3674// See the AWS API reference guide for Amazon EC2 Container Service's
3675// API operation PutClusterCapacityProviders for usage and error information.
3676//
3677// Returned Error Types:
3678//   * ServerException
3679//   These errors are usually caused by a server issue.
3680//
3681//   * ClientException
3682//   These errors are usually caused by a client action, such as using an action
3683//   or resource on behalf of a user that doesn't have permissions to use the
3684//   action or resource, or specifying an identifier that is not valid.
3685//
3686//   * InvalidParameterException
3687//   The specified parameter is invalid. Review the available parameters for the
3688//   API request.
3689//
3690//   * ClusterNotFoundException
3691//   The specified cluster could not be found. You can view your available clusters
3692//   with ListClusters. Amazon ECS clusters are Region-specific.
3693//
3694//   * ResourceInUseException
3695//   The specified resource is in-use and cannot be removed.
3696//
3697//   * UpdateInProgressException
3698//   There is already a current Amazon ECS container agent update in progress
3699//   on the specified container instance. If the container agent becomes disconnected
3700//   while it is in a transitional stage, such as PENDING or STAGING, the update
3701//   process can get stuck in that state. However, when the agent reconnects,
3702//   it resumes where it stopped previously.
3703//
3704// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutClusterCapacityProviders
3705func (c *ECS) PutClusterCapacityProviders(input *PutClusterCapacityProvidersInput) (*PutClusterCapacityProvidersOutput, error) {
3706	req, out := c.PutClusterCapacityProvidersRequest(input)
3707	return out, req.Send()
3708}
3709
3710// PutClusterCapacityProvidersWithContext is the same as PutClusterCapacityProviders with the addition of
3711// the ability to pass a context and additional request options.
3712//
3713// See PutClusterCapacityProviders for details on how to use this API operation.
3714//
3715// The context must be non-nil and will be used for request cancellation. If
3716// the context is nil a panic will occur. In the future the SDK may create
3717// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3718// for more information on using Contexts.
3719func (c *ECS) PutClusterCapacityProvidersWithContext(ctx aws.Context, input *PutClusterCapacityProvidersInput, opts ...request.Option) (*PutClusterCapacityProvidersOutput, error) {
3720	req, out := c.PutClusterCapacityProvidersRequest(input)
3721	req.SetContext(ctx)
3722	req.ApplyOptions(opts...)
3723	return out, req.Send()
3724}
3725
3726const opRegisterContainerInstance = "RegisterContainerInstance"
3727
3728// RegisterContainerInstanceRequest generates a "aws/request.Request" representing the
3729// client's request for the RegisterContainerInstance operation. The "output" return
3730// value will be populated with the request's response once the request completes
3731// successfully.
3732//
3733// Use "Send" method on the returned Request to send the API call to the service.
3734// the "output" return value is not valid until after Send returns without error.
3735//
3736// See RegisterContainerInstance for more information on using the RegisterContainerInstance
3737// API call, and error handling.
3738//
3739// This method is useful when you want to inject custom logic or configuration
3740// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3741//
3742//
3743//    // Example sending a request using the RegisterContainerInstanceRequest method.
3744//    req, resp := client.RegisterContainerInstanceRequest(params)
3745//
3746//    err := req.Send()
3747//    if err == nil { // resp is now filled
3748//        fmt.Println(resp)
3749//    }
3750//
3751// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstance
3752func (c *ECS) RegisterContainerInstanceRequest(input *RegisterContainerInstanceInput) (req *request.Request, output *RegisterContainerInstanceOutput) {
3753	op := &request.Operation{
3754		Name:       opRegisterContainerInstance,
3755		HTTPMethod: "POST",
3756		HTTPPath:   "/",
3757	}
3758
3759	if input == nil {
3760		input = &RegisterContainerInstanceInput{}
3761	}
3762
3763	output = &RegisterContainerInstanceOutput{}
3764	req = c.newRequest(op, input, output)
3765	return
3766}
3767
3768// RegisterContainerInstance API operation for Amazon EC2 Container Service.
3769//
3770//
3771// This action is only used by the Amazon ECS agent, and it is not intended
3772// for use outside of the agent.
3773//
3774// Registers an EC2 instance into the specified cluster. This instance becomes
3775// available to place containers on.
3776//
3777// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3778// with awserr.Error's Code and Message methods to get detailed information about
3779// the error.
3780//
3781// See the AWS API reference guide for Amazon EC2 Container Service's
3782// API operation RegisterContainerInstance for usage and error information.
3783//
3784// Returned Error Types:
3785//   * ServerException
3786//   These errors are usually caused by a server issue.
3787//
3788//   * ClientException
3789//   These errors are usually caused by a client action, such as using an action
3790//   or resource on behalf of a user that doesn't have permissions to use the
3791//   action or resource, or specifying an identifier that is not valid.
3792//
3793//   * InvalidParameterException
3794//   The specified parameter is invalid. Review the available parameters for the
3795//   API request.
3796//
3797// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstance
3798func (c *ECS) RegisterContainerInstance(input *RegisterContainerInstanceInput) (*RegisterContainerInstanceOutput, error) {
3799	req, out := c.RegisterContainerInstanceRequest(input)
3800	return out, req.Send()
3801}
3802
3803// RegisterContainerInstanceWithContext is the same as RegisterContainerInstance with the addition of
3804// the ability to pass a context and additional request options.
3805//
3806// See RegisterContainerInstance for details on how to use this API operation.
3807//
3808// The context must be non-nil and will be used for request cancellation. If
3809// the context is nil a panic will occur. In the future the SDK may create
3810// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3811// for more information on using Contexts.
3812func (c *ECS) RegisterContainerInstanceWithContext(ctx aws.Context, input *RegisterContainerInstanceInput, opts ...request.Option) (*RegisterContainerInstanceOutput, error) {
3813	req, out := c.RegisterContainerInstanceRequest(input)
3814	req.SetContext(ctx)
3815	req.ApplyOptions(opts...)
3816	return out, req.Send()
3817}
3818
3819const opRegisterTaskDefinition = "RegisterTaskDefinition"
3820
3821// RegisterTaskDefinitionRequest generates a "aws/request.Request" representing the
3822// client's request for the RegisterTaskDefinition operation. The "output" return
3823// value will be populated with the request's response once the request completes
3824// successfully.
3825//
3826// Use "Send" method on the returned Request to send the API call to the service.
3827// the "output" return value is not valid until after Send returns without error.
3828//
3829// See RegisterTaskDefinition for more information on using the RegisterTaskDefinition
3830// API call, and error handling.
3831//
3832// This method is useful when you want to inject custom logic or configuration
3833// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3834//
3835//
3836//    // Example sending a request using the RegisterTaskDefinitionRequest method.
3837//    req, resp := client.RegisterTaskDefinitionRequest(params)
3838//
3839//    err := req.Send()
3840//    if err == nil { // resp is now filled
3841//        fmt.Println(resp)
3842//    }
3843//
3844// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinition
3845func (c *ECS) RegisterTaskDefinitionRequest(input *RegisterTaskDefinitionInput) (req *request.Request, output *RegisterTaskDefinitionOutput) {
3846	op := &request.Operation{
3847		Name:       opRegisterTaskDefinition,
3848		HTTPMethod: "POST",
3849		HTTPPath:   "/",
3850	}
3851
3852	if input == nil {
3853		input = &RegisterTaskDefinitionInput{}
3854	}
3855
3856	output = &RegisterTaskDefinitionOutput{}
3857	req = c.newRequest(op, input, output)
3858	return
3859}
3860
3861// RegisterTaskDefinition API operation for Amazon EC2 Container Service.
3862//
3863// Registers a new task definition from the supplied family and containerDefinitions.
3864// Optionally, you can add data volumes to your containers with the volumes
3865// parameter. For more information about task definition parameters and defaults,
3866// see Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
3867// in the Amazon Elastic Container Service Developer Guide.
3868//
3869// You can specify an IAM role for your task with the taskRoleArn parameter.
3870// When you specify an IAM role for a task, its containers can then use the
3871// latest versions of the AWS CLI or SDKs to make API requests to the AWS services
3872// that are specified in the IAM policy associated with the role. For more information,
3873// see IAM Roles for Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
3874// in the Amazon Elastic Container Service Developer Guide.
3875//
3876// You can specify a Docker networking mode for the containers in your task
3877// definition with the networkMode parameter. The available network modes correspond
3878// to those described in Network settings (https://docs.docker.com/engine/reference/run/#/network-settings)
3879// in the Docker run reference. If you specify the awsvpc network mode, the
3880// task is allocated an elastic network interface, and you must specify a NetworkConfiguration
3881// when you create a service or run a task with the task definition. For more
3882// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
3883// in the Amazon Elastic Container Service Developer Guide.
3884//
3885// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3886// with awserr.Error's Code and Message methods to get detailed information about
3887// the error.
3888//
3889// See the AWS API reference guide for Amazon EC2 Container Service's
3890// API operation RegisterTaskDefinition for usage and error information.
3891//
3892// Returned Error Types:
3893//   * ServerException
3894//   These errors are usually caused by a server issue.
3895//
3896//   * ClientException
3897//   These errors are usually caused by a client action, such as using an action
3898//   or resource on behalf of a user that doesn't have permissions to use the
3899//   action or resource, or specifying an identifier that is not valid.
3900//
3901//   * InvalidParameterException
3902//   The specified parameter is invalid. Review the available parameters for the
3903//   API request.
3904//
3905// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinition
3906func (c *ECS) RegisterTaskDefinition(input *RegisterTaskDefinitionInput) (*RegisterTaskDefinitionOutput, error) {
3907	req, out := c.RegisterTaskDefinitionRequest(input)
3908	return out, req.Send()
3909}
3910
3911// RegisterTaskDefinitionWithContext is the same as RegisterTaskDefinition with the addition of
3912// the ability to pass a context and additional request options.
3913//
3914// See RegisterTaskDefinition for details on how to use this API operation.
3915//
3916// The context must be non-nil and will be used for request cancellation. If
3917// the context is nil a panic will occur. In the future the SDK may create
3918// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3919// for more information on using Contexts.
3920func (c *ECS) RegisterTaskDefinitionWithContext(ctx aws.Context, input *RegisterTaskDefinitionInput, opts ...request.Option) (*RegisterTaskDefinitionOutput, error) {
3921	req, out := c.RegisterTaskDefinitionRequest(input)
3922	req.SetContext(ctx)
3923	req.ApplyOptions(opts...)
3924	return out, req.Send()
3925}
3926
3927const opRunTask = "RunTask"
3928
3929// RunTaskRequest generates a "aws/request.Request" representing the
3930// client's request for the RunTask operation. The "output" return
3931// value will be populated with the request's response once the request completes
3932// successfully.
3933//
3934// Use "Send" method on the returned Request to send the API call to the service.
3935// the "output" return value is not valid until after Send returns without error.
3936//
3937// See RunTask for more information on using the RunTask
3938// API call, and error handling.
3939//
3940// This method is useful when you want to inject custom logic or configuration
3941// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3942//
3943//
3944//    // Example sending a request using the RunTaskRequest method.
3945//    req, resp := client.RunTaskRequest(params)
3946//
3947//    err := req.Send()
3948//    if err == nil { // resp is now filled
3949//        fmt.Println(resp)
3950//    }
3951//
3952// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTask
3953func (c *ECS) RunTaskRequest(input *RunTaskInput) (req *request.Request, output *RunTaskOutput) {
3954	op := &request.Operation{
3955		Name:       opRunTask,
3956		HTTPMethod: "POST",
3957		HTTPPath:   "/",
3958	}
3959
3960	if input == nil {
3961		input = &RunTaskInput{}
3962	}
3963
3964	output = &RunTaskOutput{}
3965	req = c.newRequest(op, input, output)
3966	return
3967}
3968
3969// RunTask API operation for Amazon EC2 Container Service.
3970//
3971// Starts a new task using the specified task definition.
3972//
3973// You can allow Amazon ECS to place tasks for you, or you can customize how
3974// Amazon ECS places tasks using placement constraints and placement strategies.
3975// For more information, see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html)
3976// in the Amazon Elastic Container Service Developer Guide.
3977//
3978// Alternatively, you can use StartTask to use your own scheduler or place tasks
3979// manually on specific container instances.
3980//
3981// The Amazon ECS API follows an eventual consistency model, due to the distributed
3982// nature of the system supporting the API. This means that the result of an
3983// API command you run that affects your Amazon ECS resources might not be immediately
3984// visible to all subsequent commands you run. Keep this in mind when you carry
3985// out an API command that immediately follows a previous API command.
3986//
3987// To manage eventual consistency, you can do the following:
3988//
3989//    * Confirm the state of the resource before you run a command to modify
3990//    it. Run the DescribeTasks command using an exponential backoff algorithm
3991//    to ensure that you allow enough time for the previous command to propagate
3992//    through the system. To do this, run the DescribeTasks command repeatedly,
3993//    starting with a couple of seconds of wait time and increasing gradually
3994//    up to five minutes of wait time.
3995//
3996//    * Add wait time between subsequent commands, even if the DescribeTasks
3997//    command returns an accurate response. Apply an exponential backoff algorithm
3998//    starting with a couple of seconds of wait time, and increase gradually
3999//    up to about five minutes of wait time.
4000//
4001// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4002// with awserr.Error's Code and Message methods to get detailed information about
4003// the error.
4004//
4005// See the AWS API reference guide for Amazon EC2 Container Service's
4006// API operation RunTask for usage and error information.
4007//
4008// Returned Error Types:
4009//   * ServerException
4010//   These errors are usually caused by a server issue.
4011//
4012//   * ClientException
4013//   These errors are usually caused by a client action, such as using an action
4014//   or resource on behalf of a user that doesn't have permissions to use the
4015//   action or resource, or specifying an identifier that is not valid.
4016//
4017//   * InvalidParameterException
4018//   The specified parameter is invalid. Review the available parameters for the
4019//   API request.
4020//
4021//   * ClusterNotFoundException
4022//   The specified cluster could not be found. You can view your available clusters
4023//   with ListClusters. Amazon ECS clusters are Region-specific.
4024//
4025//   * UnsupportedFeatureException
4026//   The specified task is not supported in this Region.
4027//
4028//   * PlatformUnknownException
4029//   The specified platform version does not exist.
4030//
4031//   * PlatformTaskDefinitionIncompatibilityException
4032//   The specified platform version does not satisfy the task definition's required
4033//   capabilities.
4034//
4035//   * AccessDeniedException
4036//   You do not have authorization to perform the requested action.
4037//
4038//   * BlockedException
4039//   Your AWS account has been blocked. For more information, contact AWS Support
4040//   (http://aws.amazon.com/contact-us/).
4041//
4042// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTask
4043func (c *ECS) RunTask(input *RunTaskInput) (*RunTaskOutput, error) {
4044	req, out := c.RunTaskRequest(input)
4045	return out, req.Send()
4046}
4047
4048// RunTaskWithContext is the same as RunTask with the addition of
4049// the ability to pass a context and additional request options.
4050//
4051// See RunTask for details on how to use this API operation.
4052//
4053// The context must be non-nil and will be used for request cancellation. If
4054// the context is nil a panic will occur. In the future the SDK may create
4055// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4056// for more information on using Contexts.
4057func (c *ECS) RunTaskWithContext(ctx aws.Context, input *RunTaskInput, opts ...request.Option) (*RunTaskOutput, error) {
4058	req, out := c.RunTaskRequest(input)
4059	req.SetContext(ctx)
4060	req.ApplyOptions(opts...)
4061	return out, req.Send()
4062}
4063
4064const opStartTask = "StartTask"
4065
4066// StartTaskRequest generates a "aws/request.Request" representing the
4067// client's request for the StartTask operation. The "output" return
4068// value will be populated with the request's response once the request completes
4069// successfully.
4070//
4071// Use "Send" method on the returned Request to send the API call to the service.
4072// the "output" return value is not valid until after Send returns without error.
4073//
4074// See StartTask for more information on using the StartTask
4075// API call, and error handling.
4076//
4077// This method is useful when you want to inject custom logic or configuration
4078// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4079//
4080//
4081//    // Example sending a request using the StartTaskRequest method.
4082//    req, resp := client.StartTaskRequest(params)
4083//
4084//    err := req.Send()
4085//    if err == nil { // resp is now filled
4086//        fmt.Println(resp)
4087//    }
4088//
4089// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTask
4090func (c *ECS) StartTaskRequest(input *StartTaskInput) (req *request.Request, output *StartTaskOutput) {
4091	op := &request.Operation{
4092		Name:       opStartTask,
4093		HTTPMethod: "POST",
4094		HTTPPath:   "/",
4095	}
4096
4097	if input == nil {
4098		input = &StartTaskInput{}
4099	}
4100
4101	output = &StartTaskOutput{}
4102	req = c.newRequest(op, input, output)
4103	return
4104}
4105
4106// StartTask API operation for Amazon EC2 Container Service.
4107//
4108// Starts a new task from the specified task definition on the specified container
4109// instance or instances.
4110//
4111// Alternatively, you can use RunTask to place tasks for you. For more information,
4112// see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html)
4113// in the Amazon Elastic Container Service Developer Guide.
4114//
4115// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4116// with awserr.Error's Code and Message methods to get detailed information about
4117// the error.
4118//
4119// See the AWS API reference guide for Amazon EC2 Container Service's
4120// API operation StartTask for usage and error information.
4121//
4122// Returned Error Types:
4123//   * ServerException
4124//   These errors are usually caused by a server issue.
4125//
4126//   * ClientException
4127//   These errors are usually caused by a client action, such as using an action
4128//   or resource on behalf of a user that doesn't have permissions to use the
4129//   action or resource, or specifying an identifier that is not valid.
4130//
4131//   * InvalidParameterException
4132//   The specified parameter is invalid. Review the available parameters for the
4133//   API request.
4134//
4135//   * ClusterNotFoundException
4136//   The specified cluster could not be found. You can view your available clusters
4137//   with ListClusters. Amazon ECS clusters are Region-specific.
4138//
4139// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTask
4140func (c *ECS) StartTask(input *StartTaskInput) (*StartTaskOutput, error) {
4141	req, out := c.StartTaskRequest(input)
4142	return out, req.Send()
4143}
4144
4145// StartTaskWithContext is the same as StartTask with the addition of
4146// the ability to pass a context and additional request options.
4147//
4148// See StartTask for details on how to use this API operation.
4149//
4150// The context must be non-nil and will be used for request cancellation. If
4151// the context is nil a panic will occur. In the future the SDK may create
4152// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4153// for more information on using Contexts.
4154func (c *ECS) StartTaskWithContext(ctx aws.Context, input *StartTaskInput, opts ...request.Option) (*StartTaskOutput, error) {
4155	req, out := c.StartTaskRequest(input)
4156	req.SetContext(ctx)
4157	req.ApplyOptions(opts...)
4158	return out, req.Send()
4159}
4160
4161const opStopTask = "StopTask"
4162
4163// StopTaskRequest generates a "aws/request.Request" representing the
4164// client's request for the StopTask operation. The "output" return
4165// value will be populated with the request's response once the request completes
4166// successfully.
4167//
4168// Use "Send" method on the returned Request to send the API call to the service.
4169// the "output" return value is not valid until after Send returns without error.
4170//
4171// See StopTask for more information on using the StopTask
4172// API call, and error handling.
4173//
4174// This method is useful when you want to inject custom logic or configuration
4175// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4176//
4177//
4178//    // Example sending a request using the StopTaskRequest method.
4179//    req, resp := client.StopTaskRequest(params)
4180//
4181//    err := req.Send()
4182//    if err == nil { // resp is now filled
4183//        fmt.Println(resp)
4184//    }
4185//
4186// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTask
4187func (c *ECS) StopTaskRequest(input *StopTaskInput) (req *request.Request, output *StopTaskOutput) {
4188	op := &request.Operation{
4189		Name:       opStopTask,
4190		HTTPMethod: "POST",
4191		HTTPPath:   "/",
4192	}
4193
4194	if input == nil {
4195		input = &StopTaskInput{}
4196	}
4197
4198	output = &StopTaskOutput{}
4199	req = c.newRequest(op, input, output)
4200	return
4201}
4202
4203// StopTask API operation for Amazon EC2 Container Service.
4204//
4205// Stops a running task. Any tags associated with the task will be deleted.
4206//
4207// When StopTask is called on a task, the equivalent of docker stop is issued
4208// to the containers running in the task. This results in a SIGTERM value and
4209// a default 30-second timeout, after which the SIGKILL value is sent and the
4210// containers are forcibly stopped. If the container handles the SIGTERM value
4211// gracefully and exits within 30 seconds from receiving it, no SIGKILL value
4212// is sent.
4213//
4214// The default 30-second timeout can be configured on the Amazon ECS container
4215// agent with the ECS_CONTAINER_STOP_TIMEOUT variable. For more information,
4216// see Amazon ECS Container Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
4217// in the Amazon Elastic Container Service Developer Guide.
4218//
4219// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4220// with awserr.Error's Code and Message methods to get detailed information about
4221// the error.
4222//
4223// See the AWS API reference guide for Amazon EC2 Container Service's
4224// API operation StopTask for usage and error information.
4225//
4226// Returned Error Types:
4227//   * ServerException
4228//   These errors are usually caused by a server issue.
4229//
4230//   * ClientException
4231//   These errors are usually caused by a client action, such as using an action
4232//   or resource on behalf of a user that doesn't have permissions to use the
4233//   action or resource, or specifying an identifier that is not valid.
4234//
4235//   * InvalidParameterException
4236//   The specified parameter is invalid. Review the available parameters for the
4237//   API request.
4238//
4239//   * ClusterNotFoundException
4240//   The specified cluster could not be found. You can view your available clusters
4241//   with ListClusters. Amazon ECS clusters are Region-specific.
4242//
4243// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTask
4244func (c *ECS) StopTask(input *StopTaskInput) (*StopTaskOutput, error) {
4245	req, out := c.StopTaskRequest(input)
4246	return out, req.Send()
4247}
4248
4249// StopTaskWithContext is the same as StopTask with the addition of
4250// the ability to pass a context and additional request options.
4251//
4252// See StopTask for details on how to use this API operation.
4253//
4254// The context must be non-nil and will be used for request cancellation. If
4255// the context is nil a panic will occur. In the future the SDK may create
4256// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4257// for more information on using Contexts.
4258func (c *ECS) StopTaskWithContext(ctx aws.Context, input *StopTaskInput, opts ...request.Option) (*StopTaskOutput, error) {
4259	req, out := c.StopTaskRequest(input)
4260	req.SetContext(ctx)
4261	req.ApplyOptions(opts...)
4262	return out, req.Send()
4263}
4264
4265const opSubmitAttachmentStateChanges = "SubmitAttachmentStateChanges"
4266
4267// SubmitAttachmentStateChangesRequest generates a "aws/request.Request" representing the
4268// client's request for the SubmitAttachmentStateChanges operation. The "output" return
4269// value will be populated with the request's response once the request completes
4270// successfully.
4271//
4272// Use "Send" method on the returned Request to send the API call to the service.
4273// the "output" return value is not valid until after Send returns without error.
4274//
4275// See SubmitAttachmentStateChanges for more information on using the SubmitAttachmentStateChanges
4276// API call, and error handling.
4277//
4278// This method is useful when you want to inject custom logic or configuration
4279// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4280//
4281//
4282//    // Example sending a request using the SubmitAttachmentStateChangesRequest method.
4283//    req, resp := client.SubmitAttachmentStateChangesRequest(params)
4284//
4285//    err := req.Send()
4286//    if err == nil { // resp is now filled
4287//        fmt.Println(resp)
4288//    }
4289//
4290// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitAttachmentStateChanges
4291func (c *ECS) SubmitAttachmentStateChangesRequest(input *SubmitAttachmentStateChangesInput) (req *request.Request, output *SubmitAttachmentStateChangesOutput) {
4292	op := &request.Operation{
4293		Name:       opSubmitAttachmentStateChanges,
4294		HTTPMethod: "POST",
4295		HTTPPath:   "/",
4296	}
4297
4298	if input == nil {
4299		input = &SubmitAttachmentStateChangesInput{}
4300	}
4301
4302	output = &SubmitAttachmentStateChangesOutput{}
4303	req = c.newRequest(op, input, output)
4304	return
4305}
4306
4307// SubmitAttachmentStateChanges API operation for Amazon EC2 Container Service.
4308//
4309//
4310// This action is only used by the Amazon ECS agent, and it is not intended
4311// for use outside of the agent.
4312//
4313// Sent to acknowledge that an attachment changed states.
4314//
4315// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4316// with awserr.Error's Code and Message methods to get detailed information about
4317// the error.
4318//
4319// See the AWS API reference guide for Amazon EC2 Container Service's
4320// API operation SubmitAttachmentStateChanges for usage and error information.
4321//
4322// Returned Error Types:
4323//   * ServerException
4324//   These errors are usually caused by a server issue.
4325//
4326//   * ClientException
4327//   These errors are usually caused by a client action, such as using an action
4328//   or resource on behalf of a user that doesn't have permissions to use the
4329//   action or resource, or specifying an identifier that is not valid.
4330//
4331//   * AccessDeniedException
4332//   You do not have authorization to perform the requested action.
4333//
4334//   * InvalidParameterException
4335//   The specified parameter is invalid. Review the available parameters for the
4336//   API request.
4337//
4338// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitAttachmentStateChanges
4339func (c *ECS) SubmitAttachmentStateChanges(input *SubmitAttachmentStateChangesInput) (*SubmitAttachmentStateChangesOutput, error) {
4340	req, out := c.SubmitAttachmentStateChangesRequest(input)
4341	return out, req.Send()
4342}
4343
4344// SubmitAttachmentStateChangesWithContext is the same as SubmitAttachmentStateChanges with the addition of
4345// the ability to pass a context and additional request options.
4346//
4347// See SubmitAttachmentStateChanges for details on how to use this API operation.
4348//
4349// The context must be non-nil and will be used for request cancellation. If
4350// the context is nil a panic will occur. In the future the SDK may create
4351// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4352// for more information on using Contexts.
4353func (c *ECS) SubmitAttachmentStateChangesWithContext(ctx aws.Context, input *SubmitAttachmentStateChangesInput, opts ...request.Option) (*SubmitAttachmentStateChangesOutput, error) {
4354	req, out := c.SubmitAttachmentStateChangesRequest(input)
4355	req.SetContext(ctx)
4356	req.ApplyOptions(opts...)
4357	return out, req.Send()
4358}
4359
4360const opSubmitContainerStateChange = "SubmitContainerStateChange"
4361
4362// SubmitContainerStateChangeRequest generates a "aws/request.Request" representing the
4363// client's request for the SubmitContainerStateChange operation. The "output" return
4364// value will be populated with the request's response once the request completes
4365// successfully.
4366//
4367// Use "Send" method on the returned Request to send the API call to the service.
4368// the "output" return value is not valid until after Send returns without error.
4369//
4370// See SubmitContainerStateChange for more information on using the SubmitContainerStateChange
4371// API call, and error handling.
4372//
4373// This method is useful when you want to inject custom logic or configuration
4374// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4375//
4376//
4377//    // Example sending a request using the SubmitContainerStateChangeRequest method.
4378//    req, resp := client.SubmitContainerStateChangeRequest(params)
4379//
4380//    err := req.Send()
4381//    if err == nil { // resp is now filled
4382//        fmt.Println(resp)
4383//    }
4384//
4385// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChange
4386func (c *ECS) SubmitContainerStateChangeRequest(input *SubmitContainerStateChangeInput) (req *request.Request, output *SubmitContainerStateChangeOutput) {
4387	op := &request.Operation{
4388		Name:       opSubmitContainerStateChange,
4389		HTTPMethod: "POST",
4390		HTTPPath:   "/",
4391	}
4392
4393	if input == nil {
4394		input = &SubmitContainerStateChangeInput{}
4395	}
4396
4397	output = &SubmitContainerStateChangeOutput{}
4398	req = c.newRequest(op, input, output)
4399	return
4400}
4401
4402// SubmitContainerStateChange API operation for Amazon EC2 Container Service.
4403//
4404//
4405// This action is only used by the Amazon ECS agent, and it is not intended
4406// for use outside of the agent.
4407//
4408// Sent to acknowledge that a container changed states.
4409//
4410// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4411// with awserr.Error's Code and Message methods to get detailed information about
4412// the error.
4413//
4414// See the AWS API reference guide for Amazon EC2 Container Service's
4415// API operation SubmitContainerStateChange for usage and error information.
4416//
4417// Returned Error Types:
4418//   * ServerException
4419//   These errors are usually caused by a server issue.
4420//
4421//   * ClientException
4422//   These errors are usually caused by a client action, such as using an action
4423//   or resource on behalf of a user that doesn't have permissions to use the
4424//   action or resource, or specifying an identifier that is not valid.
4425//
4426//   * AccessDeniedException
4427//   You do not have authorization to perform the requested action.
4428//
4429// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChange
4430func (c *ECS) SubmitContainerStateChange(input *SubmitContainerStateChangeInput) (*SubmitContainerStateChangeOutput, error) {
4431	req, out := c.SubmitContainerStateChangeRequest(input)
4432	return out, req.Send()
4433}
4434
4435// SubmitContainerStateChangeWithContext is the same as SubmitContainerStateChange with the addition of
4436// the ability to pass a context and additional request options.
4437//
4438// See SubmitContainerStateChange for details on how to use this API operation.
4439//
4440// The context must be non-nil and will be used for request cancellation. If
4441// the context is nil a panic will occur. In the future the SDK may create
4442// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4443// for more information on using Contexts.
4444func (c *ECS) SubmitContainerStateChangeWithContext(ctx aws.Context, input *SubmitContainerStateChangeInput, opts ...request.Option) (*SubmitContainerStateChangeOutput, error) {
4445	req, out := c.SubmitContainerStateChangeRequest(input)
4446	req.SetContext(ctx)
4447	req.ApplyOptions(opts...)
4448	return out, req.Send()
4449}
4450
4451const opSubmitTaskStateChange = "SubmitTaskStateChange"
4452
4453// SubmitTaskStateChangeRequest generates a "aws/request.Request" representing the
4454// client's request for the SubmitTaskStateChange operation. The "output" return
4455// value will be populated with the request's response once the request completes
4456// successfully.
4457//
4458// Use "Send" method on the returned Request to send the API call to the service.
4459// the "output" return value is not valid until after Send returns without error.
4460//
4461// See SubmitTaskStateChange for more information on using the SubmitTaskStateChange
4462// API call, and error handling.
4463//
4464// This method is useful when you want to inject custom logic or configuration
4465// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4466//
4467//
4468//    // Example sending a request using the SubmitTaskStateChangeRequest method.
4469//    req, resp := client.SubmitTaskStateChangeRequest(params)
4470//
4471//    err := req.Send()
4472//    if err == nil { // resp is now filled
4473//        fmt.Println(resp)
4474//    }
4475//
4476// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChange
4477func (c *ECS) SubmitTaskStateChangeRequest(input *SubmitTaskStateChangeInput) (req *request.Request, output *SubmitTaskStateChangeOutput) {
4478	op := &request.Operation{
4479		Name:       opSubmitTaskStateChange,
4480		HTTPMethod: "POST",
4481		HTTPPath:   "/",
4482	}
4483
4484	if input == nil {
4485		input = &SubmitTaskStateChangeInput{}
4486	}
4487
4488	output = &SubmitTaskStateChangeOutput{}
4489	req = c.newRequest(op, input, output)
4490	return
4491}
4492
4493// SubmitTaskStateChange API operation for Amazon EC2 Container Service.
4494//
4495//
4496// This action is only used by the Amazon ECS agent, and it is not intended
4497// for use outside of the agent.
4498//
4499// Sent to acknowledge that a task changed states.
4500//
4501// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4502// with awserr.Error's Code and Message methods to get detailed information about
4503// the error.
4504//
4505// See the AWS API reference guide for Amazon EC2 Container Service's
4506// API operation SubmitTaskStateChange for usage and error information.
4507//
4508// Returned Error Types:
4509//   * ServerException
4510//   These errors are usually caused by a server issue.
4511//
4512//   * ClientException
4513//   These errors are usually caused by a client action, such as using an action
4514//   or resource on behalf of a user that doesn't have permissions to use the
4515//   action or resource, or specifying an identifier that is not valid.
4516//
4517//   * AccessDeniedException
4518//   You do not have authorization to perform the requested action.
4519//
4520//   * InvalidParameterException
4521//   The specified parameter is invalid. Review the available parameters for the
4522//   API request.
4523//
4524// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChange
4525func (c *ECS) SubmitTaskStateChange(input *SubmitTaskStateChangeInput) (*SubmitTaskStateChangeOutput, error) {
4526	req, out := c.SubmitTaskStateChangeRequest(input)
4527	return out, req.Send()
4528}
4529
4530// SubmitTaskStateChangeWithContext is the same as SubmitTaskStateChange with the addition of
4531// the ability to pass a context and additional request options.
4532//
4533// See SubmitTaskStateChange for details on how to use this API operation.
4534//
4535// The context must be non-nil and will be used for request cancellation. If
4536// the context is nil a panic will occur. In the future the SDK may create
4537// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4538// for more information on using Contexts.
4539func (c *ECS) SubmitTaskStateChangeWithContext(ctx aws.Context, input *SubmitTaskStateChangeInput, opts ...request.Option) (*SubmitTaskStateChangeOutput, error) {
4540	req, out := c.SubmitTaskStateChangeRequest(input)
4541	req.SetContext(ctx)
4542	req.ApplyOptions(opts...)
4543	return out, req.Send()
4544}
4545
4546const opTagResource = "TagResource"
4547
4548// TagResourceRequest generates a "aws/request.Request" representing the
4549// client's request for the TagResource operation. The "output" return
4550// value will be populated with the request's response once the request completes
4551// successfully.
4552//
4553// Use "Send" method on the returned Request to send the API call to the service.
4554// the "output" return value is not valid until after Send returns without error.
4555//
4556// See TagResource for more information on using the TagResource
4557// API call, and error handling.
4558//
4559// This method is useful when you want to inject custom logic or configuration
4560// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4561//
4562//
4563//    // Example sending a request using the TagResourceRequest method.
4564//    req, resp := client.TagResourceRequest(params)
4565//
4566//    err := req.Send()
4567//    if err == nil { // resp is now filled
4568//        fmt.Println(resp)
4569//    }
4570//
4571// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TagResource
4572func (c *ECS) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
4573	op := &request.Operation{
4574		Name:       opTagResource,
4575		HTTPMethod: "POST",
4576		HTTPPath:   "/",
4577	}
4578
4579	if input == nil {
4580		input = &TagResourceInput{}
4581	}
4582
4583	output = &TagResourceOutput{}
4584	req = c.newRequest(op, input, output)
4585	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4586	return
4587}
4588
4589// TagResource API operation for Amazon EC2 Container Service.
4590//
4591// Associates the specified tags to a resource with the specified resourceArn.
4592// If existing tags on a resource are not specified in the request parameters,
4593// they are not changed. When a resource is deleted, the tags associated with
4594// that resource are deleted as well.
4595//
4596// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4597// with awserr.Error's Code and Message methods to get detailed information about
4598// the error.
4599//
4600// See the AWS API reference guide for Amazon EC2 Container Service's
4601// API operation TagResource for usage and error information.
4602//
4603// Returned Error Types:
4604//   * ServerException
4605//   These errors are usually caused by a server issue.
4606//
4607//   * ClientException
4608//   These errors are usually caused by a client action, such as using an action
4609//   or resource on behalf of a user that doesn't have permissions to use the
4610//   action or resource, or specifying an identifier that is not valid.
4611//
4612//   * ClusterNotFoundException
4613//   The specified cluster could not be found. You can view your available clusters
4614//   with ListClusters. Amazon ECS clusters are Region-specific.
4615//
4616//   * ResourceNotFoundException
4617//   The specified resource could not be found.
4618//
4619//   * InvalidParameterException
4620//   The specified parameter is invalid. Review the available parameters for the
4621//   API request.
4622//
4623// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TagResource
4624func (c *ECS) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
4625	req, out := c.TagResourceRequest(input)
4626	return out, req.Send()
4627}
4628
4629// TagResourceWithContext is the same as TagResource with the addition of
4630// the ability to pass a context and additional request options.
4631//
4632// See TagResource for details on how to use this API operation.
4633//
4634// The context must be non-nil and will be used for request cancellation. If
4635// the context is nil a panic will occur. In the future the SDK may create
4636// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4637// for more information on using Contexts.
4638func (c *ECS) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
4639	req, out := c.TagResourceRequest(input)
4640	req.SetContext(ctx)
4641	req.ApplyOptions(opts...)
4642	return out, req.Send()
4643}
4644
4645const opUntagResource = "UntagResource"
4646
4647// UntagResourceRequest generates a "aws/request.Request" representing the
4648// client's request for the UntagResource operation. The "output" return
4649// value will be populated with the request's response once the request completes
4650// successfully.
4651//
4652// Use "Send" method on the returned Request to send the API call to the service.
4653// the "output" return value is not valid until after Send returns without error.
4654//
4655// See UntagResource for more information on using the UntagResource
4656// API call, and error handling.
4657//
4658// This method is useful when you want to inject custom logic or configuration
4659// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4660//
4661//
4662//    // Example sending a request using the UntagResourceRequest method.
4663//    req, resp := client.UntagResourceRequest(params)
4664//
4665//    err := req.Send()
4666//    if err == nil { // resp is now filled
4667//        fmt.Println(resp)
4668//    }
4669//
4670// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UntagResource
4671func (c *ECS) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
4672	op := &request.Operation{
4673		Name:       opUntagResource,
4674		HTTPMethod: "POST",
4675		HTTPPath:   "/",
4676	}
4677
4678	if input == nil {
4679		input = &UntagResourceInput{}
4680	}
4681
4682	output = &UntagResourceOutput{}
4683	req = c.newRequest(op, input, output)
4684	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4685	return
4686}
4687
4688// UntagResource API operation for Amazon EC2 Container Service.
4689//
4690// Deletes specified tags from a resource.
4691//
4692// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4693// with awserr.Error's Code and Message methods to get detailed information about
4694// the error.
4695//
4696// See the AWS API reference guide for Amazon EC2 Container Service's
4697// API operation UntagResource for usage and error information.
4698//
4699// Returned Error Types:
4700//   * ServerException
4701//   These errors are usually caused by a server issue.
4702//
4703//   * ClientException
4704//   These errors are usually caused by a client action, such as using an action
4705//   or resource on behalf of a user that doesn't have permissions to use the
4706//   action or resource, or specifying an identifier that is not valid.
4707//
4708//   * ClusterNotFoundException
4709//   The specified cluster could not be found. You can view your available clusters
4710//   with ListClusters. Amazon ECS clusters are Region-specific.
4711//
4712//   * ResourceNotFoundException
4713//   The specified resource could not be found.
4714//
4715//   * InvalidParameterException
4716//   The specified parameter is invalid. Review the available parameters for the
4717//   API request.
4718//
4719// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UntagResource
4720func (c *ECS) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
4721	req, out := c.UntagResourceRequest(input)
4722	return out, req.Send()
4723}
4724
4725// UntagResourceWithContext is the same as UntagResource with the addition of
4726// the ability to pass a context and additional request options.
4727//
4728// See UntagResource for details on how to use this API operation.
4729//
4730// The context must be non-nil and will be used for request cancellation. If
4731// the context is nil a panic will occur. In the future the SDK may create
4732// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4733// for more information on using Contexts.
4734func (c *ECS) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
4735	req, out := c.UntagResourceRequest(input)
4736	req.SetContext(ctx)
4737	req.ApplyOptions(opts...)
4738	return out, req.Send()
4739}
4740
4741const opUpdateClusterSettings = "UpdateClusterSettings"
4742
4743// UpdateClusterSettingsRequest generates a "aws/request.Request" representing the
4744// client's request for the UpdateClusterSettings operation. The "output" return
4745// value will be populated with the request's response once the request completes
4746// successfully.
4747//
4748// Use "Send" method on the returned Request to send the API call to the service.
4749// the "output" return value is not valid until after Send returns without error.
4750//
4751// See UpdateClusterSettings for more information on using the UpdateClusterSettings
4752// API call, and error handling.
4753//
4754// This method is useful when you want to inject custom logic or configuration
4755// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4756//
4757//
4758//    // Example sending a request using the UpdateClusterSettingsRequest method.
4759//    req, resp := client.UpdateClusterSettingsRequest(params)
4760//
4761//    err := req.Send()
4762//    if err == nil { // resp is now filled
4763//        fmt.Println(resp)
4764//    }
4765//
4766// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateClusterSettings
4767func (c *ECS) UpdateClusterSettingsRequest(input *UpdateClusterSettingsInput) (req *request.Request, output *UpdateClusterSettingsOutput) {
4768	op := &request.Operation{
4769		Name:       opUpdateClusterSettings,
4770		HTTPMethod: "POST",
4771		HTTPPath:   "/",
4772	}
4773
4774	if input == nil {
4775		input = &UpdateClusterSettingsInput{}
4776	}
4777
4778	output = &UpdateClusterSettingsOutput{}
4779	req = c.newRequest(op, input, output)
4780	return
4781}
4782
4783// UpdateClusterSettings API operation for Amazon EC2 Container Service.
4784//
4785// Modifies the settings to use for a cluster.
4786//
4787// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4788// with awserr.Error's Code and Message methods to get detailed information about
4789// the error.
4790//
4791// See the AWS API reference guide for Amazon EC2 Container Service's
4792// API operation UpdateClusterSettings for usage and error information.
4793//
4794// Returned Error Types:
4795//   * ServerException
4796//   These errors are usually caused by a server issue.
4797//
4798//   * ClientException
4799//   These errors are usually caused by a client action, such as using an action
4800//   or resource on behalf of a user that doesn't have permissions to use the
4801//   action or resource, or specifying an identifier that is not valid.
4802//
4803//   * ClusterNotFoundException
4804//   The specified cluster could not be found. You can view your available clusters
4805//   with ListClusters. Amazon ECS clusters are Region-specific.
4806//
4807//   * InvalidParameterException
4808//   The specified parameter is invalid. Review the available parameters for the
4809//   API request.
4810//
4811// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateClusterSettings
4812func (c *ECS) UpdateClusterSettings(input *UpdateClusterSettingsInput) (*UpdateClusterSettingsOutput, error) {
4813	req, out := c.UpdateClusterSettingsRequest(input)
4814	return out, req.Send()
4815}
4816
4817// UpdateClusterSettingsWithContext is the same as UpdateClusterSettings with the addition of
4818// the ability to pass a context and additional request options.
4819//
4820// See UpdateClusterSettings for details on how to use this API operation.
4821//
4822// The context must be non-nil and will be used for request cancellation. If
4823// the context is nil a panic will occur. In the future the SDK may create
4824// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4825// for more information on using Contexts.
4826func (c *ECS) UpdateClusterSettingsWithContext(ctx aws.Context, input *UpdateClusterSettingsInput, opts ...request.Option) (*UpdateClusterSettingsOutput, error) {
4827	req, out := c.UpdateClusterSettingsRequest(input)
4828	req.SetContext(ctx)
4829	req.ApplyOptions(opts...)
4830	return out, req.Send()
4831}
4832
4833const opUpdateContainerAgent = "UpdateContainerAgent"
4834
4835// UpdateContainerAgentRequest generates a "aws/request.Request" representing the
4836// client's request for the UpdateContainerAgent operation. The "output" return
4837// value will be populated with the request's response once the request completes
4838// successfully.
4839//
4840// Use "Send" method on the returned Request to send the API call to the service.
4841// the "output" return value is not valid until after Send returns without error.
4842//
4843// See UpdateContainerAgent for more information on using the UpdateContainerAgent
4844// API call, and error handling.
4845//
4846// This method is useful when you want to inject custom logic or configuration
4847// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4848//
4849//
4850//    // Example sending a request using the UpdateContainerAgentRequest method.
4851//    req, resp := client.UpdateContainerAgentRequest(params)
4852//
4853//    err := req.Send()
4854//    if err == nil { // resp is now filled
4855//        fmt.Println(resp)
4856//    }
4857//
4858// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
4859func (c *ECS) UpdateContainerAgentRequest(input *UpdateContainerAgentInput) (req *request.Request, output *UpdateContainerAgentOutput) {
4860	op := &request.Operation{
4861		Name:       opUpdateContainerAgent,
4862		HTTPMethod: "POST",
4863		HTTPPath:   "/",
4864	}
4865
4866	if input == nil {
4867		input = &UpdateContainerAgentInput{}
4868	}
4869
4870	output = &UpdateContainerAgentOutput{}
4871	req = c.newRequest(op, input, output)
4872	return
4873}
4874
4875// UpdateContainerAgent API operation for Amazon EC2 Container Service.
4876//
4877// Updates the Amazon ECS container agent on a specified container instance.
4878// Updating the Amazon ECS container agent does not interrupt running tasks
4879// or services on the container instance. The process for updating the agent
4880// differs depending on whether your container instance was launched with the
4881// Amazon ECS-optimized AMI or another operating system.
4882//
4883// UpdateContainerAgent requires the Amazon ECS-optimized AMI or Amazon Linux
4884// with the ecs-init service installed and running. For help updating the Amazon
4885// ECS container agent on other operating systems, see Manually Updating the
4886// Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html#manually_update_agent)
4887// in the Amazon Elastic Container Service Developer Guide.
4888//
4889// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4890// with awserr.Error's Code and Message methods to get detailed information about
4891// the error.
4892//
4893// See the AWS API reference guide for Amazon EC2 Container Service's
4894// API operation UpdateContainerAgent for usage and error information.
4895//
4896// Returned Error Types:
4897//   * ServerException
4898//   These errors are usually caused by a server issue.
4899//
4900//   * ClientException
4901//   These errors are usually caused by a client action, such as using an action
4902//   or resource on behalf of a user that doesn't have permissions to use the
4903//   action or resource, or specifying an identifier that is not valid.
4904//
4905//   * InvalidParameterException
4906//   The specified parameter is invalid. Review the available parameters for the
4907//   API request.
4908//
4909//   * ClusterNotFoundException
4910//   The specified cluster could not be found. You can view your available clusters
4911//   with ListClusters. Amazon ECS clusters are Region-specific.
4912//
4913//   * UpdateInProgressException
4914//   There is already a current Amazon ECS container agent update in progress
4915//   on the specified container instance. If the container agent becomes disconnected
4916//   while it is in a transitional stage, such as PENDING or STAGING, the update
4917//   process can get stuck in that state. However, when the agent reconnects,
4918//   it resumes where it stopped previously.
4919//
4920//   * NoUpdateAvailableException
4921//   There is no update available for this Amazon ECS container agent. This could
4922//   be because the agent is already running the latest version, or it is so old
4923//   that there is no update path to the current version.
4924//
4925//   * MissingVersionException
4926//   Amazon ECS is unable to determine the current version of the Amazon ECS container
4927//   agent on the container instance and does not have enough information to proceed
4928//   with an update. This could be because the agent running on the container
4929//   instance is an older or custom version that does not use our version information.
4930//
4931// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
4932func (c *ECS) UpdateContainerAgent(input *UpdateContainerAgentInput) (*UpdateContainerAgentOutput, error) {
4933	req, out := c.UpdateContainerAgentRequest(input)
4934	return out, req.Send()
4935}
4936
4937// UpdateContainerAgentWithContext is the same as UpdateContainerAgent with the addition of
4938// the ability to pass a context and additional request options.
4939//
4940// See UpdateContainerAgent for details on how to use this API operation.
4941//
4942// The context must be non-nil and will be used for request cancellation. If
4943// the context is nil a panic will occur. In the future the SDK may create
4944// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4945// for more information on using Contexts.
4946func (c *ECS) UpdateContainerAgentWithContext(ctx aws.Context, input *UpdateContainerAgentInput, opts ...request.Option) (*UpdateContainerAgentOutput, error) {
4947	req, out := c.UpdateContainerAgentRequest(input)
4948	req.SetContext(ctx)
4949	req.ApplyOptions(opts...)
4950	return out, req.Send()
4951}
4952
4953const opUpdateContainerInstancesState = "UpdateContainerInstancesState"
4954
4955// UpdateContainerInstancesStateRequest generates a "aws/request.Request" representing the
4956// client's request for the UpdateContainerInstancesState operation. The "output" return
4957// value will be populated with the request's response once the request completes
4958// successfully.
4959//
4960// Use "Send" method on the returned Request to send the API call to the service.
4961// the "output" return value is not valid until after Send returns without error.
4962//
4963// See UpdateContainerInstancesState for more information on using the UpdateContainerInstancesState
4964// API call, and error handling.
4965//
4966// This method is useful when you want to inject custom logic or configuration
4967// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4968//
4969//
4970//    // Example sending a request using the UpdateContainerInstancesStateRequest method.
4971//    req, resp := client.UpdateContainerInstancesStateRequest(params)
4972//
4973//    err := req.Send()
4974//    if err == nil { // resp is now filled
4975//        fmt.Println(resp)
4976//    }
4977//
4978// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
4979func (c *ECS) UpdateContainerInstancesStateRequest(input *UpdateContainerInstancesStateInput) (req *request.Request, output *UpdateContainerInstancesStateOutput) {
4980	op := &request.Operation{
4981		Name:       opUpdateContainerInstancesState,
4982		HTTPMethod: "POST",
4983		HTTPPath:   "/",
4984	}
4985
4986	if input == nil {
4987		input = &UpdateContainerInstancesStateInput{}
4988	}
4989
4990	output = &UpdateContainerInstancesStateOutput{}
4991	req = c.newRequest(op, input, output)
4992	return
4993}
4994
4995// UpdateContainerInstancesState API operation for Amazon EC2 Container Service.
4996//
4997// Modifies the status of an Amazon ECS container instance.
4998//
4999// Once a container instance has reached an ACTIVE state, you can change the
5000// status of a container instance to DRAINING to manually remove an instance
5001// from a cluster, for example to perform system updates, update the Docker
5002// daemon, or scale down the cluster size.
5003//
5004// A container instance cannot be changed to DRAINING until it has reached an
5005// ACTIVE status. If the instance is in any other status, an error will be received.
5006//
5007// When you set a container instance to DRAINING, Amazon ECS prevents new tasks
5008// from being scheduled for placement on the container instance and replacement
5009// service tasks are started on other container instances in the cluster if
5010// the resources are available. Service tasks on the container instance that
5011// are in the PENDING state are stopped immediately.
5012//
5013// Service tasks on the container instance that are in the RUNNING state are
5014// stopped and replaced according to the service's deployment configuration
5015// parameters, minimumHealthyPercent and maximumPercent. You can change the
5016// deployment configuration of your service using UpdateService.
5017//
5018//    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
5019//    temporarily during task replacement. For example, desiredCount is four
5020//    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
5021//    before starting two new tasks. If the minimum is 100%, the service scheduler
5022//    can't remove existing tasks until the replacement tasks are considered
5023//    healthy. Tasks for services that do not use a load balancer are considered
5024//    healthy if they are in the RUNNING state. Tasks for services that use
5025//    a load balancer are considered healthy if they are in the RUNNING state
5026//    and the container instance they are hosted on is reported as healthy by
5027//    the load balancer.
5028//
5029//    * The maximumPercent parameter represents an upper limit on the number
5030//    of running tasks during task replacement, which enables you to define
5031//    the replacement batch size. For example, if desiredCount is four tasks,
5032//    a maximum of 200% starts four new tasks before stopping the four tasks
5033//    to be drained, provided that the cluster resources required to do this
5034//    are available. If the maximum is 100%, then replacement tasks can't start
5035//    until the draining tasks have stopped.
5036//
5037// Any PENDING or RUNNING tasks that do not belong to a service are not affected.
5038// You must wait for them to finish or stop them manually.
5039//
5040// A container instance has completed draining when it has no more RUNNING tasks.
5041// You can verify this using ListTasks.
5042//
5043// When a container instance has been drained, you can set a container instance
5044// to ACTIVE status and once it has reached that status the Amazon ECS scheduler
5045// can begin scheduling tasks on the instance again.
5046//
5047// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5048// with awserr.Error's Code and Message methods to get detailed information about
5049// the error.
5050//
5051// See the AWS API reference guide for Amazon EC2 Container Service's
5052// API operation UpdateContainerInstancesState for usage and error information.
5053//
5054// Returned Error Types:
5055//   * ServerException
5056//   These errors are usually caused by a server issue.
5057//
5058//   * ClientException
5059//   These errors are usually caused by a client action, such as using an action
5060//   or resource on behalf of a user that doesn't have permissions to use the
5061//   action or resource, or specifying an identifier that is not valid.
5062//
5063//   * InvalidParameterException
5064//   The specified parameter is invalid. Review the available parameters for the
5065//   API request.
5066//
5067//   * ClusterNotFoundException
5068//   The specified cluster could not be found. You can view your available clusters
5069//   with ListClusters. Amazon ECS clusters are Region-specific.
5070//
5071// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
5072func (c *ECS) UpdateContainerInstancesState(input *UpdateContainerInstancesStateInput) (*UpdateContainerInstancesStateOutput, error) {
5073	req, out := c.UpdateContainerInstancesStateRequest(input)
5074	return out, req.Send()
5075}
5076
5077// UpdateContainerInstancesStateWithContext is the same as UpdateContainerInstancesState with the addition of
5078// the ability to pass a context and additional request options.
5079//
5080// See UpdateContainerInstancesState for details on how to use this API operation.
5081//
5082// The context must be non-nil and will be used for request cancellation. If
5083// the context is nil a panic will occur. In the future the SDK may create
5084// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5085// for more information on using Contexts.
5086func (c *ECS) UpdateContainerInstancesStateWithContext(ctx aws.Context, input *UpdateContainerInstancesStateInput, opts ...request.Option) (*UpdateContainerInstancesStateOutput, error) {
5087	req, out := c.UpdateContainerInstancesStateRequest(input)
5088	req.SetContext(ctx)
5089	req.ApplyOptions(opts...)
5090	return out, req.Send()
5091}
5092
5093const opUpdateService = "UpdateService"
5094
5095// UpdateServiceRequest generates a "aws/request.Request" representing the
5096// client's request for the UpdateService operation. The "output" return
5097// value will be populated with the request's response once the request completes
5098// successfully.
5099//
5100// Use "Send" method on the returned Request to send the API call to the service.
5101// the "output" return value is not valid until after Send returns without error.
5102//
5103// See UpdateService for more information on using the UpdateService
5104// API call, and error handling.
5105//
5106// This method is useful when you want to inject custom logic or configuration
5107// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5108//
5109//
5110//    // Example sending a request using the UpdateServiceRequest method.
5111//    req, resp := client.UpdateServiceRequest(params)
5112//
5113//    err := req.Send()
5114//    if err == nil { // resp is now filled
5115//        fmt.Println(resp)
5116//    }
5117//
5118// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
5119func (c *ECS) UpdateServiceRequest(input *UpdateServiceInput) (req *request.Request, output *UpdateServiceOutput) {
5120	op := &request.Operation{
5121		Name:       opUpdateService,
5122		HTTPMethod: "POST",
5123		HTTPPath:   "/",
5124	}
5125
5126	if input == nil {
5127		input = &UpdateServiceInput{}
5128	}
5129
5130	output = &UpdateServiceOutput{}
5131	req = c.newRequest(op, input, output)
5132	return
5133}
5134
5135// UpdateService API operation for Amazon EC2 Container Service.
5136//
5137//
5138// Updating the task placement strategies and constraints on an Amazon ECS service
5139// remains in preview and is a Beta Service as defined by and subject to the
5140// Beta Service Participation Service Terms located at https://aws.amazon.com/service-terms
5141// (https://aws.amazon.com/service-terms) ("Beta Terms"). These Beta Terms apply
5142// to your participation in this preview.
5143//
5144// Modifies the parameters of a service.
5145//
5146// For services using the rolling update (ECS) deployment controller, the desired
5147// count, deployment configuration, network configuration, task placement constraints
5148// and strategies, or task definition used can be updated.
5149//
5150// For services using the blue/green (CODE_DEPLOY) deployment controller, only
5151// the desired count, deployment configuration, task placement constraints and
5152// strategies, and health check grace period can be updated using this API.
5153// If the network configuration, platform version, or task definition need to
5154// be updated, a new AWS CodeDeploy deployment should be created. For more information,
5155// see CreateDeployment (https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html)
5156// in the AWS CodeDeploy API Reference.
5157//
5158// For services using an external deployment controller, you can update only
5159// the desired count, task placement constraints and strategies, and health
5160// check grace period using this API. If the launch type, load balancer, network
5161// configuration, platform version, or task definition need to be updated, you
5162// should create a new task set. For more information, see CreateTaskSet.
5163//
5164// You can add to or subtract from the number of instantiations of a task definition
5165// in a service by specifying the cluster that the service is running in and
5166// a new desiredCount parameter.
5167//
5168// If you have updated the Docker image of your application, you can create
5169// a new task definition with that image and deploy it to your service. The
5170// service scheduler uses the minimum healthy percent and maximum percent parameters
5171// (in the service's deployment configuration) to determine the deployment strategy.
5172//
5173// If your updated Docker image uses the same tag as what is in the existing
5174// task definition for your service (for example, my_image:latest), you do not
5175// need to create a new revision of your task definition. You can update the
5176// service using the forceNewDeployment option. The new tasks launched by the
5177// deployment pull the current image/tag combination from your repository when
5178// they start.
5179//
5180// You can also update the deployment configuration of a service. When a deployment
5181// is triggered by updating the task definition of a service, the service scheduler
5182// uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent,
5183// to determine the deployment strategy.
5184//
5185//    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
5186//    temporarily during a deployment. For example, if desiredCount is four
5187//    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
5188//    before starting two new tasks. Tasks for services that do not use a load
5189//    balancer are considered healthy if they are in the RUNNING state. Tasks
5190//    for services that use a load balancer are considered healthy if they are
5191//    in the RUNNING state and the container instance they are hosted on is
5192//    reported as healthy by the load balancer.
5193//
5194//    * The maximumPercent parameter represents an upper limit on the number
5195//    of running tasks during a deployment, which enables you to define the
5196//    deployment batch size. For example, if desiredCount is four tasks, a maximum
5197//    of 200% starts four new tasks before stopping the four older tasks (provided
5198//    that the cluster resources required to do this are available).
5199//
5200// When UpdateService stops a task during a deployment, the equivalent of docker
5201// stop is issued to the containers running in the task. This results in a SIGTERM
5202// and a 30-second timeout, after which SIGKILL is sent and the containers are
5203// forcibly stopped. If the container handles the SIGTERM gracefully and exits
5204// within 30 seconds from receiving it, no SIGKILL is sent.
5205//
5206// When the service scheduler launches new tasks, it determines task placement
5207// in your cluster with the following logic:
5208//
5209//    * Determine which of the container instances in your cluster can support
5210//    your service's task definition (for example, they have the required CPU,
5211//    memory, ports, and container instance attributes).
5212//
5213//    * By default, the service scheduler attempts to balance tasks across Availability
5214//    Zones in this manner (although you can choose a different placement strategy):
5215//    Sort the valid container instances by the fewest number of running tasks
5216//    for this service in the same Availability Zone as the instance. For example,
5217//    if zone A has one running service task and zones B and C each have zero,
5218//    valid container instances in either zone B or C are considered optimal
5219//    for placement. Place the new service task on a valid container instance
5220//    in an optimal Availability Zone (based on the previous steps), favoring
5221//    container instances with the fewest number of running tasks for this service.
5222//
5223// When the service scheduler stops running tasks, it attempts to maintain balance
5224// across the Availability Zones in your cluster using the following logic:
5225//
5226//    * Sort the container instances by the largest number of running tasks
5227//    for this service in the same Availability Zone as the instance. For example,
5228//    if zone A has one running service task and zones B and C each have two,
5229//    container instances in either zone B or C are considered optimal for termination.
5230//
5231//    * Stop the task on a container instance in an optimal Availability Zone
5232//    (based on the previous steps), favoring container instances with the largest
5233//    number of running tasks for this service.
5234//
5235// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5236// with awserr.Error's Code and Message methods to get detailed information about
5237// the error.
5238//
5239// See the AWS API reference guide for Amazon EC2 Container Service's
5240// API operation UpdateService for usage and error information.
5241//
5242// Returned Error Types:
5243//   * ServerException
5244//   These errors are usually caused by a server issue.
5245//
5246//   * ClientException
5247//   These errors are usually caused by a client action, such as using an action
5248//   or resource on behalf of a user that doesn't have permissions to use the
5249//   action or resource, or specifying an identifier that is not valid.
5250//
5251//   * InvalidParameterException
5252//   The specified parameter is invalid. Review the available parameters for the
5253//   API request.
5254//
5255//   * ClusterNotFoundException
5256//   The specified cluster could not be found. You can view your available clusters
5257//   with ListClusters. Amazon ECS clusters are Region-specific.
5258//
5259//   * ServiceNotFoundException
5260//   The specified service could not be found. You can view your available services
5261//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
5262//
5263//   * ServiceNotActiveException
5264//   The specified service is not active. You can't update a service that is inactive.
5265//   If you have previously deleted a service, you can re-create it with CreateService.
5266//
5267//   * PlatformUnknownException
5268//   The specified platform version does not exist.
5269//
5270//   * PlatformTaskDefinitionIncompatibilityException
5271//   The specified platform version does not satisfy the task definition's required
5272//   capabilities.
5273//
5274//   * AccessDeniedException
5275//   You do not have authorization to perform the requested action.
5276//
5277// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
5278func (c *ECS) UpdateService(input *UpdateServiceInput) (*UpdateServiceOutput, error) {
5279	req, out := c.UpdateServiceRequest(input)
5280	return out, req.Send()
5281}
5282
5283// UpdateServiceWithContext is the same as UpdateService with the addition of
5284// the ability to pass a context and additional request options.
5285//
5286// See UpdateService for details on how to use this API operation.
5287//
5288// The context must be non-nil and will be used for request cancellation. If
5289// the context is nil a panic will occur. In the future the SDK may create
5290// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5291// for more information on using Contexts.
5292func (c *ECS) UpdateServiceWithContext(ctx aws.Context, input *UpdateServiceInput, opts ...request.Option) (*UpdateServiceOutput, error) {
5293	req, out := c.UpdateServiceRequest(input)
5294	req.SetContext(ctx)
5295	req.ApplyOptions(opts...)
5296	return out, req.Send()
5297}
5298
5299const opUpdateServicePrimaryTaskSet = "UpdateServicePrimaryTaskSet"
5300
5301// UpdateServicePrimaryTaskSetRequest generates a "aws/request.Request" representing the
5302// client's request for the UpdateServicePrimaryTaskSet operation. The "output" return
5303// value will be populated with the request's response once the request completes
5304// successfully.
5305//
5306// Use "Send" method on the returned Request to send the API call to the service.
5307// the "output" return value is not valid until after Send returns without error.
5308//
5309// See UpdateServicePrimaryTaskSet for more information on using the UpdateServicePrimaryTaskSet
5310// API call, and error handling.
5311//
5312// This method is useful when you want to inject custom logic or configuration
5313// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5314//
5315//
5316//    // Example sending a request using the UpdateServicePrimaryTaskSetRequest method.
5317//    req, resp := client.UpdateServicePrimaryTaskSetRequest(params)
5318//
5319//    err := req.Send()
5320//    if err == nil { // resp is now filled
5321//        fmt.Println(resp)
5322//    }
5323//
5324// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServicePrimaryTaskSet
5325func (c *ECS) UpdateServicePrimaryTaskSetRequest(input *UpdateServicePrimaryTaskSetInput) (req *request.Request, output *UpdateServicePrimaryTaskSetOutput) {
5326	op := &request.Operation{
5327		Name:       opUpdateServicePrimaryTaskSet,
5328		HTTPMethod: "POST",
5329		HTTPPath:   "/",
5330	}
5331
5332	if input == nil {
5333		input = &UpdateServicePrimaryTaskSetInput{}
5334	}
5335
5336	output = &UpdateServicePrimaryTaskSetOutput{}
5337	req = c.newRequest(op, input, output)
5338	return
5339}
5340
5341// UpdateServicePrimaryTaskSet API operation for Amazon EC2 Container Service.
5342//
5343// Modifies which task set in a service is the primary task set. Any parameters
5344// that are updated on the primary task set in a service will transition to
5345// the service. This is used when a service uses the EXTERNAL deployment controller
5346// type. For more information, see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
5347// in the Amazon Elastic Container Service Developer Guide.
5348//
5349// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5350// with awserr.Error's Code and Message methods to get detailed information about
5351// the error.
5352//
5353// See the AWS API reference guide for Amazon EC2 Container Service's
5354// API operation UpdateServicePrimaryTaskSet for usage and error information.
5355//
5356// Returned Error Types:
5357//   * ServerException
5358//   These errors are usually caused by a server issue.
5359//
5360//   * ClientException
5361//   These errors are usually caused by a client action, such as using an action
5362//   or resource on behalf of a user that doesn't have permissions to use the
5363//   action or resource, or specifying an identifier that is not valid.
5364//
5365//   * InvalidParameterException
5366//   The specified parameter is invalid. Review the available parameters for the
5367//   API request.
5368//
5369//   * ClusterNotFoundException
5370//   The specified cluster could not be found. You can view your available clusters
5371//   with ListClusters. Amazon ECS clusters are Region-specific.
5372//
5373//   * UnsupportedFeatureException
5374//   The specified task is not supported in this Region.
5375//
5376//   * ServiceNotFoundException
5377//   The specified service could not be found. You can view your available services
5378//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
5379//
5380//   * ServiceNotActiveException
5381//   The specified service is not active. You can't update a service that is inactive.
5382//   If you have previously deleted a service, you can re-create it with CreateService.
5383//
5384//   * TaskSetNotFoundException
5385//   The specified task set could not be found. You can view your available task
5386//   sets with DescribeTaskSets. Task sets are specific to each cluster, service
5387//   and Region.
5388//
5389//   * AccessDeniedException
5390//   You do not have authorization to perform the requested action.
5391//
5392// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServicePrimaryTaskSet
5393func (c *ECS) UpdateServicePrimaryTaskSet(input *UpdateServicePrimaryTaskSetInput) (*UpdateServicePrimaryTaskSetOutput, error) {
5394	req, out := c.UpdateServicePrimaryTaskSetRequest(input)
5395	return out, req.Send()
5396}
5397
5398// UpdateServicePrimaryTaskSetWithContext is the same as UpdateServicePrimaryTaskSet with the addition of
5399// the ability to pass a context and additional request options.
5400//
5401// See UpdateServicePrimaryTaskSet for details on how to use this API operation.
5402//
5403// The context must be non-nil and will be used for request cancellation. If
5404// the context is nil a panic will occur. In the future the SDK may create
5405// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5406// for more information on using Contexts.
5407func (c *ECS) UpdateServicePrimaryTaskSetWithContext(ctx aws.Context, input *UpdateServicePrimaryTaskSetInput, opts ...request.Option) (*UpdateServicePrimaryTaskSetOutput, error) {
5408	req, out := c.UpdateServicePrimaryTaskSetRequest(input)
5409	req.SetContext(ctx)
5410	req.ApplyOptions(opts...)
5411	return out, req.Send()
5412}
5413
5414const opUpdateTaskSet = "UpdateTaskSet"
5415
5416// UpdateTaskSetRequest generates a "aws/request.Request" representing the
5417// client's request for the UpdateTaskSet operation. The "output" return
5418// value will be populated with the request's response once the request completes
5419// successfully.
5420//
5421// Use "Send" method on the returned Request to send the API call to the service.
5422// the "output" return value is not valid until after Send returns without error.
5423//
5424// See UpdateTaskSet for more information on using the UpdateTaskSet
5425// API call, and error handling.
5426//
5427// This method is useful when you want to inject custom logic or configuration
5428// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5429//
5430//
5431//    // Example sending a request using the UpdateTaskSetRequest method.
5432//    req, resp := client.UpdateTaskSetRequest(params)
5433//
5434//    err := req.Send()
5435//    if err == nil { // resp is now filled
5436//        fmt.Println(resp)
5437//    }
5438//
5439// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskSet
5440func (c *ECS) UpdateTaskSetRequest(input *UpdateTaskSetInput) (req *request.Request, output *UpdateTaskSetOutput) {
5441	op := &request.Operation{
5442		Name:       opUpdateTaskSet,
5443		HTTPMethod: "POST",
5444		HTTPPath:   "/",
5445	}
5446
5447	if input == nil {
5448		input = &UpdateTaskSetInput{}
5449	}
5450
5451	output = &UpdateTaskSetOutput{}
5452	req = c.newRequest(op, input, output)
5453	return
5454}
5455
5456// UpdateTaskSet API operation for Amazon EC2 Container Service.
5457//
5458// Modifies a task set. This is used when a service uses the EXTERNAL deployment
5459// controller type. For more information, see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
5460// in the Amazon Elastic Container Service Developer Guide.
5461//
5462// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5463// with awserr.Error's Code and Message methods to get detailed information about
5464// the error.
5465//
5466// See the AWS API reference guide for Amazon EC2 Container Service's
5467// API operation UpdateTaskSet for usage and error information.
5468//
5469// Returned Error Types:
5470//   * ServerException
5471//   These errors are usually caused by a server issue.
5472//
5473//   * ClientException
5474//   These errors are usually caused by a client action, such as using an action
5475//   or resource on behalf of a user that doesn't have permissions to use the
5476//   action or resource, or specifying an identifier that is not valid.
5477//
5478//   * InvalidParameterException
5479//   The specified parameter is invalid. Review the available parameters for the
5480//   API request.
5481//
5482//   * ClusterNotFoundException
5483//   The specified cluster could not be found. You can view your available clusters
5484//   with ListClusters. Amazon ECS clusters are Region-specific.
5485//
5486//   * UnsupportedFeatureException
5487//   The specified task is not supported in this Region.
5488//
5489//   * AccessDeniedException
5490//   You do not have authorization to perform the requested action.
5491//
5492//   * ServiceNotFoundException
5493//   The specified service could not be found. You can view your available services
5494//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
5495//
5496//   * ServiceNotActiveException
5497//   The specified service is not active. You can't update a service that is inactive.
5498//   If you have previously deleted a service, you can re-create it with CreateService.
5499//
5500//   * TaskSetNotFoundException
5501//   The specified task set could not be found. You can view your available task
5502//   sets with DescribeTaskSets. Task sets are specific to each cluster, service
5503//   and Region.
5504//
5505// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskSet
5506func (c *ECS) UpdateTaskSet(input *UpdateTaskSetInput) (*UpdateTaskSetOutput, error) {
5507	req, out := c.UpdateTaskSetRequest(input)
5508	return out, req.Send()
5509}
5510
5511// UpdateTaskSetWithContext is the same as UpdateTaskSet with the addition of
5512// the ability to pass a context and additional request options.
5513//
5514// See UpdateTaskSet for details on how to use this API operation.
5515//
5516// The context must be non-nil and will be used for request cancellation. If
5517// the context is nil a panic will occur. In the future the SDK may create
5518// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5519// for more information on using Contexts.
5520func (c *ECS) UpdateTaskSetWithContext(ctx aws.Context, input *UpdateTaskSetInput, opts ...request.Option) (*UpdateTaskSetOutput, error) {
5521	req, out := c.UpdateTaskSetRequest(input)
5522	req.SetContext(ctx)
5523	req.ApplyOptions(opts...)
5524	return out, req.Send()
5525}
5526
5527// You do not have authorization to perform the requested action.
5528type AccessDeniedException struct {
5529	_            struct{}                  `type:"structure"`
5530	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5531
5532	Message_ *string `locationName:"message" type:"string"`
5533}
5534
5535// String returns the string representation
5536func (s AccessDeniedException) String() string {
5537	return awsutil.Prettify(s)
5538}
5539
5540// GoString returns the string representation
5541func (s AccessDeniedException) GoString() string {
5542	return s.String()
5543}
5544
5545func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
5546	return &AccessDeniedException{
5547		RespMetadata: v,
5548	}
5549}
5550
5551// Code returns the exception type name.
5552func (s *AccessDeniedException) Code() string {
5553	return "AccessDeniedException"
5554}
5555
5556// Message returns the exception's message.
5557func (s *AccessDeniedException) Message() string {
5558	if s.Message_ != nil {
5559		return *s.Message_
5560	}
5561	return ""
5562}
5563
5564// OrigErr always returns nil, satisfies awserr.Error interface.
5565func (s *AccessDeniedException) OrigErr() error {
5566	return nil
5567}
5568
5569func (s *AccessDeniedException) Error() string {
5570	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5571}
5572
5573// Status code returns the HTTP status code for the request's response error.
5574func (s *AccessDeniedException) StatusCode() int {
5575	return s.RespMetadata.StatusCode
5576}
5577
5578// RequestID returns the service's response RequestID for request.
5579func (s *AccessDeniedException) RequestID() string {
5580	return s.RespMetadata.RequestID
5581}
5582
5583// An object representing a container instance or task attachment.
5584type Attachment struct {
5585	_ struct{} `type:"structure"`
5586
5587	// Details of the attachment. For elastic network interfaces, this includes
5588	// the network interface ID, the MAC address, the subnet ID, and the private
5589	// IPv4 address.
5590	Details []*KeyValuePair `locationName:"details" type:"list"`
5591
5592	// The unique identifier for the attachment.
5593	Id *string `locationName:"id" type:"string"`
5594
5595	// The status of the attachment. Valid values are PRECREATED, CREATED, ATTACHING,
5596	// ATTACHED, DETACHING, DETACHED, and DELETED.
5597	Status *string `locationName:"status" type:"string"`
5598
5599	// The type of the attachment, such as ElasticNetworkInterface.
5600	Type *string `locationName:"type" type:"string"`
5601}
5602
5603// String returns the string representation
5604func (s Attachment) String() string {
5605	return awsutil.Prettify(s)
5606}
5607
5608// GoString returns the string representation
5609func (s Attachment) GoString() string {
5610	return s.String()
5611}
5612
5613// SetDetails sets the Details field's value.
5614func (s *Attachment) SetDetails(v []*KeyValuePair) *Attachment {
5615	s.Details = v
5616	return s
5617}
5618
5619// SetId sets the Id field's value.
5620func (s *Attachment) SetId(v string) *Attachment {
5621	s.Id = &v
5622	return s
5623}
5624
5625// SetStatus sets the Status field's value.
5626func (s *Attachment) SetStatus(v string) *Attachment {
5627	s.Status = &v
5628	return s
5629}
5630
5631// SetType sets the Type field's value.
5632func (s *Attachment) SetType(v string) *Attachment {
5633	s.Type = &v
5634	return s
5635}
5636
5637// An object representing a change in state for a task attachment.
5638type AttachmentStateChange struct {
5639	_ struct{} `type:"structure"`
5640
5641	// The Amazon Resource Name (ARN) of the attachment.
5642	//
5643	// AttachmentArn is a required field
5644	AttachmentArn *string `locationName:"attachmentArn" type:"string" required:"true"`
5645
5646	// The status of the attachment.
5647	//
5648	// Status is a required field
5649	Status *string `locationName:"status" type:"string" required:"true"`
5650}
5651
5652// String returns the string representation
5653func (s AttachmentStateChange) String() string {
5654	return awsutil.Prettify(s)
5655}
5656
5657// GoString returns the string representation
5658func (s AttachmentStateChange) GoString() string {
5659	return s.String()
5660}
5661
5662// Validate inspects the fields of the type to determine if they are valid.
5663func (s *AttachmentStateChange) Validate() error {
5664	invalidParams := request.ErrInvalidParams{Context: "AttachmentStateChange"}
5665	if s.AttachmentArn == nil {
5666		invalidParams.Add(request.NewErrParamRequired("AttachmentArn"))
5667	}
5668	if s.Status == nil {
5669		invalidParams.Add(request.NewErrParamRequired("Status"))
5670	}
5671
5672	if invalidParams.Len() > 0 {
5673		return invalidParams
5674	}
5675	return nil
5676}
5677
5678// SetAttachmentArn sets the AttachmentArn field's value.
5679func (s *AttachmentStateChange) SetAttachmentArn(v string) *AttachmentStateChange {
5680	s.AttachmentArn = &v
5681	return s
5682}
5683
5684// SetStatus sets the Status field's value.
5685func (s *AttachmentStateChange) SetStatus(v string) *AttachmentStateChange {
5686	s.Status = &v
5687	return s
5688}
5689
5690// An attribute is a name-value pair associated with an Amazon ECS object. Attributes
5691// enable you to extend the Amazon ECS data model by adding custom metadata
5692// to your resources. For more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
5693// in the Amazon Elastic Container Service Developer Guide.
5694type Attribute struct {
5695	_ struct{} `type:"structure"`
5696
5697	// The name of the attribute. Up to 128 letters (uppercase and lowercase), numbers,
5698	// hyphens, underscores, and periods are allowed.
5699	//
5700	// Name is a required field
5701	Name *string `locationName:"name" type:"string" required:"true"`
5702
5703	// The ID of the target. You can specify the short form ID for a resource or
5704	// the full Amazon Resource Name (ARN).
5705	TargetId *string `locationName:"targetId" type:"string"`
5706
5707	// The type of the target with which to attach the attribute. This parameter
5708	// is required if you use the short form ID for a resource instead of the full
5709	// ARN.
5710	TargetType *string `locationName:"targetType" type:"string" enum:"TargetType"`
5711
5712	// The value of the attribute. Up to 128 letters (uppercase and lowercase),
5713	// numbers, hyphens, underscores, periods, at signs (@), forward slashes, colons,
5714	// and spaces are allowed.
5715	Value *string `locationName:"value" type:"string"`
5716}
5717
5718// String returns the string representation
5719func (s Attribute) String() string {
5720	return awsutil.Prettify(s)
5721}
5722
5723// GoString returns the string representation
5724func (s Attribute) GoString() string {
5725	return s.String()
5726}
5727
5728// Validate inspects the fields of the type to determine if they are valid.
5729func (s *Attribute) Validate() error {
5730	invalidParams := request.ErrInvalidParams{Context: "Attribute"}
5731	if s.Name == nil {
5732		invalidParams.Add(request.NewErrParamRequired("Name"))
5733	}
5734
5735	if invalidParams.Len() > 0 {
5736		return invalidParams
5737	}
5738	return nil
5739}
5740
5741// SetName sets the Name field's value.
5742func (s *Attribute) SetName(v string) *Attribute {
5743	s.Name = &v
5744	return s
5745}
5746
5747// SetTargetId sets the TargetId field's value.
5748func (s *Attribute) SetTargetId(v string) *Attribute {
5749	s.TargetId = &v
5750	return s
5751}
5752
5753// SetTargetType sets the TargetType field's value.
5754func (s *Attribute) SetTargetType(v string) *Attribute {
5755	s.TargetType = &v
5756	return s
5757}
5758
5759// SetValue sets the Value field's value.
5760func (s *Attribute) SetValue(v string) *Attribute {
5761	s.Value = &v
5762	return s
5763}
5764
5765// You can apply up to 10 custom attributes per resource. You can view the attributes
5766// of a resource with ListAttributes. You can remove existing attributes on
5767// a resource with DeleteAttributes.
5768type AttributeLimitExceededException struct {
5769	_            struct{}                  `type:"structure"`
5770	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5771
5772	Message_ *string `locationName:"message" type:"string"`
5773}
5774
5775// String returns the string representation
5776func (s AttributeLimitExceededException) String() string {
5777	return awsutil.Prettify(s)
5778}
5779
5780// GoString returns the string representation
5781func (s AttributeLimitExceededException) GoString() string {
5782	return s.String()
5783}
5784
5785func newErrorAttributeLimitExceededException(v protocol.ResponseMetadata) error {
5786	return &AttributeLimitExceededException{
5787		RespMetadata: v,
5788	}
5789}
5790
5791// Code returns the exception type name.
5792func (s *AttributeLimitExceededException) Code() string {
5793	return "AttributeLimitExceededException"
5794}
5795
5796// Message returns the exception's message.
5797func (s *AttributeLimitExceededException) Message() string {
5798	if s.Message_ != nil {
5799		return *s.Message_
5800	}
5801	return ""
5802}
5803
5804// OrigErr always returns nil, satisfies awserr.Error interface.
5805func (s *AttributeLimitExceededException) OrigErr() error {
5806	return nil
5807}
5808
5809func (s *AttributeLimitExceededException) Error() string {
5810	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5811}
5812
5813// Status code returns the HTTP status code for the request's response error.
5814func (s *AttributeLimitExceededException) StatusCode() int {
5815	return s.RespMetadata.StatusCode
5816}
5817
5818// RequestID returns the service's response RequestID for request.
5819func (s *AttributeLimitExceededException) RequestID() string {
5820	return s.RespMetadata.RequestID
5821}
5822
5823// The details of the Auto Scaling group for the capacity provider.
5824type AutoScalingGroupProvider struct {
5825	_ struct{} `type:"structure"`
5826
5827	// The Amazon Resource Name (ARN) that identifies the Auto Scaling group.
5828	//
5829	// AutoScalingGroupArn is a required field
5830	AutoScalingGroupArn *string `locationName:"autoScalingGroupArn" type:"string" required:"true"`
5831
5832	// The managed scaling settings for the Auto Scaling group capacity provider.
5833	ManagedScaling *ManagedScaling `locationName:"managedScaling" type:"structure"`
5834
5835	// The managed termination protection setting to use for the Auto Scaling group
5836	// capacity provider. This determines whether the Auto Scaling group has managed
5837	// termination protection.
5838	//
5839	// When using managed termination protection, managed scaling must also be used
5840	// otherwise managed termination protection will not work.
5841	//
5842	// When managed termination protection is enabled, Amazon ECS prevents the Amazon
5843	// EC2 instances in an Auto Scaling group that contain tasks from being terminated
5844	// during a scale-in action. The Auto Scaling group and each instance in the
5845	// Auto Scaling group must have instance protection from scale-in actions enabled
5846	// as well. For more information, see Instance Protection (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
5847	// in the AWS Auto Scaling User Guide.
5848	//
5849	// When managed termination protection is disabled, your Amazon EC2 instances
5850	// are not protected from termination when the Auto Scaling group scales in.
5851	ManagedTerminationProtection *string `locationName:"managedTerminationProtection" type:"string" enum:"ManagedTerminationProtection"`
5852}
5853
5854// String returns the string representation
5855func (s AutoScalingGroupProvider) String() string {
5856	return awsutil.Prettify(s)
5857}
5858
5859// GoString returns the string representation
5860func (s AutoScalingGroupProvider) GoString() string {
5861	return s.String()
5862}
5863
5864// Validate inspects the fields of the type to determine if they are valid.
5865func (s *AutoScalingGroupProvider) Validate() error {
5866	invalidParams := request.ErrInvalidParams{Context: "AutoScalingGroupProvider"}
5867	if s.AutoScalingGroupArn == nil {
5868		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupArn"))
5869	}
5870	if s.ManagedScaling != nil {
5871		if err := s.ManagedScaling.Validate(); err != nil {
5872			invalidParams.AddNested("ManagedScaling", err.(request.ErrInvalidParams))
5873		}
5874	}
5875
5876	if invalidParams.Len() > 0 {
5877		return invalidParams
5878	}
5879	return nil
5880}
5881
5882// SetAutoScalingGroupArn sets the AutoScalingGroupArn field's value.
5883func (s *AutoScalingGroupProvider) SetAutoScalingGroupArn(v string) *AutoScalingGroupProvider {
5884	s.AutoScalingGroupArn = &v
5885	return s
5886}
5887
5888// SetManagedScaling sets the ManagedScaling field's value.
5889func (s *AutoScalingGroupProvider) SetManagedScaling(v *ManagedScaling) *AutoScalingGroupProvider {
5890	s.ManagedScaling = v
5891	return s
5892}
5893
5894// SetManagedTerminationProtection sets the ManagedTerminationProtection field's value.
5895func (s *AutoScalingGroupProvider) SetManagedTerminationProtection(v string) *AutoScalingGroupProvider {
5896	s.ManagedTerminationProtection = &v
5897	return s
5898}
5899
5900// An object representing the networking details for a task or service.
5901type AwsVpcConfiguration struct {
5902	_ struct{} `type:"structure"`
5903
5904	// Whether the task's elastic network interface receives a public IP address.
5905	// The default value is DISABLED.
5906	AssignPublicIp *string `locationName:"assignPublicIp" type:"string" enum:"AssignPublicIp"`
5907
5908	// The security groups associated with the task or service. If you do not specify
5909	// a security group, the default security group for the VPC is used. There is
5910	// a limit of 5 security groups that can be specified per AwsVpcConfiguration.
5911	//
5912	// All specified security groups must be from the same VPC.
5913	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
5914
5915	// The subnets associated with the task or service. There is a limit of 16 subnets
5916	// that can be specified per AwsVpcConfiguration.
5917	//
5918	// All specified subnets must be from the same VPC.
5919	//
5920	// Subnets is a required field
5921	Subnets []*string `locationName:"subnets" type:"list" required:"true"`
5922}
5923
5924// String returns the string representation
5925func (s AwsVpcConfiguration) String() string {
5926	return awsutil.Prettify(s)
5927}
5928
5929// GoString returns the string representation
5930func (s AwsVpcConfiguration) GoString() string {
5931	return s.String()
5932}
5933
5934// Validate inspects the fields of the type to determine if they are valid.
5935func (s *AwsVpcConfiguration) Validate() error {
5936	invalidParams := request.ErrInvalidParams{Context: "AwsVpcConfiguration"}
5937	if s.Subnets == nil {
5938		invalidParams.Add(request.NewErrParamRequired("Subnets"))
5939	}
5940
5941	if invalidParams.Len() > 0 {
5942		return invalidParams
5943	}
5944	return nil
5945}
5946
5947// SetAssignPublicIp sets the AssignPublicIp field's value.
5948func (s *AwsVpcConfiguration) SetAssignPublicIp(v string) *AwsVpcConfiguration {
5949	s.AssignPublicIp = &v
5950	return s
5951}
5952
5953// SetSecurityGroups sets the SecurityGroups field's value.
5954func (s *AwsVpcConfiguration) SetSecurityGroups(v []*string) *AwsVpcConfiguration {
5955	s.SecurityGroups = v
5956	return s
5957}
5958
5959// SetSubnets sets the Subnets field's value.
5960func (s *AwsVpcConfiguration) SetSubnets(v []*string) *AwsVpcConfiguration {
5961	s.Subnets = v
5962	return s
5963}
5964
5965// Your AWS account has been blocked. For more information, contact AWS Support
5966// (http://aws.amazon.com/contact-us/).
5967type BlockedException struct {
5968	_            struct{}                  `type:"structure"`
5969	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5970
5971	Message_ *string `locationName:"message" type:"string"`
5972}
5973
5974// String returns the string representation
5975func (s BlockedException) String() string {
5976	return awsutil.Prettify(s)
5977}
5978
5979// GoString returns the string representation
5980func (s BlockedException) GoString() string {
5981	return s.String()
5982}
5983
5984func newErrorBlockedException(v protocol.ResponseMetadata) error {
5985	return &BlockedException{
5986		RespMetadata: v,
5987	}
5988}
5989
5990// Code returns the exception type name.
5991func (s *BlockedException) Code() string {
5992	return "BlockedException"
5993}
5994
5995// Message returns the exception's message.
5996func (s *BlockedException) Message() string {
5997	if s.Message_ != nil {
5998		return *s.Message_
5999	}
6000	return ""
6001}
6002
6003// OrigErr always returns nil, satisfies awserr.Error interface.
6004func (s *BlockedException) OrigErr() error {
6005	return nil
6006}
6007
6008func (s *BlockedException) Error() string {
6009	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6010}
6011
6012// Status code returns the HTTP status code for the request's response error.
6013func (s *BlockedException) StatusCode() int {
6014	return s.RespMetadata.StatusCode
6015}
6016
6017// RequestID returns the service's response RequestID for request.
6018func (s *BlockedException) RequestID() string {
6019	return s.RespMetadata.RequestID
6020}
6021
6022// The details of a capacity provider.
6023type CapacityProvider struct {
6024	_ struct{} `type:"structure"`
6025
6026	// The Auto Scaling group settings for the capacity provider.
6027	AutoScalingGroupProvider *AutoScalingGroupProvider `locationName:"autoScalingGroupProvider" type:"structure"`
6028
6029	// The Amazon Resource Name (ARN) that identifies the capacity provider.
6030	CapacityProviderArn *string `locationName:"capacityProviderArn" type:"string"`
6031
6032	// The name of the capacity provider.
6033	Name *string `locationName:"name" type:"string"`
6034
6035	// The current status of the capacity provider. Only capacity providers in an
6036	// ACTIVE state can be used in a cluster.
6037	Status *string `locationName:"status" type:"string" enum:"CapacityProviderStatus"`
6038
6039	// The metadata that you apply to the capacity provider to help you categorize
6040	// and organize it. Each tag consists of a key and an optional value, both of
6041	// which you define.
6042	//
6043	// The following basic restrictions apply to tags:
6044	//
6045	//    * Maximum number of tags per resource - 50
6046	//
6047	//    * For each resource, each tag key must be unique, and each tag key can
6048	//    have only one value.
6049	//
6050	//    * Maximum key length - 128 Unicode characters in UTF-8
6051	//
6052	//    * Maximum value length - 256 Unicode characters in UTF-8
6053	//
6054	//    * If your tagging schema is used across multiple services and resources,
6055	//    remember that other services may have restrictions on allowed characters.
6056	//    Generally allowed characters are: letters, numbers, and spaces representable
6057	//    in UTF-8, and the following characters: + - = . _ : / @.
6058	//
6059	//    * Tag keys and values are case-sensitive.
6060	//
6061	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
6062	//    as a prefix for either keys or values as it is reserved for AWS use. You
6063	//    cannot edit or delete tag keys or values with this prefix. Tags with this
6064	//    prefix do not count against your tags per resource limit.
6065	Tags []*Tag `locationName:"tags" type:"list"`
6066}
6067
6068// String returns the string representation
6069func (s CapacityProvider) String() string {
6070	return awsutil.Prettify(s)
6071}
6072
6073// GoString returns the string representation
6074func (s CapacityProvider) GoString() string {
6075	return s.String()
6076}
6077
6078// SetAutoScalingGroupProvider sets the AutoScalingGroupProvider field's value.
6079func (s *CapacityProvider) SetAutoScalingGroupProvider(v *AutoScalingGroupProvider) *CapacityProvider {
6080	s.AutoScalingGroupProvider = v
6081	return s
6082}
6083
6084// SetCapacityProviderArn sets the CapacityProviderArn field's value.
6085func (s *CapacityProvider) SetCapacityProviderArn(v string) *CapacityProvider {
6086	s.CapacityProviderArn = &v
6087	return s
6088}
6089
6090// SetName sets the Name field's value.
6091func (s *CapacityProvider) SetName(v string) *CapacityProvider {
6092	s.Name = &v
6093	return s
6094}
6095
6096// SetStatus sets the Status field's value.
6097func (s *CapacityProvider) SetStatus(v string) *CapacityProvider {
6098	s.Status = &v
6099	return s
6100}
6101
6102// SetTags sets the Tags field's value.
6103func (s *CapacityProvider) SetTags(v []*Tag) *CapacityProvider {
6104	s.Tags = v
6105	return s
6106}
6107
6108// The details of a capacity provider strategy.
6109type CapacityProviderStrategyItem struct {
6110	_ struct{} `type:"structure"`
6111
6112	// The base value designates how many tasks, at a minimum, to run on the specified
6113	// capacity provider. Only one capacity provider in a capacity provider strategy
6114	// can have a base defined.
6115	Base *int64 `locationName:"base" type:"integer"`
6116
6117	// The short name of the capacity provider.
6118	//
6119	// CapacityProvider is a required field
6120	CapacityProvider *string `locationName:"capacityProvider" type:"string" required:"true"`
6121
6122	// The weight value designates the relative percentage of the total number of
6123	// tasks launched that should use the specified capacity provider.
6124	//
6125	// For example, if you have a strategy that contains two capacity providers
6126	// and both have a weight of 1, then when the base is satisfied, the tasks will
6127	// be split evenly across the two capacity providers. Using that same logic,
6128	// if you specify a weight of 1 for capacityProviderA and a weight of 4 for
6129	// capacityProviderB, then for every one task that is run using capacityProviderA,
6130	// four tasks would use capacityProviderB.
6131	Weight *int64 `locationName:"weight" type:"integer"`
6132}
6133
6134// String returns the string representation
6135func (s CapacityProviderStrategyItem) String() string {
6136	return awsutil.Prettify(s)
6137}
6138
6139// GoString returns the string representation
6140func (s CapacityProviderStrategyItem) GoString() string {
6141	return s.String()
6142}
6143
6144// Validate inspects the fields of the type to determine if they are valid.
6145func (s *CapacityProviderStrategyItem) Validate() error {
6146	invalidParams := request.ErrInvalidParams{Context: "CapacityProviderStrategyItem"}
6147	if s.CapacityProvider == nil {
6148		invalidParams.Add(request.NewErrParamRequired("CapacityProvider"))
6149	}
6150
6151	if invalidParams.Len() > 0 {
6152		return invalidParams
6153	}
6154	return nil
6155}
6156
6157// SetBase sets the Base field's value.
6158func (s *CapacityProviderStrategyItem) SetBase(v int64) *CapacityProviderStrategyItem {
6159	s.Base = &v
6160	return s
6161}
6162
6163// SetCapacityProvider sets the CapacityProvider field's value.
6164func (s *CapacityProviderStrategyItem) SetCapacityProvider(v string) *CapacityProviderStrategyItem {
6165	s.CapacityProvider = &v
6166	return s
6167}
6168
6169// SetWeight sets the Weight field's value.
6170func (s *CapacityProviderStrategyItem) SetWeight(v int64) *CapacityProviderStrategyItem {
6171	s.Weight = &v
6172	return s
6173}
6174
6175// These errors are usually caused by a client action, such as using an action
6176// or resource on behalf of a user that doesn't have permissions to use the
6177// action or resource, or specifying an identifier that is not valid.
6178type ClientException struct {
6179	_            struct{}                  `type:"structure"`
6180	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6181
6182	Message_ *string `locationName:"message" type:"string"`
6183}
6184
6185// String returns the string representation
6186func (s ClientException) String() string {
6187	return awsutil.Prettify(s)
6188}
6189
6190// GoString returns the string representation
6191func (s ClientException) GoString() string {
6192	return s.String()
6193}
6194
6195func newErrorClientException(v protocol.ResponseMetadata) error {
6196	return &ClientException{
6197		RespMetadata: v,
6198	}
6199}
6200
6201// Code returns the exception type name.
6202func (s *ClientException) Code() string {
6203	return "ClientException"
6204}
6205
6206// Message returns the exception's message.
6207func (s *ClientException) Message() string {
6208	if s.Message_ != nil {
6209		return *s.Message_
6210	}
6211	return ""
6212}
6213
6214// OrigErr always returns nil, satisfies awserr.Error interface.
6215func (s *ClientException) OrigErr() error {
6216	return nil
6217}
6218
6219func (s *ClientException) Error() string {
6220	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6221}
6222
6223// Status code returns the HTTP status code for the request's response error.
6224func (s *ClientException) StatusCode() int {
6225	return s.RespMetadata.StatusCode
6226}
6227
6228// RequestID returns the service's response RequestID for request.
6229func (s *ClientException) RequestID() string {
6230	return s.RespMetadata.RequestID
6231}
6232
6233// A regional grouping of one or more container instances on which you can run
6234// task requests. Each account receives a default cluster the first time you
6235// use the Amazon ECS service, but you may also create other clusters. Clusters
6236// may contain more than one instance type simultaneously.
6237type Cluster struct {
6238	_ struct{} `type:"structure"`
6239
6240	// The number of services that are running on the cluster in an ACTIVE state.
6241	// You can view these services with ListServices.
6242	ActiveServicesCount *int64 `locationName:"activeServicesCount" type:"integer"`
6243
6244	// The resources attached to a cluster. When using a capacity provider with
6245	// a cluster, the Auto Scaling plan that is created will be returned as a cluster
6246	// attachment.
6247	Attachments []*Attachment `locationName:"attachments" type:"list"`
6248
6249	// The status of the capacity providers associated with the cluster. The following
6250	// are the states that will be returned:
6251	//
6252	// UPDATE_IN_PROGRESS
6253	//
6254	// The available capacity providers for the cluster are updating. This occurs
6255	// when the Auto Scaling plan is provisioning or deprovisioning.
6256	//
6257	// UPDATE_COMPLETE
6258	//
6259	// The capacity providers have successfully updated.
6260	//
6261	// UPDATE_FAILED
6262	//
6263	// The capacity provider updates failed.
6264	AttachmentsStatus *string `locationName:"attachmentsStatus" type:"string"`
6265
6266	// The capacity providers associated with the cluster.
6267	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
6268
6269	// The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains
6270	// the arn:aws:ecs namespace, followed by the Region of the cluster, the AWS
6271	// account ID of the cluster owner, the cluster namespace, and then the cluster
6272	// name. For example, arn:aws:ecs:region:012345678910:cluster/test.
6273	ClusterArn *string `locationName:"clusterArn" type:"string"`
6274
6275	// A user-generated string that you use to identify your cluster.
6276	ClusterName *string `locationName:"clusterName" type:"string"`
6277
6278	// The default capacity provider strategy for the cluster. When services or
6279	// tasks are run in the cluster with no launch type or capacity provider strategy
6280	// specified, the default capacity provider strategy is used.
6281	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list"`
6282
6283	// The number of tasks in the cluster that are in the PENDING state.
6284	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
6285
6286	// The number of container instances registered into the cluster. This includes
6287	// container instances in both ACTIVE and DRAINING status.
6288	RegisteredContainerInstancesCount *int64 `locationName:"registeredContainerInstancesCount" type:"integer"`
6289
6290	// The number of tasks in the cluster that are in the RUNNING state.
6291	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
6292
6293	// The settings for the cluster. This parameter indicates whether CloudWatch
6294	// Container Insights is enabled or disabled for a cluster.
6295	Settings []*ClusterSetting `locationName:"settings" type:"list"`
6296
6297	// Additional information about your clusters that are separated by launch type,
6298	// including:
6299	//
6300	//    * runningEC2TasksCount
6301	//
6302	//    * RunningFargateTasksCount
6303	//
6304	//    * pendingEC2TasksCount
6305	//
6306	//    * pendingFargateTasksCount
6307	//
6308	//    * activeEC2ServiceCount
6309	//
6310	//    * activeFargateServiceCount
6311	//
6312	//    * drainingEC2ServiceCount
6313	//
6314	//    * drainingFargateServiceCount
6315	Statistics []*KeyValuePair `locationName:"statistics" type:"list"`
6316
6317	// The status of the cluster. The following are the possible states that will
6318	// be returned.
6319	//
6320	// ACTIVE
6321	//
6322	// The cluster is ready to accept tasks and if applicable you can register container
6323	// instances with the cluster.
6324	//
6325	// PROVISIONING
6326	//
6327	// The cluster has capacity providers associated with it and the resources needed
6328	// for the capacity provider are being created.
6329	//
6330	// DEPROVISIONING
6331	//
6332	// The cluster has capacity providers associated with it and the resources needed
6333	// for the capacity provider are being deleted.
6334	//
6335	// FAILED
6336	//
6337	// The cluster has capacity providers associated with it and the resources needed
6338	// for the capacity provider have failed to create.
6339	//
6340	// INACTIVE
6341	//
6342	// The cluster has been deleted. Clusters with an INACTIVE status may remain
6343	// discoverable in your account for a period of time. However, this behavior
6344	// is subject to change in the future, so you should not rely on INACTIVE clusters
6345	// persisting.
6346	Status *string `locationName:"status" type:"string"`
6347
6348	// The metadata that you apply to the cluster to help you categorize and organize
6349	// them. Each tag consists of a key and an optional value, both of which you
6350	// define.
6351	//
6352	// The following basic restrictions apply to tags:
6353	//
6354	//    * Maximum number of tags per resource - 50
6355	//
6356	//    * For each resource, each tag key must be unique, and each tag key can
6357	//    have only one value.
6358	//
6359	//    * Maximum key length - 128 Unicode characters in UTF-8
6360	//
6361	//    * Maximum value length - 256 Unicode characters in UTF-8
6362	//
6363	//    * If your tagging schema is used across multiple services and resources,
6364	//    remember that other services may have restrictions on allowed characters.
6365	//    Generally allowed characters are: letters, numbers, and spaces representable
6366	//    in UTF-8, and the following characters: + - = . _ : / @.
6367	//
6368	//    * Tag keys and values are case-sensitive.
6369	//
6370	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
6371	//    as a prefix for either keys or values as it is reserved for AWS use. You
6372	//    cannot edit or delete tag keys or values with this prefix. Tags with this
6373	//    prefix do not count against your tags per resource limit.
6374	Tags []*Tag `locationName:"tags" type:"list"`
6375}
6376
6377// String returns the string representation
6378func (s Cluster) String() string {
6379	return awsutil.Prettify(s)
6380}
6381
6382// GoString returns the string representation
6383func (s Cluster) GoString() string {
6384	return s.String()
6385}
6386
6387// SetActiveServicesCount sets the ActiveServicesCount field's value.
6388func (s *Cluster) SetActiveServicesCount(v int64) *Cluster {
6389	s.ActiveServicesCount = &v
6390	return s
6391}
6392
6393// SetAttachments sets the Attachments field's value.
6394func (s *Cluster) SetAttachments(v []*Attachment) *Cluster {
6395	s.Attachments = v
6396	return s
6397}
6398
6399// SetAttachmentsStatus sets the AttachmentsStatus field's value.
6400func (s *Cluster) SetAttachmentsStatus(v string) *Cluster {
6401	s.AttachmentsStatus = &v
6402	return s
6403}
6404
6405// SetCapacityProviders sets the CapacityProviders field's value.
6406func (s *Cluster) SetCapacityProviders(v []*string) *Cluster {
6407	s.CapacityProviders = v
6408	return s
6409}
6410
6411// SetClusterArn sets the ClusterArn field's value.
6412func (s *Cluster) SetClusterArn(v string) *Cluster {
6413	s.ClusterArn = &v
6414	return s
6415}
6416
6417// SetClusterName sets the ClusterName field's value.
6418func (s *Cluster) SetClusterName(v string) *Cluster {
6419	s.ClusterName = &v
6420	return s
6421}
6422
6423// SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
6424func (s *Cluster) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Cluster {
6425	s.DefaultCapacityProviderStrategy = v
6426	return s
6427}
6428
6429// SetPendingTasksCount sets the PendingTasksCount field's value.
6430func (s *Cluster) SetPendingTasksCount(v int64) *Cluster {
6431	s.PendingTasksCount = &v
6432	return s
6433}
6434
6435// SetRegisteredContainerInstancesCount sets the RegisteredContainerInstancesCount field's value.
6436func (s *Cluster) SetRegisteredContainerInstancesCount(v int64) *Cluster {
6437	s.RegisteredContainerInstancesCount = &v
6438	return s
6439}
6440
6441// SetRunningTasksCount sets the RunningTasksCount field's value.
6442func (s *Cluster) SetRunningTasksCount(v int64) *Cluster {
6443	s.RunningTasksCount = &v
6444	return s
6445}
6446
6447// SetSettings sets the Settings field's value.
6448func (s *Cluster) SetSettings(v []*ClusterSetting) *Cluster {
6449	s.Settings = v
6450	return s
6451}
6452
6453// SetStatistics sets the Statistics field's value.
6454func (s *Cluster) SetStatistics(v []*KeyValuePair) *Cluster {
6455	s.Statistics = v
6456	return s
6457}
6458
6459// SetStatus sets the Status field's value.
6460func (s *Cluster) SetStatus(v string) *Cluster {
6461	s.Status = &v
6462	return s
6463}
6464
6465// SetTags sets the Tags field's value.
6466func (s *Cluster) SetTags(v []*Tag) *Cluster {
6467	s.Tags = v
6468	return s
6469}
6470
6471// You cannot delete a cluster that has registered container instances. First,
6472// deregister the container instances before you can delete the cluster. For
6473// more information, see DeregisterContainerInstance.
6474type ClusterContainsContainerInstancesException struct {
6475	_            struct{}                  `type:"structure"`
6476	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6477
6478	Message_ *string `locationName:"message" type:"string"`
6479}
6480
6481// String returns the string representation
6482func (s ClusterContainsContainerInstancesException) String() string {
6483	return awsutil.Prettify(s)
6484}
6485
6486// GoString returns the string representation
6487func (s ClusterContainsContainerInstancesException) GoString() string {
6488	return s.String()
6489}
6490
6491func newErrorClusterContainsContainerInstancesException(v protocol.ResponseMetadata) error {
6492	return &ClusterContainsContainerInstancesException{
6493		RespMetadata: v,
6494	}
6495}
6496
6497// Code returns the exception type name.
6498func (s *ClusterContainsContainerInstancesException) Code() string {
6499	return "ClusterContainsContainerInstancesException"
6500}
6501
6502// Message returns the exception's message.
6503func (s *ClusterContainsContainerInstancesException) Message() string {
6504	if s.Message_ != nil {
6505		return *s.Message_
6506	}
6507	return ""
6508}
6509
6510// OrigErr always returns nil, satisfies awserr.Error interface.
6511func (s *ClusterContainsContainerInstancesException) OrigErr() error {
6512	return nil
6513}
6514
6515func (s *ClusterContainsContainerInstancesException) Error() string {
6516	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6517}
6518
6519// Status code returns the HTTP status code for the request's response error.
6520func (s *ClusterContainsContainerInstancesException) StatusCode() int {
6521	return s.RespMetadata.StatusCode
6522}
6523
6524// RequestID returns the service's response RequestID for request.
6525func (s *ClusterContainsContainerInstancesException) RequestID() string {
6526	return s.RespMetadata.RequestID
6527}
6528
6529// You cannot delete a cluster that contains services. First, update the service
6530// to reduce its desired task count to 0 and then delete the service. For more
6531// information, see UpdateService and DeleteService.
6532type ClusterContainsServicesException struct {
6533	_            struct{}                  `type:"structure"`
6534	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6535
6536	Message_ *string `locationName:"message" type:"string"`
6537}
6538
6539// String returns the string representation
6540func (s ClusterContainsServicesException) String() string {
6541	return awsutil.Prettify(s)
6542}
6543
6544// GoString returns the string representation
6545func (s ClusterContainsServicesException) GoString() string {
6546	return s.String()
6547}
6548
6549func newErrorClusterContainsServicesException(v protocol.ResponseMetadata) error {
6550	return &ClusterContainsServicesException{
6551		RespMetadata: v,
6552	}
6553}
6554
6555// Code returns the exception type name.
6556func (s *ClusterContainsServicesException) Code() string {
6557	return "ClusterContainsServicesException"
6558}
6559
6560// Message returns the exception's message.
6561func (s *ClusterContainsServicesException) Message() string {
6562	if s.Message_ != nil {
6563		return *s.Message_
6564	}
6565	return ""
6566}
6567
6568// OrigErr always returns nil, satisfies awserr.Error interface.
6569func (s *ClusterContainsServicesException) OrigErr() error {
6570	return nil
6571}
6572
6573func (s *ClusterContainsServicesException) Error() string {
6574	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6575}
6576
6577// Status code returns the HTTP status code for the request's response error.
6578func (s *ClusterContainsServicesException) StatusCode() int {
6579	return s.RespMetadata.StatusCode
6580}
6581
6582// RequestID returns the service's response RequestID for request.
6583func (s *ClusterContainsServicesException) RequestID() string {
6584	return s.RespMetadata.RequestID
6585}
6586
6587// You cannot delete a cluster that has active tasks.
6588type ClusterContainsTasksException struct {
6589	_            struct{}                  `type:"structure"`
6590	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6591
6592	Message_ *string `locationName:"message" type:"string"`
6593}
6594
6595// String returns the string representation
6596func (s ClusterContainsTasksException) String() string {
6597	return awsutil.Prettify(s)
6598}
6599
6600// GoString returns the string representation
6601func (s ClusterContainsTasksException) GoString() string {
6602	return s.String()
6603}
6604
6605func newErrorClusterContainsTasksException(v protocol.ResponseMetadata) error {
6606	return &ClusterContainsTasksException{
6607		RespMetadata: v,
6608	}
6609}
6610
6611// Code returns the exception type name.
6612func (s *ClusterContainsTasksException) Code() string {
6613	return "ClusterContainsTasksException"
6614}
6615
6616// Message returns the exception's message.
6617func (s *ClusterContainsTasksException) Message() string {
6618	if s.Message_ != nil {
6619		return *s.Message_
6620	}
6621	return ""
6622}
6623
6624// OrigErr always returns nil, satisfies awserr.Error interface.
6625func (s *ClusterContainsTasksException) OrigErr() error {
6626	return nil
6627}
6628
6629func (s *ClusterContainsTasksException) Error() string {
6630	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6631}
6632
6633// Status code returns the HTTP status code for the request's response error.
6634func (s *ClusterContainsTasksException) StatusCode() int {
6635	return s.RespMetadata.StatusCode
6636}
6637
6638// RequestID returns the service's response RequestID for request.
6639func (s *ClusterContainsTasksException) RequestID() string {
6640	return s.RespMetadata.RequestID
6641}
6642
6643// The specified cluster could not be found. You can view your available clusters
6644// with ListClusters. Amazon ECS clusters are Region-specific.
6645type ClusterNotFoundException struct {
6646	_            struct{}                  `type:"structure"`
6647	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6648
6649	Message_ *string `locationName:"message" type:"string"`
6650}
6651
6652// String returns the string representation
6653func (s ClusterNotFoundException) String() string {
6654	return awsutil.Prettify(s)
6655}
6656
6657// GoString returns the string representation
6658func (s ClusterNotFoundException) GoString() string {
6659	return s.String()
6660}
6661
6662func newErrorClusterNotFoundException(v protocol.ResponseMetadata) error {
6663	return &ClusterNotFoundException{
6664		RespMetadata: v,
6665	}
6666}
6667
6668// Code returns the exception type name.
6669func (s *ClusterNotFoundException) Code() string {
6670	return "ClusterNotFoundException"
6671}
6672
6673// Message returns the exception's message.
6674func (s *ClusterNotFoundException) Message() string {
6675	if s.Message_ != nil {
6676		return *s.Message_
6677	}
6678	return ""
6679}
6680
6681// OrigErr always returns nil, satisfies awserr.Error interface.
6682func (s *ClusterNotFoundException) OrigErr() error {
6683	return nil
6684}
6685
6686func (s *ClusterNotFoundException) Error() string {
6687	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6688}
6689
6690// Status code returns the HTTP status code for the request's response error.
6691func (s *ClusterNotFoundException) StatusCode() int {
6692	return s.RespMetadata.StatusCode
6693}
6694
6695// RequestID returns the service's response RequestID for request.
6696func (s *ClusterNotFoundException) RequestID() string {
6697	return s.RespMetadata.RequestID
6698}
6699
6700// The settings to use when creating a cluster. This parameter is used to enable
6701// CloudWatch Container Insights for a cluster.
6702type ClusterSetting struct {
6703	_ struct{} `type:"structure"`
6704
6705	// The name of the cluster setting. The only supported value is containerInsights.
6706	Name *string `locationName:"name" type:"string" enum:"ClusterSettingName"`
6707
6708	// The value to set for the cluster setting. The supported values are enabled
6709	// and disabled. If enabled is specified, CloudWatch Container Insights will
6710	// be enabled for the cluster, otherwise it will be disabled unless the containerInsights
6711	// account setting is enabled. If a cluster value is specified, it will override
6712	// the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.
6713	Value *string `locationName:"value" type:"string"`
6714}
6715
6716// String returns the string representation
6717func (s ClusterSetting) String() string {
6718	return awsutil.Prettify(s)
6719}
6720
6721// GoString returns the string representation
6722func (s ClusterSetting) GoString() string {
6723	return s.String()
6724}
6725
6726// SetName sets the Name field's value.
6727func (s *ClusterSetting) SetName(v string) *ClusterSetting {
6728	s.Name = &v
6729	return s
6730}
6731
6732// SetValue sets the Value field's value.
6733func (s *ClusterSetting) SetValue(v string) *ClusterSetting {
6734	s.Value = &v
6735	return s
6736}
6737
6738// A Docker container that is part of a task.
6739type Container struct {
6740	_ struct{} `type:"structure"`
6741
6742	// The Amazon Resource Name (ARN) of the container.
6743	ContainerArn *string `locationName:"containerArn" type:"string"`
6744
6745	// The number of CPU units set for the container. The value will be 0 if no
6746	// value was specified in the container definition when the task definition
6747	// was registered.
6748	Cpu *string `locationName:"cpu" type:"string"`
6749
6750	// The exit code returned from the container.
6751	ExitCode *int64 `locationName:"exitCode" type:"integer"`
6752
6753	// The IDs of each GPU assigned to the container.
6754	GpuIds []*string `locationName:"gpuIds" type:"list"`
6755
6756	// The health status of the container. If health checks are not configured for
6757	// this container in its task definition, then it reports the health status
6758	// as UNKNOWN.
6759	HealthStatus *string `locationName:"healthStatus" type:"string" enum:"HealthStatus"`
6760
6761	// The image used for the container.
6762	Image *string `locationName:"image" type:"string"`
6763
6764	// The container image manifest digest.
6765	//
6766	// The imageDigest is only returned if the container is using an image hosted
6767	// in Amazon ECR, otherwise it is omitted.
6768	ImageDigest *string `locationName:"imageDigest" type:"string"`
6769
6770	// The last known status of the container.
6771	LastStatus *string `locationName:"lastStatus" type:"string"`
6772
6773	// The hard limit (in MiB) of memory set for the container.
6774	Memory *string `locationName:"memory" type:"string"`
6775
6776	// The soft limit (in MiB) of memory set for the container.
6777	MemoryReservation *string `locationName:"memoryReservation" type:"string"`
6778
6779	// The name of the container.
6780	Name *string `locationName:"name" type:"string"`
6781
6782	// The network bindings associated with the container.
6783	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
6784
6785	// The network interfaces associated with the container.
6786	NetworkInterfaces []*NetworkInterface `locationName:"networkInterfaces" type:"list"`
6787
6788	// A short (255 max characters) human-readable string to provide additional
6789	// details about a running or stopped container.
6790	Reason *string `locationName:"reason" type:"string"`
6791
6792	// The ID of the Docker container.
6793	RuntimeId *string `locationName:"runtimeId" type:"string"`
6794
6795	// The ARN of the task.
6796	TaskArn *string `locationName:"taskArn" type:"string"`
6797}
6798
6799// String returns the string representation
6800func (s Container) String() string {
6801	return awsutil.Prettify(s)
6802}
6803
6804// GoString returns the string representation
6805func (s Container) GoString() string {
6806	return s.String()
6807}
6808
6809// SetContainerArn sets the ContainerArn field's value.
6810func (s *Container) SetContainerArn(v string) *Container {
6811	s.ContainerArn = &v
6812	return s
6813}
6814
6815// SetCpu sets the Cpu field's value.
6816func (s *Container) SetCpu(v string) *Container {
6817	s.Cpu = &v
6818	return s
6819}
6820
6821// SetExitCode sets the ExitCode field's value.
6822func (s *Container) SetExitCode(v int64) *Container {
6823	s.ExitCode = &v
6824	return s
6825}
6826
6827// SetGpuIds sets the GpuIds field's value.
6828func (s *Container) SetGpuIds(v []*string) *Container {
6829	s.GpuIds = v
6830	return s
6831}
6832
6833// SetHealthStatus sets the HealthStatus field's value.
6834func (s *Container) SetHealthStatus(v string) *Container {
6835	s.HealthStatus = &v
6836	return s
6837}
6838
6839// SetImage sets the Image field's value.
6840func (s *Container) SetImage(v string) *Container {
6841	s.Image = &v
6842	return s
6843}
6844
6845// SetImageDigest sets the ImageDigest field's value.
6846func (s *Container) SetImageDigest(v string) *Container {
6847	s.ImageDigest = &v
6848	return s
6849}
6850
6851// SetLastStatus sets the LastStatus field's value.
6852func (s *Container) SetLastStatus(v string) *Container {
6853	s.LastStatus = &v
6854	return s
6855}
6856
6857// SetMemory sets the Memory field's value.
6858func (s *Container) SetMemory(v string) *Container {
6859	s.Memory = &v
6860	return s
6861}
6862
6863// SetMemoryReservation sets the MemoryReservation field's value.
6864func (s *Container) SetMemoryReservation(v string) *Container {
6865	s.MemoryReservation = &v
6866	return s
6867}
6868
6869// SetName sets the Name field's value.
6870func (s *Container) SetName(v string) *Container {
6871	s.Name = &v
6872	return s
6873}
6874
6875// SetNetworkBindings sets the NetworkBindings field's value.
6876func (s *Container) SetNetworkBindings(v []*NetworkBinding) *Container {
6877	s.NetworkBindings = v
6878	return s
6879}
6880
6881// SetNetworkInterfaces sets the NetworkInterfaces field's value.
6882func (s *Container) SetNetworkInterfaces(v []*NetworkInterface) *Container {
6883	s.NetworkInterfaces = v
6884	return s
6885}
6886
6887// SetReason sets the Reason field's value.
6888func (s *Container) SetReason(v string) *Container {
6889	s.Reason = &v
6890	return s
6891}
6892
6893// SetRuntimeId sets the RuntimeId field's value.
6894func (s *Container) SetRuntimeId(v string) *Container {
6895	s.RuntimeId = &v
6896	return s
6897}
6898
6899// SetTaskArn sets the TaskArn field's value.
6900func (s *Container) SetTaskArn(v string) *Container {
6901	s.TaskArn = &v
6902	return s
6903}
6904
6905// Container definitions are used in task definitions to describe the different
6906// containers that are launched as part of a task.
6907type ContainerDefinition struct {
6908	_ struct{} `type:"structure"`
6909
6910	// The command that is passed to the container. This parameter maps to Cmd in
6911	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6912	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6913	// and the COMMAND parameter to docker run (https://docs.docker.com/engine/reference/run/).
6914	// For more information, see https://docs.docker.com/engine/reference/builder/#cmd
6915	// (https://docs.docker.com/engine/reference/builder/#cmd). If there are multiple
6916	// arguments, each argument should be a separated string in the array.
6917	Command []*string `locationName:"command" type:"list"`
6918
6919	// The number of cpu units reserved for the container. This parameter maps to
6920	// CpuShares in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6921	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6922	// and the --cpu-shares option to docker run (https://docs.docker.com/engine/reference/run/).
6923	//
6924	// This field is optional for tasks using the Fargate launch type, and the only
6925	// requirement is that the total amount of CPU reserved for all containers within
6926	// a task be lower than the task-level cpu value.
6927	//
6928	// You can determine the number of CPU units that are available per EC2 instance
6929	// type by multiplying the vCPUs listed for that instance type on the Amazon
6930	// EC2 Instances (http://aws.amazon.com/ec2/instance-types/) detail page by
6931	// 1,024.
6932	//
6933	// Linux containers share unallocated CPU units with other containers on the
6934	// container instance with the same ratio as their allocated amount. For example,
6935	// if you run a single-container task on a single-core instance type with 512
6936	// CPU units specified for that container, and that is the only task running
6937	// on the container instance, that container could use the full 1,024 CPU unit
6938	// share at any given time. However, if you launched another copy of the same
6939	// task on that container instance, each task would be guaranteed a minimum
6940	// of 512 CPU units when needed, and each container could float to higher CPU
6941	// usage if the other container was not using it, but if both tasks were 100%
6942	// active all of the time, they would be limited to 512 CPU units.
6943	//
6944	// On Linux container instances, the Docker daemon on the container instance
6945	// uses the CPU value to calculate the relative CPU share ratios for running
6946	// containers. For more information, see CPU share constraint (https://docs.docker.com/engine/reference/run/#cpu-share-constraint)
6947	// in the Docker documentation. The minimum valid CPU share value that the Linux
6948	// kernel allows is 2. However, the CPU parameter is not required, and you can
6949	// use CPU values below 2 in your container definitions. For CPU values below
6950	// 2 (including null), the behavior varies based on your Amazon ECS container
6951	// agent version:
6952	//
6953	//    * Agent versions less than or equal to 1.1.0: Null and zero CPU values
6954	//    are passed to Docker as 0, which Docker then converts to 1,024 CPU shares.
6955	//    CPU values of 1 are passed to Docker as 1, which the Linux kernel converts
6956	//    to two CPU shares.
6957	//
6958	//    * Agent versions greater than or equal to 1.2.0: Null, zero, and CPU values
6959	//    of 1 are passed to Docker as 2.
6960	//
6961	// On Windows container instances, the CPU limit is enforced as an absolute
6962	// limit, or a quota. Windows containers only have access to the specified amount
6963	// of CPU that is described in the task definition.
6964	Cpu *int64 `locationName:"cpu" type:"integer"`
6965
6966	// The dependencies defined for container startup and shutdown. A container
6967	// can contain multiple dependencies. When a dependency is defined for container
6968	// startup, for container shutdown it is reversed.
6969	//
6970	// For tasks using the EC2 launch type, the container instances require at least
6971	// version 1.26.0 of the container agent to enable container dependencies. However,
6972	// we recommend using the latest container agent version. For information about
6973	// checking your agent version and updating to the latest version, see Updating
6974	// the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
6975	// in the Amazon Elastic Container Service Developer Guide. If you are using
6976	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
6977	// of the ecs-init package. If your container instances are launched from version
6978	// 20190301 or later, then they contain the required versions of the container
6979	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
6980	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
6981	// in the Amazon Elastic Container Service Developer Guide.
6982	//
6983	// For tasks using the Fargate launch type, the task or service requires platform
6984	// version 1.3.0 or later.
6985	DependsOn []*ContainerDependency `locationName:"dependsOn" type:"list"`
6986
6987	// When this parameter is true, networking is disabled within the container.
6988	// This parameter maps to NetworkDisabled in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6989	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/).
6990	//
6991	// This parameter is not supported for Windows containers.
6992	DisableNetworking *bool `locationName:"disableNetworking" type:"boolean"`
6993
6994	// A list of DNS search domains that are presented to the container. This parameter
6995	// maps to DnsSearch in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6996	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6997	// and the --dns-search option to docker run (https://docs.docker.com/engine/reference/run/).
6998	//
6999	// This parameter is not supported for Windows containers.
7000	DnsSearchDomains []*string `locationName:"dnsSearchDomains" type:"list"`
7001
7002	// A list of DNS servers that are presented to the container. This parameter
7003	// maps to Dns in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7004	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7005	// and the --dns option to docker run (https://docs.docker.com/engine/reference/run/).
7006	//
7007	// This parameter is not supported for Windows containers.
7008	DnsServers []*string `locationName:"dnsServers" type:"list"`
7009
7010	// A key/value map of labels to add to the container. This parameter maps to
7011	// Labels in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7012	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7013	// and the --label option to docker run (https://docs.docker.com/engine/reference/run/).
7014	// This parameter requires version 1.18 of the Docker Remote API or greater
7015	// on your container instance. To check the Docker Remote API version on your
7016	// container instance, log in to your container instance and run the following
7017	// command: sudo docker version --format '{{.Server.APIVersion}}'
7018	DockerLabels map[string]*string `locationName:"dockerLabels" type:"map"`
7019
7020	// A list of strings to provide custom labels for SELinux and AppArmor multi-level
7021	// security systems. This field is not valid for containers in tasks using the
7022	// Fargate launch type.
7023	//
7024	// With Windows containers, this parameter can be used to reference a credential
7025	// spec file when configuring a container for Active Directory authentication.
7026	// For more information, see Using gMSAs for Windows Containers (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html)
7027	// in the Amazon Elastic Container Service Developer Guide.
7028	//
7029	// This parameter maps to SecurityOpt in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7030	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7031	// and the --security-opt option to docker run (https://docs.docker.com/engine/reference/run/).
7032	//
7033	// The Amazon ECS container agent running on a container instance must register
7034	// with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment
7035	// variables before containers placed on that instance can use these security
7036	// options. For more information, see Amazon ECS Container Agent Configuration
7037	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
7038	// in the Amazon Elastic Container Service Developer Guide.
7039	DockerSecurityOptions []*string `locationName:"dockerSecurityOptions" type:"list"`
7040
7041	//
7042	// Early versions of the Amazon ECS container agent do not properly handle entryPoint
7043	// parameters. If you have problems using entryPoint, update your container
7044	// agent or enter your commands and arguments as command array items instead.
7045	//
7046	// The entry point that is passed to the container. This parameter maps to Entrypoint
7047	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7048	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7049	// and the --entrypoint option to docker run (https://docs.docker.com/engine/reference/run/).
7050	// For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint
7051	// (https://docs.docker.com/engine/reference/builder/#entrypoint).
7052	EntryPoint []*string `locationName:"entryPoint" type:"list"`
7053
7054	// The environment variables to pass to a container. This parameter maps to
7055	// Env in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7056	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7057	// and the --env option to docker run (https://docs.docker.com/engine/reference/run/).
7058	//
7059	// We do not recommend using plaintext environment variables for sensitive information,
7060	// such as credential data.
7061	Environment []*KeyValuePair `locationName:"environment" type:"list"`
7062
7063	// A list of files containing the environment variables to pass to a container.
7064	// This parameter maps to the --env-file option to docker run (https://docs.docker.com/engine/reference/run/).
7065	//
7066	// You can specify up to ten environment files. The file must have a .env file
7067	// extension. Each line in an environment file should contain an environment
7068	// variable in VARIABLE=VALUE format. Lines beginning with # are treated as
7069	// comments and are ignored. For more information on the environment variable
7070	// file syntax, see Declare default environment variables in file (https://docs.docker.com/compose/env-file/).
7071	//
7072	// If there are environment variables specified using the environment parameter
7073	// in a container definition, they take precedence over the variables contained
7074	// within an environment file. If multiple environment files are specified that
7075	// contain the same variable, they are processed from the top down. It is recommended
7076	// to use unique variable names. For more information, see Specifying Environment
7077	// Variables (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html)
7078	// in the Amazon Elastic Container Service Developer Guide.
7079	//
7080	// This field is not valid for containers in tasks using the Fargate launch
7081	// type.
7082	EnvironmentFiles []*EnvironmentFile `locationName:"environmentFiles" type:"list"`
7083
7084	// If the essential parameter of a container is marked as true, and that container
7085	// fails or stops for any reason, all other containers that are part of the
7086	// task are stopped. If the essential parameter of a container is marked as
7087	// false, then its failure does not affect the rest of the containers in a task.
7088	// If this parameter is omitted, a container is assumed to be essential.
7089	//
7090	// All tasks must have at least one essential container. If you have an application
7091	// that is composed of multiple containers, you should group containers that
7092	// are used for a common purpose into components, and separate the different
7093	// components into multiple task definitions. For more information, see Application
7094	// Architecture (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html)
7095	// in the Amazon Elastic Container Service Developer Guide.
7096	Essential *bool `locationName:"essential" type:"boolean"`
7097
7098	// A list of hostnames and IP address mappings to append to the /etc/hosts file
7099	// on the container. This parameter maps to ExtraHosts in the Create a container
7100	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7101	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7102	// the --add-host option to docker run (https://docs.docker.com/engine/reference/run/).
7103	//
7104	// This parameter is not supported for Windows containers or tasks that use
7105	// the awsvpc network mode.
7106	ExtraHosts []*HostEntry `locationName:"extraHosts" type:"list"`
7107
7108	// The FireLens configuration for the container. This is used to specify and
7109	// configure a log router for container logs. For more information, see Custom
7110	// Log Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
7111	// in the Amazon Elastic Container Service Developer Guide.
7112	FirelensConfiguration *FirelensConfiguration `locationName:"firelensConfiguration" type:"structure"`
7113
7114	// The container health check command and associated configuration parameters
7115	// for the container. This parameter maps to HealthCheck in the Create a container
7116	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7117	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7118	// the HEALTHCHECK parameter of docker run (https://docs.docker.com/engine/reference/run/).
7119	HealthCheck *HealthCheck `locationName:"healthCheck" type:"structure"`
7120
7121	// The hostname to use for your container. This parameter maps to Hostname in
7122	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7123	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7124	// and the --hostname option to docker run (https://docs.docker.com/engine/reference/run/).
7125	//
7126	// The hostname parameter is not supported if you are using the awsvpc network
7127	// mode.
7128	Hostname *string `locationName:"hostname" type:"string"`
7129
7130	// The image used to start a container. This string is passed directly to the
7131	// Docker daemon. Images in the Docker Hub registry are available by default.
7132	// Other repositories are specified with either repository-url/image:tag or
7133	// repository-url/image@digest . Up to 255 letters (uppercase and lowercase),
7134	// numbers, hyphens, underscores, colons, periods, forward slashes, and number
7135	// signs are allowed. This parameter maps to Image in the Create a container
7136	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7137	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7138	// the IMAGE parameter of docker run (https://docs.docker.com/engine/reference/run/).
7139	//
7140	//    * When a new task starts, the Amazon ECS container agent pulls the latest
7141	//    version of the specified image and tag for the container to use. However,
7142	//    subsequent updates to a repository image are not propagated to already
7143	//    running tasks.
7144	//
7145	//    * Images in Amazon ECR repositories can be specified by either using the
7146	//    full registry/repository:tag or registry/repository@digest. For example,
7147	//    012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest
7148	//    or 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE.
7149	//
7150	//    * Images in official repositories on Docker Hub use a single name (for
7151	//    example, ubuntu or mongo).
7152	//
7153	//    * Images in other repositories on Docker Hub are qualified with an organization
7154	//    name (for example, amazon/amazon-ecs-agent).
7155	//
7156	//    * Images in other online repositories are qualified further by a domain
7157	//    name (for example, quay.io/assemblyline/ubuntu).
7158	Image *string `locationName:"image" type:"string"`
7159
7160	// When this parameter is true, this allows you to deploy containerized applications
7161	// that require stdin or a tty to be allocated. This parameter maps to OpenStdin
7162	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7163	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7164	// and the --interactive option to docker run (https://docs.docker.com/engine/reference/run/).
7165	Interactive *bool `locationName:"interactive" type:"boolean"`
7166
7167	// The links parameter allows containers to communicate with each other without
7168	// the need for port mappings. This parameter is only supported if the network
7169	// mode of a task definition is bridge. The name:internalName construct is analogous
7170	// to name:alias in Docker links. Up to 255 letters (uppercase and lowercase),
7171	// numbers, and hyphens are allowed. For more information about linking Docker
7172	// containers, go to Legacy container links (https://docs.docker.com/network/links/)
7173	// in the Docker documentation. This parameter maps to Links in the Create a
7174	// container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7175	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7176	// and the --link option to docker run (https://docs.docker.com/engine/reference/run/).
7177	//
7178	// This parameter is not supported for Windows containers.
7179	//
7180	// Containers that are collocated on a single container instance may be able
7181	// to communicate with each other without requiring links or host port mappings.
7182	// Network isolation is achieved on the container instance using security groups
7183	// and VPC settings.
7184	Links []*string `locationName:"links" type:"list"`
7185
7186	// Linux-specific modifications that are applied to the container, such as Linux
7187	// kernel capabilities. For more information see KernelCapabilities.
7188	//
7189	// This parameter is not supported for Windows containers.
7190	LinuxParameters *LinuxParameters `locationName:"linuxParameters" type:"structure"`
7191
7192	// The log configuration specification for the container.
7193	//
7194	// This parameter maps to LogConfig in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7195	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7196	// and the --log-driver option to docker run (https://docs.docker.com/engine/reference/run/).
7197	// By default, containers use the same logging driver that the Docker daemon
7198	// uses. However the container may use a different logging driver than the Docker
7199	// daemon by specifying a log driver with this parameter in the container definition.
7200	// To use a different logging driver for a container, the log system must be
7201	// configured properly on the container instance (or on a different log server
7202	// for remote logging options). For more information on the options for different
7203	// supported log drivers, see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
7204	// in the Docker documentation.
7205	//
7206	// Amazon ECS currently supports a subset of the logging drivers available to
7207	// the Docker daemon (shown in the LogConfiguration data type). Additional log
7208	// drivers may be available in future releases of the Amazon ECS container agent.
7209	//
7210	// This parameter requires version 1.18 of the Docker Remote API or greater
7211	// on your container instance. To check the Docker Remote API version on your
7212	// container instance, log in to your container instance and run the following
7213	// command: sudo docker version --format '{{.Server.APIVersion}}'
7214	//
7215	// The Amazon ECS container agent running on a container instance must register
7216	// the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS
7217	// environment variable before containers placed on that instance can use these
7218	// log configuration options. For more information, see Amazon ECS Container
7219	// Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
7220	// in the Amazon Elastic Container Service Developer Guide.
7221	LogConfiguration *LogConfiguration `locationName:"logConfiguration" type:"structure"`
7222
7223	// The amount (in MiB) of memory to present to the container. If your container
7224	// attempts to exceed the memory specified here, the container is killed. The
7225	// total amount of memory reserved for all containers within a task must be
7226	// lower than the task memory value, if one is specified. This parameter maps
7227	// to Memory in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7228	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7229	// and the --memory option to docker run (https://docs.docker.com/engine/reference/run/).
7230	//
7231	// If using the Fargate launch type, this parameter is optional.
7232	//
7233	// If using the EC2 launch type, you must specify either a task-level memory
7234	// value or a container-level memory value. If you specify both a container-level
7235	// memory and memoryReservation value, memory must be greater than memoryReservation.
7236	// If you specify memoryReservation, then that value is subtracted from the
7237	// available memory resources for the container instance on which the container
7238	// is placed. Otherwise, the value of memory is used.
7239	//
7240	// The Docker daemon reserves a minimum of 4 MiB of memory for a container,
7241	// so you should not specify fewer than 4 MiB of memory for your containers.
7242	Memory *int64 `locationName:"memory" type:"integer"`
7243
7244	// The soft limit (in MiB) of memory to reserve for the container. When system
7245	// memory is under heavy contention, Docker attempts to keep the container memory
7246	// to this soft limit. However, your container can consume more memory when
7247	// it needs to, up to either the hard limit specified with the memory parameter
7248	// (if applicable), or all of the available memory on the container instance,
7249	// whichever comes first. This parameter maps to MemoryReservation in the Create
7250	// a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7251	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7252	// and the --memory-reservation option to docker run (https://docs.docker.com/engine/reference/run/).
7253	//
7254	// If a task-level memory value is not specified, you must specify a non-zero
7255	// integer for one or both of memory or memoryReservation in a container definition.
7256	// If you specify both, memory must be greater than memoryReservation. If you
7257	// specify memoryReservation, then that value is subtracted from the available
7258	// memory resources for the container instance on which the container is placed.
7259	// Otherwise, the value of memory is used.
7260	//
7261	// For example, if your container normally uses 128 MiB of memory, but occasionally
7262	// bursts to 256 MiB of memory for short periods of time, you can set a memoryReservation
7263	// of 128 MiB, and a memory hard limit of 300 MiB. This configuration would
7264	// allow the container to only reserve 128 MiB of memory from the remaining
7265	// resources on the container instance, but also allow the container to consume
7266	// more memory resources when needed.
7267	//
7268	// The Docker daemon reserves a minimum of 4 MiB of memory for a container,
7269	// so you should not specify fewer than 4 MiB of memory for your containers.
7270	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
7271
7272	// The mount points for data volumes in your container.
7273	//
7274	// This parameter maps to Volumes in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7275	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7276	// and the --volume option to docker run (https://docs.docker.com/engine/reference/run/).
7277	//
7278	// Windows containers can mount whole directories on the same drive as $env:ProgramData.
7279	// Windows containers cannot mount directories on a different drive, and mount
7280	// point cannot be across drives.
7281	MountPoints []*MountPoint `locationName:"mountPoints" type:"list"`
7282
7283	// The name of a container. If you are linking multiple containers together
7284	// in a task definition, the name of one container can be entered in the links
7285	// of another container to connect the containers. Up to 255 letters (uppercase
7286	// and lowercase), numbers, and hyphens are allowed. This parameter maps to
7287	// name in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7288	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7289	// and the --name option to docker run (https://docs.docker.com/engine/reference/run/).
7290	Name *string `locationName:"name" type:"string"`
7291
7292	// The list of port mappings for the container. Port mappings allow containers
7293	// to access ports on the host container instance to send or receive traffic.
7294	//
7295	// For task definitions that use the awsvpc network mode, you should only specify
7296	// the containerPort. The hostPort can be left blank or it must be the same
7297	// value as the containerPort.
7298	//
7299	// Port mappings on Windows use the NetNAT gateway address rather than localhost.
7300	// There is no loopback for port mappings on Windows, so you cannot access a
7301	// container's mapped port from the host itself.
7302	//
7303	// This parameter maps to PortBindings in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7304	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7305	// and the --publish option to docker run (https://docs.docker.com/engine/reference/run/).
7306	// If the network mode of a task definition is set to none, then you can't specify
7307	// port mappings. If the network mode of a task definition is set to host, then
7308	// host ports must either be undefined or they must match the container port
7309	// in the port mapping.
7310	//
7311	// After a task reaches the RUNNING status, manual and automatic host and container
7312	// port assignments are visible in the Network Bindings section of a container
7313	// description for a selected task in the Amazon ECS console. The assignments
7314	// are also visible in the networkBindings section DescribeTasks responses.
7315	PortMappings []*PortMapping `locationName:"portMappings" type:"list"`
7316
7317	// When this parameter is true, the container is given elevated privileges on
7318	// the host container instance (similar to the root user). This parameter maps
7319	// to Privileged in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7320	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7321	// and the --privileged option to docker run (https://docs.docker.com/engine/reference/run/).
7322	//
7323	// This parameter is not supported for Windows containers or tasks using the
7324	// Fargate launch type.
7325	Privileged *bool `locationName:"privileged" type:"boolean"`
7326
7327	// When this parameter is true, a TTY is allocated. This parameter maps to Tty
7328	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7329	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7330	// and the --tty option to docker run (https://docs.docker.com/engine/reference/run/).
7331	PseudoTerminal *bool `locationName:"pseudoTerminal" type:"boolean"`
7332
7333	// When this parameter is true, the container is given read-only access to its
7334	// root file system. This parameter maps to ReadonlyRootfs in the Create a container
7335	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
7336	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
7337	// the --read-only option to docker run (https://docs.docker.com/engine/reference/run/).
7338	//
7339	// This parameter is not supported for Windows containers.
7340	ReadonlyRootFilesystem *bool `locationName:"readonlyRootFilesystem" type:"boolean"`
7341
7342	// The private repository authentication credentials to use.
7343	RepositoryCredentials *RepositoryCredentials `locationName:"repositoryCredentials" type:"structure"`
7344
7345	// The type and amount of a resource to assign to a container. The only supported
7346	// resource is a GPU.
7347	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
7348
7349	// The secrets to pass to the container. For more information, see Specifying
7350	// Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
7351	// in the Amazon Elastic Container Service Developer Guide.
7352	Secrets []*Secret `locationName:"secrets" type:"list"`
7353
7354	// Time duration (in seconds) to wait before giving up on resolving dependencies
7355	// for a container. For example, you specify two containers in a task definition
7356	// with containerA having a dependency on containerB reaching a COMPLETE, SUCCESS,
7357	// or HEALTHY status. If a startTimeout value is specified for containerB and
7358	// it does not reach the desired status within that time then containerA will
7359	// give up and not start. This results in the task transitioning to a STOPPED
7360	// state.
7361	//
7362	// For tasks using the Fargate launch type, this parameter requires that the
7363	// task or service uses platform version 1.3.0 or later. If this parameter is
7364	// not specified, the default value of 3 minutes is used.
7365	//
7366	// For tasks using the EC2 launch type, if the startTimeout parameter is not
7367	// specified, the value set for the Amazon ECS container agent configuration
7368	// variable ECS_CONTAINER_START_TIMEOUT is used by default. If neither the startTimeout
7369	// parameter or the ECS_CONTAINER_START_TIMEOUT agent configuration variable
7370	// are set, then the default values of 3 minutes for Linux containers and 8
7371	// minutes on Windows containers are used. Your container instances require
7372	// at least version 1.26.0 of the container agent to enable a container start
7373	// timeout value. However, we recommend using the latest container agent version.
7374	// For information about checking your agent version and updating to the latest
7375	// version, see Updating the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
7376	// in the Amazon Elastic Container Service Developer Guide. If you are using
7377	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
7378	// of the ecs-init package. If your container instances are launched from version
7379	// 20190301 or later, then they contain the required versions of the container
7380	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
7381	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
7382	// in the Amazon Elastic Container Service Developer Guide.
7383	StartTimeout *int64 `locationName:"startTimeout" type:"integer"`
7384
7385	// Time duration (in seconds) to wait before the container is forcefully killed
7386	// if it doesn't exit normally on its own.
7387	//
7388	// For tasks using the Fargate launch type, the task or service requires platform
7389	// version 1.3.0 or later. The max stop timeout value is 120 seconds and if
7390	// the parameter is not specified, the default value of 30 seconds is used.
7391	//
7392	// For tasks using the EC2 launch type, if the stopTimeout parameter is not
7393	// specified, the value set for the Amazon ECS container agent configuration
7394	// variable ECS_CONTAINER_STOP_TIMEOUT is used by default. If neither the stopTimeout
7395	// parameter or the ECS_CONTAINER_STOP_TIMEOUT agent configuration variable
7396	// are set, then the default values of 30 seconds for Linux containers and 30
7397	// seconds on Windows containers are used. Your container instances require
7398	// at least version 1.26.0 of the container agent to enable a container stop
7399	// timeout value. However, we recommend using the latest container agent version.
7400	// For information about checking your agent version and updating to the latest
7401	// version, see Updating the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
7402	// in the Amazon Elastic Container Service Developer Guide. If you are using
7403	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
7404	// of the ecs-init package. If your container instances are launched from version
7405	// 20190301 or later, then they contain the required versions of the container
7406	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
7407	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
7408	// in the Amazon Elastic Container Service Developer Guide.
7409	StopTimeout *int64 `locationName:"stopTimeout" type:"integer"`
7410
7411	// A list of namespaced kernel parameters to set in the container. This parameter
7412	// maps to Sysctls in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7413	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7414	// and the --sysctl option to docker run (https://docs.docker.com/engine/reference/run/).
7415	//
7416	// It is not recommended that you specify network-related systemControls parameters
7417	// for multiple containers in a single task that also uses either the awsvpc
7418	// or host network modes. For tasks that use the awsvpc network mode, the container
7419	// that is started last determines which systemControls parameters take effect.
7420	// For tasks that use the host network mode, it changes the container instance's
7421	// namespaced kernel parameters as well as the containers.
7422	SystemControls []*SystemControl `locationName:"systemControls" type:"list"`
7423
7424	// A list of ulimits to set in the container. This parameter maps to Ulimits
7425	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7426	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7427	// and the --ulimit option to docker run (https://docs.docker.com/engine/reference/run/).
7428	// Valid naming values are displayed in the Ulimit data type. This parameter
7429	// requires version 1.18 of the Docker Remote API or greater on your container
7430	// instance. To check the Docker Remote API version on your container instance,
7431	// log in to your container instance and run the following command: sudo docker
7432	// version --format '{{.Server.APIVersion}}'
7433	//
7434	// This parameter is not supported for Windows containers.
7435	Ulimits []*Ulimit `locationName:"ulimits" type:"list"`
7436
7437	// The user name to use inside the container. This parameter maps to User in
7438	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7439	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7440	// and the --user option to docker run (https://docs.docker.com/engine/reference/run/).
7441	//
7442	// You can use the following formats. If specifying a UID or GID, you must specify
7443	// it as a positive integer.
7444	//
7445	//    * user
7446	//
7447	//    * user:group
7448	//
7449	//    * uid
7450	//
7451	//    * uid:gid
7452	//
7453	//    * user:gid
7454	//
7455	//    * uid:group
7456	//
7457	// This parameter is not supported for Windows containers.
7458	User *string `locationName:"user" type:"string"`
7459
7460	// Data volumes to mount from another container. This parameter maps to VolumesFrom
7461	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7462	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7463	// and the --volumes-from option to docker run (https://docs.docker.com/engine/reference/run/).
7464	VolumesFrom []*VolumeFrom `locationName:"volumesFrom" type:"list"`
7465
7466	// The working directory in which to run commands inside the container. This
7467	// parameter maps to WorkingDir in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
7468	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
7469	// and the --workdir option to docker run (https://docs.docker.com/engine/reference/run/).
7470	WorkingDirectory *string `locationName:"workingDirectory" type:"string"`
7471}
7472
7473// String returns the string representation
7474func (s ContainerDefinition) String() string {
7475	return awsutil.Prettify(s)
7476}
7477
7478// GoString returns the string representation
7479func (s ContainerDefinition) GoString() string {
7480	return s.String()
7481}
7482
7483// Validate inspects the fields of the type to determine if they are valid.
7484func (s *ContainerDefinition) Validate() error {
7485	invalidParams := request.ErrInvalidParams{Context: "ContainerDefinition"}
7486	if s.DependsOn != nil {
7487		for i, v := range s.DependsOn {
7488			if v == nil {
7489				continue
7490			}
7491			if err := v.Validate(); err != nil {
7492				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DependsOn", i), err.(request.ErrInvalidParams))
7493			}
7494		}
7495	}
7496	if s.EnvironmentFiles != nil {
7497		for i, v := range s.EnvironmentFiles {
7498			if v == nil {
7499				continue
7500			}
7501			if err := v.Validate(); err != nil {
7502				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EnvironmentFiles", i), err.(request.ErrInvalidParams))
7503			}
7504		}
7505	}
7506	if s.ExtraHosts != nil {
7507		for i, v := range s.ExtraHosts {
7508			if v == nil {
7509				continue
7510			}
7511			if err := v.Validate(); err != nil {
7512				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExtraHosts", i), err.(request.ErrInvalidParams))
7513			}
7514		}
7515	}
7516	if s.FirelensConfiguration != nil {
7517		if err := s.FirelensConfiguration.Validate(); err != nil {
7518			invalidParams.AddNested("FirelensConfiguration", err.(request.ErrInvalidParams))
7519		}
7520	}
7521	if s.HealthCheck != nil {
7522		if err := s.HealthCheck.Validate(); err != nil {
7523			invalidParams.AddNested("HealthCheck", err.(request.ErrInvalidParams))
7524		}
7525	}
7526	if s.LinuxParameters != nil {
7527		if err := s.LinuxParameters.Validate(); err != nil {
7528			invalidParams.AddNested("LinuxParameters", err.(request.ErrInvalidParams))
7529		}
7530	}
7531	if s.LogConfiguration != nil {
7532		if err := s.LogConfiguration.Validate(); err != nil {
7533			invalidParams.AddNested("LogConfiguration", err.(request.ErrInvalidParams))
7534		}
7535	}
7536	if s.RepositoryCredentials != nil {
7537		if err := s.RepositoryCredentials.Validate(); err != nil {
7538			invalidParams.AddNested("RepositoryCredentials", err.(request.ErrInvalidParams))
7539		}
7540	}
7541	if s.ResourceRequirements != nil {
7542		for i, v := range s.ResourceRequirements {
7543			if v == nil {
7544				continue
7545			}
7546			if err := v.Validate(); err != nil {
7547				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
7548			}
7549		}
7550	}
7551	if s.Secrets != nil {
7552		for i, v := range s.Secrets {
7553			if v == nil {
7554				continue
7555			}
7556			if err := v.Validate(); err != nil {
7557				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Secrets", i), err.(request.ErrInvalidParams))
7558			}
7559		}
7560	}
7561	if s.Ulimits != nil {
7562		for i, v := range s.Ulimits {
7563			if v == nil {
7564				continue
7565			}
7566			if err := v.Validate(); err != nil {
7567				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Ulimits", i), err.(request.ErrInvalidParams))
7568			}
7569		}
7570	}
7571
7572	if invalidParams.Len() > 0 {
7573		return invalidParams
7574	}
7575	return nil
7576}
7577
7578// SetCommand sets the Command field's value.
7579func (s *ContainerDefinition) SetCommand(v []*string) *ContainerDefinition {
7580	s.Command = v
7581	return s
7582}
7583
7584// SetCpu sets the Cpu field's value.
7585func (s *ContainerDefinition) SetCpu(v int64) *ContainerDefinition {
7586	s.Cpu = &v
7587	return s
7588}
7589
7590// SetDependsOn sets the DependsOn field's value.
7591func (s *ContainerDefinition) SetDependsOn(v []*ContainerDependency) *ContainerDefinition {
7592	s.DependsOn = v
7593	return s
7594}
7595
7596// SetDisableNetworking sets the DisableNetworking field's value.
7597func (s *ContainerDefinition) SetDisableNetworking(v bool) *ContainerDefinition {
7598	s.DisableNetworking = &v
7599	return s
7600}
7601
7602// SetDnsSearchDomains sets the DnsSearchDomains field's value.
7603func (s *ContainerDefinition) SetDnsSearchDomains(v []*string) *ContainerDefinition {
7604	s.DnsSearchDomains = v
7605	return s
7606}
7607
7608// SetDnsServers sets the DnsServers field's value.
7609func (s *ContainerDefinition) SetDnsServers(v []*string) *ContainerDefinition {
7610	s.DnsServers = v
7611	return s
7612}
7613
7614// SetDockerLabels sets the DockerLabels field's value.
7615func (s *ContainerDefinition) SetDockerLabels(v map[string]*string) *ContainerDefinition {
7616	s.DockerLabels = v
7617	return s
7618}
7619
7620// SetDockerSecurityOptions sets the DockerSecurityOptions field's value.
7621func (s *ContainerDefinition) SetDockerSecurityOptions(v []*string) *ContainerDefinition {
7622	s.DockerSecurityOptions = v
7623	return s
7624}
7625
7626// SetEntryPoint sets the EntryPoint field's value.
7627func (s *ContainerDefinition) SetEntryPoint(v []*string) *ContainerDefinition {
7628	s.EntryPoint = v
7629	return s
7630}
7631
7632// SetEnvironment sets the Environment field's value.
7633func (s *ContainerDefinition) SetEnvironment(v []*KeyValuePair) *ContainerDefinition {
7634	s.Environment = v
7635	return s
7636}
7637
7638// SetEnvironmentFiles sets the EnvironmentFiles field's value.
7639func (s *ContainerDefinition) SetEnvironmentFiles(v []*EnvironmentFile) *ContainerDefinition {
7640	s.EnvironmentFiles = v
7641	return s
7642}
7643
7644// SetEssential sets the Essential field's value.
7645func (s *ContainerDefinition) SetEssential(v bool) *ContainerDefinition {
7646	s.Essential = &v
7647	return s
7648}
7649
7650// SetExtraHosts sets the ExtraHosts field's value.
7651func (s *ContainerDefinition) SetExtraHosts(v []*HostEntry) *ContainerDefinition {
7652	s.ExtraHosts = v
7653	return s
7654}
7655
7656// SetFirelensConfiguration sets the FirelensConfiguration field's value.
7657func (s *ContainerDefinition) SetFirelensConfiguration(v *FirelensConfiguration) *ContainerDefinition {
7658	s.FirelensConfiguration = v
7659	return s
7660}
7661
7662// SetHealthCheck sets the HealthCheck field's value.
7663func (s *ContainerDefinition) SetHealthCheck(v *HealthCheck) *ContainerDefinition {
7664	s.HealthCheck = v
7665	return s
7666}
7667
7668// SetHostname sets the Hostname field's value.
7669func (s *ContainerDefinition) SetHostname(v string) *ContainerDefinition {
7670	s.Hostname = &v
7671	return s
7672}
7673
7674// SetImage sets the Image field's value.
7675func (s *ContainerDefinition) SetImage(v string) *ContainerDefinition {
7676	s.Image = &v
7677	return s
7678}
7679
7680// SetInteractive sets the Interactive field's value.
7681func (s *ContainerDefinition) SetInteractive(v bool) *ContainerDefinition {
7682	s.Interactive = &v
7683	return s
7684}
7685
7686// SetLinks sets the Links field's value.
7687func (s *ContainerDefinition) SetLinks(v []*string) *ContainerDefinition {
7688	s.Links = v
7689	return s
7690}
7691
7692// SetLinuxParameters sets the LinuxParameters field's value.
7693func (s *ContainerDefinition) SetLinuxParameters(v *LinuxParameters) *ContainerDefinition {
7694	s.LinuxParameters = v
7695	return s
7696}
7697
7698// SetLogConfiguration sets the LogConfiguration field's value.
7699func (s *ContainerDefinition) SetLogConfiguration(v *LogConfiguration) *ContainerDefinition {
7700	s.LogConfiguration = v
7701	return s
7702}
7703
7704// SetMemory sets the Memory field's value.
7705func (s *ContainerDefinition) SetMemory(v int64) *ContainerDefinition {
7706	s.Memory = &v
7707	return s
7708}
7709
7710// SetMemoryReservation sets the MemoryReservation field's value.
7711func (s *ContainerDefinition) SetMemoryReservation(v int64) *ContainerDefinition {
7712	s.MemoryReservation = &v
7713	return s
7714}
7715
7716// SetMountPoints sets the MountPoints field's value.
7717func (s *ContainerDefinition) SetMountPoints(v []*MountPoint) *ContainerDefinition {
7718	s.MountPoints = v
7719	return s
7720}
7721
7722// SetName sets the Name field's value.
7723func (s *ContainerDefinition) SetName(v string) *ContainerDefinition {
7724	s.Name = &v
7725	return s
7726}
7727
7728// SetPortMappings sets the PortMappings field's value.
7729func (s *ContainerDefinition) SetPortMappings(v []*PortMapping) *ContainerDefinition {
7730	s.PortMappings = v
7731	return s
7732}
7733
7734// SetPrivileged sets the Privileged field's value.
7735func (s *ContainerDefinition) SetPrivileged(v bool) *ContainerDefinition {
7736	s.Privileged = &v
7737	return s
7738}
7739
7740// SetPseudoTerminal sets the PseudoTerminal field's value.
7741func (s *ContainerDefinition) SetPseudoTerminal(v bool) *ContainerDefinition {
7742	s.PseudoTerminal = &v
7743	return s
7744}
7745
7746// SetReadonlyRootFilesystem sets the ReadonlyRootFilesystem field's value.
7747func (s *ContainerDefinition) SetReadonlyRootFilesystem(v bool) *ContainerDefinition {
7748	s.ReadonlyRootFilesystem = &v
7749	return s
7750}
7751
7752// SetRepositoryCredentials sets the RepositoryCredentials field's value.
7753func (s *ContainerDefinition) SetRepositoryCredentials(v *RepositoryCredentials) *ContainerDefinition {
7754	s.RepositoryCredentials = v
7755	return s
7756}
7757
7758// SetResourceRequirements sets the ResourceRequirements field's value.
7759func (s *ContainerDefinition) SetResourceRequirements(v []*ResourceRequirement) *ContainerDefinition {
7760	s.ResourceRequirements = v
7761	return s
7762}
7763
7764// SetSecrets sets the Secrets field's value.
7765func (s *ContainerDefinition) SetSecrets(v []*Secret) *ContainerDefinition {
7766	s.Secrets = v
7767	return s
7768}
7769
7770// SetStartTimeout sets the StartTimeout field's value.
7771func (s *ContainerDefinition) SetStartTimeout(v int64) *ContainerDefinition {
7772	s.StartTimeout = &v
7773	return s
7774}
7775
7776// SetStopTimeout sets the StopTimeout field's value.
7777func (s *ContainerDefinition) SetStopTimeout(v int64) *ContainerDefinition {
7778	s.StopTimeout = &v
7779	return s
7780}
7781
7782// SetSystemControls sets the SystemControls field's value.
7783func (s *ContainerDefinition) SetSystemControls(v []*SystemControl) *ContainerDefinition {
7784	s.SystemControls = v
7785	return s
7786}
7787
7788// SetUlimits sets the Ulimits field's value.
7789func (s *ContainerDefinition) SetUlimits(v []*Ulimit) *ContainerDefinition {
7790	s.Ulimits = v
7791	return s
7792}
7793
7794// SetUser sets the User field's value.
7795func (s *ContainerDefinition) SetUser(v string) *ContainerDefinition {
7796	s.User = &v
7797	return s
7798}
7799
7800// SetVolumesFrom sets the VolumesFrom field's value.
7801func (s *ContainerDefinition) SetVolumesFrom(v []*VolumeFrom) *ContainerDefinition {
7802	s.VolumesFrom = v
7803	return s
7804}
7805
7806// SetWorkingDirectory sets the WorkingDirectory field's value.
7807func (s *ContainerDefinition) SetWorkingDirectory(v string) *ContainerDefinition {
7808	s.WorkingDirectory = &v
7809	return s
7810}
7811
7812// The dependencies defined for container startup and shutdown. A container
7813// can contain multiple dependencies. When a dependency is defined for container
7814// startup, for container shutdown it is reversed.
7815//
7816// Your Amazon ECS container instances require at least version 1.26.0 of the
7817// container agent to enable container dependencies. However, we recommend using
7818// the latest container agent version. For information about checking your agent
7819// version and updating to the latest version, see Updating the Amazon ECS Container
7820// Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
7821// in the Amazon Elastic Container Service Developer Guide. If you are using
7822// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
7823// of the ecs-init package. If your container instances are launched from version
7824// 20190301 or later, then they contain the required versions of the container
7825// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
7826// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
7827// in the Amazon Elastic Container Service Developer Guide.
7828//
7829// For tasks using the Fargate launch type, this parameter requires that the
7830// task or service uses platform version 1.3.0 or later.
7831type ContainerDependency struct {
7832	_ struct{} `type:"structure"`
7833
7834	// The dependency condition of the container. The following are the available
7835	// conditions and their behavior:
7836	//
7837	//    * START - This condition emulates the behavior of links and volumes today.
7838	//    It validates that a dependent container is started before permitting other
7839	//    containers to start.
7840	//
7841	//    * COMPLETE - This condition validates that a dependent container runs
7842	//    to completion (exits) before permitting other containers to start. This
7843	//    can be useful for nonessential containers that run a script and then exit.
7844	//
7845	//    * SUCCESS - This condition is the same as COMPLETE, but it also requires
7846	//    that the container exits with a zero status.
7847	//
7848	//    * HEALTHY - This condition validates that the dependent container passes
7849	//    its Docker health check before permitting other containers to start. This
7850	//    requires that the dependent container has health checks configured. This
7851	//    condition is confirmed only at task startup.
7852	//
7853	// Condition is a required field
7854	Condition *string `locationName:"condition" type:"string" required:"true" enum:"ContainerCondition"`
7855
7856	// The name of a container.
7857	//
7858	// ContainerName is a required field
7859	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
7860}
7861
7862// String returns the string representation
7863func (s ContainerDependency) String() string {
7864	return awsutil.Prettify(s)
7865}
7866
7867// GoString returns the string representation
7868func (s ContainerDependency) GoString() string {
7869	return s.String()
7870}
7871
7872// Validate inspects the fields of the type to determine if they are valid.
7873func (s *ContainerDependency) Validate() error {
7874	invalidParams := request.ErrInvalidParams{Context: "ContainerDependency"}
7875	if s.Condition == nil {
7876		invalidParams.Add(request.NewErrParamRequired("Condition"))
7877	}
7878	if s.ContainerName == nil {
7879		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
7880	}
7881
7882	if invalidParams.Len() > 0 {
7883		return invalidParams
7884	}
7885	return nil
7886}
7887
7888// SetCondition sets the Condition field's value.
7889func (s *ContainerDependency) SetCondition(v string) *ContainerDependency {
7890	s.Condition = &v
7891	return s
7892}
7893
7894// SetContainerName sets the ContainerName field's value.
7895func (s *ContainerDependency) SetContainerName(v string) *ContainerDependency {
7896	s.ContainerName = &v
7897	return s
7898}
7899
7900// An EC2 instance that is running the Amazon ECS agent and has been registered
7901// with a cluster.
7902type ContainerInstance struct {
7903	_ struct{} `type:"structure"`
7904
7905	// This parameter returns true if the agent is connected to Amazon ECS. Registered
7906	// instances with an agent that may be unhealthy or stopped return false. Only
7907	// instances connected to an agent can accept placement requests.
7908	AgentConnected *bool `locationName:"agentConnected" type:"boolean"`
7909
7910	// The status of the most recent agent update. If an update has never been requested,
7911	// this value is NULL.
7912	AgentUpdateStatus *string `locationName:"agentUpdateStatus" type:"string" enum:"AgentUpdateStatus"`
7913
7914	// The resources attached to a container instance, such as elastic network interfaces.
7915	Attachments []*Attachment `locationName:"attachments" type:"list"`
7916
7917	// The attributes set for the container instance, either by the Amazon ECS container
7918	// agent at instance registration or manually with the PutAttributes operation.
7919	Attributes []*Attribute `locationName:"attributes" type:"list"`
7920
7921	// The capacity provider associated with the container instance.
7922	CapacityProviderName *string `locationName:"capacityProviderName" type:"string"`
7923
7924	// The Amazon Resource Name (ARN) of the container instance. The ARN contains
7925	// the arn:aws:ecs namespace, followed by the Region of the container instance,
7926	// the AWS account ID of the container instance owner, the container-instance
7927	// namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
7928	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
7929
7930	// The EC2 instance ID of the container instance.
7931	Ec2InstanceId *string `locationName:"ec2InstanceId" type:"string"`
7932
7933	// The number of tasks on the container instance that are in the PENDING status.
7934	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
7935
7936	// The Unix timestamp for when the container instance was registered.
7937	RegisteredAt *time.Time `locationName:"registeredAt" type:"timestamp"`
7938
7939	// For CPU and memory resource types, this parameter describes the amount of
7940	// each resource that was available on the container instance when the container
7941	// agent registered it with Amazon ECS. This value represents the total amount
7942	// of CPU and memory that can be allocated on this container instance to tasks.
7943	// For port resource types, this parameter describes the ports that were reserved
7944	// by the Amazon ECS container agent when it registered the container instance
7945	// with Amazon ECS.
7946	RegisteredResources []*Resource `locationName:"registeredResources" type:"list"`
7947
7948	// For CPU and memory resource types, this parameter describes the remaining
7949	// CPU and memory that has not already been allocated to tasks and is therefore
7950	// available for new tasks. For port resource types, this parameter describes
7951	// the ports that were reserved by the Amazon ECS container agent (at instance
7952	// registration time) and any task containers that have reserved port mappings
7953	// on the host (with the host or bridge network mode). Any port that is not
7954	// specified here is available for new tasks.
7955	RemainingResources []*Resource `locationName:"remainingResources" type:"list"`
7956
7957	// The number of tasks on the container instance that are in the RUNNING status.
7958	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
7959
7960	// The status of the container instance. The valid values are REGISTERING, REGISTRATION_FAILED,
7961	// ACTIVE, INACTIVE, DEREGISTERING, or DRAINING.
7962	//
7963	// If your account has opted in to the awsvpcTrunking account setting, then
7964	// any newly registered container instance will transition to a REGISTERING
7965	// status while the trunk elastic network interface is provisioned for the instance.
7966	// If the registration fails, the instance will transition to a REGISTRATION_FAILED
7967	// status. You can describe the container instance and see the reason for failure
7968	// in the statusReason parameter. Once the container instance is terminated,
7969	// the instance transitions to a DEREGISTERING status while the trunk elastic
7970	// network interface is deprovisioned. The instance then transitions to an INACTIVE
7971	// status.
7972	//
7973	// The ACTIVE status indicates that the container instance can accept tasks.
7974	// The DRAINING indicates that new tasks are not placed on the container instance
7975	// and any service tasks running on the container instance are removed if possible.
7976	// For more information, see Container Instance Draining (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-draining.html)
7977	// in the Amazon Elastic Container Service Developer Guide.
7978	Status *string `locationName:"status" type:"string"`
7979
7980	// The reason that the container instance reached its current status.
7981	StatusReason *string `locationName:"statusReason" type:"string"`
7982
7983	// The metadata that you apply to the container instance to help you categorize
7984	// and organize them. Each tag consists of a key and an optional value, both
7985	// of which you define.
7986	//
7987	// The following basic restrictions apply to tags:
7988	//
7989	//    * Maximum number of tags per resource - 50
7990	//
7991	//    * For each resource, each tag key must be unique, and each tag key can
7992	//    have only one value.
7993	//
7994	//    * Maximum key length - 128 Unicode characters in UTF-8
7995	//
7996	//    * Maximum value length - 256 Unicode characters in UTF-8
7997	//
7998	//    * If your tagging schema is used across multiple services and resources,
7999	//    remember that other services may have restrictions on allowed characters.
8000	//    Generally allowed characters are: letters, numbers, and spaces representable
8001	//    in UTF-8, and the following characters: + - = . _ : / @.
8002	//
8003	//    * Tag keys and values are case-sensitive.
8004	//
8005	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
8006	//    as a prefix for either keys or values as it is reserved for AWS use. You
8007	//    cannot edit or delete tag keys or values with this prefix. Tags with this
8008	//    prefix do not count against your tags per resource limit.
8009	Tags []*Tag `locationName:"tags" type:"list"`
8010
8011	// The version counter for the container instance. Every time a container instance
8012	// experiences a change that triggers a CloudWatch event, the version counter
8013	// is incremented. If you are replicating your Amazon ECS container instance
8014	// state with CloudWatch Events, you can compare the version of a container
8015	// instance reported by the Amazon ECS APIs with the version reported in CloudWatch
8016	// Events for the container instance (inside the detail object) to verify that
8017	// the version in your event stream is current.
8018	Version *int64 `locationName:"version" type:"long"`
8019
8020	// The version information for the Amazon ECS container agent and Docker daemon
8021	// running on the container instance.
8022	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
8023}
8024
8025// String returns the string representation
8026func (s ContainerInstance) String() string {
8027	return awsutil.Prettify(s)
8028}
8029
8030// GoString returns the string representation
8031func (s ContainerInstance) GoString() string {
8032	return s.String()
8033}
8034
8035// SetAgentConnected sets the AgentConnected field's value.
8036func (s *ContainerInstance) SetAgentConnected(v bool) *ContainerInstance {
8037	s.AgentConnected = &v
8038	return s
8039}
8040
8041// SetAgentUpdateStatus sets the AgentUpdateStatus field's value.
8042func (s *ContainerInstance) SetAgentUpdateStatus(v string) *ContainerInstance {
8043	s.AgentUpdateStatus = &v
8044	return s
8045}
8046
8047// SetAttachments sets the Attachments field's value.
8048func (s *ContainerInstance) SetAttachments(v []*Attachment) *ContainerInstance {
8049	s.Attachments = v
8050	return s
8051}
8052
8053// SetAttributes sets the Attributes field's value.
8054func (s *ContainerInstance) SetAttributes(v []*Attribute) *ContainerInstance {
8055	s.Attributes = v
8056	return s
8057}
8058
8059// SetCapacityProviderName sets the CapacityProviderName field's value.
8060func (s *ContainerInstance) SetCapacityProviderName(v string) *ContainerInstance {
8061	s.CapacityProviderName = &v
8062	return s
8063}
8064
8065// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
8066func (s *ContainerInstance) SetContainerInstanceArn(v string) *ContainerInstance {
8067	s.ContainerInstanceArn = &v
8068	return s
8069}
8070
8071// SetEc2InstanceId sets the Ec2InstanceId field's value.
8072func (s *ContainerInstance) SetEc2InstanceId(v string) *ContainerInstance {
8073	s.Ec2InstanceId = &v
8074	return s
8075}
8076
8077// SetPendingTasksCount sets the PendingTasksCount field's value.
8078func (s *ContainerInstance) SetPendingTasksCount(v int64) *ContainerInstance {
8079	s.PendingTasksCount = &v
8080	return s
8081}
8082
8083// SetRegisteredAt sets the RegisteredAt field's value.
8084func (s *ContainerInstance) SetRegisteredAt(v time.Time) *ContainerInstance {
8085	s.RegisteredAt = &v
8086	return s
8087}
8088
8089// SetRegisteredResources sets the RegisteredResources field's value.
8090func (s *ContainerInstance) SetRegisteredResources(v []*Resource) *ContainerInstance {
8091	s.RegisteredResources = v
8092	return s
8093}
8094
8095// SetRemainingResources sets the RemainingResources field's value.
8096func (s *ContainerInstance) SetRemainingResources(v []*Resource) *ContainerInstance {
8097	s.RemainingResources = v
8098	return s
8099}
8100
8101// SetRunningTasksCount sets the RunningTasksCount field's value.
8102func (s *ContainerInstance) SetRunningTasksCount(v int64) *ContainerInstance {
8103	s.RunningTasksCount = &v
8104	return s
8105}
8106
8107// SetStatus sets the Status field's value.
8108func (s *ContainerInstance) SetStatus(v string) *ContainerInstance {
8109	s.Status = &v
8110	return s
8111}
8112
8113// SetStatusReason sets the StatusReason field's value.
8114func (s *ContainerInstance) SetStatusReason(v string) *ContainerInstance {
8115	s.StatusReason = &v
8116	return s
8117}
8118
8119// SetTags sets the Tags field's value.
8120func (s *ContainerInstance) SetTags(v []*Tag) *ContainerInstance {
8121	s.Tags = v
8122	return s
8123}
8124
8125// SetVersion sets the Version field's value.
8126func (s *ContainerInstance) SetVersion(v int64) *ContainerInstance {
8127	s.Version = &v
8128	return s
8129}
8130
8131// SetVersionInfo sets the VersionInfo field's value.
8132func (s *ContainerInstance) SetVersionInfo(v *VersionInfo) *ContainerInstance {
8133	s.VersionInfo = v
8134	return s
8135}
8136
8137// The overrides that should be sent to a container. An empty container override
8138// can be passed in. An example of an empty container override would be {"containerOverrides":
8139// [ ] }. If a non-empty container override is specified, the name parameter
8140// must be included.
8141type ContainerOverride struct {
8142	_ struct{} `type:"structure"`
8143
8144	// The command to send to the container that overrides the default command from
8145	// the Docker image or the task definition. You must also specify a container
8146	// name.
8147	Command []*string `locationName:"command" type:"list"`
8148
8149	// The number of cpu units reserved for the container, instead of the default
8150	// value from the task definition. You must also specify a container name.
8151	Cpu *int64 `locationName:"cpu" type:"integer"`
8152
8153	// The environment variables to send to the container. You can add new environment
8154	// variables, which are added to the container at launch, or you can override
8155	// the existing environment variables from the Docker image or the task definition.
8156	// You must also specify a container name.
8157	Environment []*KeyValuePair `locationName:"environment" type:"list"`
8158
8159	// A list of files containing the environment variables to pass to a container,
8160	// instead of the value from the container definition.
8161	EnvironmentFiles []*EnvironmentFile `locationName:"environmentFiles" type:"list"`
8162
8163	// The hard limit (in MiB) of memory to present to the container, instead of
8164	// the default value from the task definition. If your container attempts to
8165	// exceed the memory specified here, the container is killed. You must also
8166	// specify a container name.
8167	Memory *int64 `locationName:"memory" type:"integer"`
8168
8169	// The soft limit (in MiB) of memory to reserve for the container, instead of
8170	// the default value from the task definition. You must also specify a container
8171	// name.
8172	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
8173
8174	// The name of the container that receives the override. This parameter is required
8175	// if any override is specified.
8176	Name *string `locationName:"name" type:"string"`
8177
8178	// The type and amount of a resource to assign to a container, instead of the
8179	// default value from the task definition. The only supported resource is a
8180	// GPU.
8181	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
8182}
8183
8184// String returns the string representation
8185func (s ContainerOverride) String() string {
8186	return awsutil.Prettify(s)
8187}
8188
8189// GoString returns the string representation
8190func (s ContainerOverride) GoString() string {
8191	return s.String()
8192}
8193
8194// Validate inspects the fields of the type to determine if they are valid.
8195func (s *ContainerOverride) Validate() error {
8196	invalidParams := request.ErrInvalidParams{Context: "ContainerOverride"}
8197	if s.EnvironmentFiles != nil {
8198		for i, v := range s.EnvironmentFiles {
8199			if v == nil {
8200				continue
8201			}
8202			if err := v.Validate(); err != nil {
8203				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EnvironmentFiles", i), err.(request.ErrInvalidParams))
8204			}
8205		}
8206	}
8207	if s.ResourceRequirements != nil {
8208		for i, v := range s.ResourceRequirements {
8209			if v == nil {
8210				continue
8211			}
8212			if err := v.Validate(); err != nil {
8213				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
8214			}
8215		}
8216	}
8217
8218	if invalidParams.Len() > 0 {
8219		return invalidParams
8220	}
8221	return nil
8222}
8223
8224// SetCommand sets the Command field's value.
8225func (s *ContainerOverride) SetCommand(v []*string) *ContainerOverride {
8226	s.Command = v
8227	return s
8228}
8229
8230// SetCpu sets the Cpu field's value.
8231func (s *ContainerOverride) SetCpu(v int64) *ContainerOverride {
8232	s.Cpu = &v
8233	return s
8234}
8235
8236// SetEnvironment sets the Environment field's value.
8237func (s *ContainerOverride) SetEnvironment(v []*KeyValuePair) *ContainerOverride {
8238	s.Environment = v
8239	return s
8240}
8241
8242// SetEnvironmentFiles sets the EnvironmentFiles field's value.
8243func (s *ContainerOverride) SetEnvironmentFiles(v []*EnvironmentFile) *ContainerOverride {
8244	s.EnvironmentFiles = v
8245	return s
8246}
8247
8248// SetMemory sets the Memory field's value.
8249func (s *ContainerOverride) SetMemory(v int64) *ContainerOverride {
8250	s.Memory = &v
8251	return s
8252}
8253
8254// SetMemoryReservation sets the MemoryReservation field's value.
8255func (s *ContainerOverride) SetMemoryReservation(v int64) *ContainerOverride {
8256	s.MemoryReservation = &v
8257	return s
8258}
8259
8260// SetName sets the Name field's value.
8261func (s *ContainerOverride) SetName(v string) *ContainerOverride {
8262	s.Name = &v
8263	return s
8264}
8265
8266// SetResourceRequirements sets the ResourceRequirements field's value.
8267func (s *ContainerOverride) SetResourceRequirements(v []*ResourceRequirement) *ContainerOverride {
8268	s.ResourceRequirements = v
8269	return s
8270}
8271
8272// An object representing a change in state for a container.
8273type ContainerStateChange struct {
8274	_ struct{} `type:"structure"`
8275
8276	// The name of the container.
8277	ContainerName *string `locationName:"containerName" type:"string"`
8278
8279	// The exit code for the container, if the state change is a result of the container
8280	// exiting.
8281	ExitCode *int64 `locationName:"exitCode" type:"integer"`
8282
8283	// The container image SHA 256 digest.
8284	ImageDigest *string `locationName:"imageDigest" type:"string"`
8285
8286	// Any network bindings associated with the container.
8287	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
8288
8289	// The reason for the state change.
8290	Reason *string `locationName:"reason" type:"string"`
8291
8292	// The ID of the Docker container.
8293	RuntimeId *string `locationName:"runtimeId" type:"string"`
8294
8295	// The status of the container.
8296	Status *string `locationName:"status" type:"string"`
8297}
8298
8299// String returns the string representation
8300func (s ContainerStateChange) String() string {
8301	return awsutil.Prettify(s)
8302}
8303
8304// GoString returns the string representation
8305func (s ContainerStateChange) GoString() string {
8306	return s.String()
8307}
8308
8309// SetContainerName sets the ContainerName field's value.
8310func (s *ContainerStateChange) SetContainerName(v string) *ContainerStateChange {
8311	s.ContainerName = &v
8312	return s
8313}
8314
8315// SetExitCode sets the ExitCode field's value.
8316func (s *ContainerStateChange) SetExitCode(v int64) *ContainerStateChange {
8317	s.ExitCode = &v
8318	return s
8319}
8320
8321// SetImageDigest sets the ImageDigest field's value.
8322func (s *ContainerStateChange) SetImageDigest(v string) *ContainerStateChange {
8323	s.ImageDigest = &v
8324	return s
8325}
8326
8327// SetNetworkBindings sets the NetworkBindings field's value.
8328func (s *ContainerStateChange) SetNetworkBindings(v []*NetworkBinding) *ContainerStateChange {
8329	s.NetworkBindings = v
8330	return s
8331}
8332
8333// SetReason sets the Reason field's value.
8334func (s *ContainerStateChange) SetReason(v string) *ContainerStateChange {
8335	s.Reason = &v
8336	return s
8337}
8338
8339// SetRuntimeId sets the RuntimeId field's value.
8340func (s *ContainerStateChange) SetRuntimeId(v string) *ContainerStateChange {
8341	s.RuntimeId = &v
8342	return s
8343}
8344
8345// SetStatus sets the Status field's value.
8346func (s *ContainerStateChange) SetStatus(v string) *ContainerStateChange {
8347	s.Status = &v
8348	return s
8349}
8350
8351type CreateCapacityProviderInput struct {
8352	_ struct{} `type:"structure"`
8353
8354	// The details of the Auto Scaling group for the capacity provider.
8355	//
8356	// AutoScalingGroupProvider is a required field
8357	AutoScalingGroupProvider *AutoScalingGroupProvider `locationName:"autoScalingGroupProvider" type:"structure" required:"true"`
8358
8359	// The name of the capacity provider. Up to 255 characters are allowed, including
8360	// letters (upper and lowercase), numbers, underscores, and hyphens. The name
8361	// cannot be prefixed with "aws", "ecs", or "fargate".
8362	//
8363	// Name is a required field
8364	Name *string `locationName:"name" type:"string" required:"true"`
8365
8366	// The metadata that you apply to the capacity provider to help you categorize
8367	// and organize them. Each tag consists of a key and an optional value, both
8368	// of which you define.
8369	//
8370	// The following basic restrictions apply to tags:
8371	//
8372	//    * Maximum number of tags per resource - 50
8373	//
8374	//    * For each resource, each tag key must be unique, and each tag key can
8375	//    have only one value.
8376	//
8377	//    * Maximum key length - 128 Unicode characters in UTF-8
8378	//
8379	//    * Maximum value length - 256 Unicode characters in UTF-8
8380	//
8381	//    * If your tagging schema is used across multiple services and resources,
8382	//    remember that other services may have restrictions on allowed characters.
8383	//    Generally allowed characters are: letters, numbers, and spaces representable
8384	//    in UTF-8, and the following characters: + - = . _ : / @.
8385	//
8386	//    * Tag keys and values are case-sensitive.
8387	//
8388	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
8389	//    as a prefix for either keys or values as it is reserved for AWS use. You
8390	//    cannot edit or delete tag keys or values with this prefix. Tags with this
8391	//    prefix do not count against your tags per resource limit.
8392	Tags []*Tag `locationName:"tags" type:"list"`
8393}
8394
8395// String returns the string representation
8396func (s CreateCapacityProviderInput) String() string {
8397	return awsutil.Prettify(s)
8398}
8399
8400// GoString returns the string representation
8401func (s CreateCapacityProviderInput) GoString() string {
8402	return s.String()
8403}
8404
8405// Validate inspects the fields of the type to determine if they are valid.
8406func (s *CreateCapacityProviderInput) Validate() error {
8407	invalidParams := request.ErrInvalidParams{Context: "CreateCapacityProviderInput"}
8408	if s.AutoScalingGroupProvider == nil {
8409		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupProvider"))
8410	}
8411	if s.Name == nil {
8412		invalidParams.Add(request.NewErrParamRequired("Name"))
8413	}
8414	if s.AutoScalingGroupProvider != nil {
8415		if err := s.AutoScalingGroupProvider.Validate(); err != nil {
8416			invalidParams.AddNested("AutoScalingGroupProvider", err.(request.ErrInvalidParams))
8417		}
8418	}
8419	if s.Tags != nil {
8420		for i, v := range s.Tags {
8421			if v == nil {
8422				continue
8423			}
8424			if err := v.Validate(); err != nil {
8425				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8426			}
8427		}
8428	}
8429
8430	if invalidParams.Len() > 0 {
8431		return invalidParams
8432	}
8433	return nil
8434}
8435
8436// SetAutoScalingGroupProvider sets the AutoScalingGroupProvider field's value.
8437func (s *CreateCapacityProviderInput) SetAutoScalingGroupProvider(v *AutoScalingGroupProvider) *CreateCapacityProviderInput {
8438	s.AutoScalingGroupProvider = v
8439	return s
8440}
8441
8442// SetName sets the Name field's value.
8443func (s *CreateCapacityProviderInput) SetName(v string) *CreateCapacityProviderInput {
8444	s.Name = &v
8445	return s
8446}
8447
8448// SetTags sets the Tags field's value.
8449func (s *CreateCapacityProviderInput) SetTags(v []*Tag) *CreateCapacityProviderInput {
8450	s.Tags = v
8451	return s
8452}
8453
8454type CreateCapacityProviderOutput struct {
8455	_ struct{} `type:"structure"`
8456
8457	// The full description of the new capacity provider.
8458	CapacityProvider *CapacityProvider `locationName:"capacityProvider" type:"structure"`
8459}
8460
8461// String returns the string representation
8462func (s CreateCapacityProviderOutput) String() string {
8463	return awsutil.Prettify(s)
8464}
8465
8466// GoString returns the string representation
8467func (s CreateCapacityProviderOutput) GoString() string {
8468	return s.String()
8469}
8470
8471// SetCapacityProvider sets the CapacityProvider field's value.
8472func (s *CreateCapacityProviderOutput) SetCapacityProvider(v *CapacityProvider) *CreateCapacityProviderOutput {
8473	s.CapacityProvider = v
8474	return s
8475}
8476
8477type CreateClusterInput struct {
8478	_ struct{} `type:"structure"`
8479
8480	// The short name of one or more capacity providers to associate with the cluster.
8481	//
8482	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
8483	// provider must already be created and not already associated with another
8484	// cluster. New capacity providers can be created with the CreateCapacityProvider
8485	// API operation.
8486	//
8487	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
8488	// capacity providers. The AWS Fargate capacity providers are available to all
8489	// accounts and only need to be associated with a cluster to be used.
8490	//
8491	// The PutClusterCapacityProviders API operation is used to update the list
8492	// of available capacity providers for a cluster after the cluster is created.
8493	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
8494
8495	// The name of your cluster. If you do not specify a name for your cluster,
8496	// you create a cluster named default. Up to 255 letters (uppercase and lowercase),
8497	// numbers, and hyphens are allowed.
8498	ClusterName *string `locationName:"clusterName" type:"string"`
8499
8500	// The capacity provider strategy to use by default for the cluster.
8501	//
8502	// When creating a service or running a task on a cluster, if no capacity provider
8503	// or launch type is specified then the default capacity provider strategy for
8504	// the cluster is used.
8505	//
8506	// A capacity provider strategy consists of one or more capacity providers along
8507	// with the base and weight to assign to them. A capacity provider must be associated
8508	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
8509	// API is used to associate a capacity provider with a cluster. Only capacity
8510	// providers with an ACTIVE or UPDATING status can be used.
8511	//
8512	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
8513	// provider must already be created. New capacity providers can be created with
8514	// the CreateCapacityProvider API operation.
8515	//
8516	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
8517	// capacity providers. The AWS Fargate capacity providers are available to all
8518	// accounts and only need to be associated with a cluster to be used.
8519	//
8520	// If a default capacity provider strategy is not defined for a cluster during
8521	// creation, it can be defined later with the PutClusterCapacityProviders API
8522	// operation.
8523	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list"`
8524
8525	// The setting to use when creating a cluster. This parameter is used to enable
8526	// CloudWatch Container Insights for a cluster. If this value is specified,
8527	// it will override the containerInsights value set with PutAccountSetting or
8528	// PutAccountSettingDefault.
8529	Settings []*ClusterSetting `locationName:"settings" type:"list"`
8530
8531	// The metadata that you apply to the cluster to help you categorize and organize
8532	// them. Each tag consists of a key and an optional value, both of which you
8533	// define.
8534	//
8535	// The following basic restrictions apply to tags:
8536	//
8537	//    * Maximum number of tags per resource - 50
8538	//
8539	//    * For each resource, each tag key must be unique, and each tag key can
8540	//    have only one value.
8541	//
8542	//    * Maximum key length - 128 Unicode characters in UTF-8
8543	//
8544	//    * Maximum value length - 256 Unicode characters in UTF-8
8545	//
8546	//    * If your tagging schema is used across multiple services and resources,
8547	//    remember that other services may have restrictions on allowed characters.
8548	//    Generally allowed characters are: letters, numbers, and spaces representable
8549	//    in UTF-8, and the following characters: + - = . _ : / @.
8550	//
8551	//    * Tag keys and values are case-sensitive.
8552	//
8553	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
8554	//    as a prefix for either keys or values as it is reserved for AWS use. You
8555	//    cannot edit or delete tag keys or values with this prefix. Tags with this
8556	//    prefix do not count against your tags per resource limit.
8557	Tags []*Tag `locationName:"tags" type:"list"`
8558}
8559
8560// String returns the string representation
8561func (s CreateClusterInput) String() string {
8562	return awsutil.Prettify(s)
8563}
8564
8565// GoString returns the string representation
8566func (s CreateClusterInput) GoString() string {
8567	return s.String()
8568}
8569
8570// Validate inspects the fields of the type to determine if they are valid.
8571func (s *CreateClusterInput) Validate() error {
8572	invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
8573	if s.DefaultCapacityProviderStrategy != nil {
8574		for i, v := range s.DefaultCapacityProviderStrategy {
8575			if v == nil {
8576				continue
8577			}
8578			if err := v.Validate(); err != nil {
8579				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultCapacityProviderStrategy", i), err.(request.ErrInvalidParams))
8580			}
8581		}
8582	}
8583	if s.Tags != nil {
8584		for i, v := range s.Tags {
8585			if v == nil {
8586				continue
8587			}
8588			if err := v.Validate(); err != nil {
8589				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8590			}
8591		}
8592	}
8593
8594	if invalidParams.Len() > 0 {
8595		return invalidParams
8596	}
8597	return nil
8598}
8599
8600// SetCapacityProviders sets the CapacityProviders field's value.
8601func (s *CreateClusterInput) SetCapacityProviders(v []*string) *CreateClusterInput {
8602	s.CapacityProviders = v
8603	return s
8604}
8605
8606// SetClusterName sets the ClusterName field's value.
8607func (s *CreateClusterInput) SetClusterName(v string) *CreateClusterInput {
8608	s.ClusterName = &v
8609	return s
8610}
8611
8612// SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
8613func (s *CreateClusterInput) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateClusterInput {
8614	s.DefaultCapacityProviderStrategy = v
8615	return s
8616}
8617
8618// SetSettings sets the Settings field's value.
8619func (s *CreateClusterInput) SetSettings(v []*ClusterSetting) *CreateClusterInput {
8620	s.Settings = v
8621	return s
8622}
8623
8624// SetTags sets the Tags field's value.
8625func (s *CreateClusterInput) SetTags(v []*Tag) *CreateClusterInput {
8626	s.Tags = v
8627	return s
8628}
8629
8630type CreateClusterOutput struct {
8631	_ struct{} `type:"structure"`
8632
8633	// The full description of your new cluster.
8634	Cluster *Cluster `locationName:"cluster" type:"structure"`
8635}
8636
8637// String returns the string representation
8638func (s CreateClusterOutput) String() string {
8639	return awsutil.Prettify(s)
8640}
8641
8642// GoString returns the string representation
8643func (s CreateClusterOutput) GoString() string {
8644	return s.String()
8645}
8646
8647// SetCluster sets the Cluster field's value.
8648func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput {
8649	s.Cluster = v
8650	return s
8651}
8652
8653type CreateServiceInput struct {
8654	_ struct{} `type:"structure"`
8655
8656	// The capacity provider strategy to use for the service.
8657	//
8658	// A capacity provider strategy consists of one or more capacity providers along
8659	// with the base and weight to assign to them. A capacity provider must be associated
8660	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
8661	// API is used to associate a capacity provider with a cluster. Only capacity
8662	// providers with an ACTIVE or UPDATING status can be used.
8663	//
8664	// If a capacityProviderStrategy is specified, the launchType parameter must
8665	// be omitted. If no capacityProviderStrategy or launchType is specified, the
8666	// defaultCapacityProviderStrategy for the cluster is used.
8667	//
8668	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
8669	// provider must already be created. New capacity providers can be created with
8670	// the CreateCapacityProvider API operation.
8671	//
8672	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
8673	// capacity providers. The AWS Fargate capacity providers are available to all
8674	// accounts and only need to be associated with a cluster to be used.
8675	//
8676	// The PutClusterCapacityProviders API operation is used to update the list
8677	// of available capacity providers for a cluster after the cluster is created.
8678	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
8679
8680	// Unique, case-sensitive identifier that you provide to ensure the idempotency
8681	// of the request. Up to 32 ASCII characters are allowed.
8682	ClientToken *string `locationName:"clientToken" type:"string"`
8683
8684	// The short name or full Amazon Resource Name (ARN) of the cluster on which
8685	// to run your service. If you do not specify a cluster, the default cluster
8686	// is assumed.
8687	Cluster *string `locationName:"cluster" type:"string"`
8688
8689	// Optional deployment parameters that control how many tasks run during the
8690	// deployment and the ordering of stopping and starting tasks.
8691	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
8692
8693	// The deployment controller to use for the service.
8694	DeploymentController *DeploymentController `locationName:"deploymentController" type:"structure"`
8695
8696	// The number of instantiations of the specified task definition to place and
8697	// keep running on your cluster.
8698	//
8699	// This is required if schedulingStrategy is REPLICA or is not specified. If
8700	// schedulingStrategy is DAEMON then this is not required.
8701	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
8702
8703	// Specifies whether to enable Amazon ECS managed tags for the tasks within
8704	// the service. For more information, see Tagging Your Amazon ECS Resources
8705	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
8706	// in the Amazon Elastic Container Service Developer Guide.
8707	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
8708
8709	// The period of time, in seconds, that the Amazon ECS service scheduler should
8710	// ignore unhealthy Elastic Load Balancing target health checks after a task
8711	// has first started. This is only used when your service is configured to use
8712	// a load balancer. If your service has a load balancer defined and you don't
8713	// specify a health check grace period value, the default value of 0 is used.
8714	//
8715	// If your service's tasks take a while to start and respond to Elastic Load
8716	// Balancing health checks, you can specify a health check grace period of up
8717	// to 2,147,483,647 seconds. During that time, the Amazon ECS service scheduler
8718	// ignores health check status. This grace period can prevent the service scheduler
8719	// from marking tasks as unhealthy and stopping them before they have time to
8720	// come up.
8721	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
8722
8723	// The launch type on which to run your service. For more information, see Amazon
8724	// ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
8725	// in the Amazon Elastic Container Service Developer Guide.
8726	//
8727	// If a launchType is specified, the capacityProviderStrategy parameter must
8728	// be omitted.
8729	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
8730
8731	// A load balancer object representing the load balancers to use with your service.
8732	// For more information, see Service Load Balancing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)
8733	// in the Amazon Elastic Container Service Developer Guide.
8734	//
8735	// If the service is using the rolling update (ECS) deployment controller and
8736	// using either an Application Load Balancer or Network Load Balancer, you can
8737	// specify multiple target groups to attach to the service. The service-linked
8738	// role is required for services that make use of multiple target groups. For
8739	// more information, see Using Service-Linked Roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
8740	// in the Amazon Elastic Container Service Developer Guide.
8741	//
8742	// If the service is using the CODE_DEPLOY deployment controller, the service
8743	// is required to use either an Application Load Balancer or Network Load Balancer.
8744	// When creating an AWS CodeDeploy deployment group, you specify two target
8745	// groups (referred to as a targetGroupPair). During a deployment, AWS CodeDeploy
8746	// determines which task set in your service has the status PRIMARY and associates
8747	// one target group with it, and then associates the other target group with
8748	// the replacement task set. The load balancer can also have up to two listeners:
8749	// a required listener for production traffic and an optional listener that
8750	// allows you perform validation tests with Lambda functions before routing
8751	// production traffic to it.
8752	//
8753	// After you create a service using the ECS deployment controller, the load
8754	// balancer name or target group ARN, container name, and container port specified
8755	// in the service definition are immutable. If you are using the CODE_DEPLOY
8756	// deployment controller, these values can be changed when updating the service.
8757	//
8758	// For Application Load Balancers and Network Load Balancers, this object must
8759	// contain the load balancer target group ARN, the container name (as it appears
8760	// in a container definition), and the container port to access from the load
8761	// balancer. When a task from this service is placed on a container instance,
8762	// the container instance and port combination is registered as a target in
8763	// the target group specified here.
8764	//
8765	// For Classic Load Balancers, this object must contain the load balancer name,
8766	// the container name (as it appears in a container definition), and the container
8767	// port to access from the load balancer. When a task from this service is placed
8768	// on a container instance, the container instance is registered with the load
8769	// balancer specified here.
8770	//
8771	// Services with tasks that use the awsvpc network mode (for example, those
8772	// with the Fargate launch type) only support Application Load Balancers and
8773	// Network Load Balancers. Classic Load Balancers are not supported. Also, when
8774	// you create any target groups for these services, you must choose ip as the
8775	// target type, not instance, because tasks that use the awsvpc network mode
8776	// are associated with an elastic network interface, not an Amazon EC2 instance.
8777	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
8778
8779	// The network configuration for the service. This parameter is required for
8780	// task definitions that use the awsvpc network mode to receive their own elastic
8781	// network interface, and it is not supported for other network modes. For more
8782	// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
8783	// in the Amazon Elastic Container Service Developer Guide.
8784	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
8785
8786	// An array of placement constraint objects to use for tasks in your service.
8787	// You can specify a maximum of 10 constraints per task (this limit includes
8788	// constraints in the task definition and those specified at runtime).
8789	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
8790
8791	// The placement strategy objects to use for tasks in your service. You can
8792	// specify a maximum of five strategy rules per service.
8793	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
8794
8795	// The platform version that your tasks in the service are running on. A platform
8796	// version is specified only for tasks using the Fargate launch type. If one
8797	// isn't specified, the LATEST platform version is used by default. For more
8798	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
8799	// in the Amazon Elastic Container Service Developer Guide.
8800	PlatformVersion *string `locationName:"platformVersion" type:"string"`
8801
8802	// Specifies whether to propagate the tags from the task definition or the service
8803	// to the tasks in the service. If no value is specified, the tags are not propagated.
8804	// Tags can only be propagated to the tasks within the service during service
8805	// creation. To add tags to a task after service creation, use the TagResource
8806	// API action.
8807	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
8808
8809	// The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon
8810	// ECS to make calls to your load balancer on your behalf. This parameter is
8811	// only permitted if you are using a load balancer with your service and your
8812	// task definition does not use the awsvpc network mode. If you specify the
8813	// role parameter, you must also specify a load balancer object with the loadBalancers
8814	// parameter.
8815	//
8816	// If your account has already created the Amazon ECS service-linked role, that
8817	// role is used by default for your service unless you specify a role here.
8818	// The service-linked role is required if your task definition uses the awsvpc
8819	// network mode or if the service is configured to use service discovery, an
8820	// external deployment controller, multiple target groups, or Elastic Inference
8821	// accelerators in which case you should not specify a role here. For more information,
8822	// see Using Service-Linked Roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
8823	// in the Amazon Elastic Container Service Developer Guide.
8824	//
8825	// If your specified role has a path other than /, then you must either specify
8826	// the full role ARN (this is recommended) or prefix the role name with the
8827	// path. For example, if a role with the name bar has a path of /foo/ then you
8828	// would specify /foo/bar as the role name. For more information, see Friendly
8829	// Names and Paths (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names)
8830	// in the IAM User Guide.
8831	Role *string `locationName:"role" type:"string"`
8832
8833	// The scheduling strategy to use for the service. For more information, see
8834	// Services (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).
8835	//
8836	// There are two service scheduler strategies available:
8837	//
8838	//    * REPLICA-The replica scheduling strategy places and maintains the desired
8839	//    number of tasks across your cluster. By default, the service scheduler
8840	//    spreads tasks across Availability Zones. You can use task placement strategies
8841	//    and constraints to customize task placement decisions. This scheduler
8842	//    strategy is required if the service is using the CODE_DEPLOY or EXTERNAL
8843	//    deployment controller types.
8844	//
8845	//    * DAEMON-The daemon scheduling strategy deploys exactly one task on each
8846	//    active container instance that meets all of the task placement constraints
8847	//    that you specify in your cluster. The service scheduler also evaluates
8848	//    the task placement constraints for running tasks and will stop tasks that
8849	//    do not meet the placement constraints. When you're using this strategy,
8850	//    you don't need to specify a desired number of tasks, a task placement
8851	//    strategy, or use Service Auto Scaling policies. Tasks using the Fargate
8852	//    launch type or the CODE_DEPLOY or EXTERNAL deployment controller types
8853	//    don't support the DAEMON scheduling strategy.
8854	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
8855
8856	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
8857	// and hyphens are allowed. Service names must be unique within a cluster, but
8858	// you can have similarly named services in multiple clusters within a Region
8859	// or across multiple Regions.
8860	//
8861	// ServiceName is a required field
8862	ServiceName *string `locationName:"serviceName" type:"string" required:"true"`
8863
8864	// The details of the service discovery registries to assign to this service.
8865	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
8866	//
8867	// Service discovery is supported for Fargate tasks if you are using platform
8868	// version v1.1.0 or later. For more information, see AWS Fargate Platform Versions
8869	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).
8870	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
8871
8872	// The metadata that you apply to the service to help you categorize and organize
8873	// them. Each tag consists of a key and an optional value, both of which you
8874	// define. When a service is deleted, the tags are deleted as well.
8875	//
8876	// The following basic restrictions apply to tags:
8877	//
8878	//    * Maximum number of tags per resource - 50
8879	//
8880	//    * For each resource, each tag key must be unique, and each tag key can
8881	//    have only one value.
8882	//
8883	//    * Maximum key length - 128 Unicode characters in UTF-8
8884	//
8885	//    * Maximum value length - 256 Unicode characters in UTF-8
8886	//
8887	//    * If your tagging schema is used across multiple services and resources,
8888	//    remember that other services may have restrictions on allowed characters.
8889	//    Generally allowed characters are: letters, numbers, and spaces representable
8890	//    in UTF-8, and the following characters: + - = . _ : / @.
8891	//
8892	//    * Tag keys and values are case-sensitive.
8893	//
8894	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
8895	//    as a prefix for either keys or values as it is reserved for AWS use. You
8896	//    cannot edit or delete tag keys or values with this prefix. Tags with this
8897	//    prefix do not count against your tags per resource limit.
8898	Tags []*Tag `locationName:"tags" type:"list"`
8899
8900	// The family and revision (family:revision) or full ARN of the task definition
8901	// to run in your service. If a revision is not specified, the latest ACTIVE
8902	// revision is used.
8903	//
8904	// A task definition must be specified if the service is using the ECS deployment
8905	// controller.
8906	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
8907}
8908
8909// String returns the string representation
8910func (s CreateServiceInput) String() string {
8911	return awsutil.Prettify(s)
8912}
8913
8914// GoString returns the string representation
8915func (s CreateServiceInput) GoString() string {
8916	return s.String()
8917}
8918
8919// Validate inspects the fields of the type to determine if they are valid.
8920func (s *CreateServiceInput) Validate() error {
8921	invalidParams := request.ErrInvalidParams{Context: "CreateServiceInput"}
8922	if s.ServiceName == nil {
8923		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
8924	}
8925	if s.CapacityProviderStrategy != nil {
8926		for i, v := range s.CapacityProviderStrategy {
8927			if v == nil {
8928				continue
8929			}
8930			if err := v.Validate(); err != nil {
8931				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
8932			}
8933		}
8934	}
8935	if s.DeploymentController != nil {
8936		if err := s.DeploymentController.Validate(); err != nil {
8937			invalidParams.AddNested("DeploymentController", err.(request.ErrInvalidParams))
8938		}
8939	}
8940	if s.NetworkConfiguration != nil {
8941		if err := s.NetworkConfiguration.Validate(); err != nil {
8942			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
8943		}
8944	}
8945	if s.Tags != nil {
8946		for i, v := range s.Tags {
8947			if v == nil {
8948				continue
8949			}
8950			if err := v.Validate(); err != nil {
8951				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8952			}
8953		}
8954	}
8955
8956	if invalidParams.Len() > 0 {
8957		return invalidParams
8958	}
8959	return nil
8960}
8961
8962// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
8963func (s *CreateServiceInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateServiceInput {
8964	s.CapacityProviderStrategy = v
8965	return s
8966}
8967
8968// SetClientToken sets the ClientToken field's value.
8969func (s *CreateServiceInput) SetClientToken(v string) *CreateServiceInput {
8970	s.ClientToken = &v
8971	return s
8972}
8973
8974// SetCluster sets the Cluster field's value.
8975func (s *CreateServiceInput) SetCluster(v string) *CreateServiceInput {
8976	s.Cluster = &v
8977	return s
8978}
8979
8980// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
8981func (s *CreateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *CreateServiceInput {
8982	s.DeploymentConfiguration = v
8983	return s
8984}
8985
8986// SetDeploymentController sets the DeploymentController field's value.
8987func (s *CreateServiceInput) SetDeploymentController(v *DeploymentController) *CreateServiceInput {
8988	s.DeploymentController = v
8989	return s
8990}
8991
8992// SetDesiredCount sets the DesiredCount field's value.
8993func (s *CreateServiceInput) SetDesiredCount(v int64) *CreateServiceInput {
8994	s.DesiredCount = &v
8995	return s
8996}
8997
8998// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
8999func (s *CreateServiceInput) SetEnableECSManagedTags(v bool) *CreateServiceInput {
9000	s.EnableECSManagedTags = &v
9001	return s
9002}
9003
9004// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
9005func (s *CreateServiceInput) SetHealthCheckGracePeriodSeconds(v int64) *CreateServiceInput {
9006	s.HealthCheckGracePeriodSeconds = &v
9007	return s
9008}
9009
9010// SetLaunchType sets the LaunchType field's value.
9011func (s *CreateServiceInput) SetLaunchType(v string) *CreateServiceInput {
9012	s.LaunchType = &v
9013	return s
9014}
9015
9016// SetLoadBalancers sets the LoadBalancers field's value.
9017func (s *CreateServiceInput) SetLoadBalancers(v []*LoadBalancer) *CreateServiceInput {
9018	s.LoadBalancers = v
9019	return s
9020}
9021
9022// SetNetworkConfiguration sets the NetworkConfiguration field's value.
9023func (s *CreateServiceInput) SetNetworkConfiguration(v *NetworkConfiguration) *CreateServiceInput {
9024	s.NetworkConfiguration = v
9025	return s
9026}
9027
9028// SetPlacementConstraints sets the PlacementConstraints field's value.
9029func (s *CreateServiceInput) SetPlacementConstraints(v []*PlacementConstraint) *CreateServiceInput {
9030	s.PlacementConstraints = v
9031	return s
9032}
9033
9034// SetPlacementStrategy sets the PlacementStrategy field's value.
9035func (s *CreateServiceInput) SetPlacementStrategy(v []*PlacementStrategy) *CreateServiceInput {
9036	s.PlacementStrategy = v
9037	return s
9038}
9039
9040// SetPlatformVersion sets the PlatformVersion field's value.
9041func (s *CreateServiceInput) SetPlatformVersion(v string) *CreateServiceInput {
9042	s.PlatformVersion = &v
9043	return s
9044}
9045
9046// SetPropagateTags sets the PropagateTags field's value.
9047func (s *CreateServiceInput) SetPropagateTags(v string) *CreateServiceInput {
9048	s.PropagateTags = &v
9049	return s
9050}
9051
9052// SetRole sets the Role field's value.
9053func (s *CreateServiceInput) SetRole(v string) *CreateServiceInput {
9054	s.Role = &v
9055	return s
9056}
9057
9058// SetSchedulingStrategy sets the SchedulingStrategy field's value.
9059func (s *CreateServiceInput) SetSchedulingStrategy(v string) *CreateServiceInput {
9060	s.SchedulingStrategy = &v
9061	return s
9062}
9063
9064// SetServiceName sets the ServiceName field's value.
9065func (s *CreateServiceInput) SetServiceName(v string) *CreateServiceInput {
9066	s.ServiceName = &v
9067	return s
9068}
9069
9070// SetServiceRegistries sets the ServiceRegistries field's value.
9071func (s *CreateServiceInput) SetServiceRegistries(v []*ServiceRegistry) *CreateServiceInput {
9072	s.ServiceRegistries = v
9073	return s
9074}
9075
9076// SetTags sets the Tags field's value.
9077func (s *CreateServiceInput) SetTags(v []*Tag) *CreateServiceInput {
9078	s.Tags = v
9079	return s
9080}
9081
9082// SetTaskDefinition sets the TaskDefinition field's value.
9083func (s *CreateServiceInput) SetTaskDefinition(v string) *CreateServiceInput {
9084	s.TaskDefinition = &v
9085	return s
9086}
9087
9088type CreateServiceOutput struct {
9089	_ struct{} `type:"structure"`
9090
9091	// The full description of your service following the create call.
9092	//
9093	// If a service is using the ECS deployment controller, the deploymentController
9094	// and taskSets parameters will not be returned.
9095	//
9096	// If the service is using the CODE_DEPLOY deployment controller, the deploymentController,
9097	// taskSets and deployments parameters will be returned, however the deployments
9098	// parameter will be an empty list.
9099	Service *Service `locationName:"service" type:"structure"`
9100}
9101
9102// String returns the string representation
9103func (s CreateServiceOutput) String() string {
9104	return awsutil.Prettify(s)
9105}
9106
9107// GoString returns the string representation
9108func (s CreateServiceOutput) GoString() string {
9109	return s.String()
9110}
9111
9112// SetService sets the Service field's value.
9113func (s *CreateServiceOutput) SetService(v *Service) *CreateServiceOutput {
9114	s.Service = v
9115	return s
9116}
9117
9118type CreateTaskSetInput struct {
9119	_ struct{} `type:"structure"`
9120
9121	// The capacity provider strategy to use for the task set.
9122	//
9123	// A capacity provider strategy consists of one or more capacity providers along
9124	// with the base and weight to assign to them. A capacity provider must be associated
9125	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
9126	// API is used to associate a capacity provider with a cluster. Only capacity
9127	// providers with an ACTIVE or UPDATING status can be used.
9128	//
9129	// If a capacityProviderStrategy is specified, the launchType parameter must
9130	// be omitted. If no capacityProviderStrategy or launchType is specified, the
9131	// defaultCapacityProviderStrategy for the cluster is used.
9132	//
9133	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
9134	// provider must already be created. New capacity providers can be created with
9135	// the CreateCapacityProvider API operation.
9136	//
9137	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
9138	// capacity providers. The AWS Fargate capacity providers are available to all
9139	// accounts and only need to be associated with a cluster to be used.
9140	//
9141	// The PutClusterCapacityProviders API operation is used to update the list
9142	// of available capacity providers for a cluster after the cluster is created.
9143	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
9144
9145	// Unique, case-sensitive identifier that you provide to ensure the idempotency
9146	// of the request. Up to 32 ASCII characters are allowed.
9147	ClientToken *string `locationName:"clientToken" type:"string"`
9148
9149	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
9150	// the service to create the task set in.
9151	//
9152	// Cluster is a required field
9153	Cluster *string `locationName:"cluster" type:"string" required:"true"`
9154
9155	// An optional non-unique tag that identifies this task set in external systems.
9156	// If the task set is associated with a service discovery registry, the tasks
9157	// in this task set will have the ECS_TASK_SET_EXTERNAL_ID AWS Cloud Map attribute
9158	// set to the provided value.
9159	ExternalId *string `locationName:"externalId" type:"string"`
9160
9161	// The launch type that new tasks in the task set will use. For more information,
9162	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
9163	// in the Amazon Elastic Container Service Developer Guide.
9164	//
9165	// If a launchType is specified, the capacityProviderStrategy parameter must
9166	// be omitted.
9167	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
9168
9169	// A load balancer object representing the load balancer to use with the task
9170	// set. The supported load balancer types are either an Application Load Balancer
9171	// or a Network Load Balancer.
9172	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
9173
9174	// An object representing the network configuration for a task or service.
9175	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
9176
9177	// The platform version that the tasks in the task set should use. A platform
9178	// version is specified only for tasks using the Fargate launch type. If one
9179	// isn't specified, the LATEST platform version is used by default.
9180	PlatformVersion *string `locationName:"platformVersion" type:"string"`
9181
9182	// A floating-point percentage of the desired number of tasks to place and keep
9183	// running in the task set.
9184	Scale *Scale `locationName:"scale" type:"structure"`
9185
9186	// The short name or full Amazon Resource Name (ARN) of the service to create
9187	// the task set in.
9188	//
9189	// Service is a required field
9190	Service *string `locationName:"service" type:"string" required:"true"`
9191
9192	// The details of the service discovery registries to assign to this task set.
9193	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
9194	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
9195
9196	// The metadata that you apply to the task set to help you categorize and organize
9197	// them. Each tag consists of a key and an optional value, both of which you
9198	// define. When a service is deleted, the tags are deleted as well.
9199	//
9200	// The following basic restrictions apply to tags:
9201	//
9202	//    * Maximum number of tags per resource - 50
9203	//
9204	//    * For each resource, each tag key must be unique, and each tag key can
9205	//    have only one value.
9206	//
9207	//    * Maximum key length - 128 Unicode characters in UTF-8
9208	//
9209	//    * Maximum value length - 256 Unicode characters in UTF-8
9210	//
9211	//    * If your tagging schema is used across multiple services and resources,
9212	//    remember that other services may have restrictions on allowed characters.
9213	//    Generally allowed characters are: letters, numbers, and spaces representable
9214	//    in UTF-8, and the following characters: + - = . _ : / @.
9215	//
9216	//    * Tag keys and values are case-sensitive.
9217	//
9218	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
9219	//    as a prefix for either keys or values as it is reserved for AWS use. You
9220	//    cannot edit or delete tag keys or values with this prefix. Tags with this
9221	//    prefix do not count against your tags per resource limit.
9222	Tags []*Tag `locationName:"tags" type:"list"`
9223
9224	// The task definition for the tasks in the task set to use.
9225	//
9226	// TaskDefinition is a required field
9227	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
9228}
9229
9230// String returns the string representation
9231func (s CreateTaskSetInput) String() string {
9232	return awsutil.Prettify(s)
9233}
9234
9235// GoString returns the string representation
9236func (s CreateTaskSetInput) GoString() string {
9237	return s.String()
9238}
9239
9240// Validate inspects the fields of the type to determine if they are valid.
9241func (s *CreateTaskSetInput) Validate() error {
9242	invalidParams := request.ErrInvalidParams{Context: "CreateTaskSetInput"}
9243	if s.Cluster == nil {
9244		invalidParams.Add(request.NewErrParamRequired("Cluster"))
9245	}
9246	if s.Service == nil {
9247		invalidParams.Add(request.NewErrParamRequired("Service"))
9248	}
9249	if s.TaskDefinition == nil {
9250		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
9251	}
9252	if s.CapacityProviderStrategy != nil {
9253		for i, v := range s.CapacityProviderStrategy {
9254			if v == nil {
9255				continue
9256			}
9257			if err := v.Validate(); err != nil {
9258				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
9259			}
9260		}
9261	}
9262	if s.NetworkConfiguration != nil {
9263		if err := s.NetworkConfiguration.Validate(); err != nil {
9264			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
9265		}
9266	}
9267	if s.Tags != nil {
9268		for i, v := range s.Tags {
9269			if v == nil {
9270				continue
9271			}
9272			if err := v.Validate(); err != nil {
9273				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9274			}
9275		}
9276	}
9277
9278	if invalidParams.Len() > 0 {
9279		return invalidParams
9280	}
9281	return nil
9282}
9283
9284// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
9285func (s *CreateTaskSetInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateTaskSetInput {
9286	s.CapacityProviderStrategy = v
9287	return s
9288}
9289
9290// SetClientToken sets the ClientToken field's value.
9291func (s *CreateTaskSetInput) SetClientToken(v string) *CreateTaskSetInput {
9292	s.ClientToken = &v
9293	return s
9294}
9295
9296// SetCluster sets the Cluster field's value.
9297func (s *CreateTaskSetInput) SetCluster(v string) *CreateTaskSetInput {
9298	s.Cluster = &v
9299	return s
9300}
9301
9302// SetExternalId sets the ExternalId field's value.
9303func (s *CreateTaskSetInput) SetExternalId(v string) *CreateTaskSetInput {
9304	s.ExternalId = &v
9305	return s
9306}
9307
9308// SetLaunchType sets the LaunchType field's value.
9309func (s *CreateTaskSetInput) SetLaunchType(v string) *CreateTaskSetInput {
9310	s.LaunchType = &v
9311	return s
9312}
9313
9314// SetLoadBalancers sets the LoadBalancers field's value.
9315func (s *CreateTaskSetInput) SetLoadBalancers(v []*LoadBalancer) *CreateTaskSetInput {
9316	s.LoadBalancers = v
9317	return s
9318}
9319
9320// SetNetworkConfiguration sets the NetworkConfiguration field's value.
9321func (s *CreateTaskSetInput) SetNetworkConfiguration(v *NetworkConfiguration) *CreateTaskSetInput {
9322	s.NetworkConfiguration = v
9323	return s
9324}
9325
9326// SetPlatformVersion sets the PlatformVersion field's value.
9327func (s *CreateTaskSetInput) SetPlatformVersion(v string) *CreateTaskSetInput {
9328	s.PlatformVersion = &v
9329	return s
9330}
9331
9332// SetScale sets the Scale field's value.
9333func (s *CreateTaskSetInput) SetScale(v *Scale) *CreateTaskSetInput {
9334	s.Scale = v
9335	return s
9336}
9337
9338// SetService sets the Service field's value.
9339func (s *CreateTaskSetInput) SetService(v string) *CreateTaskSetInput {
9340	s.Service = &v
9341	return s
9342}
9343
9344// SetServiceRegistries sets the ServiceRegistries field's value.
9345func (s *CreateTaskSetInput) SetServiceRegistries(v []*ServiceRegistry) *CreateTaskSetInput {
9346	s.ServiceRegistries = v
9347	return s
9348}
9349
9350// SetTags sets the Tags field's value.
9351func (s *CreateTaskSetInput) SetTags(v []*Tag) *CreateTaskSetInput {
9352	s.Tags = v
9353	return s
9354}
9355
9356// SetTaskDefinition sets the TaskDefinition field's value.
9357func (s *CreateTaskSetInput) SetTaskDefinition(v string) *CreateTaskSetInput {
9358	s.TaskDefinition = &v
9359	return s
9360}
9361
9362type CreateTaskSetOutput struct {
9363	_ struct{} `type:"structure"`
9364
9365	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
9366	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
9367	// desired number of tasks, how many tasks are running, and whether the task
9368	// set serves production traffic.
9369	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
9370}
9371
9372// String returns the string representation
9373func (s CreateTaskSetOutput) String() string {
9374	return awsutil.Prettify(s)
9375}
9376
9377// GoString returns the string representation
9378func (s CreateTaskSetOutput) GoString() string {
9379	return s.String()
9380}
9381
9382// SetTaskSet sets the TaskSet field's value.
9383func (s *CreateTaskSetOutput) SetTaskSet(v *TaskSet) *CreateTaskSetOutput {
9384	s.TaskSet = v
9385	return s
9386}
9387
9388type DeleteAccountSettingInput struct {
9389	_ struct{} `type:"structure"`
9390
9391	// The resource name for which to disable the account setting. If serviceLongArnFormat
9392	// is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat
9393	// is specified, the ARN and resource ID for your Amazon ECS tasks is affected.
9394	// If containerInstanceLongArnFormat is specified, the ARN and resource ID for
9395	// your Amazon ECS container instances is affected. If awsvpcTrunking is specified,
9396	// the ENI limit for your Amazon ECS container instances is affected.
9397	//
9398	// Name is a required field
9399	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
9400
9401	// The ARN of the principal, which can be an IAM user, IAM role, or the root
9402	// user. If you specify the root user, it disables the account setting for all
9403	// IAM users, IAM roles, and the root user of the account unless an IAM user
9404	// or role explicitly overrides these settings. If this field is omitted, the
9405	// setting is changed only for the authenticated user.
9406	PrincipalArn *string `locationName:"principalArn" type:"string"`
9407}
9408
9409// String returns the string representation
9410func (s DeleteAccountSettingInput) String() string {
9411	return awsutil.Prettify(s)
9412}
9413
9414// GoString returns the string representation
9415func (s DeleteAccountSettingInput) GoString() string {
9416	return s.String()
9417}
9418
9419// Validate inspects the fields of the type to determine if they are valid.
9420func (s *DeleteAccountSettingInput) Validate() error {
9421	invalidParams := request.ErrInvalidParams{Context: "DeleteAccountSettingInput"}
9422	if s.Name == nil {
9423		invalidParams.Add(request.NewErrParamRequired("Name"))
9424	}
9425
9426	if invalidParams.Len() > 0 {
9427		return invalidParams
9428	}
9429	return nil
9430}
9431
9432// SetName sets the Name field's value.
9433func (s *DeleteAccountSettingInput) SetName(v string) *DeleteAccountSettingInput {
9434	s.Name = &v
9435	return s
9436}
9437
9438// SetPrincipalArn sets the PrincipalArn field's value.
9439func (s *DeleteAccountSettingInput) SetPrincipalArn(v string) *DeleteAccountSettingInput {
9440	s.PrincipalArn = &v
9441	return s
9442}
9443
9444type DeleteAccountSettingOutput struct {
9445	_ struct{} `type:"structure"`
9446
9447	// The account setting for the specified principal ARN.
9448	Setting *Setting `locationName:"setting" type:"structure"`
9449}
9450
9451// String returns the string representation
9452func (s DeleteAccountSettingOutput) String() string {
9453	return awsutil.Prettify(s)
9454}
9455
9456// GoString returns the string representation
9457func (s DeleteAccountSettingOutput) GoString() string {
9458	return s.String()
9459}
9460
9461// SetSetting sets the Setting field's value.
9462func (s *DeleteAccountSettingOutput) SetSetting(v *Setting) *DeleteAccountSettingOutput {
9463	s.Setting = v
9464	return s
9465}
9466
9467type DeleteAttributesInput struct {
9468	_ struct{} `type:"structure"`
9469
9470	// The attributes to delete from your resource. You can specify up to 10 attributes
9471	// per request. For custom attributes, specify the attribute name and target
9472	// ID, but do not specify the value. If you specify the target ID using the
9473	// short form, you must also specify the target type.
9474	//
9475	// Attributes is a required field
9476	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
9477
9478	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
9479	// the resource to delete attributes. If you do not specify a cluster, the default
9480	// cluster is assumed.
9481	Cluster *string `locationName:"cluster" type:"string"`
9482}
9483
9484// String returns the string representation
9485func (s DeleteAttributesInput) String() string {
9486	return awsutil.Prettify(s)
9487}
9488
9489// GoString returns the string representation
9490func (s DeleteAttributesInput) GoString() string {
9491	return s.String()
9492}
9493
9494// Validate inspects the fields of the type to determine if they are valid.
9495func (s *DeleteAttributesInput) Validate() error {
9496	invalidParams := request.ErrInvalidParams{Context: "DeleteAttributesInput"}
9497	if s.Attributes == nil {
9498		invalidParams.Add(request.NewErrParamRequired("Attributes"))
9499	}
9500	if s.Attributes != nil {
9501		for i, v := range s.Attributes {
9502			if v == nil {
9503				continue
9504			}
9505			if err := v.Validate(); err != nil {
9506				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
9507			}
9508		}
9509	}
9510
9511	if invalidParams.Len() > 0 {
9512		return invalidParams
9513	}
9514	return nil
9515}
9516
9517// SetAttributes sets the Attributes field's value.
9518func (s *DeleteAttributesInput) SetAttributes(v []*Attribute) *DeleteAttributesInput {
9519	s.Attributes = v
9520	return s
9521}
9522
9523// SetCluster sets the Cluster field's value.
9524func (s *DeleteAttributesInput) SetCluster(v string) *DeleteAttributesInput {
9525	s.Cluster = &v
9526	return s
9527}
9528
9529type DeleteAttributesOutput struct {
9530	_ struct{} `type:"structure"`
9531
9532	// A list of attribute objects that were successfully deleted from your resource.
9533	Attributes []*Attribute `locationName:"attributes" type:"list"`
9534}
9535
9536// String returns the string representation
9537func (s DeleteAttributesOutput) String() string {
9538	return awsutil.Prettify(s)
9539}
9540
9541// GoString returns the string representation
9542func (s DeleteAttributesOutput) GoString() string {
9543	return s.String()
9544}
9545
9546// SetAttributes sets the Attributes field's value.
9547func (s *DeleteAttributesOutput) SetAttributes(v []*Attribute) *DeleteAttributesOutput {
9548	s.Attributes = v
9549	return s
9550}
9551
9552type DeleteClusterInput struct {
9553	_ struct{} `type:"structure"`
9554
9555	// The short name or full Amazon Resource Name (ARN) of the cluster to delete.
9556	//
9557	// Cluster is a required field
9558	Cluster *string `locationName:"cluster" type:"string" required:"true"`
9559}
9560
9561// String returns the string representation
9562func (s DeleteClusterInput) String() string {
9563	return awsutil.Prettify(s)
9564}
9565
9566// GoString returns the string representation
9567func (s DeleteClusterInput) GoString() string {
9568	return s.String()
9569}
9570
9571// Validate inspects the fields of the type to determine if they are valid.
9572func (s *DeleteClusterInput) Validate() error {
9573	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"}
9574	if s.Cluster == nil {
9575		invalidParams.Add(request.NewErrParamRequired("Cluster"))
9576	}
9577
9578	if invalidParams.Len() > 0 {
9579		return invalidParams
9580	}
9581	return nil
9582}
9583
9584// SetCluster sets the Cluster field's value.
9585func (s *DeleteClusterInput) SetCluster(v string) *DeleteClusterInput {
9586	s.Cluster = &v
9587	return s
9588}
9589
9590type DeleteClusterOutput struct {
9591	_ struct{} `type:"structure"`
9592
9593	// The full description of the deleted cluster.
9594	Cluster *Cluster `locationName:"cluster" type:"structure"`
9595}
9596
9597// String returns the string representation
9598func (s DeleteClusterOutput) String() string {
9599	return awsutil.Prettify(s)
9600}
9601
9602// GoString returns the string representation
9603func (s DeleteClusterOutput) GoString() string {
9604	return s.String()
9605}
9606
9607// SetCluster sets the Cluster field's value.
9608func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput {
9609	s.Cluster = v
9610	return s
9611}
9612
9613type DeleteServiceInput struct {
9614	_ struct{} `type:"structure"`
9615
9616	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
9617	// the service to delete. If you do not specify a cluster, the default cluster
9618	// is assumed.
9619	Cluster *string `locationName:"cluster" type:"string"`
9620
9621	// If true, allows you to delete a service even if it has not been scaled down
9622	// to zero tasks. It is only necessary to use this if the service is using the
9623	// REPLICA scheduling strategy.
9624	Force *bool `locationName:"force" type:"boolean"`
9625
9626	// The name of the service to delete.
9627	//
9628	// Service is a required field
9629	Service *string `locationName:"service" type:"string" required:"true"`
9630}
9631
9632// String returns the string representation
9633func (s DeleteServiceInput) String() string {
9634	return awsutil.Prettify(s)
9635}
9636
9637// GoString returns the string representation
9638func (s DeleteServiceInput) GoString() string {
9639	return s.String()
9640}
9641
9642// Validate inspects the fields of the type to determine if they are valid.
9643func (s *DeleteServiceInput) Validate() error {
9644	invalidParams := request.ErrInvalidParams{Context: "DeleteServiceInput"}
9645	if s.Service == nil {
9646		invalidParams.Add(request.NewErrParamRequired("Service"))
9647	}
9648
9649	if invalidParams.Len() > 0 {
9650		return invalidParams
9651	}
9652	return nil
9653}
9654
9655// SetCluster sets the Cluster field's value.
9656func (s *DeleteServiceInput) SetCluster(v string) *DeleteServiceInput {
9657	s.Cluster = &v
9658	return s
9659}
9660
9661// SetForce sets the Force field's value.
9662func (s *DeleteServiceInput) SetForce(v bool) *DeleteServiceInput {
9663	s.Force = &v
9664	return s
9665}
9666
9667// SetService sets the Service field's value.
9668func (s *DeleteServiceInput) SetService(v string) *DeleteServiceInput {
9669	s.Service = &v
9670	return s
9671}
9672
9673type DeleteServiceOutput struct {
9674	_ struct{} `type:"structure"`
9675
9676	// The full description of the deleted service.
9677	Service *Service `locationName:"service" type:"structure"`
9678}
9679
9680// String returns the string representation
9681func (s DeleteServiceOutput) String() string {
9682	return awsutil.Prettify(s)
9683}
9684
9685// GoString returns the string representation
9686func (s DeleteServiceOutput) GoString() string {
9687	return s.String()
9688}
9689
9690// SetService sets the Service field's value.
9691func (s *DeleteServiceOutput) SetService(v *Service) *DeleteServiceOutput {
9692	s.Service = v
9693	return s
9694}
9695
9696type DeleteTaskSetInput struct {
9697	_ struct{} `type:"structure"`
9698
9699	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
9700	// the service that the task set exists in to delete.
9701	//
9702	// Cluster is a required field
9703	Cluster *string `locationName:"cluster" type:"string" required:"true"`
9704
9705	// If true, this allows you to delete a task set even if it hasn't been scaled
9706	// down to zero.
9707	Force *bool `locationName:"force" type:"boolean"`
9708
9709	// The short name or full Amazon Resource Name (ARN) of the service that hosts
9710	// the task set to delete.
9711	//
9712	// Service is a required field
9713	Service *string `locationName:"service" type:"string" required:"true"`
9714
9715	// The task set ID or full Amazon Resource Name (ARN) of the task set to delete.
9716	//
9717	// TaskSet is a required field
9718	TaskSet *string `locationName:"taskSet" type:"string" required:"true"`
9719}
9720
9721// String returns the string representation
9722func (s DeleteTaskSetInput) String() string {
9723	return awsutil.Prettify(s)
9724}
9725
9726// GoString returns the string representation
9727func (s DeleteTaskSetInput) GoString() string {
9728	return s.String()
9729}
9730
9731// Validate inspects the fields of the type to determine if they are valid.
9732func (s *DeleteTaskSetInput) Validate() error {
9733	invalidParams := request.ErrInvalidParams{Context: "DeleteTaskSetInput"}
9734	if s.Cluster == nil {
9735		invalidParams.Add(request.NewErrParamRequired("Cluster"))
9736	}
9737	if s.Service == nil {
9738		invalidParams.Add(request.NewErrParamRequired("Service"))
9739	}
9740	if s.TaskSet == nil {
9741		invalidParams.Add(request.NewErrParamRequired("TaskSet"))
9742	}
9743
9744	if invalidParams.Len() > 0 {
9745		return invalidParams
9746	}
9747	return nil
9748}
9749
9750// SetCluster sets the Cluster field's value.
9751func (s *DeleteTaskSetInput) SetCluster(v string) *DeleteTaskSetInput {
9752	s.Cluster = &v
9753	return s
9754}
9755
9756// SetForce sets the Force field's value.
9757func (s *DeleteTaskSetInput) SetForce(v bool) *DeleteTaskSetInput {
9758	s.Force = &v
9759	return s
9760}
9761
9762// SetService sets the Service field's value.
9763func (s *DeleteTaskSetInput) SetService(v string) *DeleteTaskSetInput {
9764	s.Service = &v
9765	return s
9766}
9767
9768// SetTaskSet sets the TaskSet field's value.
9769func (s *DeleteTaskSetInput) SetTaskSet(v string) *DeleteTaskSetInput {
9770	s.TaskSet = &v
9771	return s
9772}
9773
9774type DeleteTaskSetOutput struct {
9775	_ struct{} `type:"structure"`
9776
9777	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
9778	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
9779	// desired number of tasks, how many tasks are running, and whether the task
9780	// set serves production traffic.
9781	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
9782}
9783
9784// String returns the string representation
9785func (s DeleteTaskSetOutput) String() string {
9786	return awsutil.Prettify(s)
9787}
9788
9789// GoString returns the string representation
9790func (s DeleteTaskSetOutput) GoString() string {
9791	return s.String()
9792}
9793
9794// SetTaskSet sets the TaskSet field's value.
9795func (s *DeleteTaskSetOutput) SetTaskSet(v *TaskSet) *DeleteTaskSetOutput {
9796	s.TaskSet = v
9797	return s
9798}
9799
9800// The details of an Amazon ECS service deployment. This is used only when a
9801// service uses the ECS deployment controller type.
9802type Deployment struct {
9803	_ struct{} `type:"structure"`
9804
9805	// The capacity provider strategy that the deployment is using.
9806	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
9807
9808	// The Unix timestamp for when the service deployment was created.
9809	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
9810
9811	// The most recent desired count of tasks that was specified for the service
9812	// to deploy or maintain.
9813	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
9814
9815	// The ID of the deployment.
9816	Id *string `locationName:"id" type:"string"`
9817
9818	// The launch type the tasks in the service are using. For more information,
9819	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
9820	// in the Amazon Elastic Container Service Developer Guide.
9821	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
9822
9823	// The VPC subnet and security group configuration for tasks that receive their
9824	// own elastic network interface by using the awsvpc networking mode.
9825	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
9826
9827	// The number of tasks in the deployment that are in the PENDING status.
9828	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
9829
9830	// The platform version on which your tasks in the service are running. A platform
9831	// version is only specified for tasks using the Fargate launch type. If one
9832	// is not specified, the LATEST platform version is used by default. For more
9833	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
9834	// in the Amazon Elastic Container Service Developer Guide.
9835	PlatformVersion *string `locationName:"platformVersion" type:"string"`
9836
9837	// The number of tasks in the deployment that are in the RUNNING status.
9838	RunningCount *int64 `locationName:"runningCount" type:"integer"`
9839
9840	// The status of the deployment. The following describes each state:
9841	//
9842	// PRIMARY
9843	//
9844	// The most recent deployment of a service.
9845	//
9846	// ACTIVE
9847	//
9848	// A service deployment that still has running tasks, but are in the process
9849	// of being replaced with a new PRIMARY deployment.
9850	//
9851	// INACTIVE
9852	//
9853	// A deployment that has been completely replaced.
9854	Status *string `locationName:"status" type:"string"`
9855
9856	// The most recent task definition that was specified for the tasks in the service
9857	// to use.
9858	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
9859
9860	// The Unix timestamp for when the service deployment was last updated.
9861	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
9862}
9863
9864// String returns the string representation
9865func (s Deployment) String() string {
9866	return awsutil.Prettify(s)
9867}
9868
9869// GoString returns the string representation
9870func (s Deployment) GoString() string {
9871	return s.String()
9872}
9873
9874// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
9875func (s *Deployment) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Deployment {
9876	s.CapacityProviderStrategy = v
9877	return s
9878}
9879
9880// SetCreatedAt sets the CreatedAt field's value.
9881func (s *Deployment) SetCreatedAt(v time.Time) *Deployment {
9882	s.CreatedAt = &v
9883	return s
9884}
9885
9886// SetDesiredCount sets the DesiredCount field's value.
9887func (s *Deployment) SetDesiredCount(v int64) *Deployment {
9888	s.DesiredCount = &v
9889	return s
9890}
9891
9892// SetId sets the Id field's value.
9893func (s *Deployment) SetId(v string) *Deployment {
9894	s.Id = &v
9895	return s
9896}
9897
9898// SetLaunchType sets the LaunchType field's value.
9899func (s *Deployment) SetLaunchType(v string) *Deployment {
9900	s.LaunchType = &v
9901	return s
9902}
9903
9904// SetNetworkConfiguration sets the NetworkConfiguration field's value.
9905func (s *Deployment) SetNetworkConfiguration(v *NetworkConfiguration) *Deployment {
9906	s.NetworkConfiguration = v
9907	return s
9908}
9909
9910// SetPendingCount sets the PendingCount field's value.
9911func (s *Deployment) SetPendingCount(v int64) *Deployment {
9912	s.PendingCount = &v
9913	return s
9914}
9915
9916// SetPlatformVersion sets the PlatformVersion field's value.
9917func (s *Deployment) SetPlatformVersion(v string) *Deployment {
9918	s.PlatformVersion = &v
9919	return s
9920}
9921
9922// SetRunningCount sets the RunningCount field's value.
9923func (s *Deployment) SetRunningCount(v int64) *Deployment {
9924	s.RunningCount = &v
9925	return s
9926}
9927
9928// SetStatus sets the Status field's value.
9929func (s *Deployment) SetStatus(v string) *Deployment {
9930	s.Status = &v
9931	return s
9932}
9933
9934// SetTaskDefinition sets the TaskDefinition field's value.
9935func (s *Deployment) SetTaskDefinition(v string) *Deployment {
9936	s.TaskDefinition = &v
9937	return s
9938}
9939
9940// SetUpdatedAt sets the UpdatedAt field's value.
9941func (s *Deployment) SetUpdatedAt(v time.Time) *Deployment {
9942	s.UpdatedAt = &v
9943	return s
9944}
9945
9946// Optional deployment parameters that control how many tasks run during a deployment
9947// and the ordering of stopping and starting tasks.
9948type DeploymentConfiguration struct {
9949	_ struct{} `type:"structure"`
9950
9951	// If a service is using the rolling update (ECS) deployment type, the maximum
9952	// percent parameter represents an upper limit on the number of tasks in a service
9953	// that are allowed in the RUNNING or PENDING state during a deployment, as
9954	// a percentage of the desired number of tasks (rounded down to the nearest
9955	// integer), and while any container instances are in the DRAINING state if
9956	// the service contains tasks using the EC2 launch type. This parameter enables
9957	// you to define the deployment batch size. For example, if your service has
9958	// a desired number of four tasks and a maximum percent value of 200%, the scheduler
9959	// may start four new tasks before stopping the four older tasks (provided that
9960	// the cluster resources required to do this are available). The default value
9961	// for maximum percent is 200%.
9962	//
9963	// If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment
9964	// types and tasks that use the EC2 launch type, the maximum percent value is
9965	// set to the default value and is used to define the upper limit on the number
9966	// of the tasks in the service that remain in the RUNNING state while the container
9967	// instances are in the DRAINING state. If the tasks in the service use the
9968	// Fargate launch type, the maximum percent value is not used, although it is
9969	// returned when describing your service.
9970	MaximumPercent *int64 `locationName:"maximumPercent" type:"integer"`
9971
9972	// If a service is using the rolling update (ECS) deployment type, the minimum
9973	// healthy percent represents a lower limit on the number of tasks in a service
9974	// that must remain in the RUNNING state during a deployment, as a percentage
9975	// of the desired number of tasks (rounded up to the nearest integer), and while
9976	// any container instances are in the DRAINING state if the service contains
9977	// tasks using the EC2 launch type. This parameter enables you to deploy without
9978	// using additional cluster capacity. For example, if your service has a desired
9979	// number of four tasks and a minimum healthy percent of 50%, the scheduler
9980	// may stop two existing tasks to free up cluster capacity before starting two
9981	// new tasks. Tasks for services that do not use a load balancer are considered
9982	// healthy if they are in the RUNNING state; tasks for services that do use
9983	// a load balancer are considered healthy if they are in the RUNNING state and
9984	// they are reported as healthy by the load balancer. The default value for
9985	// minimum healthy percent is 100%.
9986	//
9987	// If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment
9988	// types and tasks that use the EC2 launch type, the minimum healthy percent
9989	// value is set to the default value and is used to define the lower limit on
9990	// the number of the tasks in the service that remain in the RUNNING state while
9991	// the container instances are in the DRAINING state. If the tasks in the service
9992	// use the Fargate launch type, the minimum healthy percent value is not used,
9993	// although it is returned when describing your service.
9994	MinimumHealthyPercent *int64 `locationName:"minimumHealthyPercent" type:"integer"`
9995}
9996
9997// String returns the string representation
9998func (s DeploymentConfiguration) String() string {
9999	return awsutil.Prettify(s)
10000}
10001
10002// GoString returns the string representation
10003func (s DeploymentConfiguration) GoString() string {
10004	return s.String()
10005}
10006
10007// SetMaximumPercent sets the MaximumPercent field's value.
10008func (s *DeploymentConfiguration) SetMaximumPercent(v int64) *DeploymentConfiguration {
10009	s.MaximumPercent = &v
10010	return s
10011}
10012
10013// SetMinimumHealthyPercent sets the MinimumHealthyPercent field's value.
10014func (s *DeploymentConfiguration) SetMinimumHealthyPercent(v int64) *DeploymentConfiguration {
10015	s.MinimumHealthyPercent = &v
10016	return s
10017}
10018
10019// The deployment controller to use for the service. For more information, see
10020// Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
10021// in the Amazon Elastic Container Service Developer Guide.
10022type DeploymentController struct {
10023	_ struct{} `type:"structure"`
10024
10025	// The deployment controller type to use.
10026	//
10027	// There are three deployment controller types available:
10028	//
10029	// ECS
10030	//
10031	// The rolling update (ECS) deployment type involves replacing the current running
10032	// version of the container with the latest version. The number of containers
10033	// Amazon ECS adds or removes from the service during a rolling update is controlled
10034	// by adjusting the minimum and maximum number of healthy tasks allowed during
10035	// a service deployment, as specified in the DeploymentConfiguration.
10036	//
10037	// CODE_DEPLOY
10038	//
10039	// The blue/green (CODE_DEPLOY) deployment type uses the blue/green deployment
10040	// model powered by AWS CodeDeploy, which allows you to verify a new deployment
10041	// of a service before sending production traffic to it.
10042	//
10043	// EXTERNAL
10044	//
10045	// The external (EXTERNAL) deployment type enables you to use any third-party
10046	// deployment controller for full control over the deployment process for an
10047	// Amazon ECS service.
10048	//
10049	// Type is a required field
10050	Type *string `locationName:"type" type:"string" required:"true" enum:"DeploymentControllerType"`
10051}
10052
10053// String returns the string representation
10054func (s DeploymentController) String() string {
10055	return awsutil.Prettify(s)
10056}
10057
10058// GoString returns the string representation
10059func (s DeploymentController) GoString() string {
10060	return s.String()
10061}
10062
10063// Validate inspects the fields of the type to determine if they are valid.
10064func (s *DeploymentController) Validate() error {
10065	invalidParams := request.ErrInvalidParams{Context: "DeploymentController"}
10066	if s.Type == nil {
10067		invalidParams.Add(request.NewErrParamRequired("Type"))
10068	}
10069
10070	if invalidParams.Len() > 0 {
10071		return invalidParams
10072	}
10073	return nil
10074}
10075
10076// SetType sets the Type field's value.
10077func (s *DeploymentController) SetType(v string) *DeploymentController {
10078	s.Type = &v
10079	return s
10080}
10081
10082type DeregisterContainerInstanceInput struct {
10083	_ struct{} `type:"structure"`
10084
10085	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10086	// the container instance to deregister. If you do not specify a cluster, the
10087	// default cluster is assumed.
10088	Cluster *string `locationName:"cluster" type:"string"`
10089
10090	// The container instance ID or full ARN of the container instance to deregister.
10091	// The ARN contains the arn:aws:ecs namespace, followed by the Region of the
10092	// container instance, the AWS account ID of the container instance owner, the
10093	// container-instance namespace, and then the container instance ID. For example,
10094	// arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
10095	//
10096	// ContainerInstance is a required field
10097	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
10098
10099	// Forces the deregistration of the container instance. If you have tasks running
10100	// on the container instance when you deregister it with the force option, these
10101	// tasks remain running until you terminate the instance or the tasks stop through
10102	// some other means, but they are orphaned (no longer monitored or accounted
10103	// for by Amazon ECS). If an orphaned task on your container instance is part
10104	// of an Amazon ECS service, then the service scheduler starts another copy
10105	// of that task, on a different container instance if possible.
10106	//
10107	// Any containers in orphaned service tasks that are registered with a Classic
10108	// Load Balancer or an Application Load Balancer target group are deregistered.
10109	// They begin connection draining according to the settings on the load balancer
10110	// or target group.
10111	Force *bool `locationName:"force" type:"boolean"`
10112}
10113
10114// String returns the string representation
10115func (s DeregisterContainerInstanceInput) String() string {
10116	return awsutil.Prettify(s)
10117}
10118
10119// GoString returns the string representation
10120func (s DeregisterContainerInstanceInput) GoString() string {
10121	return s.String()
10122}
10123
10124// Validate inspects the fields of the type to determine if they are valid.
10125func (s *DeregisterContainerInstanceInput) Validate() error {
10126	invalidParams := request.ErrInvalidParams{Context: "DeregisterContainerInstanceInput"}
10127	if s.ContainerInstance == nil {
10128		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
10129	}
10130
10131	if invalidParams.Len() > 0 {
10132		return invalidParams
10133	}
10134	return nil
10135}
10136
10137// SetCluster sets the Cluster field's value.
10138func (s *DeregisterContainerInstanceInput) SetCluster(v string) *DeregisterContainerInstanceInput {
10139	s.Cluster = &v
10140	return s
10141}
10142
10143// SetContainerInstance sets the ContainerInstance field's value.
10144func (s *DeregisterContainerInstanceInput) SetContainerInstance(v string) *DeregisterContainerInstanceInput {
10145	s.ContainerInstance = &v
10146	return s
10147}
10148
10149// SetForce sets the Force field's value.
10150func (s *DeregisterContainerInstanceInput) SetForce(v bool) *DeregisterContainerInstanceInput {
10151	s.Force = &v
10152	return s
10153}
10154
10155type DeregisterContainerInstanceOutput struct {
10156	_ struct{} `type:"structure"`
10157
10158	// The container instance that was deregistered.
10159	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
10160}
10161
10162// String returns the string representation
10163func (s DeregisterContainerInstanceOutput) String() string {
10164	return awsutil.Prettify(s)
10165}
10166
10167// GoString returns the string representation
10168func (s DeregisterContainerInstanceOutput) GoString() string {
10169	return s.String()
10170}
10171
10172// SetContainerInstance sets the ContainerInstance field's value.
10173func (s *DeregisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *DeregisterContainerInstanceOutput {
10174	s.ContainerInstance = v
10175	return s
10176}
10177
10178type DeregisterTaskDefinitionInput struct {
10179	_ struct{} `type:"structure"`
10180
10181	// The family and revision (family:revision) or full Amazon Resource Name (ARN)
10182	// of the task definition to deregister. You must specify a revision.
10183	//
10184	// TaskDefinition is a required field
10185	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
10186}
10187
10188// String returns the string representation
10189func (s DeregisterTaskDefinitionInput) String() string {
10190	return awsutil.Prettify(s)
10191}
10192
10193// GoString returns the string representation
10194func (s DeregisterTaskDefinitionInput) GoString() string {
10195	return s.String()
10196}
10197
10198// Validate inspects the fields of the type to determine if they are valid.
10199func (s *DeregisterTaskDefinitionInput) Validate() error {
10200	invalidParams := request.ErrInvalidParams{Context: "DeregisterTaskDefinitionInput"}
10201	if s.TaskDefinition == nil {
10202		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
10203	}
10204
10205	if invalidParams.Len() > 0 {
10206		return invalidParams
10207	}
10208	return nil
10209}
10210
10211// SetTaskDefinition sets the TaskDefinition field's value.
10212func (s *DeregisterTaskDefinitionInput) SetTaskDefinition(v string) *DeregisterTaskDefinitionInput {
10213	s.TaskDefinition = &v
10214	return s
10215}
10216
10217type DeregisterTaskDefinitionOutput struct {
10218	_ struct{} `type:"structure"`
10219
10220	// The full description of the deregistered task.
10221	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
10222}
10223
10224// String returns the string representation
10225func (s DeregisterTaskDefinitionOutput) String() string {
10226	return awsutil.Prettify(s)
10227}
10228
10229// GoString returns the string representation
10230func (s DeregisterTaskDefinitionOutput) GoString() string {
10231	return s.String()
10232}
10233
10234// SetTaskDefinition sets the TaskDefinition field's value.
10235func (s *DeregisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DeregisterTaskDefinitionOutput {
10236	s.TaskDefinition = v
10237	return s
10238}
10239
10240type DescribeCapacityProvidersInput struct {
10241	_ struct{} `type:"structure"`
10242
10243	// The short name or full Amazon Resource Name (ARN) of one or more capacity
10244	// providers. Up to 100 capacity providers can be described in an action.
10245	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
10246
10247	// Specifies whether or not you want to see the resource tags for the capacity
10248	// provider. If TAGS is specified, the tags are included in the response. If
10249	// this field is omitted, tags are not included in the response.
10250	Include []*string `locationName:"include" type:"list"`
10251
10252	// The maximum number of account setting results returned by DescribeCapacityProviders
10253	// in paginated output. When this parameter is used, DescribeCapacityProviders
10254	// only returns maxResults results in a single page along with a nextToken response
10255	// element. The remaining results of the initial request can be seen by sending
10256	// another DescribeCapacityProviders request with the returned nextToken value.
10257	// This value can be between 1 and 10. If this parameter is not used, then DescribeCapacityProviders
10258	// returns up to 10 results and a nextToken value if applicable.
10259	MaxResults *int64 `locationName:"maxResults" type:"integer"`
10260
10261	// The nextToken value returned from a previous paginated DescribeCapacityProviders
10262	// request where maxResults was used and the results exceeded the value of that
10263	// parameter. Pagination continues from the end of the previous results that
10264	// returned the nextToken value.
10265	//
10266	// This token should be treated as an opaque identifier that is only used to
10267	// retrieve the next items in a list and not for other programmatic purposes.
10268	NextToken *string `locationName:"nextToken" type:"string"`
10269}
10270
10271// String returns the string representation
10272func (s DescribeCapacityProvidersInput) String() string {
10273	return awsutil.Prettify(s)
10274}
10275
10276// GoString returns the string representation
10277func (s DescribeCapacityProvidersInput) GoString() string {
10278	return s.String()
10279}
10280
10281// SetCapacityProviders sets the CapacityProviders field's value.
10282func (s *DescribeCapacityProvidersInput) SetCapacityProviders(v []*string) *DescribeCapacityProvidersInput {
10283	s.CapacityProviders = v
10284	return s
10285}
10286
10287// SetInclude sets the Include field's value.
10288func (s *DescribeCapacityProvidersInput) SetInclude(v []*string) *DescribeCapacityProvidersInput {
10289	s.Include = v
10290	return s
10291}
10292
10293// SetMaxResults sets the MaxResults field's value.
10294func (s *DescribeCapacityProvidersInput) SetMaxResults(v int64) *DescribeCapacityProvidersInput {
10295	s.MaxResults = &v
10296	return s
10297}
10298
10299// SetNextToken sets the NextToken field's value.
10300func (s *DescribeCapacityProvidersInput) SetNextToken(v string) *DescribeCapacityProvidersInput {
10301	s.NextToken = &v
10302	return s
10303}
10304
10305type DescribeCapacityProvidersOutput struct {
10306	_ struct{} `type:"structure"`
10307
10308	// The list of capacity providers.
10309	CapacityProviders []*CapacityProvider `locationName:"capacityProviders" type:"list"`
10310
10311	// Any failures associated with the call.
10312	Failures []*Failure `locationName:"failures" type:"list"`
10313
10314	// The nextToken value to include in a future DescribeCapacityProviders request.
10315	// When the results of a DescribeCapacityProviders request exceed maxResults,
10316	// this value can be used to retrieve the next page of results. This value is
10317	// null when there are no more results to return.
10318	NextToken *string `locationName:"nextToken" type:"string"`
10319}
10320
10321// String returns the string representation
10322func (s DescribeCapacityProvidersOutput) String() string {
10323	return awsutil.Prettify(s)
10324}
10325
10326// GoString returns the string representation
10327func (s DescribeCapacityProvidersOutput) GoString() string {
10328	return s.String()
10329}
10330
10331// SetCapacityProviders sets the CapacityProviders field's value.
10332func (s *DescribeCapacityProvidersOutput) SetCapacityProviders(v []*CapacityProvider) *DescribeCapacityProvidersOutput {
10333	s.CapacityProviders = v
10334	return s
10335}
10336
10337// SetFailures sets the Failures field's value.
10338func (s *DescribeCapacityProvidersOutput) SetFailures(v []*Failure) *DescribeCapacityProvidersOutput {
10339	s.Failures = v
10340	return s
10341}
10342
10343// SetNextToken sets the NextToken field's value.
10344func (s *DescribeCapacityProvidersOutput) SetNextToken(v string) *DescribeCapacityProvidersOutput {
10345	s.NextToken = &v
10346	return s
10347}
10348
10349type DescribeClustersInput struct {
10350	_ struct{} `type:"structure"`
10351
10352	// A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN)
10353	// entries. If you do not specify a cluster, the default cluster is assumed.
10354	Clusters []*string `locationName:"clusters" type:"list"`
10355
10356	// Whether to include additional information about your clusters in the response.
10357	// If this field is omitted, the attachments, statistics, and tags are not included.
10358	//
10359	// If ATTACHMENTS is specified, the attachments for the container instances
10360	// or tasks within the cluster are included.
10361	//
10362	// If SETTINGS is specified, the settings for the cluster are included.
10363	//
10364	// If STATISTICS is specified, the following additional information, separated
10365	// by launch type, is included:
10366	//
10367	//    * runningEC2TasksCount
10368	//
10369	//    * runningFargateTasksCount
10370	//
10371	//    * pendingEC2TasksCount
10372	//
10373	//    * pendingFargateTasksCount
10374	//
10375	//    * activeEC2ServiceCount
10376	//
10377	//    * activeFargateServiceCount
10378	//
10379	//    * drainingEC2ServiceCount
10380	//
10381	//    * drainingFargateServiceCount
10382	//
10383	// If TAGS is specified, the metadata tags associated with the cluster are included.
10384	Include []*string `locationName:"include" type:"list"`
10385}
10386
10387// String returns the string representation
10388func (s DescribeClustersInput) String() string {
10389	return awsutil.Prettify(s)
10390}
10391
10392// GoString returns the string representation
10393func (s DescribeClustersInput) GoString() string {
10394	return s.String()
10395}
10396
10397// SetClusters sets the Clusters field's value.
10398func (s *DescribeClustersInput) SetClusters(v []*string) *DescribeClustersInput {
10399	s.Clusters = v
10400	return s
10401}
10402
10403// SetInclude sets the Include field's value.
10404func (s *DescribeClustersInput) SetInclude(v []*string) *DescribeClustersInput {
10405	s.Include = v
10406	return s
10407}
10408
10409type DescribeClustersOutput struct {
10410	_ struct{} `type:"structure"`
10411
10412	// The list of clusters.
10413	Clusters []*Cluster `locationName:"clusters" type:"list"`
10414
10415	// Any failures associated with the call.
10416	Failures []*Failure `locationName:"failures" type:"list"`
10417}
10418
10419// String returns the string representation
10420func (s DescribeClustersOutput) String() string {
10421	return awsutil.Prettify(s)
10422}
10423
10424// GoString returns the string representation
10425func (s DescribeClustersOutput) GoString() string {
10426	return s.String()
10427}
10428
10429// SetClusters sets the Clusters field's value.
10430func (s *DescribeClustersOutput) SetClusters(v []*Cluster) *DescribeClustersOutput {
10431	s.Clusters = v
10432	return s
10433}
10434
10435// SetFailures sets the Failures field's value.
10436func (s *DescribeClustersOutput) SetFailures(v []*Failure) *DescribeClustersOutput {
10437	s.Failures = v
10438	return s
10439}
10440
10441type DescribeContainerInstancesInput struct {
10442	_ struct{} `type:"structure"`
10443
10444	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10445	// the container instances to describe. If you do not specify a cluster, the
10446	// default cluster is assumed. This parameter is required if the container instance
10447	// or container instances you are describing were launched in any cluster other
10448	// than the default cluster.
10449	Cluster *string `locationName:"cluster" type:"string"`
10450
10451	// A list of up to 100 container instance IDs or full Amazon Resource Name (ARN)
10452	// entries.
10453	//
10454	// ContainerInstances is a required field
10455	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
10456
10457	// Specifies whether you want to see the resource tags for the container instance.
10458	// If TAGS is specified, the tags are included in the response. If this field
10459	// is omitted, tags are not included in the response.
10460	Include []*string `locationName:"include" type:"list"`
10461}
10462
10463// String returns the string representation
10464func (s DescribeContainerInstancesInput) String() string {
10465	return awsutil.Prettify(s)
10466}
10467
10468// GoString returns the string representation
10469func (s DescribeContainerInstancesInput) GoString() string {
10470	return s.String()
10471}
10472
10473// Validate inspects the fields of the type to determine if they are valid.
10474func (s *DescribeContainerInstancesInput) Validate() error {
10475	invalidParams := request.ErrInvalidParams{Context: "DescribeContainerInstancesInput"}
10476	if s.ContainerInstances == nil {
10477		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
10478	}
10479
10480	if invalidParams.Len() > 0 {
10481		return invalidParams
10482	}
10483	return nil
10484}
10485
10486// SetCluster sets the Cluster field's value.
10487func (s *DescribeContainerInstancesInput) SetCluster(v string) *DescribeContainerInstancesInput {
10488	s.Cluster = &v
10489	return s
10490}
10491
10492// SetContainerInstances sets the ContainerInstances field's value.
10493func (s *DescribeContainerInstancesInput) SetContainerInstances(v []*string) *DescribeContainerInstancesInput {
10494	s.ContainerInstances = v
10495	return s
10496}
10497
10498// SetInclude sets the Include field's value.
10499func (s *DescribeContainerInstancesInput) SetInclude(v []*string) *DescribeContainerInstancesInput {
10500	s.Include = v
10501	return s
10502}
10503
10504type DescribeContainerInstancesOutput struct {
10505	_ struct{} `type:"structure"`
10506
10507	// The list of container instances.
10508	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
10509
10510	// Any failures associated with the call.
10511	Failures []*Failure `locationName:"failures" type:"list"`
10512}
10513
10514// String returns the string representation
10515func (s DescribeContainerInstancesOutput) String() string {
10516	return awsutil.Prettify(s)
10517}
10518
10519// GoString returns the string representation
10520func (s DescribeContainerInstancesOutput) GoString() string {
10521	return s.String()
10522}
10523
10524// SetContainerInstances sets the ContainerInstances field's value.
10525func (s *DescribeContainerInstancesOutput) SetContainerInstances(v []*ContainerInstance) *DescribeContainerInstancesOutput {
10526	s.ContainerInstances = v
10527	return s
10528}
10529
10530// SetFailures sets the Failures field's value.
10531func (s *DescribeContainerInstancesOutput) SetFailures(v []*Failure) *DescribeContainerInstancesOutput {
10532	s.Failures = v
10533	return s
10534}
10535
10536type DescribeServicesInput struct {
10537	_ struct{} `type:"structure"`
10538
10539	// The short name or full Amazon Resource Name (ARN)the cluster that hosts the
10540	// service to describe. If you do not specify a cluster, the default cluster
10541	// is assumed. This parameter is required if the service or services you are
10542	// describing were launched in any cluster other than the default cluster.
10543	Cluster *string `locationName:"cluster" type:"string"`
10544
10545	// Specifies whether you want to see the resource tags for the service. If TAGS
10546	// is specified, the tags are included in the response. If this field is omitted,
10547	// tags are not included in the response.
10548	Include []*string `locationName:"include" type:"list"`
10549
10550	// A list of services to describe. You may specify up to 10 services to describe
10551	// in a single operation.
10552	//
10553	// Services is a required field
10554	Services []*string `locationName:"services" type:"list" required:"true"`
10555}
10556
10557// String returns the string representation
10558func (s DescribeServicesInput) String() string {
10559	return awsutil.Prettify(s)
10560}
10561
10562// GoString returns the string representation
10563func (s DescribeServicesInput) GoString() string {
10564	return s.String()
10565}
10566
10567// Validate inspects the fields of the type to determine if they are valid.
10568func (s *DescribeServicesInput) Validate() error {
10569	invalidParams := request.ErrInvalidParams{Context: "DescribeServicesInput"}
10570	if s.Services == nil {
10571		invalidParams.Add(request.NewErrParamRequired("Services"))
10572	}
10573
10574	if invalidParams.Len() > 0 {
10575		return invalidParams
10576	}
10577	return nil
10578}
10579
10580// SetCluster sets the Cluster field's value.
10581func (s *DescribeServicesInput) SetCluster(v string) *DescribeServicesInput {
10582	s.Cluster = &v
10583	return s
10584}
10585
10586// SetInclude sets the Include field's value.
10587func (s *DescribeServicesInput) SetInclude(v []*string) *DescribeServicesInput {
10588	s.Include = v
10589	return s
10590}
10591
10592// SetServices sets the Services field's value.
10593func (s *DescribeServicesInput) SetServices(v []*string) *DescribeServicesInput {
10594	s.Services = v
10595	return s
10596}
10597
10598type DescribeServicesOutput struct {
10599	_ struct{} `type:"structure"`
10600
10601	// Any failures associated with the call.
10602	Failures []*Failure `locationName:"failures" type:"list"`
10603
10604	// The list of services described.
10605	Services []*Service `locationName:"services" type:"list"`
10606}
10607
10608// String returns the string representation
10609func (s DescribeServicesOutput) String() string {
10610	return awsutil.Prettify(s)
10611}
10612
10613// GoString returns the string representation
10614func (s DescribeServicesOutput) GoString() string {
10615	return s.String()
10616}
10617
10618// SetFailures sets the Failures field's value.
10619func (s *DescribeServicesOutput) SetFailures(v []*Failure) *DescribeServicesOutput {
10620	s.Failures = v
10621	return s
10622}
10623
10624// SetServices sets the Services field's value.
10625func (s *DescribeServicesOutput) SetServices(v []*Service) *DescribeServicesOutput {
10626	s.Services = v
10627	return s
10628}
10629
10630type DescribeTaskDefinitionInput struct {
10631	_ struct{} `type:"structure"`
10632
10633	// Specifies whether to see the resource tags for the task definition. If TAGS
10634	// is specified, the tags are included in the response. If this field is omitted,
10635	// tags are not included in the response.
10636	Include []*string `locationName:"include" type:"list"`
10637
10638	// The family for the latest ACTIVE revision, family and revision (family:revision)
10639	// for a specific revision in the family, or full Amazon Resource Name (ARN)
10640	// of the task definition to describe.
10641	//
10642	// TaskDefinition is a required field
10643	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
10644}
10645
10646// String returns the string representation
10647func (s DescribeTaskDefinitionInput) String() string {
10648	return awsutil.Prettify(s)
10649}
10650
10651// GoString returns the string representation
10652func (s DescribeTaskDefinitionInput) GoString() string {
10653	return s.String()
10654}
10655
10656// Validate inspects the fields of the type to determine if they are valid.
10657func (s *DescribeTaskDefinitionInput) Validate() error {
10658	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskDefinitionInput"}
10659	if s.TaskDefinition == nil {
10660		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
10661	}
10662
10663	if invalidParams.Len() > 0 {
10664		return invalidParams
10665	}
10666	return nil
10667}
10668
10669// SetInclude sets the Include field's value.
10670func (s *DescribeTaskDefinitionInput) SetInclude(v []*string) *DescribeTaskDefinitionInput {
10671	s.Include = v
10672	return s
10673}
10674
10675// SetTaskDefinition sets the TaskDefinition field's value.
10676func (s *DescribeTaskDefinitionInput) SetTaskDefinition(v string) *DescribeTaskDefinitionInput {
10677	s.TaskDefinition = &v
10678	return s
10679}
10680
10681type DescribeTaskDefinitionOutput struct {
10682	_ struct{} `type:"structure"`
10683
10684	// The metadata that is applied to the task definition to help you categorize
10685	// and organize them. Each tag consists of a key and an optional value, both
10686	// of which you define.
10687	//
10688	// The following basic restrictions apply to tags:
10689	//
10690	//    * Maximum number of tags per resource - 50
10691	//
10692	//    * For each resource, each tag key must be unique, and each tag key can
10693	//    have only one value.
10694	//
10695	//    * Maximum key length - 128 Unicode characters in UTF-8
10696	//
10697	//    * Maximum value length - 256 Unicode characters in UTF-8
10698	//
10699	//    * If your tagging schema is used across multiple services and resources,
10700	//    remember that other services may have restrictions on allowed characters.
10701	//    Generally allowed characters are: letters, numbers, and spaces representable
10702	//    in UTF-8, and the following characters: + - = . _ : / @.
10703	//
10704	//    * Tag keys and values are case-sensitive.
10705	//
10706	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
10707	//    as a prefix for either keys or values as it is reserved for AWS use. You
10708	//    cannot edit or delete tag keys or values with this prefix. Tags with this
10709	//    prefix do not count against your tags per resource limit.
10710	Tags []*Tag `locationName:"tags" type:"list"`
10711
10712	// The full task definition description.
10713	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
10714}
10715
10716// String returns the string representation
10717func (s DescribeTaskDefinitionOutput) String() string {
10718	return awsutil.Prettify(s)
10719}
10720
10721// GoString returns the string representation
10722func (s DescribeTaskDefinitionOutput) GoString() string {
10723	return s.String()
10724}
10725
10726// SetTags sets the Tags field's value.
10727func (s *DescribeTaskDefinitionOutput) SetTags(v []*Tag) *DescribeTaskDefinitionOutput {
10728	s.Tags = v
10729	return s
10730}
10731
10732// SetTaskDefinition sets the TaskDefinition field's value.
10733func (s *DescribeTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DescribeTaskDefinitionOutput {
10734	s.TaskDefinition = v
10735	return s
10736}
10737
10738type DescribeTaskSetsInput struct {
10739	_ struct{} `type:"structure"`
10740
10741	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10742	// the service that the task sets exist in.
10743	//
10744	// Cluster is a required field
10745	Cluster *string `locationName:"cluster" type:"string" required:"true"`
10746
10747	// Specifies whether to see the resource tags for the task set. If TAGS is specified,
10748	// the tags are included in the response. If this field is omitted, tags are
10749	// not included in the response.
10750	Include []*string `locationName:"include" type:"list"`
10751
10752	// The short name or full Amazon Resource Name (ARN) of the service that the
10753	// task sets exist in.
10754	//
10755	// Service is a required field
10756	Service *string `locationName:"service" type:"string" required:"true"`
10757
10758	// The ID or full Amazon Resource Name (ARN) of task sets to describe.
10759	TaskSets []*string `locationName:"taskSets" type:"list"`
10760}
10761
10762// String returns the string representation
10763func (s DescribeTaskSetsInput) String() string {
10764	return awsutil.Prettify(s)
10765}
10766
10767// GoString returns the string representation
10768func (s DescribeTaskSetsInput) GoString() string {
10769	return s.String()
10770}
10771
10772// Validate inspects the fields of the type to determine if they are valid.
10773func (s *DescribeTaskSetsInput) Validate() error {
10774	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskSetsInput"}
10775	if s.Cluster == nil {
10776		invalidParams.Add(request.NewErrParamRequired("Cluster"))
10777	}
10778	if s.Service == nil {
10779		invalidParams.Add(request.NewErrParamRequired("Service"))
10780	}
10781
10782	if invalidParams.Len() > 0 {
10783		return invalidParams
10784	}
10785	return nil
10786}
10787
10788// SetCluster sets the Cluster field's value.
10789func (s *DescribeTaskSetsInput) SetCluster(v string) *DescribeTaskSetsInput {
10790	s.Cluster = &v
10791	return s
10792}
10793
10794// SetInclude sets the Include field's value.
10795func (s *DescribeTaskSetsInput) SetInclude(v []*string) *DescribeTaskSetsInput {
10796	s.Include = v
10797	return s
10798}
10799
10800// SetService sets the Service field's value.
10801func (s *DescribeTaskSetsInput) SetService(v string) *DescribeTaskSetsInput {
10802	s.Service = &v
10803	return s
10804}
10805
10806// SetTaskSets sets the TaskSets field's value.
10807func (s *DescribeTaskSetsInput) SetTaskSets(v []*string) *DescribeTaskSetsInput {
10808	s.TaskSets = v
10809	return s
10810}
10811
10812type DescribeTaskSetsOutput struct {
10813	_ struct{} `type:"structure"`
10814
10815	// Any failures associated with the call.
10816	Failures []*Failure `locationName:"failures" type:"list"`
10817
10818	// The list of task sets described.
10819	TaskSets []*TaskSet `locationName:"taskSets" type:"list"`
10820}
10821
10822// String returns the string representation
10823func (s DescribeTaskSetsOutput) String() string {
10824	return awsutil.Prettify(s)
10825}
10826
10827// GoString returns the string representation
10828func (s DescribeTaskSetsOutput) GoString() string {
10829	return s.String()
10830}
10831
10832// SetFailures sets the Failures field's value.
10833func (s *DescribeTaskSetsOutput) SetFailures(v []*Failure) *DescribeTaskSetsOutput {
10834	s.Failures = v
10835	return s
10836}
10837
10838// SetTaskSets sets the TaskSets field's value.
10839func (s *DescribeTaskSetsOutput) SetTaskSets(v []*TaskSet) *DescribeTaskSetsOutput {
10840	s.TaskSets = v
10841	return s
10842}
10843
10844type DescribeTasksInput struct {
10845	_ struct{} `type:"structure"`
10846
10847	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10848	// the task or tasks to describe. If you do not specify a cluster, the default
10849	// cluster is assumed. This parameter is required if the task or tasks you are
10850	// describing were launched in any cluster other than the default cluster.
10851	Cluster *string `locationName:"cluster" type:"string"`
10852
10853	// Specifies whether you want to see the resource tags for the task. If TAGS
10854	// is specified, the tags are included in the response. If this field is omitted,
10855	// tags are not included in the response.
10856	Include []*string `locationName:"include" type:"list"`
10857
10858	// A list of up to 100 task IDs or full ARN entries.
10859	//
10860	// Tasks is a required field
10861	Tasks []*string `locationName:"tasks" type:"list" required:"true"`
10862}
10863
10864// String returns the string representation
10865func (s DescribeTasksInput) String() string {
10866	return awsutil.Prettify(s)
10867}
10868
10869// GoString returns the string representation
10870func (s DescribeTasksInput) GoString() string {
10871	return s.String()
10872}
10873
10874// Validate inspects the fields of the type to determine if they are valid.
10875func (s *DescribeTasksInput) Validate() error {
10876	invalidParams := request.ErrInvalidParams{Context: "DescribeTasksInput"}
10877	if s.Tasks == nil {
10878		invalidParams.Add(request.NewErrParamRequired("Tasks"))
10879	}
10880
10881	if invalidParams.Len() > 0 {
10882		return invalidParams
10883	}
10884	return nil
10885}
10886
10887// SetCluster sets the Cluster field's value.
10888func (s *DescribeTasksInput) SetCluster(v string) *DescribeTasksInput {
10889	s.Cluster = &v
10890	return s
10891}
10892
10893// SetInclude sets the Include field's value.
10894func (s *DescribeTasksInput) SetInclude(v []*string) *DescribeTasksInput {
10895	s.Include = v
10896	return s
10897}
10898
10899// SetTasks sets the Tasks field's value.
10900func (s *DescribeTasksInput) SetTasks(v []*string) *DescribeTasksInput {
10901	s.Tasks = v
10902	return s
10903}
10904
10905type DescribeTasksOutput struct {
10906	_ struct{} `type:"structure"`
10907
10908	// Any failures associated with the call.
10909	Failures []*Failure `locationName:"failures" type:"list"`
10910
10911	// The list of tasks.
10912	Tasks []*Task `locationName:"tasks" type:"list"`
10913}
10914
10915// String returns the string representation
10916func (s DescribeTasksOutput) String() string {
10917	return awsutil.Prettify(s)
10918}
10919
10920// GoString returns the string representation
10921func (s DescribeTasksOutput) GoString() string {
10922	return s.String()
10923}
10924
10925// SetFailures sets the Failures field's value.
10926func (s *DescribeTasksOutput) SetFailures(v []*Failure) *DescribeTasksOutput {
10927	s.Failures = v
10928	return s
10929}
10930
10931// SetTasks sets the Tasks field's value.
10932func (s *DescribeTasksOutput) SetTasks(v []*Task) *DescribeTasksOutput {
10933	s.Tasks = v
10934	return s
10935}
10936
10937// An object representing a container instance host device.
10938type Device struct {
10939	_ struct{} `type:"structure"`
10940
10941	// The path inside the container at which to expose the host device.
10942	ContainerPath *string `locationName:"containerPath" type:"string"`
10943
10944	// The path for the device on the host container instance.
10945	//
10946	// HostPath is a required field
10947	HostPath *string `locationName:"hostPath" type:"string" required:"true"`
10948
10949	// The explicit permissions to provide to the container for the device. By default,
10950	// the container has permissions for read, write, and mknod for the device.
10951	Permissions []*string `locationName:"permissions" type:"list"`
10952}
10953
10954// String returns the string representation
10955func (s Device) String() string {
10956	return awsutil.Prettify(s)
10957}
10958
10959// GoString returns the string representation
10960func (s Device) GoString() string {
10961	return s.String()
10962}
10963
10964// Validate inspects the fields of the type to determine if they are valid.
10965func (s *Device) Validate() error {
10966	invalidParams := request.ErrInvalidParams{Context: "Device"}
10967	if s.HostPath == nil {
10968		invalidParams.Add(request.NewErrParamRequired("HostPath"))
10969	}
10970
10971	if invalidParams.Len() > 0 {
10972		return invalidParams
10973	}
10974	return nil
10975}
10976
10977// SetContainerPath sets the ContainerPath field's value.
10978func (s *Device) SetContainerPath(v string) *Device {
10979	s.ContainerPath = &v
10980	return s
10981}
10982
10983// SetHostPath sets the HostPath field's value.
10984func (s *Device) SetHostPath(v string) *Device {
10985	s.HostPath = &v
10986	return s
10987}
10988
10989// SetPermissions sets the Permissions field's value.
10990func (s *Device) SetPermissions(v []*string) *Device {
10991	s.Permissions = v
10992	return s
10993}
10994
10995type DiscoverPollEndpointInput struct {
10996	_ struct{} `type:"structure"`
10997
10998	// The short name or full Amazon Resource Name (ARN) of the cluster to which
10999	// the container instance belongs.
11000	Cluster *string `locationName:"cluster" type:"string"`
11001
11002	// The container instance ID or full ARN of the container instance. The ARN
11003	// contains the arn:aws:ecs namespace, followed by the Region of the container
11004	// instance, the AWS account ID of the container instance owner, the container-instance
11005	// namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
11006	ContainerInstance *string `locationName:"containerInstance" type:"string"`
11007}
11008
11009// String returns the string representation
11010func (s DiscoverPollEndpointInput) String() string {
11011	return awsutil.Prettify(s)
11012}
11013
11014// GoString returns the string representation
11015func (s DiscoverPollEndpointInput) GoString() string {
11016	return s.String()
11017}
11018
11019// SetCluster sets the Cluster field's value.
11020func (s *DiscoverPollEndpointInput) SetCluster(v string) *DiscoverPollEndpointInput {
11021	s.Cluster = &v
11022	return s
11023}
11024
11025// SetContainerInstance sets the ContainerInstance field's value.
11026func (s *DiscoverPollEndpointInput) SetContainerInstance(v string) *DiscoverPollEndpointInput {
11027	s.ContainerInstance = &v
11028	return s
11029}
11030
11031type DiscoverPollEndpointOutput struct {
11032	_ struct{} `type:"structure"`
11033
11034	// The endpoint for the Amazon ECS agent to poll.
11035	Endpoint *string `locationName:"endpoint" type:"string"`
11036
11037	// The telemetry endpoint for the Amazon ECS agent.
11038	TelemetryEndpoint *string `locationName:"telemetryEndpoint" type:"string"`
11039}
11040
11041// String returns the string representation
11042func (s DiscoverPollEndpointOutput) String() string {
11043	return awsutil.Prettify(s)
11044}
11045
11046// GoString returns the string representation
11047func (s DiscoverPollEndpointOutput) GoString() string {
11048	return s.String()
11049}
11050
11051// SetEndpoint sets the Endpoint field's value.
11052func (s *DiscoverPollEndpointOutput) SetEndpoint(v string) *DiscoverPollEndpointOutput {
11053	s.Endpoint = &v
11054	return s
11055}
11056
11057// SetTelemetryEndpoint sets the TelemetryEndpoint field's value.
11058func (s *DiscoverPollEndpointOutput) SetTelemetryEndpoint(v string) *DiscoverPollEndpointOutput {
11059	s.TelemetryEndpoint = &v
11060	return s
11061}
11062
11063// This parameter is specified when you are using Docker volumes. Docker volumes
11064// are only supported when you are using the EC2 launch type. Windows containers
11065// only support the use of the local driver. To use bind mounts, specify a host
11066// instead.
11067type DockerVolumeConfiguration struct {
11068	_ struct{} `type:"structure"`
11069
11070	// If this value is true, the Docker volume is created if it does not already
11071	// exist.
11072	//
11073	// This field is only used if the scope is shared.
11074	Autoprovision *bool `locationName:"autoprovision" type:"boolean"`
11075
11076	// The Docker volume driver to use. The driver value must match the driver name
11077	// provided by Docker because it is used for task placement. If the driver was
11078	// installed using the Docker plugin CLI, use docker plugin ls to retrieve the
11079	// driver name from your container instance. If the driver was installed using
11080	// another method, use Docker plugin discovery to retrieve the driver name.
11081	// For more information, see Docker plugin discovery (https://docs.docker.com/engine/extend/plugin_api/#plugin-discovery).
11082	// This parameter maps to Driver in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
11083	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
11084	// and the xxdriver option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
11085	Driver *string `locationName:"driver" type:"string"`
11086
11087	// A map of Docker driver-specific options passed through. This parameter maps
11088	// to DriverOpts in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
11089	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
11090	// and the xxopt option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
11091	DriverOpts map[string]*string `locationName:"driverOpts" type:"map"`
11092
11093	// Custom metadata to add to your Docker volume. This parameter maps to Labels
11094	// in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
11095	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
11096	// and the xxlabel option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
11097	Labels map[string]*string `locationName:"labels" type:"map"`
11098
11099	// The scope for the Docker volume that determines its lifecycle. Docker volumes
11100	// that are scoped to a task are automatically provisioned when the task starts
11101	// and destroyed when the task stops. Docker volumes that are scoped as shared
11102	// persist after the task stops.
11103	Scope *string `locationName:"scope" type:"string" enum:"Scope"`
11104}
11105
11106// String returns the string representation
11107func (s DockerVolumeConfiguration) String() string {
11108	return awsutil.Prettify(s)
11109}
11110
11111// GoString returns the string representation
11112func (s DockerVolumeConfiguration) GoString() string {
11113	return s.String()
11114}
11115
11116// SetAutoprovision sets the Autoprovision field's value.
11117func (s *DockerVolumeConfiguration) SetAutoprovision(v bool) *DockerVolumeConfiguration {
11118	s.Autoprovision = &v
11119	return s
11120}
11121
11122// SetDriver sets the Driver field's value.
11123func (s *DockerVolumeConfiguration) SetDriver(v string) *DockerVolumeConfiguration {
11124	s.Driver = &v
11125	return s
11126}
11127
11128// SetDriverOpts sets the DriverOpts field's value.
11129func (s *DockerVolumeConfiguration) SetDriverOpts(v map[string]*string) *DockerVolumeConfiguration {
11130	s.DriverOpts = v
11131	return s
11132}
11133
11134// SetLabels sets the Labels field's value.
11135func (s *DockerVolumeConfiguration) SetLabels(v map[string]*string) *DockerVolumeConfiguration {
11136	s.Labels = v
11137	return s
11138}
11139
11140// SetScope sets the Scope field's value.
11141func (s *DockerVolumeConfiguration) SetScope(v string) *DockerVolumeConfiguration {
11142	s.Scope = &v
11143	return s
11144}
11145
11146// The authorization configuration details for the Amazon EFS file system.
11147type EFSAuthorizationConfig struct {
11148	_ struct{} `type:"structure"`
11149
11150	// The Amazon EFS access point ID to use. If an access point is specified, the
11151	// root directory value specified in the EFSVolumeConfiguration will be relative
11152	// to the directory set for the access point. If an access point is used, transit
11153	// encryption must be enabled in the EFSVolumeConfiguration. For more information,
11154	// see Working with Amazon EFS Access Points (https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html)
11155	// in the Amazon Elastic File System User Guide.
11156	AccessPointId *string `locationName:"accessPointId" type:"string"`
11157
11158	// Whether or not to use the Amazon ECS task IAM role defined in a task definition
11159	// when mounting the Amazon EFS file system. If enabled, transit encryption
11160	// must be enabled in the EFSVolumeConfiguration. If this parameter is omitted,
11161	// the default value of DISABLED is used. For more information, see Using Amazon
11162	// EFS Access Points (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html#efs-volume-accesspoints)
11163	// in the Amazon Elastic Container Service Developer Guide.
11164	Iam *string `locationName:"iam" type:"string" enum:"EFSAuthorizationConfigIAM"`
11165}
11166
11167// String returns the string representation
11168func (s EFSAuthorizationConfig) String() string {
11169	return awsutil.Prettify(s)
11170}
11171
11172// GoString returns the string representation
11173func (s EFSAuthorizationConfig) GoString() string {
11174	return s.String()
11175}
11176
11177// SetAccessPointId sets the AccessPointId field's value.
11178func (s *EFSAuthorizationConfig) SetAccessPointId(v string) *EFSAuthorizationConfig {
11179	s.AccessPointId = &v
11180	return s
11181}
11182
11183// SetIam sets the Iam field's value.
11184func (s *EFSAuthorizationConfig) SetIam(v string) *EFSAuthorizationConfig {
11185	s.Iam = &v
11186	return s
11187}
11188
11189// This parameter is specified when you are using an Amazon Elastic File System
11190// file system for task storage. For more information, see Amazon EFS Volumes
11191// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html)
11192// in the Amazon Elastic Container Service Developer Guide.
11193type EFSVolumeConfiguration struct {
11194	_ struct{} `type:"structure"`
11195
11196	// The authorization configuration details for the Amazon EFS file system.
11197	AuthorizationConfig *EFSAuthorizationConfig `locationName:"authorizationConfig" type:"structure"`
11198
11199	// The Amazon EFS file system ID to use.
11200	//
11201	// FileSystemId is a required field
11202	FileSystemId *string `locationName:"fileSystemId" type:"string" required:"true"`
11203
11204	// The directory within the Amazon EFS file system to mount as the root directory
11205	// inside the host. If this parameter is omitted, the root of the Amazon EFS
11206	// volume will be used. Specifying / will have the same effect as omitting this
11207	// parameter.
11208	RootDirectory *string `locationName:"rootDirectory" type:"string"`
11209
11210	// Whether or not to enable encryption for Amazon EFS data in transit between
11211	// the Amazon ECS host and the Amazon EFS server. Transit encryption must be
11212	// enabled if Amazon EFS IAM authorization is used. If this parameter is omitted,
11213	// the default value of DISABLED is used. For more information, see Encrypting
11214	// Data in Transit (https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html)
11215	// in the Amazon Elastic File System User Guide.
11216	TransitEncryption *string `locationName:"transitEncryption" type:"string" enum:"EFSTransitEncryption"`
11217
11218	// The port to use when sending encrypted data between the Amazon ECS host and
11219	// the Amazon EFS server. If you do not specify a transit encryption port, it
11220	// will use the port selection strategy that the Amazon EFS mount helper uses.
11221	// For more information, see EFS Mount Helper (https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html)
11222	// in the Amazon Elastic File System User Guide.
11223	TransitEncryptionPort *int64 `locationName:"transitEncryptionPort" type:"integer"`
11224}
11225
11226// String returns the string representation
11227func (s EFSVolumeConfiguration) String() string {
11228	return awsutil.Prettify(s)
11229}
11230
11231// GoString returns the string representation
11232func (s EFSVolumeConfiguration) GoString() string {
11233	return s.String()
11234}
11235
11236// Validate inspects the fields of the type to determine if they are valid.
11237func (s *EFSVolumeConfiguration) Validate() error {
11238	invalidParams := request.ErrInvalidParams{Context: "EFSVolumeConfiguration"}
11239	if s.FileSystemId == nil {
11240		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
11241	}
11242
11243	if invalidParams.Len() > 0 {
11244		return invalidParams
11245	}
11246	return nil
11247}
11248
11249// SetAuthorizationConfig sets the AuthorizationConfig field's value.
11250func (s *EFSVolumeConfiguration) SetAuthorizationConfig(v *EFSAuthorizationConfig) *EFSVolumeConfiguration {
11251	s.AuthorizationConfig = v
11252	return s
11253}
11254
11255// SetFileSystemId sets the FileSystemId field's value.
11256func (s *EFSVolumeConfiguration) SetFileSystemId(v string) *EFSVolumeConfiguration {
11257	s.FileSystemId = &v
11258	return s
11259}
11260
11261// SetRootDirectory sets the RootDirectory field's value.
11262func (s *EFSVolumeConfiguration) SetRootDirectory(v string) *EFSVolumeConfiguration {
11263	s.RootDirectory = &v
11264	return s
11265}
11266
11267// SetTransitEncryption sets the TransitEncryption field's value.
11268func (s *EFSVolumeConfiguration) SetTransitEncryption(v string) *EFSVolumeConfiguration {
11269	s.TransitEncryption = &v
11270	return s
11271}
11272
11273// SetTransitEncryptionPort sets the TransitEncryptionPort field's value.
11274func (s *EFSVolumeConfiguration) SetTransitEncryptionPort(v int64) *EFSVolumeConfiguration {
11275	s.TransitEncryptionPort = &v
11276	return s
11277}
11278
11279// A list of files containing the environment variables to pass to a container.
11280// You can specify up to ten environment files. The file must have a .env file
11281// extension. Each line in an environment file should contain an environment
11282// variable in VARIABLE=VALUE format. Lines beginning with # are treated as
11283// comments and are ignored. For more information on the environment variable
11284// file syntax, see Declare default environment variables in file (https://docs.docker.com/compose/env-file/).
11285//
11286// If there are environment variables specified using the environment parameter
11287// in a container definition, they take precedence over the variables contained
11288// within an environment file. If multiple environment files are specified that
11289// contain the same variable, they are processed from the top down. It is recommended
11290// to use unique variable names. For more information, see Specifying Environment
11291// Variables (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html)
11292// in the Amazon Elastic Container Service Developer Guide.
11293//
11294// This field is not valid for containers in tasks using the Fargate launch
11295// type.
11296type EnvironmentFile struct {
11297	_ struct{} `type:"structure"`
11298
11299	// The file type to use. The only supported value is s3.
11300	//
11301	// Type is a required field
11302	Type *string `locationName:"type" type:"string" required:"true" enum:"EnvironmentFileType"`
11303
11304	// The Amazon Resource Name (ARN) of the Amazon S3 object containing the environment
11305	// variable file.
11306	//
11307	// Value is a required field
11308	Value *string `locationName:"value" type:"string" required:"true"`
11309}
11310
11311// String returns the string representation
11312func (s EnvironmentFile) String() string {
11313	return awsutil.Prettify(s)
11314}
11315
11316// GoString returns the string representation
11317func (s EnvironmentFile) GoString() string {
11318	return s.String()
11319}
11320
11321// Validate inspects the fields of the type to determine if they are valid.
11322func (s *EnvironmentFile) Validate() error {
11323	invalidParams := request.ErrInvalidParams{Context: "EnvironmentFile"}
11324	if s.Type == nil {
11325		invalidParams.Add(request.NewErrParamRequired("Type"))
11326	}
11327	if s.Value == nil {
11328		invalidParams.Add(request.NewErrParamRequired("Value"))
11329	}
11330
11331	if invalidParams.Len() > 0 {
11332		return invalidParams
11333	}
11334	return nil
11335}
11336
11337// SetType sets the Type field's value.
11338func (s *EnvironmentFile) SetType(v string) *EnvironmentFile {
11339	s.Type = &v
11340	return s
11341}
11342
11343// SetValue sets the Value field's value.
11344func (s *EnvironmentFile) SetValue(v string) *EnvironmentFile {
11345	s.Value = &v
11346	return s
11347}
11348
11349// A failed resource.
11350type Failure struct {
11351	_ struct{} `type:"structure"`
11352
11353	// The Amazon Resource Name (ARN) of the failed resource.
11354	Arn *string `locationName:"arn" type:"string"`
11355
11356	// The details of the failure.
11357	Detail *string `locationName:"detail" type:"string"`
11358
11359	// The reason for the failure.
11360	Reason *string `locationName:"reason" type:"string"`
11361}
11362
11363// String returns the string representation
11364func (s Failure) String() string {
11365	return awsutil.Prettify(s)
11366}
11367
11368// GoString returns the string representation
11369func (s Failure) GoString() string {
11370	return s.String()
11371}
11372
11373// SetArn sets the Arn field's value.
11374func (s *Failure) SetArn(v string) *Failure {
11375	s.Arn = &v
11376	return s
11377}
11378
11379// SetDetail sets the Detail field's value.
11380func (s *Failure) SetDetail(v string) *Failure {
11381	s.Detail = &v
11382	return s
11383}
11384
11385// SetReason sets the Reason field's value.
11386func (s *Failure) SetReason(v string) *Failure {
11387	s.Reason = &v
11388	return s
11389}
11390
11391// The FireLens configuration for the container. This is used to specify and
11392// configure a log router for container logs. For more information, see Custom
11393// Log Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
11394// in the Amazon Elastic Container Service Developer Guide.
11395type FirelensConfiguration struct {
11396	_ struct{} `type:"structure"`
11397
11398	// The options to use when configuring the log router. This field is optional
11399	// and can be used to specify a custom configuration file or to add additional
11400	// metadata, such as the task, task definition, cluster, and container instance
11401	// 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"}.
11402	// For more information, see Creating a Task Definition that Uses a FireLens
11403	// Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-taskdef)
11404	// in the Amazon Elastic Container Service Developer Guide.
11405	Options map[string]*string `locationName:"options" type:"map"`
11406
11407	// The log router to use. The valid values are fluentd or fluentbit.
11408	//
11409	// Type is a required field
11410	Type *string `locationName:"type" type:"string" required:"true" enum:"FirelensConfigurationType"`
11411}
11412
11413// String returns the string representation
11414func (s FirelensConfiguration) String() string {
11415	return awsutil.Prettify(s)
11416}
11417
11418// GoString returns the string representation
11419func (s FirelensConfiguration) GoString() string {
11420	return s.String()
11421}
11422
11423// Validate inspects the fields of the type to determine if they are valid.
11424func (s *FirelensConfiguration) Validate() error {
11425	invalidParams := request.ErrInvalidParams{Context: "FirelensConfiguration"}
11426	if s.Type == nil {
11427		invalidParams.Add(request.NewErrParamRequired("Type"))
11428	}
11429
11430	if invalidParams.Len() > 0 {
11431		return invalidParams
11432	}
11433	return nil
11434}
11435
11436// SetOptions sets the Options field's value.
11437func (s *FirelensConfiguration) SetOptions(v map[string]*string) *FirelensConfiguration {
11438	s.Options = v
11439	return s
11440}
11441
11442// SetType sets the Type field's value.
11443func (s *FirelensConfiguration) SetType(v string) *FirelensConfiguration {
11444	s.Type = &v
11445	return s
11446}
11447
11448// An object representing a container health check. Health check parameters
11449// that are specified in a container definition override any Docker health checks
11450// that exist in the container image (such as those specified in a parent image
11451// or from the image's Dockerfile).
11452//
11453// You can view the health status of both individual containers and a task with
11454// the DescribeTasks API operation or when viewing the task details in the console.
11455//
11456// The following describes the possible healthStatus values for a container:
11457//
11458//    * HEALTHY-The container health check has passed successfully.
11459//
11460//    * UNHEALTHY-The container health check has failed.
11461//
11462//    * UNKNOWN-The container health check is being evaluated or there is no
11463//    container health check defined.
11464//
11465// The following describes the possible healthStatus values for a task. The
11466// container health check status of nonessential containers do not have an effect
11467// on the health status of a task.
11468//
11469//    * HEALTHY-All essential containers within the task have passed their health
11470//    checks.
11471//
11472//    * UNHEALTHY-One or more essential containers have failed their health
11473//    check.
11474//
11475//    * UNKNOWN-The essential containers within the task are still having their
11476//    health checks evaluated or there are no container health checks defined.
11477//
11478// If a task is run manually, and not as part of a service, the task will continue
11479// its lifecycle regardless of its health status. For tasks that are part of
11480// a service, if the task reports as unhealthy then the task will be stopped
11481// and the service scheduler will replace it.
11482//
11483// The following are notes about container health check support:
11484//
11485//    * Container health checks require version 1.17.0 or greater of the Amazon
11486//    ECS container agent. For more information, see Updating the Amazon ECS
11487//    Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html).
11488//
11489//    * Container health checks are supported for Fargate tasks if you are using
11490//    platform version 1.1.0 or greater. For more information, see AWS Fargate
11491//    Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).
11492//
11493//    * Container health checks are not supported for tasks that are part of
11494//    a service that is configured to use a Classic Load Balancer.
11495type HealthCheck struct {
11496	_ struct{} `type:"structure"`
11497
11498	// A string array representing the command that the container runs to determine
11499	// if it is healthy. The string array must start with CMD to execute the command
11500	// arguments directly, or CMD-SHELL to run the command with the container's
11501	// default shell. For example:
11502	//
11503	// [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]
11504	//
11505	// An exit code of 0 indicates success, and non-zero exit code indicates failure.
11506	// For more information, see HealthCheck in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
11507	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/).
11508	//
11509	// Command is a required field
11510	Command []*string `locationName:"command" type:"list" required:"true"`
11511
11512	// The time period in seconds between each health check execution. You may specify
11513	// between 5 and 300 seconds. The default value is 30 seconds.
11514	Interval *int64 `locationName:"interval" type:"integer"`
11515
11516	// The number of times to retry a failed health check before the container is
11517	// considered unhealthy. You may specify between 1 and 10 retries. The default
11518	// value is 3.
11519	Retries *int64 `locationName:"retries" type:"integer"`
11520
11521	// The optional grace period within which to provide containers time to bootstrap
11522	// before failed health checks count towards the maximum number of retries.
11523	// You may specify between 0 and 300 seconds. The startPeriod is disabled by
11524	// default.
11525	//
11526	// If a health check succeeds within the startPeriod, then the container is
11527	// considered healthy and any subsequent failures count toward the maximum number
11528	// of retries.
11529	StartPeriod *int64 `locationName:"startPeriod" type:"integer"`
11530
11531	// The time period in seconds to wait for a health check to succeed before it
11532	// is considered a failure. You may specify between 2 and 60 seconds. The default
11533	// value is 5.
11534	Timeout *int64 `locationName:"timeout" type:"integer"`
11535}
11536
11537// String returns the string representation
11538func (s HealthCheck) String() string {
11539	return awsutil.Prettify(s)
11540}
11541
11542// GoString returns the string representation
11543func (s HealthCheck) GoString() string {
11544	return s.String()
11545}
11546
11547// Validate inspects the fields of the type to determine if they are valid.
11548func (s *HealthCheck) Validate() error {
11549	invalidParams := request.ErrInvalidParams{Context: "HealthCheck"}
11550	if s.Command == nil {
11551		invalidParams.Add(request.NewErrParamRequired("Command"))
11552	}
11553
11554	if invalidParams.Len() > 0 {
11555		return invalidParams
11556	}
11557	return nil
11558}
11559
11560// SetCommand sets the Command field's value.
11561func (s *HealthCheck) SetCommand(v []*string) *HealthCheck {
11562	s.Command = v
11563	return s
11564}
11565
11566// SetInterval sets the Interval field's value.
11567func (s *HealthCheck) SetInterval(v int64) *HealthCheck {
11568	s.Interval = &v
11569	return s
11570}
11571
11572// SetRetries sets the Retries field's value.
11573func (s *HealthCheck) SetRetries(v int64) *HealthCheck {
11574	s.Retries = &v
11575	return s
11576}
11577
11578// SetStartPeriod sets the StartPeriod field's value.
11579func (s *HealthCheck) SetStartPeriod(v int64) *HealthCheck {
11580	s.StartPeriod = &v
11581	return s
11582}
11583
11584// SetTimeout sets the Timeout field's value.
11585func (s *HealthCheck) SetTimeout(v int64) *HealthCheck {
11586	s.Timeout = &v
11587	return s
11588}
11589
11590// Hostnames and IP address entries that are added to the /etc/hosts file of
11591// a container via the extraHosts parameter of its ContainerDefinition.
11592type HostEntry struct {
11593	_ struct{} `type:"structure"`
11594
11595	// The hostname to use in the /etc/hosts entry.
11596	//
11597	// Hostname is a required field
11598	Hostname *string `locationName:"hostname" type:"string" required:"true"`
11599
11600	// The IP address to use in the /etc/hosts entry.
11601	//
11602	// IpAddress is a required field
11603	IpAddress *string `locationName:"ipAddress" type:"string" required:"true"`
11604}
11605
11606// String returns the string representation
11607func (s HostEntry) String() string {
11608	return awsutil.Prettify(s)
11609}
11610
11611// GoString returns the string representation
11612func (s HostEntry) GoString() string {
11613	return s.String()
11614}
11615
11616// Validate inspects the fields of the type to determine if they are valid.
11617func (s *HostEntry) Validate() error {
11618	invalidParams := request.ErrInvalidParams{Context: "HostEntry"}
11619	if s.Hostname == nil {
11620		invalidParams.Add(request.NewErrParamRequired("Hostname"))
11621	}
11622	if s.IpAddress == nil {
11623		invalidParams.Add(request.NewErrParamRequired("IpAddress"))
11624	}
11625
11626	if invalidParams.Len() > 0 {
11627		return invalidParams
11628	}
11629	return nil
11630}
11631
11632// SetHostname sets the Hostname field's value.
11633func (s *HostEntry) SetHostname(v string) *HostEntry {
11634	s.Hostname = &v
11635	return s
11636}
11637
11638// SetIpAddress sets the IpAddress field's value.
11639func (s *HostEntry) SetIpAddress(v string) *HostEntry {
11640	s.IpAddress = &v
11641	return s
11642}
11643
11644// Details on a container instance bind mount host volume.
11645type HostVolumeProperties struct {
11646	_ struct{} `type:"structure"`
11647
11648	// When the host parameter is used, specify a sourcePath to declare the path
11649	// on the host container instance that is presented to the container. If this
11650	// parameter is empty, then the Docker daemon has assigned a host path for you.
11651	// If the host parameter contains a sourcePath file location, then the data
11652	// volume persists at the specified location on the host container instance
11653	// until you delete it manually. If the sourcePath value does not exist on the
11654	// host container instance, the Docker daemon creates it. If the location does
11655	// exist, the contents of the source path folder are exported.
11656	//
11657	// If you are using the Fargate launch type, the sourcePath parameter is not
11658	// supported.
11659	SourcePath *string `locationName:"sourcePath" type:"string"`
11660}
11661
11662// String returns the string representation
11663func (s HostVolumeProperties) String() string {
11664	return awsutil.Prettify(s)
11665}
11666
11667// GoString returns the string representation
11668func (s HostVolumeProperties) GoString() string {
11669	return s.String()
11670}
11671
11672// SetSourcePath sets the SourcePath field's value.
11673func (s *HostVolumeProperties) SetSourcePath(v string) *HostVolumeProperties {
11674	s.SourcePath = &v
11675	return s
11676}
11677
11678// Details on a Elastic Inference accelerator. For more information, see Working
11679// with Amazon Elastic Inference on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
11680// in the Amazon Elastic Container Service Developer Guide.
11681type InferenceAccelerator struct {
11682	_ struct{} `type:"structure"`
11683
11684	// The Elastic Inference accelerator device name. The deviceName must also be
11685	// referenced in a container definition as a ResourceRequirement.
11686	//
11687	// DeviceName is a required field
11688	DeviceName *string `locationName:"deviceName" type:"string" required:"true"`
11689
11690	// The Elastic Inference accelerator type to use.
11691	//
11692	// DeviceType is a required field
11693	DeviceType *string `locationName:"deviceType" type:"string" required:"true"`
11694}
11695
11696// String returns the string representation
11697func (s InferenceAccelerator) String() string {
11698	return awsutil.Prettify(s)
11699}
11700
11701// GoString returns the string representation
11702func (s InferenceAccelerator) GoString() string {
11703	return s.String()
11704}
11705
11706// Validate inspects the fields of the type to determine if they are valid.
11707func (s *InferenceAccelerator) Validate() error {
11708	invalidParams := request.ErrInvalidParams{Context: "InferenceAccelerator"}
11709	if s.DeviceName == nil {
11710		invalidParams.Add(request.NewErrParamRequired("DeviceName"))
11711	}
11712	if s.DeviceType == nil {
11713		invalidParams.Add(request.NewErrParamRequired("DeviceType"))
11714	}
11715
11716	if invalidParams.Len() > 0 {
11717		return invalidParams
11718	}
11719	return nil
11720}
11721
11722// SetDeviceName sets the DeviceName field's value.
11723func (s *InferenceAccelerator) SetDeviceName(v string) *InferenceAccelerator {
11724	s.DeviceName = &v
11725	return s
11726}
11727
11728// SetDeviceType sets the DeviceType field's value.
11729func (s *InferenceAccelerator) SetDeviceType(v string) *InferenceAccelerator {
11730	s.DeviceType = &v
11731	return s
11732}
11733
11734// Details on an Elastic Inference accelerator task override. This parameter
11735// is used to override the Elastic Inference accelerator specified in the task
11736// definition. For more information, see Working with Amazon Elastic Inference
11737// on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
11738// in the Amazon Elastic Container Service Developer Guide.
11739type InferenceAcceleratorOverride struct {
11740	_ struct{} `type:"structure"`
11741
11742	// The Elastic Inference accelerator device name to override for the task. This
11743	// parameter must match a deviceName specified in the task definition.
11744	DeviceName *string `locationName:"deviceName" type:"string"`
11745
11746	// The Elastic Inference accelerator type to use.
11747	DeviceType *string `locationName:"deviceType" type:"string"`
11748}
11749
11750// String returns the string representation
11751func (s InferenceAcceleratorOverride) String() string {
11752	return awsutil.Prettify(s)
11753}
11754
11755// GoString returns the string representation
11756func (s InferenceAcceleratorOverride) GoString() string {
11757	return s.String()
11758}
11759
11760// SetDeviceName sets the DeviceName field's value.
11761func (s *InferenceAcceleratorOverride) SetDeviceName(v string) *InferenceAcceleratorOverride {
11762	s.DeviceName = &v
11763	return s
11764}
11765
11766// SetDeviceType sets the DeviceType field's value.
11767func (s *InferenceAcceleratorOverride) SetDeviceType(v string) *InferenceAcceleratorOverride {
11768	s.DeviceType = &v
11769	return s
11770}
11771
11772// The specified parameter is invalid. Review the available parameters for the
11773// API request.
11774type InvalidParameterException struct {
11775	_            struct{}                  `type:"structure"`
11776	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11777
11778	Message_ *string `locationName:"message" type:"string"`
11779}
11780
11781// String returns the string representation
11782func (s InvalidParameterException) String() string {
11783	return awsutil.Prettify(s)
11784}
11785
11786// GoString returns the string representation
11787func (s InvalidParameterException) GoString() string {
11788	return s.String()
11789}
11790
11791func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
11792	return &InvalidParameterException{
11793		RespMetadata: v,
11794	}
11795}
11796
11797// Code returns the exception type name.
11798func (s *InvalidParameterException) Code() string {
11799	return "InvalidParameterException"
11800}
11801
11802// Message returns the exception's message.
11803func (s *InvalidParameterException) Message() string {
11804	if s.Message_ != nil {
11805		return *s.Message_
11806	}
11807	return ""
11808}
11809
11810// OrigErr always returns nil, satisfies awserr.Error interface.
11811func (s *InvalidParameterException) OrigErr() error {
11812	return nil
11813}
11814
11815func (s *InvalidParameterException) Error() string {
11816	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11817}
11818
11819// Status code returns the HTTP status code for the request's response error.
11820func (s *InvalidParameterException) StatusCode() int {
11821	return s.RespMetadata.StatusCode
11822}
11823
11824// RequestID returns the service's response RequestID for request.
11825func (s *InvalidParameterException) RequestID() string {
11826	return s.RespMetadata.RequestID
11827}
11828
11829// The Linux capabilities for the container that are added to or dropped from
11830// the default configuration provided by Docker. For more information on the
11831// default capabilities and the non-default available capabilities, see Runtime
11832// privilege and Linux capabilities (https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities)
11833// in the Docker run reference. For more detailed information on these Linux
11834// capabilities, see the capabilities(7) (http://man7.org/linux/man-pages/man7/capabilities.7.html)
11835// Linux manual page.
11836type KernelCapabilities struct {
11837	_ struct{} `type:"structure"`
11838
11839	// The Linux capabilities for the container that have been added to the default
11840	// configuration provided by Docker. This parameter maps to CapAdd in the Create
11841	// a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
11842	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
11843	// and the --cap-add option to docker run (https://docs.docker.com/engine/reference/run/).
11844	//
11845	// The SYS_PTRACE capability is supported for tasks that use the Fargate launch
11846	// type if they are also using platform version 1.4.0. The other capabilities
11847	// are not supported for any platform versions.
11848	//
11849	// Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" |
11850	// "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK"
11851	// | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE"
11852	// | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW"
11853	// | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT"
11854	// | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" |
11855	// "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" |
11856	// "WAKE_ALARM"
11857	Add []*string `locationName:"add" type:"list"`
11858
11859	// The Linux capabilities for the container that have been removed from the
11860	// default configuration provided by Docker. This parameter maps to CapDrop
11861	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
11862	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
11863	// and the --cap-drop option to docker run (https://docs.docker.com/engine/reference/run/).
11864	//
11865	// Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" |
11866	// "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK"
11867	// | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE"
11868	// | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW"
11869	// | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT"
11870	// | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" |
11871	// "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" |
11872	// "WAKE_ALARM"
11873	Drop []*string `locationName:"drop" type:"list"`
11874}
11875
11876// String returns the string representation
11877func (s KernelCapabilities) String() string {
11878	return awsutil.Prettify(s)
11879}
11880
11881// GoString returns the string representation
11882func (s KernelCapabilities) GoString() string {
11883	return s.String()
11884}
11885
11886// SetAdd sets the Add field's value.
11887func (s *KernelCapabilities) SetAdd(v []*string) *KernelCapabilities {
11888	s.Add = v
11889	return s
11890}
11891
11892// SetDrop sets the Drop field's value.
11893func (s *KernelCapabilities) SetDrop(v []*string) *KernelCapabilities {
11894	s.Drop = v
11895	return s
11896}
11897
11898// A key-value pair object.
11899type KeyValuePair struct {
11900	_ struct{} `type:"structure"`
11901
11902	// The name of the key-value pair. For environment variables, this is the name
11903	// of the environment variable.
11904	Name *string `locationName:"name" type:"string"`
11905
11906	// The value of the key-value pair. For environment variables, this is the value
11907	// of the environment variable.
11908	Value *string `locationName:"value" type:"string"`
11909}
11910
11911// String returns the string representation
11912func (s KeyValuePair) String() string {
11913	return awsutil.Prettify(s)
11914}
11915
11916// GoString returns the string representation
11917func (s KeyValuePair) GoString() string {
11918	return s.String()
11919}
11920
11921// SetName sets the Name field's value.
11922func (s *KeyValuePair) SetName(v string) *KeyValuePair {
11923	s.Name = &v
11924	return s
11925}
11926
11927// SetValue sets the Value field's value.
11928func (s *KeyValuePair) SetValue(v string) *KeyValuePair {
11929	s.Value = &v
11930	return s
11931}
11932
11933// The limit for the resource has been exceeded.
11934type LimitExceededException struct {
11935	_            struct{}                  `type:"structure"`
11936	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11937
11938	Message_ *string `locationName:"message" type:"string"`
11939}
11940
11941// String returns the string representation
11942func (s LimitExceededException) String() string {
11943	return awsutil.Prettify(s)
11944}
11945
11946// GoString returns the string representation
11947func (s LimitExceededException) GoString() string {
11948	return s.String()
11949}
11950
11951func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
11952	return &LimitExceededException{
11953		RespMetadata: v,
11954	}
11955}
11956
11957// Code returns the exception type name.
11958func (s *LimitExceededException) Code() string {
11959	return "LimitExceededException"
11960}
11961
11962// Message returns the exception's message.
11963func (s *LimitExceededException) Message() string {
11964	if s.Message_ != nil {
11965		return *s.Message_
11966	}
11967	return ""
11968}
11969
11970// OrigErr always returns nil, satisfies awserr.Error interface.
11971func (s *LimitExceededException) OrigErr() error {
11972	return nil
11973}
11974
11975func (s *LimitExceededException) Error() string {
11976	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11977}
11978
11979// Status code returns the HTTP status code for the request's response error.
11980func (s *LimitExceededException) StatusCode() int {
11981	return s.RespMetadata.StatusCode
11982}
11983
11984// RequestID returns the service's response RequestID for request.
11985func (s *LimitExceededException) RequestID() string {
11986	return s.RespMetadata.RequestID
11987}
11988
11989// Linux-specific options that are applied to the container, such as Linux KernelCapabilities.
11990type LinuxParameters struct {
11991	_ struct{} `type:"structure"`
11992
11993	// The Linux capabilities for the container that are added to or dropped from
11994	// the default configuration provided by Docker.
11995	//
11996	// For tasks that use the Fargate launch type, capabilities is supported for
11997	// all platform versions but the add parameter is only supported if using platform
11998	// version 1.4.0 or later.
11999	Capabilities *KernelCapabilities `locationName:"capabilities" type:"structure"`
12000
12001	// Any host devices to expose to the container. This parameter maps to Devices
12002	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
12003	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
12004	// and the --device option to docker run (https://docs.docker.com/engine/reference/run/).
12005	//
12006	// If you are using tasks that use the Fargate launch type, the devices parameter
12007	// is not supported.
12008	Devices []*Device `locationName:"devices" type:"list"`
12009
12010	// Run an init process inside the container that forwards signals and reaps
12011	// processes. This parameter maps to the --init option to docker run (https://docs.docker.com/engine/reference/run/).
12012	// This parameter requires version 1.25 of the Docker Remote API or greater
12013	// on your container instance. To check the Docker Remote API version on your
12014	// container instance, log in to your container instance and run the following
12015	// command: sudo docker version --format '{{.Server.APIVersion}}'
12016	InitProcessEnabled *bool `locationName:"initProcessEnabled" type:"boolean"`
12017
12018	// The total amount of swap memory (in MiB) a container can use. This parameter
12019	// will be translated to the --memory-swap option to docker run (https://docs.docker.com/engine/reference/run/)
12020	// where the value would be the sum of the container memory plus the maxSwap
12021	// value.
12022	//
12023	// If a maxSwap value of 0 is specified, the container will not use swap. Accepted
12024	// values are 0 or any positive integer. If the maxSwap parameter is omitted,
12025	// the container will use the swap configuration for the container instance
12026	// it is running on. A maxSwap value must be set for the swappiness parameter
12027	// to be used.
12028	//
12029	// If you are using tasks that use the Fargate launch type, the maxSwap parameter
12030	// is not supported.
12031	MaxSwap *int64 `locationName:"maxSwap" type:"integer"`
12032
12033	// The value for the size (in MiB) of the /dev/shm volume. This parameter maps
12034	// to the --shm-size option to docker run (https://docs.docker.com/engine/reference/run/).
12035	//
12036	// If you are using tasks that use the Fargate launch type, the sharedMemorySize
12037	// parameter is not supported.
12038	SharedMemorySize *int64 `locationName:"sharedMemorySize" type:"integer"`
12039
12040	// This allows you to tune a container's memory swappiness behavior. A swappiness
12041	// value of 0 will cause swapping to not happen unless absolutely necessary.
12042	// A swappiness value of 100 will cause pages to be swapped very aggressively.
12043	// Accepted values are whole numbers between 0 and 100. If the swappiness parameter
12044	// is not specified, a default value of 60 is used. If a value is not specified
12045	// for maxSwap then this parameter is ignored. This parameter maps to the --memory-swappiness
12046	// option to docker run (https://docs.docker.com/engine/reference/run/).
12047	//
12048	// If you are using tasks that use the Fargate launch type, the swappiness parameter
12049	// is not supported.
12050	Swappiness *int64 `locationName:"swappiness" type:"integer"`
12051
12052	// The container path, mount options, and size (in MiB) of the tmpfs mount.
12053	// This parameter maps to the --tmpfs option to docker run (https://docs.docker.com/engine/reference/run/).
12054	//
12055	// If you are using tasks that use the Fargate launch type, the tmpfs parameter
12056	// is not supported.
12057	Tmpfs []*Tmpfs `locationName:"tmpfs" type:"list"`
12058}
12059
12060// String returns the string representation
12061func (s LinuxParameters) String() string {
12062	return awsutil.Prettify(s)
12063}
12064
12065// GoString returns the string representation
12066func (s LinuxParameters) GoString() string {
12067	return s.String()
12068}
12069
12070// Validate inspects the fields of the type to determine if they are valid.
12071func (s *LinuxParameters) Validate() error {
12072	invalidParams := request.ErrInvalidParams{Context: "LinuxParameters"}
12073	if s.Devices != nil {
12074		for i, v := range s.Devices {
12075			if v == nil {
12076				continue
12077			}
12078			if err := v.Validate(); err != nil {
12079				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Devices", i), err.(request.ErrInvalidParams))
12080			}
12081		}
12082	}
12083	if s.Tmpfs != nil {
12084		for i, v := range s.Tmpfs {
12085			if v == nil {
12086				continue
12087			}
12088			if err := v.Validate(); err != nil {
12089				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tmpfs", i), err.(request.ErrInvalidParams))
12090			}
12091		}
12092	}
12093
12094	if invalidParams.Len() > 0 {
12095		return invalidParams
12096	}
12097	return nil
12098}
12099
12100// SetCapabilities sets the Capabilities field's value.
12101func (s *LinuxParameters) SetCapabilities(v *KernelCapabilities) *LinuxParameters {
12102	s.Capabilities = v
12103	return s
12104}
12105
12106// SetDevices sets the Devices field's value.
12107func (s *LinuxParameters) SetDevices(v []*Device) *LinuxParameters {
12108	s.Devices = v
12109	return s
12110}
12111
12112// SetInitProcessEnabled sets the InitProcessEnabled field's value.
12113func (s *LinuxParameters) SetInitProcessEnabled(v bool) *LinuxParameters {
12114	s.InitProcessEnabled = &v
12115	return s
12116}
12117
12118// SetMaxSwap sets the MaxSwap field's value.
12119func (s *LinuxParameters) SetMaxSwap(v int64) *LinuxParameters {
12120	s.MaxSwap = &v
12121	return s
12122}
12123
12124// SetSharedMemorySize sets the SharedMemorySize field's value.
12125func (s *LinuxParameters) SetSharedMemorySize(v int64) *LinuxParameters {
12126	s.SharedMemorySize = &v
12127	return s
12128}
12129
12130// SetSwappiness sets the Swappiness field's value.
12131func (s *LinuxParameters) SetSwappiness(v int64) *LinuxParameters {
12132	s.Swappiness = &v
12133	return s
12134}
12135
12136// SetTmpfs sets the Tmpfs field's value.
12137func (s *LinuxParameters) SetTmpfs(v []*Tmpfs) *LinuxParameters {
12138	s.Tmpfs = v
12139	return s
12140}
12141
12142type ListAccountSettingsInput struct {
12143	_ struct{} `type:"structure"`
12144
12145	// Specifies whether to return the effective settings. If true, the account
12146	// settings for the root user or the default setting for the principalArn are
12147	// returned. If false, the account settings for the principalArn are returned
12148	// if they are set. Otherwise, no account settings are returned.
12149	EffectiveSettings *bool `locationName:"effectiveSettings" type:"boolean"`
12150
12151	// The maximum number of account setting results returned by ListAccountSettings
12152	// in paginated output. When this parameter is used, ListAccountSettings only
12153	// returns maxResults results in a single page along with a nextToken response
12154	// element. The remaining results of the initial request can be seen by sending
12155	// another ListAccountSettings request with the returned nextToken value. This
12156	// value can be between 1 and 10. If this parameter is not used, then ListAccountSettings
12157	// returns up to 10 results and a nextToken value if applicable.
12158	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12159
12160	// The resource name you want to list the account settings for.
12161	Name *string `locationName:"name" type:"string" enum:"SettingName"`
12162
12163	// The nextToken value returned from a ListAccountSettings request indicating
12164	// that more results are available to fulfill the request and further calls
12165	// will be needed. If maxResults was provided, it is possible the number of
12166	// results to be fewer than maxResults.
12167	//
12168	// This token should be treated as an opaque identifier that is only used to
12169	// retrieve the next items in a list and not for other programmatic purposes.
12170	NextToken *string `locationName:"nextToken" type:"string"`
12171
12172	// The ARN of the principal, which can be an IAM user, IAM role, or the root
12173	// user. If this field is omitted, the account settings are listed only for
12174	// the authenticated user.
12175	PrincipalArn *string `locationName:"principalArn" type:"string"`
12176
12177	// The value of the account settings with which to filter results. You must
12178	// also specify an account setting name to use this parameter.
12179	Value *string `locationName:"value" type:"string"`
12180}
12181
12182// String returns the string representation
12183func (s ListAccountSettingsInput) String() string {
12184	return awsutil.Prettify(s)
12185}
12186
12187// GoString returns the string representation
12188func (s ListAccountSettingsInput) GoString() string {
12189	return s.String()
12190}
12191
12192// SetEffectiveSettings sets the EffectiveSettings field's value.
12193func (s *ListAccountSettingsInput) SetEffectiveSettings(v bool) *ListAccountSettingsInput {
12194	s.EffectiveSettings = &v
12195	return s
12196}
12197
12198// SetMaxResults sets the MaxResults field's value.
12199func (s *ListAccountSettingsInput) SetMaxResults(v int64) *ListAccountSettingsInput {
12200	s.MaxResults = &v
12201	return s
12202}
12203
12204// SetName sets the Name field's value.
12205func (s *ListAccountSettingsInput) SetName(v string) *ListAccountSettingsInput {
12206	s.Name = &v
12207	return s
12208}
12209
12210// SetNextToken sets the NextToken field's value.
12211func (s *ListAccountSettingsInput) SetNextToken(v string) *ListAccountSettingsInput {
12212	s.NextToken = &v
12213	return s
12214}
12215
12216// SetPrincipalArn sets the PrincipalArn field's value.
12217func (s *ListAccountSettingsInput) SetPrincipalArn(v string) *ListAccountSettingsInput {
12218	s.PrincipalArn = &v
12219	return s
12220}
12221
12222// SetValue sets the Value field's value.
12223func (s *ListAccountSettingsInput) SetValue(v string) *ListAccountSettingsInput {
12224	s.Value = &v
12225	return s
12226}
12227
12228type ListAccountSettingsOutput struct {
12229	_ struct{} `type:"structure"`
12230
12231	// The nextToken value to include in a future ListAccountSettings request. When
12232	// the results of a ListAccountSettings request exceed maxResults, this value
12233	// can be used to retrieve the next page of results. This value is null when
12234	// there are no more results to return.
12235	NextToken *string `locationName:"nextToken" type:"string"`
12236
12237	// The account settings for the resource.
12238	Settings []*Setting `locationName:"settings" type:"list"`
12239}
12240
12241// String returns the string representation
12242func (s ListAccountSettingsOutput) String() string {
12243	return awsutil.Prettify(s)
12244}
12245
12246// GoString returns the string representation
12247func (s ListAccountSettingsOutput) GoString() string {
12248	return s.String()
12249}
12250
12251// SetNextToken sets the NextToken field's value.
12252func (s *ListAccountSettingsOutput) SetNextToken(v string) *ListAccountSettingsOutput {
12253	s.NextToken = &v
12254	return s
12255}
12256
12257// SetSettings sets the Settings field's value.
12258func (s *ListAccountSettingsOutput) SetSettings(v []*Setting) *ListAccountSettingsOutput {
12259	s.Settings = v
12260	return s
12261}
12262
12263type ListAttributesInput struct {
12264	_ struct{} `type:"structure"`
12265
12266	// The name of the attribute with which to filter the results.
12267	AttributeName *string `locationName:"attributeName" type:"string"`
12268
12269	// The value of the attribute with which to filter results. You must also specify
12270	// an attribute name to use this parameter.
12271	AttributeValue *string `locationName:"attributeValue" type:"string"`
12272
12273	// The short name or full Amazon Resource Name (ARN) of the cluster to list
12274	// attributes. If you do not specify a cluster, the default cluster is assumed.
12275	Cluster *string `locationName:"cluster" type:"string"`
12276
12277	// The maximum number of cluster results returned by ListAttributes in paginated
12278	// output. When this parameter is used, ListAttributes only returns maxResults
12279	// results in a single page along with a nextToken response element. The remaining
12280	// results of the initial request can be seen by sending another ListAttributes
12281	// request with the returned nextToken value. This value can be between 1 and
12282	// 100. If this parameter is not used, then ListAttributes returns up to 100
12283	// results and a nextToken value if applicable.
12284	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12285
12286	// The nextToken value returned from a ListAttributes request indicating that
12287	// more results are available to fulfill the request and further calls will
12288	// be needed. If maxResults was provided, it is possible the number of results
12289	// to be fewer than maxResults.
12290	//
12291	// This token should be treated as an opaque identifier that is only used to
12292	// retrieve the next items in a list and not for other programmatic purposes.
12293	NextToken *string `locationName:"nextToken" type:"string"`
12294
12295	// The type of the target with which to list attributes.
12296	//
12297	// TargetType is a required field
12298	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"TargetType"`
12299}
12300
12301// String returns the string representation
12302func (s ListAttributesInput) String() string {
12303	return awsutil.Prettify(s)
12304}
12305
12306// GoString returns the string representation
12307func (s ListAttributesInput) GoString() string {
12308	return s.String()
12309}
12310
12311// Validate inspects the fields of the type to determine if they are valid.
12312func (s *ListAttributesInput) Validate() error {
12313	invalidParams := request.ErrInvalidParams{Context: "ListAttributesInput"}
12314	if s.TargetType == nil {
12315		invalidParams.Add(request.NewErrParamRequired("TargetType"))
12316	}
12317
12318	if invalidParams.Len() > 0 {
12319		return invalidParams
12320	}
12321	return nil
12322}
12323
12324// SetAttributeName sets the AttributeName field's value.
12325func (s *ListAttributesInput) SetAttributeName(v string) *ListAttributesInput {
12326	s.AttributeName = &v
12327	return s
12328}
12329
12330// SetAttributeValue sets the AttributeValue field's value.
12331func (s *ListAttributesInput) SetAttributeValue(v string) *ListAttributesInput {
12332	s.AttributeValue = &v
12333	return s
12334}
12335
12336// SetCluster sets the Cluster field's value.
12337func (s *ListAttributesInput) SetCluster(v string) *ListAttributesInput {
12338	s.Cluster = &v
12339	return s
12340}
12341
12342// SetMaxResults sets the MaxResults field's value.
12343func (s *ListAttributesInput) SetMaxResults(v int64) *ListAttributesInput {
12344	s.MaxResults = &v
12345	return s
12346}
12347
12348// SetNextToken sets the NextToken field's value.
12349func (s *ListAttributesInput) SetNextToken(v string) *ListAttributesInput {
12350	s.NextToken = &v
12351	return s
12352}
12353
12354// SetTargetType sets the TargetType field's value.
12355func (s *ListAttributesInput) SetTargetType(v string) *ListAttributesInput {
12356	s.TargetType = &v
12357	return s
12358}
12359
12360type ListAttributesOutput struct {
12361	_ struct{} `type:"structure"`
12362
12363	// A list of attribute objects that meet the criteria of the request.
12364	Attributes []*Attribute `locationName:"attributes" type:"list"`
12365
12366	// The nextToken value to include in a future ListAttributes request. When the
12367	// results of a ListAttributes request exceed maxResults, this value can be
12368	// used to retrieve the next page of results. This value is null when there
12369	// are no more results to return.
12370	NextToken *string `locationName:"nextToken" type:"string"`
12371}
12372
12373// String returns the string representation
12374func (s ListAttributesOutput) String() string {
12375	return awsutil.Prettify(s)
12376}
12377
12378// GoString returns the string representation
12379func (s ListAttributesOutput) GoString() string {
12380	return s.String()
12381}
12382
12383// SetAttributes sets the Attributes field's value.
12384func (s *ListAttributesOutput) SetAttributes(v []*Attribute) *ListAttributesOutput {
12385	s.Attributes = v
12386	return s
12387}
12388
12389// SetNextToken sets the NextToken field's value.
12390func (s *ListAttributesOutput) SetNextToken(v string) *ListAttributesOutput {
12391	s.NextToken = &v
12392	return s
12393}
12394
12395type ListClustersInput struct {
12396	_ struct{} `type:"structure"`
12397
12398	// The maximum number of cluster results returned by ListClusters in paginated
12399	// output. When this parameter is used, ListClusters only returns maxResults
12400	// results in a single page along with a nextToken response element. The remaining
12401	// results of the initial request can be seen by sending another ListClusters
12402	// request with the returned nextToken value. This value can be between 1 and
12403	// 100. If this parameter is not used, then ListClusters returns up to 100 results
12404	// and a nextToken value if applicable.
12405	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12406
12407	// The nextToken value returned from a ListClusters request indicating that
12408	// more results are available to fulfill the request and further calls will
12409	// be needed. If maxResults was provided, it is possible the number of results
12410	// to be fewer than maxResults.
12411	//
12412	// This token should be treated as an opaque identifier that is only used to
12413	// retrieve the next items in a list and not for other programmatic purposes.
12414	NextToken *string `locationName:"nextToken" type:"string"`
12415}
12416
12417// String returns the string representation
12418func (s ListClustersInput) String() string {
12419	return awsutil.Prettify(s)
12420}
12421
12422// GoString returns the string representation
12423func (s ListClustersInput) GoString() string {
12424	return s.String()
12425}
12426
12427// SetMaxResults sets the MaxResults field's value.
12428func (s *ListClustersInput) SetMaxResults(v int64) *ListClustersInput {
12429	s.MaxResults = &v
12430	return s
12431}
12432
12433// SetNextToken sets the NextToken field's value.
12434func (s *ListClustersInput) SetNextToken(v string) *ListClustersInput {
12435	s.NextToken = &v
12436	return s
12437}
12438
12439type ListClustersOutput struct {
12440	_ struct{} `type:"structure"`
12441
12442	// The list of full Amazon Resource Name (ARN) entries for each cluster associated
12443	// with your account.
12444	ClusterArns []*string `locationName:"clusterArns" type:"list"`
12445
12446	// The nextToken value to include in a future ListClusters request. When the
12447	// results of a ListClusters request exceed maxResults, this value can be used
12448	// to retrieve the next page of results. This value is null when there are no
12449	// more results to return.
12450	NextToken *string `locationName:"nextToken" type:"string"`
12451}
12452
12453// String returns the string representation
12454func (s ListClustersOutput) String() string {
12455	return awsutil.Prettify(s)
12456}
12457
12458// GoString returns the string representation
12459func (s ListClustersOutput) GoString() string {
12460	return s.String()
12461}
12462
12463// SetClusterArns sets the ClusterArns field's value.
12464func (s *ListClustersOutput) SetClusterArns(v []*string) *ListClustersOutput {
12465	s.ClusterArns = v
12466	return s
12467}
12468
12469// SetNextToken sets the NextToken field's value.
12470func (s *ListClustersOutput) SetNextToken(v string) *ListClustersOutput {
12471	s.NextToken = &v
12472	return s
12473}
12474
12475type ListContainerInstancesInput struct {
12476	_ struct{} `type:"structure"`
12477
12478	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
12479	// the container instances to list. If you do not specify a cluster, the default
12480	// cluster is assumed.
12481	Cluster *string `locationName:"cluster" type:"string"`
12482
12483	// You can filter the results of a ListContainerInstances operation with cluster
12484	// query language statements. For more information, see Cluster Query Language
12485	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
12486	// in the Amazon Elastic Container Service Developer Guide.
12487	Filter *string `locationName:"filter" type:"string"`
12488
12489	// The maximum number of container instance results returned by ListContainerInstances
12490	// in paginated output. When this parameter is used, ListContainerInstances
12491	// only returns maxResults results in a single page along with a nextToken response
12492	// element. The remaining results of the initial request can be seen by sending
12493	// another ListContainerInstances request with the returned nextToken value.
12494	// This value can be between 1 and 100. If this parameter is not used, then
12495	// ListContainerInstances returns up to 100 results and a nextToken value if
12496	// applicable.
12497	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12498
12499	// The nextToken value returned from a ListContainerInstances request indicating
12500	// that more results are available to fulfill the request and further calls
12501	// will be needed. If maxResults was provided, it is possible the number of
12502	// results to be fewer than maxResults.
12503	//
12504	// This token should be treated as an opaque identifier that is only used to
12505	// retrieve the next items in a list and not for other programmatic purposes.
12506	NextToken *string `locationName:"nextToken" type:"string"`
12507
12508	// Filters the container instances by status. For example, if you specify the
12509	// DRAINING status, the results include only container instances that have been
12510	// set to DRAINING using UpdateContainerInstancesState. If you do not specify
12511	// this parameter, the default is to include container instances set to all
12512	// states other than INACTIVE.
12513	Status *string `locationName:"status" type:"string" enum:"ContainerInstanceStatus"`
12514}
12515
12516// String returns the string representation
12517func (s ListContainerInstancesInput) String() string {
12518	return awsutil.Prettify(s)
12519}
12520
12521// GoString returns the string representation
12522func (s ListContainerInstancesInput) GoString() string {
12523	return s.String()
12524}
12525
12526// SetCluster sets the Cluster field's value.
12527func (s *ListContainerInstancesInput) SetCluster(v string) *ListContainerInstancesInput {
12528	s.Cluster = &v
12529	return s
12530}
12531
12532// SetFilter sets the Filter field's value.
12533func (s *ListContainerInstancesInput) SetFilter(v string) *ListContainerInstancesInput {
12534	s.Filter = &v
12535	return s
12536}
12537
12538// SetMaxResults sets the MaxResults field's value.
12539func (s *ListContainerInstancesInput) SetMaxResults(v int64) *ListContainerInstancesInput {
12540	s.MaxResults = &v
12541	return s
12542}
12543
12544// SetNextToken sets the NextToken field's value.
12545func (s *ListContainerInstancesInput) SetNextToken(v string) *ListContainerInstancesInput {
12546	s.NextToken = &v
12547	return s
12548}
12549
12550// SetStatus sets the Status field's value.
12551func (s *ListContainerInstancesInput) SetStatus(v string) *ListContainerInstancesInput {
12552	s.Status = &v
12553	return s
12554}
12555
12556type ListContainerInstancesOutput struct {
12557	_ struct{} `type:"structure"`
12558
12559	// The list of container instances with full ARN entries for each container
12560	// instance associated with the specified cluster.
12561	ContainerInstanceArns []*string `locationName:"containerInstanceArns" type:"list"`
12562
12563	// The nextToken value to include in a future ListContainerInstances request.
12564	// When the results of a ListContainerInstances request exceed maxResults, this
12565	// value can be used to retrieve the next page of results. This value is null
12566	// when there are no more results to return.
12567	NextToken *string `locationName:"nextToken" type:"string"`
12568}
12569
12570// String returns the string representation
12571func (s ListContainerInstancesOutput) String() string {
12572	return awsutil.Prettify(s)
12573}
12574
12575// GoString returns the string representation
12576func (s ListContainerInstancesOutput) GoString() string {
12577	return s.String()
12578}
12579
12580// SetContainerInstanceArns sets the ContainerInstanceArns field's value.
12581func (s *ListContainerInstancesOutput) SetContainerInstanceArns(v []*string) *ListContainerInstancesOutput {
12582	s.ContainerInstanceArns = v
12583	return s
12584}
12585
12586// SetNextToken sets the NextToken field's value.
12587func (s *ListContainerInstancesOutput) SetNextToken(v string) *ListContainerInstancesOutput {
12588	s.NextToken = &v
12589	return s
12590}
12591
12592type ListServicesInput struct {
12593	_ struct{} `type:"structure"`
12594
12595	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
12596	// the services to list. If you do not specify a cluster, the default cluster
12597	// is assumed.
12598	Cluster *string `locationName:"cluster" type:"string"`
12599
12600	// The launch type for the services to list.
12601	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
12602
12603	// The maximum number of service results returned by ListServices in paginated
12604	// output. When this parameter is used, ListServices only returns maxResults
12605	// results in a single page along with a nextToken response element. The remaining
12606	// results of the initial request can be seen by sending another ListServices
12607	// request with the returned nextToken value. This value can be between 1 and
12608	// 100. If this parameter is not used, then ListServices returns up to 10 results
12609	// and a nextToken value if applicable.
12610	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12611
12612	// The nextToken value returned from a ListServices request indicating that
12613	// more results are available to fulfill the request and further calls will
12614	// be needed. If maxResults was provided, it is possible the number of results
12615	// to be fewer than maxResults.
12616	//
12617	// This token should be treated as an opaque identifier that is only used to
12618	// retrieve the next items in a list and not for other programmatic purposes.
12619	NextToken *string `locationName:"nextToken" type:"string"`
12620
12621	// The scheduling strategy for services to list.
12622	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
12623}
12624
12625// String returns the string representation
12626func (s ListServicesInput) String() string {
12627	return awsutil.Prettify(s)
12628}
12629
12630// GoString returns the string representation
12631func (s ListServicesInput) GoString() string {
12632	return s.String()
12633}
12634
12635// SetCluster sets the Cluster field's value.
12636func (s *ListServicesInput) SetCluster(v string) *ListServicesInput {
12637	s.Cluster = &v
12638	return s
12639}
12640
12641// SetLaunchType sets the LaunchType field's value.
12642func (s *ListServicesInput) SetLaunchType(v string) *ListServicesInput {
12643	s.LaunchType = &v
12644	return s
12645}
12646
12647// SetMaxResults sets the MaxResults field's value.
12648func (s *ListServicesInput) SetMaxResults(v int64) *ListServicesInput {
12649	s.MaxResults = &v
12650	return s
12651}
12652
12653// SetNextToken sets the NextToken field's value.
12654func (s *ListServicesInput) SetNextToken(v string) *ListServicesInput {
12655	s.NextToken = &v
12656	return s
12657}
12658
12659// SetSchedulingStrategy sets the SchedulingStrategy field's value.
12660func (s *ListServicesInput) SetSchedulingStrategy(v string) *ListServicesInput {
12661	s.SchedulingStrategy = &v
12662	return s
12663}
12664
12665type ListServicesOutput struct {
12666	_ struct{} `type:"structure"`
12667
12668	// The nextToken value to include in a future ListServices request. When the
12669	// results of a ListServices request exceed maxResults, this value can be used
12670	// to retrieve the next page of results. This value is null when there are no
12671	// more results to return.
12672	NextToken *string `locationName:"nextToken" type:"string"`
12673
12674	// The list of full ARN entries for each service associated with the specified
12675	// cluster.
12676	ServiceArns []*string `locationName:"serviceArns" type:"list"`
12677}
12678
12679// String returns the string representation
12680func (s ListServicesOutput) String() string {
12681	return awsutil.Prettify(s)
12682}
12683
12684// GoString returns the string representation
12685func (s ListServicesOutput) GoString() string {
12686	return s.String()
12687}
12688
12689// SetNextToken sets the NextToken field's value.
12690func (s *ListServicesOutput) SetNextToken(v string) *ListServicesOutput {
12691	s.NextToken = &v
12692	return s
12693}
12694
12695// SetServiceArns sets the ServiceArns field's value.
12696func (s *ListServicesOutput) SetServiceArns(v []*string) *ListServicesOutput {
12697	s.ServiceArns = v
12698	return s
12699}
12700
12701type ListTagsForResourceInput struct {
12702	_ struct{} `type:"structure"`
12703
12704	// The Amazon Resource Name (ARN) that identifies the resource for which to
12705	// list the tags. Currently, the supported resources are Amazon ECS tasks, services,
12706	// task definitions, clusters, and container instances.
12707	//
12708	// ResourceArn is a required field
12709	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
12710}
12711
12712// String returns the string representation
12713func (s ListTagsForResourceInput) String() string {
12714	return awsutil.Prettify(s)
12715}
12716
12717// GoString returns the string representation
12718func (s ListTagsForResourceInput) GoString() string {
12719	return s.String()
12720}
12721
12722// Validate inspects the fields of the type to determine if they are valid.
12723func (s *ListTagsForResourceInput) Validate() error {
12724	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
12725	if s.ResourceArn == nil {
12726		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
12727	}
12728
12729	if invalidParams.Len() > 0 {
12730		return invalidParams
12731	}
12732	return nil
12733}
12734
12735// SetResourceArn sets the ResourceArn field's value.
12736func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
12737	s.ResourceArn = &v
12738	return s
12739}
12740
12741type ListTagsForResourceOutput struct {
12742	_ struct{} `type:"structure"`
12743
12744	// The tags for the resource.
12745	Tags []*Tag `locationName:"tags" type:"list"`
12746}
12747
12748// String returns the string representation
12749func (s ListTagsForResourceOutput) String() string {
12750	return awsutil.Prettify(s)
12751}
12752
12753// GoString returns the string representation
12754func (s ListTagsForResourceOutput) GoString() string {
12755	return s.String()
12756}
12757
12758// SetTags sets the Tags field's value.
12759func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
12760	s.Tags = v
12761	return s
12762}
12763
12764type ListTaskDefinitionFamiliesInput struct {
12765	_ struct{} `type:"structure"`
12766
12767	// The familyPrefix is a string that is used to filter the results of ListTaskDefinitionFamilies.
12768	// If you specify a familyPrefix, only task definition family names that begin
12769	// with the familyPrefix string are returned.
12770	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
12771
12772	// The maximum number of task definition family results returned by ListTaskDefinitionFamilies
12773	// in paginated output. When this parameter is used, ListTaskDefinitions only
12774	// returns maxResults results in a single page along with a nextToken response
12775	// element. The remaining results of the initial request can be seen by sending
12776	// another ListTaskDefinitionFamilies request with the returned nextToken value.
12777	// This value can be between 1 and 100. If this parameter is not used, then
12778	// ListTaskDefinitionFamilies returns up to 100 results and a nextToken value
12779	// if applicable.
12780	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12781
12782	// The nextToken value returned from a ListTaskDefinitionFamilies request indicating
12783	// that more results are available to fulfill the request and further calls
12784	// will be needed. If maxResults was provided, it is possible the number of
12785	// results to be fewer than maxResults.
12786	//
12787	// This token should be treated as an opaque identifier that is only used to
12788	// retrieve the next items in a list and not for other programmatic purposes.
12789	NextToken *string `locationName:"nextToken" type:"string"`
12790
12791	// The task definition family status with which to filter the ListTaskDefinitionFamilies
12792	// results. By default, both ACTIVE and INACTIVE task definition families are
12793	// listed. If this parameter is set to ACTIVE, only task definition families
12794	// that have an ACTIVE task definition revision are returned. If this parameter
12795	// is set to INACTIVE, only task definition families that do not have any ACTIVE
12796	// task definition revisions are returned. If you paginate the resulting output,
12797	// be sure to keep the status value constant in each subsequent request.
12798	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionFamilyStatus"`
12799}
12800
12801// String returns the string representation
12802func (s ListTaskDefinitionFamiliesInput) String() string {
12803	return awsutil.Prettify(s)
12804}
12805
12806// GoString returns the string representation
12807func (s ListTaskDefinitionFamiliesInput) GoString() string {
12808	return s.String()
12809}
12810
12811// SetFamilyPrefix sets the FamilyPrefix field's value.
12812func (s *ListTaskDefinitionFamiliesInput) SetFamilyPrefix(v string) *ListTaskDefinitionFamiliesInput {
12813	s.FamilyPrefix = &v
12814	return s
12815}
12816
12817// SetMaxResults sets the MaxResults field's value.
12818func (s *ListTaskDefinitionFamiliesInput) SetMaxResults(v int64) *ListTaskDefinitionFamiliesInput {
12819	s.MaxResults = &v
12820	return s
12821}
12822
12823// SetNextToken sets the NextToken field's value.
12824func (s *ListTaskDefinitionFamiliesInput) SetNextToken(v string) *ListTaskDefinitionFamiliesInput {
12825	s.NextToken = &v
12826	return s
12827}
12828
12829// SetStatus sets the Status field's value.
12830func (s *ListTaskDefinitionFamiliesInput) SetStatus(v string) *ListTaskDefinitionFamiliesInput {
12831	s.Status = &v
12832	return s
12833}
12834
12835type ListTaskDefinitionFamiliesOutput struct {
12836	_ struct{} `type:"structure"`
12837
12838	// The list of task definition family names that match the ListTaskDefinitionFamilies
12839	// request.
12840	Families []*string `locationName:"families" type:"list"`
12841
12842	// The nextToken value to include in a future ListTaskDefinitionFamilies request.
12843	// When the results of a ListTaskDefinitionFamilies request exceed maxResults,
12844	// this value can be used to retrieve the next page of results. This value is
12845	// null when there are no more results to return.
12846	NextToken *string `locationName:"nextToken" type:"string"`
12847}
12848
12849// String returns the string representation
12850func (s ListTaskDefinitionFamiliesOutput) String() string {
12851	return awsutil.Prettify(s)
12852}
12853
12854// GoString returns the string representation
12855func (s ListTaskDefinitionFamiliesOutput) GoString() string {
12856	return s.String()
12857}
12858
12859// SetFamilies sets the Families field's value.
12860func (s *ListTaskDefinitionFamiliesOutput) SetFamilies(v []*string) *ListTaskDefinitionFamiliesOutput {
12861	s.Families = v
12862	return s
12863}
12864
12865// SetNextToken sets the NextToken field's value.
12866func (s *ListTaskDefinitionFamiliesOutput) SetNextToken(v string) *ListTaskDefinitionFamiliesOutput {
12867	s.NextToken = &v
12868	return s
12869}
12870
12871type ListTaskDefinitionsInput struct {
12872	_ struct{} `type:"structure"`
12873
12874	// The full family name with which to filter the ListTaskDefinitions results.
12875	// Specifying a familyPrefix limits the listed task definitions to task definition
12876	// revisions that belong to that family.
12877	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
12878
12879	// The maximum number of task definition results returned by ListTaskDefinitions
12880	// in paginated output. When this parameter is used, ListTaskDefinitions only
12881	// returns maxResults results in a single page along with a nextToken response
12882	// element. The remaining results of the initial request can be seen by sending
12883	// another ListTaskDefinitions request with the returned nextToken value. This
12884	// value can be between 1 and 100. If this parameter is not used, then ListTaskDefinitions
12885	// returns up to 100 results and a nextToken value if applicable.
12886	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12887
12888	// The nextToken value returned from a ListTaskDefinitions request indicating
12889	// that more results are available to fulfill the request and further calls
12890	// will be needed. If maxResults was provided, it is possible the number of
12891	// results to be fewer than maxResults.
12892	//
12893	// This token should be treated as an opaque identifier that is only used to
12894	// retrieve the next items in a list and not for other programmatic purposes.
12895	NextToken *string `locationName:"nextToken" type:"string"`
12896
12897	// The order in which to sort the results. Valid values are ASC and DESC. By
12898	// default (ASC), task definitions are listed lexicographically by family name
12899	// and in ascending numerical order by revision so that the newest task definitions
12900	// in a family are listed last. Setting this parameter to DESC reverses the
12901	// sort order on family name and revision so that the newest task definitions
12902	// in a family are listed first.
12903	Sort *string `locationName:"sort" type:"string" enum:"SortOrder"`
12904
12905	// The task definition status with which to filter the ListTaskDefinitions results.
12906	// By default, only ACTIVE task definitions are listed. By setting this parameter
12907	// to INACTIVE, you can view task definitions that are INACTIVE as long as an
12908	// active task or service still references them. If you paginate the resulting
12909	// output, be sure to keep the status value constant in each subsequent request.
12910	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
12911}
12912
12913// String returns the string representation
12914func (s ListTaskDefinitionsInput) String() string {
12915	return awsutil.Prettify(s)
12916}
12917
12918// GoString returns the string representation
12919func (s ListTaskDefinitionsInput) GoString() string {
12920	return s.String()
12921}
12922
12923// SetFamilyPrefix sets the FamilyPrefix field's value.
12924func (s *ListTaskDefinitionsInput) SetFamilyPrefix(v string) *ListTaskDefinitionsInput {
12925	s.FamilyPrefix = &v
12926	return s
12927}
12928
12929// SetMaxResults sets the MaxResults field's value.
12930func (s *ListTaskDefinitionsInput) SetMaxResults(v int64) *ListTaskDefinitionsInput {
12931	s.MaxResults = &v
12932	return s
12933}
12934
12935// SetNextToken sets the NextToken field's value.
12936func (s *ListTaskDefinitionsInput) SetNextToken(v string) *ListTaskDefinitionsInput {
12937	s.NextToken = &v
12938	return s
12939}
12940
12941// SetSort sets the Sort field's value.
12942func (s *ListTaskDefinitionsInput) SetSort(v string) *ListTaskDefinitionsInput {
12943	s.Sort = &v
12944	return s
12945}
12946
12947// SetStatus sets the Status field's value.
12948func (s *ListTaskDefinitionsInput) SetStatus(v string) *ListTaskDefinitionsInput {
12949	s.Status = &v
12950	return s
12951}
12952
12953type ListTaskDefinitionsOutput struct {
12954	_ struct{} `type:"structure"`
12955
12956	// The nextToken value to include in a future ListTaskDefinitions request. When
12957	// the results of a ListTaskDefinitions request exceed maxResults, this value
12958	// can be used to retrieve the next page of results. This value is null when
12959	// there are no more results to return.
12960	NextToken *string `locationName:"nextToken" type:"string"`
12961
12962	// The list of task definition Amazon Resource Name (ARN) entries for the ListTaskDefinitions
12963	// request.
12964	TaskDefinitionArns []*string `locationName:"taskDefinitionArns" type:"list"`
12965}
12966
12967// String returns the string representation
12968func (s ListTaskDefinitionsOutput) String() string {
12969	return awsutil.Prettify(s)
12970}
12971
12972// GoString returns the string representation
12973func (s ListTaskDefinitionsOutput) GoString() string {
12974	return s.String()
12975}
12976
12977// SetNextToken sets the NextToken field's value.
12978func (s *ListTaskDefinitionsOutput) SetNextToken(v string) *ListTaskDefinitionsOutput {
12979	s.NextToken = &v
12980	return s
12981}
12982
12983// SetTaskDefinitionArns sets the TaskDefinitionArns field's value.
12984func (s *ListTaskDefinitionsOutput) SetTaskDefinitionArns(v []*string) *ListTaskDefinitionsOutput {
12985	s.TaskDefinitionArns = v
12986	return s
12987}
12988
12989type ListTasksInput struct {
12990	_ struct{} `type:"structure"`
12991
12992	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
12993	// the tasks to list. If you do not specify a cluster, the default cluster is
12994	// assumed.
12995	Cluster *string `locationName:"cluster" type:"string"`
12996
12997	// The container instance ID or full ARN of the container instance with which
12998	// to filter the ListTasks results. Specifying a containerInstance limits the
12999	// results to tasks that belong to that container instance.
13000	ContainerInstance *string `locationName:"containerInstance" type:"string"`
13001
13002	// The task desired status with which to filter the ListTasks results. Specifying
13003	// a desiredStatus of STOPPED limits the results to tasks that Amazon ECS has
13004	// set the desired status to STOPPED. This can be useful for debugging tasks
13005	// that are not starting properly or have died or finished. The default status
13006	// filter is RUNNING, which shows tasks that Amazon ECS has set the desired
13007	// status to RUNNING.
13008	//
13009	// Although you can filter results based on a desired status of PENDING, this
13010	// does not return any results. Amazon ECS never sets the desired status of
13011	// a task to that value (only a task's lastStatus may have a value of PENDING).
13012	DesiredStatus *string `locationName:"desiredStatus" type:"string" enum:"DesiredStatus"`
13013
13014	// The name of the family with which to filter the ListTasks results. Specifying
13015	// a family limits the results to tasks that belong to that family.
13016	Family *string `locationName:"family" type:"string"`
13017
13018	// The launch type for services to list.
13019	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
13020
13021	// The maximum number of task results returned by ListTasks in paginated output.
13022	// When this parameter is used, ListTasks only returns maxResults results in
13023	// a single page along with a nextToken response element. The remaining results
13024	// of the initial request can be seen by sending another ListTasks request with
13025	// the returned nextToken value. This value can be between 1 and 100. If this
13026	// parameter is not used, then ListTasks returns up to 100 results and a nextToken
13027	// value if applicable.
13028	MaxResults *int64 `locationName:"maxResults" type:"integer"`
13029
13030	// The nextToken value returned from a ListTasks request indicating that more
13031	// results are available to fulfill the request and further calls will be needed.
13032	// If maxResults was provided, it is possible the number of results to be fewer
13033	// than maxResults.
13034	//
13035	// This token should be treated as an opaque identifier that is only used to
13036	// retrieve the next items in a list and not for other programmatic purposes.
13037	NextToken *string `locationName:"nextToken" type:"string"`
13038
13039	// The name of the service with which to filter the ListTasks results. Specifying
13040	// a serviceName limits the results to tasks that belong to that service.
13041	ServiceName *string `locationName:"serviceName" type:"string"`
13042
13043	// The startedBy value with which to filter the task results. Specifying a startedBy
13044	// value limits the results to tasks that were started with that value.
13045	StartedBy *string `locationName:"startedBy" type:"string"`
13046}
13047
13048// String returns the string representation
13049func (s ListTasksInput) String() string {
13050	return awsutil.Prettify(s)
13051}
13052
13053// GoString returns the string representation
13054func (s ListTasksInput) GoString() string {
13055	return s.String()
13056}
13057
13058// SetCluster sets the Cluster field's value.
13059func (s *ListTasksInput) SetCluster(v string) *ListTasksInput {
13060	s.Cluster = &v
13061	return s
13062}
13063
13064// SetContainerInstance sets the ContainerInstance field's value.
13065func (s *ListTasksInput) SetContainerInstance(v string) *ListTasksInput {
13066	s.ContainerInstance = &v
13067	return s
13068}
13069
13070// SetDesiredStatus sets the DesiredStatus field's value.
13071func (s *ListTasksInput) SetDesiredStatus(v string) *ListTasksInput {
13072	s.DesiredStatus = &v
13073	return s
13074}
13075
13076// SetFamily sets the Family field's value.
13077func (s *ListTasksInput) SetFamily(v string) *ListTasksInput {
13078	s.Family = &v
13079	return s
13080}
13081
13082// SetLaunchType sets the LaunchType field's value.
13083func (s *ListTasksInput) SetLaunchType(v string) *ListTasksInput {
13084	s.LaunchType = &v
13085	return s
13086}
13087
13088// SetMaxResults sets the MaxResults field's value.
13089func (s *ListTasksInput) SetMaxResults(v int64) *ListTasksInput {
13090	s.MaxResults = &v
13091	return s
13092}
13093
13094// SetNextToken sets the NextToken field's value.
13095func (s *ListTasksInput) SetNextToken(v string) *ListTasksInput {
13096	s.NextToken = &v
13097	return s
13098}
13099
13100// SetServiceName sets the ServiceName field's value.
13101func (s *ListTasksInput) SetServiceName(v string) *ListTasksInput {
13102	s.ServiceName = &v
13103	return s
13104}
13105
13106// SetStartedBy sets the StartedBy field's value.
13107func (s *ListTasksInput) SetStartedBy(v string) *ListTasksInput {
13108	s.StartedBy = &v
13109	return s
13110}
13111
13112type ListTasksOutput struct {
13113	_ struct{} `type:"structure"`
13114
13115	// The nextToken value to include in a future ListTasks request. When the results
13116	// of a ListTasks request exceed maxResults, this value can be used to retrieve
13117	// the next page of results. This value is null when there are no more results
13118	// to return.
13119	NextToken *string `locationName:"nextToken" type:"string"`
13120
13121	// The list of task ARN entries for the ListTasks request.
13122	TaskArns []*string `locationName:"taskArns" type:"list"`
13123}
13124
13125// String returns the string representation
13126func (s ListTasksOutput) String() string {
13127	return awsutil.Prettify(s)
13128}
13129
13130// GoString returns the string representation
13131func (s ListTasksOutput) GoString() string {
13132	return s.String()
13133}
13134
13135// SetNextToken sets the NextToken field's value.
13136func (s *ListTasksOutput) SetNextToken(v string) *ListTasksOutput {
13137	s.NextToken = &v
13138	return s
13139}
13140
13141// SetTaskArns sets the TaskArns field's value.
13142func (s *ListTasksOutput) SetTaskArns(v []*string) *ListTasksOutput {
13143	s.TaskArns = v
13144	return s
13145}
13146
13147// The load balancer configuration to use with a service or task set.
13148//
13149// For specific notes and restrictions regarding the use of load balancers with
13150// services and task sets, see the CreateService and CreateTaskSet actions.
13151type LoadBalancer struct {
13152	_ struct{} `type:"structure"`
13153
13154	// The name of the container (as it appears in a container definition) to associate
13155	// with the load balancer.
13156	ContainerName *string `locationName:"containerName" type:"string"`
13157
13158	// The port on the container to associate with the load balancer. This port
13159	// must correspond to a containerPort in the task definition the tasks in the
13160	// service are using. For tasks that use the EC2 launch type, the container
13161	// instance they are launched on must allow ingress traffic on the hostPort
13162	// of the port mapping.
13163	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
13164
13165	// The name of the load balancer to associate with the Amazon ECS service or
13166	// task set.
13167	//
13168	// A load balancer name is only specified when using a Classic Load Balancer.
13169	// If you are using an Application Load Balancer or a Network Load Balancer
13170	// the load balancer name parameter should be omitted.
13171	LoadBalancerName *string `locationName:"loadBalancerName" type:"string"`
13172
13173	// The full Amazon Resource Name (ARN) of the Elastic Load Balancing target
13174	// group or groups associated with a service or task set.
13175	//
13176	// A target group ARN is only specified when using an Application Load Balancer
13177	// or Network Load Balancer. If you are using a Classic Load Balancer the target
13178	// group ARN should be omitted.
13179	//
13180	// For services using the ECS deployment controller, you can specify one or
13181	// multiple target groups. For more information, see Registering Multiple Target
13182	// Groups with a Service (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html)
13183	// in the Amazon Elastic Container Service Developer Guide.
13184	//
13185	// For services using the CODE_DEPLOY deployment controller, you are required
13186	// to define two target groups for the load balancer. For more information,
13187	// see Blue/Green Deployment with CodeDeploy (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html)
13188	// in the Amazon Elastic Container Service Developer Guide.
13189	//
13190	// If your service's task definition uses the awsvpc network mode (which is
13191	// required for the Fargate launch type), you must choose ip as the target type,
13192	// not instance, when creating your target groups because tasks that use the
13193	// awsvpc network mode are associated with an elastic network interface, not
13194	// an Amazon EC2 instance.
13195	TargetGroupArn *string `locationName:"targetGroupArn" type:"string"`
13196}
13197
13198// String returns the string representation
13199func (s LoadBalancer) String() string {
13200	return awsutil.Prettify(s)
13201}
13202
13203// GoString returns the string representation
13204func (s LoadBalancer) GoString() string {
13205	return s.String()
13206}
13207
13208// SetContainerName sets the ContainerName field's value.
13209func (s *LoadBalancer) SetContainerName(v string) *LoadBalancer {
13210	s.ContainerName = &v
13211	return s
13212}
13213
13214// SetContainerPort sets the ContainerPort field's value.
13215func (s *LoadBalancer) SetContainerPort(v int64) *LoadBalancer {
13216	s.ContainerPort = &v
13217	return s
13218}
13219
13220// SetLoadBalancerName sets the LoadBalancerName field's value.
13221func (s *LoadBalancer) SetLoadBalancerName(v string) *LoadBalancer {
13222	s.LoadBalancerName = &v
13223	return s
13224}
13225
13226// SetTargetGroupArn sets the TargetGroupArn field's value.
13227func (s *LoadBalancer) SetTargetGroupArn(v string) *LoadBalancer {
13228	s.TargetGroupArn = &v
13229	return s
13230}
13231
13232// The log configuration specification for the container.
13233//
13234// This parameter maps to LogConfig in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
13235// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
13236// and the --log-driver option to docker run (https://docs.docker.com/engine/reference/commandline/run/).
13237// By default, containers use the same logging driver that the Docker daemon
13238// uses; however the container may use a different logging driver than the Docker
13239// daemon by specifying a log driver with this parameter in the container definition.
13240// To use a different logging driver for a container, the log system must be
13241// configured properly on the container instance (or on a different log server
13242// for remote logging options). For more information on the options for different
13243// supported log drivers, see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
13244// in the Docker documentation.
13245//
13246// The following should be noted when specifying a log configuration for your
13247// containers:
13248//
13249//    * Amazon ECS currently supports a subset of the logging drivers available
13250//    to the Docker daemon (shown in the valid values below). Additional log
13251//    drivers may be available in future releases of the Amazon ECS container
13252//    agent.
13253//
13254//    * This parameter requires version 1.18 of the Docker Remote API or greater
13255//    on your container instance.
13256//
13257//    * For tasks using the EC2 launch type, the Amazon ECS container agent
13258//    running on a container instance must register the logging drivers available
13259//    on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable
13260//    before containers placed on that instance can use these log configuration
13261//    options. For more information, see Amazon ECS Container Agent Configuration
13262//    (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
13263//    in the Amazon Elastic Container Service Developer Guide.
13264//
13265//    * For tasks using the Fargate launch type, because you do not have access
13266//    to the underlying infrastructure your tasks are hosted on, any additional
13267//    software needed will have to be installed outside of the task. For example,
13268//    the Fluentd output aggregators or a remote host running Logstash to send
13269//    Gelf logs to.
13270type LogConfiguration struct {
13271	_ struct{} `type:"structure"`
13272
13273	// The log driver to use for the container. The valid values listed earlier
13274	// are log drivers that the Amazon ECS container agent can communicate with
13275	// by default.
13276	//
13277	// For tasks using the Fargate launch type, the supported log drivers are awslogs,
13278	// splunk, and awsfirelens.
13279	//
13280	// For tasks using the EC2 launch type, the supported log drivers are awslogs,
13281	// fluentd, gelf, json-file, journald, logentries,syslog, splunk, and awsfirelens.
13282	//
13283	// For more information about using the awslogs log driver, see Using the awslogs
13284	// Log Driver (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html)
13285	// in the Amazon Elastic Container Service Developer Guide.
13286	//
13287	// For more information about using the awsfirelens log driver, see Custom Log
13288	// Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
13289	// in the Amazon Elastic Container Service Developer Guide.
13290	//
13291	// If you have a custom driver that is not listed, you can fork the Amazon ECS
13292	// container agent project that is available on GitHub (https://github.com/aws/amazon-ecs-agent)
13293	// and customize it to work with that driver. We encourage you to submit pull
13294	// requests for changes that you would like to have included. However, we do
13295	// not currently provide support for running modified copies of this software.
13296	//
13297	// LogDriver is a required field
13298	LogDriver *string `locationName:"logDriver" type:"string" required:"true" enum:"LogDriver"`
13299
13300	// The configuration options to send to the log driver. This parameter requires
13301	// version 1.19 of the Docker Remote API or greater on your container instance.
13302	// To check the Docker Remote API version on your container instance, log in
13303	// to your container instance and run the following command: sudo docker version
13304	// --format '{{.Server.APIVersion}}'
13305	Options map[string]*string `locationName:"options" type:"map"`
13306
13307	// The secrets to pass to the log configuration. For more information, see Specifying
13308	// Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
13309	// in the Amazon Elastic Container Service Developer Guide.
13310	SecretOptions []*Secret `locationName:"secretOptions" type:"list"`
13311}
13312
13313// String returns the string representation
13314func (s LogConfiguration) String() string {
13315	return awsutil.Prettify(s)
13316}
13317
13318// GoString returns the string representation
13319func (s LogConfiguration) GoString() string {
13320	return s.String()
13321}
13322
13323// Validate inspects the fields of the type to determine if they are valid.
13324func (s *LogConfiguration) Validate() error {
13325	invalidParams := request.ErrInvalidParams{Context: "LogConfiguration"}
13326	if s.LogDriver == nil {
13327		invalidParams.Add(request.NewErrParamRequired("LogDriver"))
13328	}
13329	if s.SecretOptions != nil {
13330		for i, v := range s.SecretOptions {
13331			if v == nil {
13332				continue
13333			}
13334			if err := v.Validate(); err != nil {
13335				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecretOptions", i), err.(request.ErrInvalidParams))
13336			}
13337		}
13338	}
13339
13340	if invalidParams.Len() > 0 {
13341		return invalidParams
13342	}
13343	return nil
13344}
13345
13346// SetLogDriver sets the LogDriver field's value.
13347func (s *LogConfiguration) SetLogDriver(v string) *LogConfiguration {
13348	s.LogDriver = &v
13349	return s
13350}
13351
13352// SetOptions sets the Options field's value.
13353func (s *LogConfiguration) SetOptions(v map[string]*string) *LogConfiguration {
13354	s.Options = v
13355	return s
13356}
13357
13358// SetSecretOptions sets the SecretOptions field's value.
13359func (s *LogConfiguration) SetSecretOptions(v []*Secret) *LogConfiguration {
13360	s.SecretOptions = v
13361	return s
13362}
13363
13364// The managed scaling settings for the Auto Scaling group capacity provider.
13365//
13366// When managed scaling is enabled, Amazon ECS manages the scale-in and scale-out
13367// actions of the Auto Scaling group. Amazon ECS manages a target tracking scaling
13368// policy using an Amazon ECS-managed CloudWatch metric with the specified targetCapacity
13369// value as the target value for the metric. For more information, see Using
13370// Managed Scaling (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/asg-capacity-providers.html#asg-capacity-providers-managed-scaling)
13371// in the Amazon Elastic Container Service Developer Guide.
13372//
13373// If managed scaling is disabled, the user must manage the scaling of the Auto
13374// Scaling group.
13375type ManagedScaling struct {
13376	_ struct{} `type:"structure"`
13377
13378	// The maximum number of container instances that Amazon ECS will scale in or
13379	// scale out at one time. If this parameter is omitted, the default value of
13380	// 10000 is used.
13381	MaximumScalingStepSize *int64 `locationName:"maximumScalingStepSize" min:"1" type:"integer"`
13382
13383	// The minimum number of container instances that Amazon ECS will scale in or
13384	// scale out at one time. If this parameter is omitted, the default value of
13385	// 1 is used.
13386	MinimumScalingStepSize *int64 `locationName:"minimumScalingStepSize" min:"1" type:"integer"`
13387
13388	// Whether or not to enable managed scaling for the capacity provider.
13389	Status *string `locationName:"status" type:"string" enum:"ManagedScalingStatus"`
13390
13391	// The target capacity value for the capacity provider. The specified value
13392	// must be greater than 0 and less than or equal to 100. A value of 100 will
13393	// result in the Amazon EC2 instances in your Auto Scaling group being completely
13394	// utilized.
13395	TargetCapacity *int64 `locationName:"targetCapacity" min:"1" type:"integer"`
13396}
13397
13398// String returns the string representation
13399func (s ManagedScaling) String() string {
13400	return awsutil.Prettify(s)
13401}
13402
13403// GoString returns the string representation
13404func (s ManagedScaling) GoString() string {
13405	return s.String()
13406}
13407
13408// Validate inspects the fields of the type to determine if they are valid.
13409func (s *ManagedScaling) Validate() error {
13410	invalidParams := request.ErrInvalidParams{Context: "ManagedScaling"}
13411	if s.MaximumScalingStepSize != nil && *s.MaximumScalingStepSize < 1 {
13412		invalidParams.Add(request.NewErrParamMinValue("MaximumScalingStepSize", 1))
13413	}
13414	if s.MinimumScalingStepSize != nil && *s.MinimumScalingStepSize < 1 {
13415		invalidParams.Add(request.NewErrParamMinValue("MinimumScalingStepSize", 1))
13416	}
13417	if s.TargetCapacity != nil && *s.TargetCapacity < 1 {
13418		invalidParams.Add(request.NewErrParamMinValue("TargetCapacity", 1))
13419	}
13420
13421	if invalidParams.Len() > 0 {
13422		return invalidParams
13423	}
13424	return nil
13425}
13426
13427// SetMaximumScalingStepSize sets the MaximumScalingStepSize field's value.
13428func (s *ManagedScaling) SetMaximumScalingStepSize(v int64) *ManagedScaling {
13429	s.MaximumScalingStepSize = &v
13430	return s
13431}
13432
13433// SetMinimumScalingStepSize sets the MinimumScalingStepSize field's value.
13434func (s *ManagedScaling) SetMinimumScalingStepSize(v int64) *ManagedScaling {
13435	s.MinimumScalingStepSize = &v
13436	return s
13437}
13438
13439// SetStatus sets the Status field's value.
13440func (s *ManagedScaling) SetStatus(v string) *ManagedScaling {
13441	s.Status = &v
13442	return s
13443}
13444
13445// SetTargetCapacity sets the TargetCapacity field's value.
13446func (s *ManagedScaling) SetTargetCapacity(v int64) *ManagedScaling {
13447	s.TargetCapacity = &v
13448	return s
13449}
13450
13451// Amazon ECS is unable to determine the current version of the Amazon ECS container
13452// agent on the container instance and does not have enough information to proceed
13453// with an update. This could be because the agent running on the container
13454// instance is an older or custom version that does not use our version information.
13455type MissingVersionException struct {
13456	_            struct{}                  `type:"structure"`
13457	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13458
13459	Message_ *string `locationName:"message" type:"string"`
13460}
13461
13462// String returns the string representation
13463func (s MissingVersionException) String() string {
13464	return awsutil.Prettify(s)
13465}
13466
13467// GoString returns the string representation
13468func (s MissingVersionException) GoString() string {
13469	return s.String()
13470}
13471
13472func newErrorMissingVersionException(v protocol.ResponseMetadata) error {
13473	return &MissingVersionException{
13474		RespMetadata: v,
13475	}
13476}
13477
13478// Code returns the exception type name.
13479func (s *MissingVersionException) Code() string {
13480	return "MissingVersionException"
13481}
13482
13483// Message returns the exception's message.
13484func (s *MissingVersionException) Message() string {
13485	if s.Message_ != nil {
13486		return *s.Message_
13487	}
13488	return ""
13489}
13490
13491// OrigErr always returns nil, satisfies awserr.Error interface.
13492func (s *MissingVersionException) OrigErr() error {
13493	return nil
13494}
13495
13496func (s *MissingVersionException) Error() string {
13497	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
13498}
13499
13500// Status code returns the HTTP status code for the request's response error.
13501func (s *MissingVersionException) StatusCode() int {
13502	return s.RespMetadata.StatusCode
13503}
13504
13505// RequestID returns the service's response RequestID for request.
13506func (s *MissingVersionException) RequestID() string {
13507	return s.RespMetadata.RequestID
13508}
13509
13510// Details on a volume mount point that is used in a container definition.
13511type MountPoint struct {
13512	_ struct{} `type:"structure"`
13513
13514	// The path on the container to mount the host volume at.
13515	ContainerPath *string `locationName:"containerPath" type:"string"`
13516
13517	// If this value is true, the container has read-only access to the volume.
13518	// If this value is false, then the container can write to the volume. The default
13519	// value is false.
13520	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
13521
13522	// The name of the volume to mount. Must be a volume name referenced in the
13523	// name parameter of task definition volume.
13524	SourceVolume *string `locationName:"sourceVolume" type:"string"`
13525}
13526
13527// String returns the string representation
13528func (s MountPoint) String() string {
13529	return awsutil.Prettify(s)
13530}
13531
13532// GoString returns the string representation
13533func (s MountPoint) GoString() string {
13534	return s.String()
13535}
13536
13537// SetContainerPath sets the ContainerPath field's value.
13538func (s *MountPoint) SetContainerPath(v string) *MountPoint {
13539	s.ContainerPath = &v
13540	return s
13541}
13542
13543// SetReadOnly sets the ReadOnly field's value.
13544func (s *MountPoint) SetReadOnly(v bool) *MountPoint {
13545	s.ReadOnly = &v
13546	return s
13547}
13548
13549// SetSourceVolume sets the SourceVolume field's value.
13550func (s *MountPoint) SetSourceVolume(v string) *MountPoint {
13551	s.SourceVolume = &v
13552	return s
13553}
13554
13555// Details on the network bindings between a container and its host container
13556// instance. After a task reaches the RUNNING status, manual and automatic host
13557// and container port assignments are visible in the networkBindings section
13558// of DescribeTasks API responses.
13559type NetworkBinding struct {
13560	_ struct{} `type:"structure"`
13561
13562	// The IP address that the container is bound to on the container instance.
13563	BindIP *string `locationName:"bindIP" type:"string"`
13564
13565	// The port number on the container that is used with the network binding.
13566	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
13567
13568	// The port number on the host that is used with the network binding.
13569	HostPort *int64 `locationName:"hostPort" type:"integer"`
13570
13571	// The protocol used for the network binding.
13572	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
13573}
13574
13575// String returns the string representation
13576func (s NetworkBinding) String() string {
13577	return awsutil.Prettify(s)
13578}
13579
13580// GoString returns the string representation
13581func (s NetworkBinding) GoString() string {
13582	return s.String()
13583}
13584
13585// SetBindIP sets the BindIP field's value.
13586func (s *NetworkBinding) SetBindIP(v string) *NetworkBinding {
13587	s.BindIP = &v
13588	return s
13589}
13590
13591// SetContainerPort sets the ContainerPort field's value.
13592func (s *NetworkBinding) SetContainerPort(v int64) *NetworkBinding {
13593	s.ContainerPort = &v
13594	return s
13595}
13596
13597// SetHostPort sets the HostPort field's value.
13598func (s *NetworkBinding) SetHostPort(v int64) *NetworkBinding {
13599	s.HostPort = &v
13600	return s
13601}
13602
13603// SetProtocol sets the Protocol field's value.
13604func (s *NetworkBinding) SetProtocol(v string) *NetworkBinding {
13605	s.Protocol = &v
13606	return s
13607}
13608
13609// An object representing the network configuration for a task or service.
13610type NetworkConfiguration struct {
13611	_ struct{} `type:"structure"`
13612
13613	// The VPC subnets and security groups associated with a task.
13614	//
13615	// All specified subnets and security groups must be from the same VPC.
13616	AwsvpcConfiguration *AwsVpcConfiguration `locationName:"awsvpcConfiguration" type:"structure"`
13617}
13618
13619// String returns the string representation
13620func (s NetworkConfiguration) String() string {
13621	return awsutil.Prettify(s)
13622}
13623
13624// GoString returns the string representation
13625func (s NetworkConfiguration) GoString() string {
13626	return s.String()
13627}
13628
13629// Validate inspects the fields of the type to determine if they are valid.
13630func (s *NetworkConfiguration) Validate() error {
13631	invalidParams := request.ErrInvalidParams{Context: "NetworkConfiguration"}
13632	if s.AwsvpcConfiguration != nil {
13633		if err := s.AwsvpcConfiguration.Validate(); err != nil {
13634			invalidParams.AddNested("AwsvpcConfiguration", err.(request.ErrInvalidParams))
13635		}
13636	}
13637
13638	if invalidParams.Len() > 0 {
13639		return invalidParams
13640	}
13641	return nil
13642}
13643
13644// SetAwsvpcConfiguration sets the AwsvpcConfiguration field's value.
13645func (s *NetworkConfiguration) SetAwsvpcConfiguration(v *AwsVpcConfiguration) *NetworkConfiguration {
13646	s.AwsvpcConfiguration = v
13647	return s
13648}
13649
13650// An object representing the elastic network interface for tasks that use the
13651// awsvpc network mode.
13652type NetworkInterface struct {
13653	_ struct{} `type:"structure"`
13654
13655	// The attachment ID for the network interface.
13656	AttachmentId *string `locationName:"attachmentId" type:"string"`
13657
13658	// The private IPv6 address for the network interface.
13659	Ipv6Address *string `locationName:"ipv6Address" type:"string"`
13660
13661	// The private IPv4 address for the network interface.
13662	PrivateIpv4Address *string `locationName:"privateIpv4Address" type:"string"`
13663}
13664
13665// String returns the string representation
13666func (s NetworkInterface) String() string {
13667	return awsutil.Prettify(s)
13668}
13669
13670// GoString returns the string representation
13671func (s NetworkInterface) GoString() string {
13672	return s.String()
13673}
13674
13675// SetAttachmentId sets the AttachmentId field's value.
13676func (s *NetworkInterface) SetAttachmentId(v string) *NetworkInterface {
13677	s.AttachmentId = &v
13678	return s
13679}
13680
13681// SetIpv6Address sets the Ipv6Address field's value.
13682func (s *NetworkInterface) SetIpv6Address(v string) *NetworkInterface {
13683	s.Ipv6Address = &v
13684	return s
13685}
13686
13687// SetPrivateIpv4Address sets the PrivateIpv4Address field's value.
13688func (s *NetworkInterface) SetPrivateIpv4Address(v string) *NetworkInterface {
13689	s.PrivateIpv4Address = &v
13690	return s
13691}
13692
13693// There is no update available for this Amazon ECS container agent. This could
13694// be because the agent is already running the latest version, or it is so old
13695// that there is no update path to the current version.
13696type NoUpdateAvailableException struct {
13697	_            struct{}                  `type:"structure"`
13698	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13699
13700	Message_ *string `locationName:"message" type:"string"`
13701}
13702
13703// String returns the string representation
13704func (s NoUpdateAvailableException) String() string {
13705	return awsutil.Prettify(s)
13706}
13707
13708// GoString returns the string representation
13709func (s NoUpdateAvailableException) GoString() string {
13710	return s.String()
13711}
13712
13713func newErrorNoUpdateAvailableException(v protocol.ResponseMetadata) error {
13714	return &NoUpdateAvailableException{
13715		RespMetadata: v,
13716	}
13717}
13718
13719// Code returns the exception type name.
13720func (s *NoUpdateAvailableException) Code() string {
13721	return "NoUpdateAvailableException"
13722}
13723
13724// Message returns the exception's message.
13725func (s *NoUpdateAvailableException) Message() string {
13726	if s.Message_ != nil {
13727		return *s.Message_
13728	}
13729	return ""
13730}
13731
13732// OrigErr always returns nil, satisfies awserr.Error interface.
13733func (s *NoUpdateAvailableException) OrigErr() error {
13734	return nil
13735}
13736
13737func (s *NoUpdateAvailableException) Error() string {
13738	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
13739}
13740
13741// Status code returns the HTTP status code for the request's response error.
13742func (s *NoUpdateAvailableException) StatusCode() int {
13743	return s.RespMetadata.StatusCode
13744}
13745
13746// RequestID returns the service's response RequestID for request.
13747func (s *NoUpdateAvailableException) RequestID() string {
13748	return s.RespMetadata.RequestID
13749}
13750
13751// An object representing a constraint on task placement. For more information,
13752// see Task Placement Constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
13753// in the Amazon Elastic Container Service Developer Guide.
13754//
13755// If you are using the Fargate launch type, task placement constraints are
13756// not supported.
13757type PlacementConstraint struct {
13758	_ struct{} `type:"structure"`
13759
13760	// A cluster query language expression to apply to the constraint. You cannot
13761	// specify an expression if the constraint type is distinctInstance. For more
13762	// information, see Cluster Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
13763	// in the Amazon Elastic Container Service Developer Guide.
13764	Expression *string `locationName:"expression" type:"string"`
13765
13766	// The type of constraint. Use distinctInstance to ensure that each task in
13767	// a particular group is running on a different container instance. Use memberOf
13768	// to restrict the selection to a group of valid candidates.
13769	Type *string `locationName:"type" type:"string" enum:"PlacementConstraintType"`
13770}
13771
13772// String returns the string representation
13773func (s PlacementConstraint) String() string {
13774	return awsutil.Prettify(s)
13775}
13776
13777// GoString returns the string representation
13778func (s PlacementConstraint) GoString() string {
13779	return s.String()
13780}
13781
13782// SetExpression sets the Expression field's value.
13783func (s *PlacementConstraint) SetExpression(v string) *PlacementConstraint {
13784	s.Expression = &v
13785	return s
13786}
13787
13788// SetType sets the Type field's value.
13789func (s *PlacementConstraint) SetType(v string) *PlacementConstraint {
13790	s.Type = &v
13791	return s
13792}
13793
13794// The task placement strategy for a task or service. For more information,
13795// see Task Placement Strategies (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html)
13796// in the Amazon Elastic Container Service Developer Guide.
13797type PlacementStrategy struct {
13798	_ struct{} `type:"structure"`
13799
13800	// The field to apply the placement strategy against. For the spread placement
13801	// strategy, valid values are instanceId (or host, which has the same effect),
13802	// or any platform or custom attribute that is applied to a container instance,
13803	// such as attribute:ecs.availability-zone. For the binpack placement strategy,
13804	// valid values are cpu and memory. For the random placement strategy, this
13805	// field is not used.
13806	Field *string `locationName:"field" type:"string"`
13807
13808	// The type of placement strategy. The random placement strategy randomly places
13809	// tasks on available candidates. The spread placement strategy spreads placement
13810	// across available candidates evenly based on the field parameter. The binpack
13811	// strategy places tasks on available candidates that have the least available
13812	// amount of the resource that is specified with the field parameter. For example,
13813	// if you binpack on memory, a task is placed on the instance with the least
13814	// amount of remaining memory (but still enough to run the task).
13815	Type *string `locationName:"type" type:"string" enum:"PlacementStrategyType"`
13816}
13817
13818// String returns the string representation
13819func (s PlacementStrategy) String() string {
13820	return awsutil.Prettify(s)
13821}
13822
13823// GoString returns the string representation
13824func (s PlacementStrategy) GoString() string {
13825	return s.String()
13826}
13827
13828// SetField sets the Field field's value.
13829func (s *PlacementStrategy) SetField(v string) *PlacementStrategy {
13830	s.Field = &v
13831	return s
13832}
13833
13834// SetType sets the Type field's value.
13835func (s *PlacementStrategy) SetType(v string) *PlacementStrategy {
13836	s.Type = &v
13837	return s
13838}
13839
13840// The devices that are available on the container instance. The only supported
13841// device type is a GPU.
13842type PlatformDevice struct {
13843	_ struct{} `type:"structure"`
13844
13845	// The ID for the GPU(s) on the container instance. The available GPU IDs can
13846	// also be obtained on the container instance in the /var/lib/ecs/gpu/nvidia_gpu_info.json
13847	// file.
13848	//
13849	// Id is a required field
13850	Id *string `locationName:"id" type:"string" required:"true"`
13851
13852	// The type of device that is available on the container instance. The only
13853	// supported value is GPU.
13854	//
13855	// Type is a required field
13856	Type *string `locationName:"type" type:"string" required:"true" enum:"PlatformDeviceType"`
13857}
13858
13859// String returns the string representation
13860func (s PlatformDevice) String() string {
13861	return awsutil.Prettify(s)
13862}
13863
13864// GoString returns the string representation
13865func (s PlatformDevice) GoString() string {
13866	return s.String()
13867}
13868
13869// Validate inspects the fields of the type to determine if they are valid.
13870func (s *PlatformDevice) Validate() error {
13871	invalidParams := request.ErrInvalidParams{Context: "PlatformDevice"}
13872	if s.Id == nil {
13873		invalidParams.Add(request.NewErrParamRequired("Id"))
13874	}
13875	if s.Type == nil {
13876		invalidParams.Add(request.NewErrParamRequired("Type"))
13877	}
13878
13879	if invalidParams.Len() > 0 {
13880		return invalidParams
13881	}
13882	return nil
13883}
13884
13885// SetId sets the Id field's value.
13886func (s *PlatformDevice) SetId(v string) *PlatformDevice {
13887	s.Id = &v
13888	return s
13889}
13890
13891// SetType sets the Type field's value.
13892func (s *PlatformDevice) SetType(v string) *PlatformDevice {
13893	s.Type = &v
13894	return s
13895}
13896
13897// The specified platform version does not satisfy the task definition's required
13898// capabilities.
13899type PlatformTaskDefinitionIncompatibilityException struct {
13900	_            struct{}                  `type:"structure"`
13901	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13902
13903	Message_ *string `locationName:"message" type:"string"`
13904}
13905
13906// String returns the string representation
13907func (s PlatformTaskDefinitionIncompatibilityException) String() string {
13908	return awsutil.Prettify(s)
13909}
13910
13911// GoString returns the string representation
13912func (s PlatformTaskDefinitionIncompatibilityException) GoString() string {
13913	return s.String()
13914}
13915
13916func newErrorPlatformTaskDefinitionIncompatibilityException(v protocol.ResponseMetadata) error {
13917	return &PlatformTaskDefinitionIncompatibilityException{
13918		RespMetadata: v,
13919	}
13920}
13921
13922// Code returns the exception type name.
13923func (s *PlatformTaskDefinitionIncompatibilityException) Code() string {
13924	return "PlatformTaskDefinitionIncompatibilityException"
13925}
13926
13927// Message returns the exception's message.
13928func (s *PlatformTaskDefinitionIncompatibilityException) Message() string {
13929	if s.Message_ != nil {
13930		return *s.Message_
13931	}
13932	return ""
13933}
13934
13935// OrigErr always returns nil, satisfies awserr.Error interface.
13936func (s *PlatformTaskDefinitionIncompatibilityException) OrigErr() error {
13937	return nil
13938}
13939
13940func (s *PlatformTaskDefinitionIncompatibilityException) Error() string {
13941	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
13942}
13943
13944// Status code returns the HTTP status code for the request's response error.
13945func (s *PlatformTaskDefinitionIncompatibilityException) StatusCode() int {
13946	return s.RespMetadata.StatusCode
13947}
13948
13949// RequestID returns the service's response RequestID for request.
13950func (s *PlatformTaskDefinitionIncompatibilityException) RequestID() string {
13951	return s.RespMetadata.RequestID
13952}
13953
13954// The specified platform version does not exist.
13955type PlatformUnknownException struct {
13956	_            struct{}                  `type:"structure"`
13957	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13958
13959	Message_ *string `locationName:"message" type:"string"`
13960}
13961
13962// String returns the string representation
13963func (s PlatformUnknownException) String() string {
13964	return awsutil.Prettify(s)
13965}
13966
13967// GoString returns the string representation
13968func (s PlatformUnknownException) GoString() string {
13969	return s.String()
13970}
13971
13972func newErrorPlatformUnknownException(v protocol.ResponseMetadata) error {
13973	return &PlatformUnknownException{
13974		RespMetadata: v,
13975	}
13976}
13977
13978// Code returns the exception type name.
13979func (s *PlatformUnknownException) Code() string {
13980	return "PlatformUnknownException"
13981}
13982
13983// Message returns the exception's message.
13984func (s *PlatformUnknownException) Message() string {
13985	if s.Message_ != nil {
13986		return *s.Message_
13987	}
13988	return ""
13989}
13990
13991// OrigErr always returns nil, satisfies awserr.Error interface.
13992func (s *PlatformUnknownException) OrigErr() error {
13993	return nil
13994}
13995
13996func (s *PlatformUnknownException) Error() string {
13997	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
13998}
13999
14000// Status code returns the HTTP status code for the request's response error.
14001func (s *PlatformUnknownException) StatusCode() int {
14002	return s.RespMetadata.StatusCode
14003}
14004
14005// RequestID returns the service's response RequestID for request.
14006func (s *PlatformUnknownException) RequestID() string {
14007	return s.RespMetadata.RequestID
14008}
14009
14010// Port mappings allow containers to access ports on the host container instance
14011// to send or receive traffic. Port mappings are specified as part of the container
14012// definition.
14013//
14014// If you are using containers in a task with the awsvpc or host network mode,
14015// exposed ports should be specified using containerPort. The hostPort can be
14016// left blank or it must be the same value as the containerPort.
14017//
14018// After a task reaches the RUNNING status, manual and automatic host and container
14019// port assignments are visible in the networkBindings section of DescribeTasks
14020// API responses.
14021type PortMapping struct {
14022	_ struct{} `type:"structure"`
14023
14024	// The port number on the container that is bound to the user-specified or automatically
14025	// assigned host port.
14026	//
14027	// If you are using containers in a task with the awsvpc or host network mode,
14028	// exposed ports should be specified using containerPort.
14029	//
14030	// If you are using containers in a task with the bridge network mode and you
14031	// specify a container port and not a host port, your container automatically
14032	// receives a host port in the ephemeral port range. For more information, see
14033	// hostPort. Port mappings that are automatically assigned in this way do not
14034	// count toward the 100 reserved ports limit of a container instance.
14035	//
14036	// You cannot expose the same container port for multiple protocols. An error
14037	// will be returned if this is attempted.
14038	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
14039
14040	// The port number on the container instance to reserve for your container.
14041	//
14042	// If you are using containers in a task with the awsvpc or host network mode,
14043	// the hostPort can either be left blank or set to the same value as the containerPort.
14044	//
14045	// If you are using containers in a task with the bridge network mode, you can
14046	// specify a non-reserved host port for your container port mapping, or you
14047	// can omit the hostPort (or set it to 0) while specifying a containerPort and
14048	// your container automatically receives a port in the ephemeral port range
14049	// for your container instance operating system and Docker version.
14050	//
14051	// The default ephemeral port range for Docker version 1.6.0 and later is listed
14052	// on the instance under /proc/sys/net/ipv4/ip_local_port_range. If this kernel
14053	// parameter is unavailable, the default ephemeral port range from 49153 through
14054	// 65535 is used. Do not attempt to specify a host port in the ephemeral port
14055	// range as these are reserved for automatic assignment. In general, ports below
14056	// 32768 are outside of the ephemeral port range.
14057	//
14058	// The default ephemeral port range from 49153 through 65535 is always used
14059	// for Docker versions before 1.6.0.
14060	//
14061	// The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376,
14062	// and the Amazon ECS container agent ports 51678-51680. Any host port that
14063	// was previously specified in a running task is also reserved while the task
14064	// is running (after a task stops, the host port is released). The current reserved
14065	// ports are displayed in the remainingResources of DescribeContainerInstances
14066	// output. A container instance can have up to 100 reserved ports at a time,
14067	// including the default reserved ports. Automatically assigned ports don't
14068	// count toward the 100 reserved ports limit.
14069	HostPort *int64 `locationName:"hostPort" type:"integer"`
14070
14071	// The protocol used for the port mapping. Valid values are tcp and udp. The
14072	// default is tcp.
14073	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
14074}
14075
14076// String returns the string representation
14077func (s PortMapping) String() string {
14078	return awsutil.Prettify(s)
14079}
14080
14081// GoString returns the string representation
14082func (s PortMapping) GoString() string {
14083	return s.String()
14084}
14085
14086// SetContainerPort sets the ContainerPort field's value.
14087func (s *PortMapping) SetContainerPort(v int64) *PortMapping {
14088	s.ContainerPort = &v
14089	return s
14090}
14091
14092// SetHostPort sets the HostPort field's value.
14093func (s *PortMapping) SetHostPort(v int64) *PortMapping {
14094	s.HostPort = &v
14095	return s
14096}
14097
14098// SetProtocol sets the Protocol field's value.
14099func (s *PortMapping) SetProtocol(v string) *PortMapping {
14100	s.Protocol = &v
14101	return s
14102}
14103
14104// The configuration details for the App Mesh proxy.
14105//
14106// For tasks using the EC2 launch type, the container instances require at least
14107// version 1.26.0 of the container agent and at least version 1.26.0-1 of the
14108// ecs-init package to enable a proxy configuration. If your container instances
14109// are launched from the Amazon ECS-optimized AMI version 20190301 or later,
14110// then they contain the required versions of the container agent and ecs-init.
14111// For more information, see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
14112// in the Amazon Elastic Container Service Developer Guide.
14113//
14114// For tasks using the Fargate launch type, the task or service requires platform
14115// version 1.3.0 or later.
14116type ProxyConfiguration struct {
14117	_ struct{} `type:"structure"`
14118
14119	// The name of the container that will serve as the App Mesh proxy.
14120	//
14121	// ContainerName is a required field
14122	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
14123
14124	// The set of network configuration parameters to provide the Container Network
14125	// Interface (CNI) plugin, specified as key-value pairs.
14126	//
14127	//    * IgnoredUID - (Required) The user ID (UID) of the proxy container as
14128	//    defined by the user parameter in a container definition. This is used
14129	//    to ensure the proxy ignores its own traffic. If IgnoredGID is specified,
14130	//    this field can be empty.
14131	//
14132	//    * IgnoredGID - (Required) The group ID (GID) of the proxy container as
14133	//    defined by the user parameter in a container definition. This is used
14134	//    to ensure the proxy ignores its own traffic. If IgnoredUID is specified,
14135	//    this field can be empty.
14136	//
14137	//    * AppPorts - (Required) The list of ports that the application uses. Network
14138	//    traffic to these ports is forwarded to the ProxyIngressPort and ProxyEgressPort.
14139	//
14140	//    * ProxyIngressPort - (Required) Specifies the port that incoming traffic
14141	//    to the AppPorts is directed to.
14142	//
14143	//    * ProxyEgressPort - (Required) Specifies the port that outgoing traffic
14144	//    from the AppPorts is directed to.
14145	//
14146	//    * EgressIgnoredPorts - (Required) The egress traffic going to the specified
14147	//    ports is ignored and not redirected to the ProxyEgressPort. It can be
14148	//    an empty list.
14149	//
14150	//    * EgressIgnoredIPs - (Required) The egress traffic going to the specified
14151	//    IP addresses is ignored and not redirected to the ProxyEgressPort. It
14152	//    can be an empty list.
14153	Properties []*KeyValuePair `locationName:"properties" type:"list"`
14154
14155	// The proxy type. The only supported value is APPMESH.
14156	Type *string `locationName:"type" type:"string" enum:"ProxyConfigurationType"`
14157}
14158
14159// String returns the string representation
14160func (s ProxyConfiguration) String() string {
14161	return awsutil.Prettify(s)
14162}
14163
14164// GoString returns the string representation
14165func (s ProxyConfiguration) GoString() string {
14166	return s.String()
14167}
14168
14169// Validate inspects the fields of the type to determine if they are valid.
14170func (s *ProxyConfiguration) Validate() error {
14171	invalidParams := request.ErrInvalidParams{Context: "ProxyConfiguration"}
14172	if s.ContainerName == nil {
14173		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
14174	}
14175
14176	if invalidParams.Len() > 0 {
14177		return invalidParams
14178	}
14179	return nil
14180}
14181
14182// SetContainerName sets the ContainerName field's value.
14183func (s *ProxyConfiguration) SetContainerName(v string) *ProxyConfiguration {
14184	s.ContainerName = &v
14185	return s
14186}
14187
14188// SetProperties sets the Properties field's value.
14189func (s *ProxyConfiguration) SetProperties(v []*KeyValuePair) *ProxyConfiguration {
14190	s.Properties = v
14191	return s
14192}
14193
14194// SetType sets the Type field's value.
14195func (s *ProxyConfiguration) SetType(v string) *ProxyConfiguration {
14196	s.Type = &v
14197	return s
14198}
14199
14200type PutAccountSettingDefaultInput struct {
14201	_ struct{} `type:"structure"`
14202
14203	// The resource name for which to modify the account setting. If serviceLongArnFormat
14204	// is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat
14205	// is specified, the ARN and resource ID for your Amazon ECS tasks is affected.
14206	// If containerInstanceLongArnFormat is specified, the ARN and resource ID for
14207	// your Amazon ECS container instances is affected. If awsvpcTrunking is specified,
14208	// the ENI limit for your Amazon ECS container instances is affected. If containerInsights
14209	// is specified, the default setting for CloudWatch Container Insights for your
14210	// clusters is affected.
14211	//
14212	// Name is a required field
14213	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
14214
14215	// The account setting value for the specified principal ARN. Accepted values
14216	// are enabled and disabled.
14217	//
14218	// Value is a required field
14219	Value *string `locationName:"value" type:"string" required:"true"`
14220}
14221
14222// String returns the string representation
14223func (s PutAccountSettingDefaultInput) String() string {
14224	return awsutil.Prettify(s)
14225}
14226
14227// GoString returns the string representation
14228func (s PutAccountSettingDefaultInput) GoString() string {
14229	return s.String()
14230}
14231
14232// Validate inspects the fields of the type to determine if they are valid.
14233func (s *PutAccountSettingDefaultInput) Validate() error {
14234	invalidParams := request.ErrInvalidParams{Context: "PutAccountSettingDefaultInput"}
14235	if s.Name == nil {
14236		invalidParams.Add(request.NewErrParamRequired("Name"))
14237	}
14238	if s.Value == nil {
14239		invalidParams.Add(request.NewErrParamRequired("Value"))
14240	}
14241
14242	if invalidParams.Len() > 0 {
14243		return invalidParams
14244	}
14245	return nil
14246}
14247
14248// SetName sets the Name field's value.
14249func (s *PutAccountSettingDefaultInput) SetName(v string) *PutAccountSettingDefaultInput {
14250	s.Name = &v
14251	return s
14252}
14253
14254// SetValue sets the Value field's value.
14255func (s *PutAccountSettingDefaultInput) SetValue(v string) *PutAccountSettingDefaultInput {
14256	s.Value = &v
14257	return s
14258}
14259
14260type PutAccountSettingDefaultOutput struct {
14261	_ struct{} `type:"structure"`
14262
14263	// The current account setting for a resource.
14264	Setting *Setting `locationName:"setting" type:"structure"`
14265}
14266
14267// String returns the string representation
14268func (s PutAccountSettingDefaultOutput) String() string {
14269	return awsutil.Prettify(s)
14270}
14271
14272// GoString returns the string representation
14273func (s PutAccountSettingDefaultOutput) GoString() string {
14274	return s.String()
14275}
14276
14277// SetSetting sets the Setting field's value.
14278func (s *PutAccountSettingDefaultOutput) SetSetting(v *Setting) *PutAccountSettingDefaultOutput {
14279	s.Setting = v
14280	return s
14281}
14282
14283type PutAccountSettingInput struct {
14284	_ struct{} `type:"structure"`
14285
14286	// The Amazon ECS resource name for which to modify the account setting. If
14287	// serviceLongArnFormat is specified, the ARN for your Amazon ECS services is
14288	// affected. If taskLongArnFormat is specified, the ARN and resource ID for
14289	// your Amazon ECS tasks is affected. If containerInstanceLongArnFormat is specified,
14290	// the ARN and resource ID for your Amazon ECS container instances is affected.
14291	// If awsvpcTrunking is specified, the elastic network interface (ENI) limit
14292	// for your Amazon ECS container instances is affected. If containerInsights
14293	// is specified, the default setting for CloudWatch Container Insights for your
14294	// clusters is affected.
14295	//
14296	// Name is a required field
14297	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
14298
14299	// The ARN of the principal, which can be an IAM user, IAM role, or the root
14300	// user. If you specify the root user, it modifies the account setting for all
14301	// IAM users, IAM roles, and the root user of the account unless an IAM user
14302	// or role explicitly overrides these settings. If this field is omitted, the
14303	// setting is changed only for the authenticated user.
14304	PrincipalArn *string `locationName:"principalArn" type:"string"`
14305
14306	// The account setting value for the specified principal ARN. Accepted values
14307	// are enabled and disabled.
14308	//
14309	// Value is a required field
14310	Value *string `locationName:"value" type:"string" required:"true"`
14311}
14312
14313// String returns the string representation
14314func (s PutAccountSettingInput) String() string {
14315	return awsutil.Prettify(s)
14316}
14317
14318// GoString returns the string representation
14319func (s PutAccountSettingInput) GoString() string {
14320	return s.String()
14321}
14322
14323// Validate inspects the fields of the type to determine if they are valid.
14324func (s *PutAccountSettingInput) Validate() error {
14325	invalidParams := request.ErrInvalidParams{Context: "PutAccountSettingInput"}
14326	if s.Name == nil {
14327		invalidParams.Add(request.NewErrParamRequired("Name"))
14328	}
14329	if s.Value == nil {
14330		invalidParams.Add(request.NewErrParamRequired("Value"))
14331	}
14332
14333	if invalidParams.Len() > 0 {
14334		return invalidParams
14335	}
14336	return nil
14337}
14338
14339// SetName sets the Name field's value.
14340func (s *PutAccountSettingInput) SetName(v string) *PutAccountSettingInput {
14341	s.Name = &v
14342	return s
14343}
14344
14345// SetPrincipalArn sets the PrincipalArn field's value.
14346func (s *PutAccountSettingInput) SetPrincipalArn(v string) *PutAccountSettingInput {
14347	s.PrincipalArn = &v
14348	return s
14349}
14350
14351// SetValue sets the Value field's value.
14352func (s *PutAccountSettingInput) SetValue(v string) *PutAccountSettingInput {
14353	s.Value = &v
14354	return s
14355}
14356
14357type PutAccountSettingOutput struct {
14358	_ struct{} `type:"structure"`
14359
14360	// The current account setting for a resource.
14361	Setting *Setting `locationName:"setting" type:"structure"`
14362}
14363
14364// String returns the string representation
14365func (s PutAccountSettingOutput) String() string {
14366	return awsutil.Prettify(s)
14367}
14368
14369// GoString returns the string representation
14370func (s PutAccountSettingOutput) GoString() string {
14371	return s.String()
14372}
14373
14374// SetSetting sets the Setting field's value.
14375func (s *PutAccountSettingOutput) SetSetting(v *Setting) *PutAccountSettingOutput {
14376	s.Setting = v
14377	return s
14378}
14379
14380type PutAttributesInput struct {
14381	_ struct{} `type:"structure"`
14382
14383	// The attributes to apply to your resource. You can specify up to 10 custom
14384	// attributes per resource. You can specify up to 10 attributes in a single
14385	// call.
14386	//
14387	// Attributes is a required field
14388	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
14389
14390	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
14391	// the resource to apply attributes. If you do not specify a cluster, the default
14392	// cluster is assumed.
14393	Cluster *string `locationName:"cluster" type:"string"`
14394}
14395
14396// String returns the string representation
14397func (s PutAttributesInput) String() string {
14398	return awsutil.Prettify(s)
14399}
14400
14401// GoString returns the string representation
14402func (s PutAttributesInput) GoString() string {
14403	return s.String()
14404}
14405
14406// Validate inspects the fields of the type to determine if they are valid.
14407func (s *PutAttributesInput) Validate() error {
14408	invalidParams := request.ErrInvalidParams{Context: "PutAttributesInput"}
14409	if s.Attributes == nil {
14410		invalidParams.Add(request.NewErrParamRequired("Attributes"))
14411	}
14412	if s.Attributes != nil {
14413		for i, v := range s.Attributes {
14414			if v == nil {
14415				continue
14416			}
14417			if err := v.Validate(); err != nil {
14418				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
14419			}
14420		}
14421	}
14422
14423	if invalidParams.Len() > 0 {
14424		return invalidParams
14425	}
14426	return nil
14427}
14428
14429// SetAttributes sets the Attributes field's value.
14430func (s *PutAttributesInput) SetAttributes(v []*Attribute) *PutAttributesInput {
14431	s.Attributes = v
14432	return s
14433}
14434
14435// SetCluster sets the Cluster field's value.
14436func (s *PutAttributesInput) SetCluster(v string) *PutAttributesInput {
14437	s.Cluster = &v
14438	return s
14439}
14440
14441type PutAttributesOutput struct {
14442	_ struct{} `type:"structure"`
14443
14444	// The attributes applied to your resource.
14445	Attributes []*Attribute `locationName:"attributes" type:"list"`
14446}
14447
14448// String returns the string representation
14449func (s PutAttributesOutput) String() string {
14450	return awsutil.Prettify(s)
14451}
14452
14453// GoString returns the string representation
14454func (s PutAttributesOutput) GoString() string {
14455	return s.String()
14456}
14457
14458// SetAttributes sets the Attributes field's value.
14459func (s *PutAttributesOutput) SetAttributes(v []*Attribute) *PutAttributesOutput {
14460	s.Attributes = v
14461	return s
14462}
14463
14464type PutClusterCapacityProvidersInput struct {
14465	_ struct{} `type:"structure"`
14466
14467	// The name of one or more capacity providers to associate with the cluster.
14468	//
14469	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
14470	// provider must already be created. New capacity providers can be created with
14471	// the CreateCapacityProvider API operation.
14472	//
14473	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
14474	// capacity providers. The AWS Fargate capacity providers are available to all
14475	// accounts and only need to be associated with a cluster to be used.
14476	//
14477	// CapacityProviders is a required field
14478	CapacityProviders []*string `locationName:"capacityProviders" type:"list" required:"true"`
14479
14480	// The short name or full Amazon Resource Name (ARN) of the cluster to modify
14481	// the capacity provider settings for. If you do not specify a cluster, the
14482	// default cluster is assumed.
14483	//
14484	// Cluster is a required field
14485	Cluster *string `locationName:"cluster" type:"string" required:"true"`
14486
14487	// The capacity provider strategy to use by default for the cluster.
14488	//
14489	// When creating a service or running a task on a cluster, if no capacity provider
14490	// or launch type is specified then the default capacity provider strategy for
14491	// the cluster is used.
14492	//
14493	// A capacity provider strategy consists of one or more capacity providers along
14494	// with the base and weight to assign to them. A capacity provider must be associated
14495	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
14496	// API is used to associate a capacity provider with a cluster. Only capacity
14497	// providers with an ACTIVE or UPDATING status can be used.
14498	//
14499	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
14500	// provider must already be created. New capacity providers can be created with
14501	// the CreateCapacityProvider API operation.
14502	//
14503	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
14504	// capacity providers. The AWS Fargate capacity providers are available to all
14505	// accounts and only need to be associated with a cluster to be used.
14506	//
14507	// DefaultCapacityProviderStrategy is a required field
14508	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list" required:"true"`
14509}
14510
14511// String returns the string representation
14512func (s PutClusterCapacityProvidersInput) String() string {
14513	return awsutil.Prettify(s)
14514}
14515
14516// GoString returns the string representation
14517func (s PutClusterCapacityProvidersInput) GoString() string {
14518	return s.String()
14519}
14520
14521// Validate inspects the fields of the type to determine if they are valid.
14522func (s *PutClusterCapacityProvidersInput) Validate() error {
14523	invalidParams := request.ErrInvalidParams{Context: "PutClusterCapacityProvidersInput"}
14524	if s.CapacityProviders == nil {
14525		invalidParams.Add(request.NewErrParamRequired("CapacityProviders"))
14526	}
14527	if s.Cluster == nil {
14528		invalidParams.Add(request.NewErrParamRequired("Cluster"))
14529	}
14530	if s.DefaultCapacityProviderStrategy == nil {
14531		invalidParams.Add(request.NewErrParamRequired("DefaultCapacityProviderStrategy"))
14532	}
14533	if s.DefaultCapacityProviderStrategy != nil {
14534		for i, v := range s.DefaultCapacityProviderStrategy {
14535			if v == nil {
14536				continue
14537			}
14538			if err := v.Validate(); err != nil {
14539				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultCapacityProviderStrategy", i), err.(request.ErrInvalidParams))
14540			}
14541		}
14542	}
14543
14544	if invalidParams.Len() > 0 {
14545		return invalidParams
14546	}
14547	return nil
14548}
14549
14550// SetCapacityProviders sets the CapacityProviders field's value.
14551func (s *PutClusterCapacityProvidersInput) SetCapacityProviders(v []*string) *PutClusterCapacityProvidersInput {
14552	s.CapacityProviders = v
14553	return s
14554}
14555
14556// SetCluster sets the Cluster field's value.
14557func (s *PutClusterCapacityProvidersInput) SetCluster(v string) *PutClusterCapacityProvidersInput {
14558	s.Cluster = &v
14559	return s
14560}
14561
14562// SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
14563func (s *PutClusterCapacityProvidersInput) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *PutClusterCapacityProvidersInput {
14564	s.DefaultCapacityProviderStrategy = v
14565	return s
14566}
14567
14568type PutClusterCapacityProvidersOutput struct {
14569	_ struct{} `type:"structure"`
14570
14571	// A regional grouping of one or more container instances on which you can run
14572	// task requests. Each account receives a default cluster the first time you
14573	// use the Amazon ECS service, but you may also create other clusters. Clusters
14574	// may contain more than one instance type simultaneously.
14575	Cluster *Cluster `locationName:"cluster" type:"structure"`
14576}
14577
14578// String returns the string representation
14579func (s PutClusterCapacityProvidersOutput) String() string {
14580	return awsutil.Prettify(s)
14581}
14582
14583// GoString returns the string representation
14584func (s PutClusterCapacityProvidersOutput) GoString() string {
14585	return s.String()
14586}
14587
14588// SetCluster sets the Cluster field's value.
14589func (s *PutClusterCapacityProvidersOutput) SetCluster(v *Cluster) *PutClusterCapacityProvidersOutput {
14590	s.Cluster = v
14591	return s
14592}
14593
14594type RegisterContainerInstanceInput struct {
14595	_ struct{} `type:"structure"`
14596
14597	// The container instance attributes that this container instance supports.
14598	Attributes []*Attribute `locationName:"attributes" type:"list"`
14599
14600	// The short name or full Amazon Resource Name (ARN) of the cluster with which
14601	// to register your container instance. If you do not specify a cluster, the
14602	// default cluster is assumed.
14603	Cluster *string `locationName:"cluster" type:"string"`
14604
14605	// The ARN of the container instance (if it was previously registered).
14606	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
14607
14608	// The instance identity document for the EC2 instance to register. This document
14609	// can be found by running the following command from the instance: curl http://169.254.169.254/latest/dynamic/instance-identity/document/
14610	InstanceIdentityDocument *string `locationName:"instanceIdentityDocument" type:"string"`
14611
14612	// The instance identity document signature for the EC2 instance to register.
14613	// This signature can be found by running the following command from the instance:
14614	// curl http://169.254.169.254/latest/dynamic/instance-identity/signature/
14615	InstanceIdentityDocumentSignature *string `locationName:"instanceIdentityDocumentSignature" type:"string"`
14616
14617	// The devices that are available on the container instance. The only supported
14618	// device type is a GPU.
14619	PlatformDevices []*PlatformDevice `locationName:"platformDevices" type:"list"`
14620
14621	// The metadata that you apply to the container instance to help you categorize
14622	// and organize them. Each tag consists of a key and an optional value, both
14623	// of which you define.
14624	//
14625	// The following basic restrictions apply to tags:
14626	//
14627	//    * Maximum number of tags per resource - 50
14628	//
14629	//    * For each resource, each tag key must be unique, and each tag key can
14630	//    have only one value.
14631	//
14632	//    * Maximum key length - 128 Unicode characters in UTF-8
14633	//
14634	//    * Maximum value length - 256 Unicode characters in UTF-8
14635	//
14636	//    * If your tagging schema is used across multiple services and resources,
14637	//    remember that other services may have restrictions on allowed characters.
14638	//    Generally allowed characters are: letters, numbers, and spaces representable
14639	//    in UTF-8, and the following characters: + - = . _ : / @.
14640	//
14641	//    * Tag keys and values are case-sensitive.
14642	//
14643	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
14644	//    as a prefix for either keys or values as it is reserved for AWS use. You
14645	//    cannot edit or delete tag keys or values with this prefix. Tags with this
14646	//    prefix do not count against your tags per resource limit.
14647	Tags []*Tag `locationName:"tags" type:"list"`
14648
14649	// The resources available on the instance.
14650	TotalResources []*Resource `locationName:"totalResources" type:"list"`
14651
14652	// The version information for the Amazon ECS container agent and Docker daemon
14653	// running on the container instance.
14654	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
14655}
14656
14657// String returns the string representation
14658func (s RegisterContainerInstanceInput) String() string {
14659	return awsutil.Prettify(s)
14660}
14661
14662// GoString returns the string representation
14663func (s RegisterContainerInstanceInput) GoString() string {
14664	return s.String()
14665}
14666
14667// Validate inspects the fields of the type to determine if they are valid.
14668func (s *RegisterContainerInstanceInput) Validate() error {
14669	invalidParams := request.ErrInvalidParams{Context: "RegisterContainerInstanceInput"}
14670	if s.Attributes != nil {
14671		for i, v := range s.Attributes {
14672			if v == nil {
14673				continue
14674			}
14675			if err := v.Validate(); err != nil {
14676				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
14677			}
14678		}
14679	}
14680	if s.PlatformDevices != nil {
14681		for i, v := range s.PlatformDevices {
14682			if v == nil {
14683				continue
14684			}
14685			if err := v.Validate(); err != nil {
14686				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlatformDevices", i), err.(request.ErrInvalidParams))
14687			}
14688		}
14689	}
14690	if s.Tags != nil {
14691		for i, v := range s.Tags {
14692			if v == nil {
14693				continue
14694			}
14695			if err := v.Validate(); err != nil {
14696				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
14697			}
14698		}
14699	}
14700
14701	if invalidParams.Len() > 0 {
14702		return invalidParams
14703	}
14704	return nil
14705}
14706
14707// SetAttributes sets the Attributes field's value.
14708func (s *RegisterContainerInstanceInput) SetAttributes(v []*Attribute) *RegisterContainerInstanceInput {
14709	s.Attributes = v
14710	return s
14711}
14712
14713// SetCluster sets the Cluster field's value.
14714func (s *RegisterContainerInstanceInput) SetCluster(v string) *RegisterContainerInstanceInput {
14715	s.Cluster = &v
14716	return s
14717}
14718
14719// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
14720func (s *RegisterContainerInstanceInput) SetContainerInstanceArn(v string) *RegisterContainerInstanceInput {
14721	s.ContainerInstanceArn = &v
14722	return s
14723}
14724
14725// SetInstanceIdentityDocument sets the InstanceIdentityDocument field's value.
14726func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocument(v string) *RegisterContainerInstanceInput {
14727	s.InstanceIdentityDocument = &v
14728	return s
14729}
14730
14731// SetInstanceIdentityDocumentSignature sets the InstanceIdentityDocumentSignature field's value.
14732func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocumentSignature(v string) *RegisterContainerInstanceInput {
14733	s.InstanceIdentityDocumentSignature = &v
14734	return s
14735}
14736
14737// SetPlatformDevices sets the PlatformDevices field's value.
14738func (s *RegisterContainerInstanceInput) SetPlatformDevices(v []*PlatformDevice) *RegisterContainerInstanceInput {
14739	s.PlatformDevices = v
14740	return s
14741}
14742
14743// SetTags sets the Tags field's value.
14744func (s *RegisterContainerInstanceInput) SetTags(v []*Tag) *RegisterContainerInstanceInput {
14745	s.Tags = v
14746	return s
14747}
14748
14749// SetTotalResources sets the TotalResources field's value.
14750func (s *RegisterContainerInstanceInput) SetTotalResources(v []*Resource) *RegisterContainerInstanceInput {
14751	s.TotalResources = v
14752	return s
14753}
14754
14755// SetVersionInfo sets the VersionInfo field's value.
14756func (s *RegisterContainerInstanceInput) SetVersionInfo(v *VersionInfo) *RegisterContainerInstanceInput {
14757	s.VersionInfo = v
14758	return s
14759}
14760
14761type RegisterContainerInstanceOutput struct {
14762	_ struct{} `type:"structure"`
14763
14764	// The container instance that was registered.
14765	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
14766}
14767
14768// String returns the string representation
14769func (s RegisterContainerInstanceOutput) String() string {
14770	return awsutil.Prettify(s)
14771}
14772
14773// GoString returns the string representation
14774func (s RegisterContainerInstanceOutput) GoString() string {
14775	return s.String()
14776}
14777
14778// SetContainerInstance sets the ContainerInstance field's value.
14779func (s *RegisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *RegisterContainerInstanceOutput {
14780	s.ContainerInstance = v
14781	return s
14782}
14783
14784type RegisterTaskDefinitionInput struct {
14785	_ struct{} `type:"structure"`
14786
14787	// A list of container definitions in JSON format that describe the different
14788	// containers that make up your task.
14789	//
14790	// ContainerDefinitions is a required field
14791	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list" required:"true"`
14792
14793	// The number of CPU units used by the task. It can be expressed as an integer
14794	// using CPU units, for example 1024, or as a string using vCPUs, for example
14795	// 1 vCPU or 1 vcpu, in a task definition. String values are converted to an
14796	// integer indicating the CPU units when the task definition is registered.
14797	//
14798	// Task-level CPU and memory parameters are ignored for Windows containers.
14799	// We recommend specifying container-level resources for Windows containers.
14800	//
14801	// If you are using the EC2 launch type, this field is optional. Supported values
14802	// are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).
14803	//
14804	// If you are using the Fargate launch type, this field is required and you
14805	// must use one of the following values, which determines your range of supported
14806	// values for the memory parameter:
14807	//
14808	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
14809	//    2048 (2 GB)
14810	//
14811	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
14812	//    (3 GB), 4096 (4 GB)
14813	//
14814	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
14815	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
14816	//
14817	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
14818	//    (16 GB) in increments of 1024 (1 GB)
14819	//
14820	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
14821	//    (30 GB) in increments of 1024 (1 GB)
14822	Cpu *string `locationName:"cpu" type:"string"`
14823
14824	// The Amazon Resource Name (ARN) of the task execution role that the Amazon
14825	// ECS container agent and the Docker daemon can assume.
14826	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
14827
14828	// You must specify a family for a task definition, which allows you to track
14829	// multiple versions of the same task definition. The family is used as a name
14830	// for your task definition. Up to 255 letters (uppercase and lowercase), numbers,
14831	// and hyphens are allowed.
14832	//
14833	// Family is a required field
14834	Family *string `locationName:"family" type:"string" required:"true"`
14835
14836	// The Elastic Inference accelerators to use for the containers in the task.
14837	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
14838
14839	// The IPC resource namespace to use for the containers in the task. The valid
14840	// values are host, task, or none. If host is specified, then all containers
14841	// within the tasks that specified the host IPC mode on the same container instance
14842	// share the same IPC resources with the host Amazon EC2 instance. If task is
14843	// specified, all containers within the specified task share the same IPC resources.
14844	// If none is specified, then IPC resources within the containers of a task
14845	// are private and not shared with other containers in a task or on the container
14846	// instance. If no value is specified, then the IPC resource namespace sharing
14847	// depends on the Docker daemon setting on the container instance. For more
14848	// information, see IPC settings (https://docs.docker.com/engine/reference/run/#ipc-settings---ipc)
14849	// in the Docker run reference.
14850	//
14851	// If the host IPC mode is used, be aware that there is a heightened risk of
14852	// undesired IPC namespace expose. For more information, see Docker security
14853	// (https://docs.docker.com/engine/security/security/).
14854	//
14855	// If you are setting namespaced kernel parameters using systemControls for
14856	// the containers in the task, the following will apply to your IPC resource
14857	// namespace. For more information, see System Controls (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)
14858	// in the Amazon Elastic Container Service Developer Guide.
14859	//
14860	//    * For tasks that use the host IPC mode, IPC namespace related systemControls
14861	//    are not supported.
14862	//
14863	//    * For tasks that use the task IPC mode, IPC namespace related systemControls
14864	//    will apply to all containers within a task.
14865	//
14866	// This parameter is not supported for Windows containers or tasks using the
14867	// Fargate launch type.
14868	IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"`
14869
14870	// The amount of memory (in MiB) used by the task. It can be expressed as an
14871	// integer using MiB, for example 1024, or as a string using GB, for example
14872	// 1GB or 1 GB, in a task definition. String values are converted to an integer
14873	// indicating the MiB when the task definition is registered.
14874	//
14875	// Task-level CPU and memory parameters are ignored for Windows containers.
14876	// We recommend specifying container-level resources for Windows containers.
14877	//
14878	// If using the EC2 launch type, this field is optional.
14879	//
14880	// If using the Fargate launch type, this field is required and you must use
14881	// one of the following values, which determines your range of supported values
14882	// for the cpu parameter:
14883	//
14884	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
14885	//    vCPU)
14886	//
14887	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
14888	//    512 (.5 vCPU)
14889	//
14890	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
14891	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
14892	//
14893	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
14894	//    Available cpu values: 2048 (2 vCPU)
14895	//
14896	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
14897	//    Available cpu values: 4096 (4 vCPU)
14898	Memory *string `locationName:"memory" type:"string"`
14899
14900	// The Docker networking mode to use for the containers in the task. The valid
14901	// values are none, bridge, awsvpc, and host. The default Docker network mode
14902	// is bridge. If you are using the Fargate launch type, the awsvpc network mode
14903	// is required. If you are using the EC2 launch type, any network mode can be
14904	// used. If the network mode is set to none, you cannot specify port mappings
14905	// in your container definitions, and the tasks containers do not have external
14906	// connectivity. The host and awsvpc network modes offer the highest networking
14907	// performance for containers because they use the EC2 network stack instead
14908	// of the virtualized network stack provided by the bridge mode.
14909	//
14910	// With the host and awsvpc network modes, exposed container ports are mapped
14911	// directly to the corresponding host port (for the host network mode) or the
14912	// attached elastic network interface port (for the awsvpc network mode), so
14913	// you cannot take advantage of dynamic host port mappings.
14914	//
14915	// If the network mode is awsvpc, the task is allocated an elastic network interface,
14916	// and you must specify a NetworkConfiguration value when you create a service
14917	// or run a task with the task definition. For more information, see Task Networking
14918	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
14919	// in the Amazon Elastic Container Service Developer Guide.
14920	//
14921	// Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with
14922	// the ecs-init package, or AWS Fargate infrastructure support the awsvpc network
14923	// mode.
14924	//
14925	// If the network mode is host, you cannot run multiple instantiations of the
14926	// same task on a single container instance when port mappings are used.
14927	//
14928	// Docker for Windows uses different network modes than Docker for Linux. When
14929	// you register a task definition with Windows containers, you must not specify
14930	// a network mode. If you use the console to register a task definition with
14931	// Windows containers, you must choose the <default> network mode object.
14932	//
14933	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
14934	// in the Docker run reference.
14935	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
14936
14937	// The process namespace to use for the containers in the task. The valid values
14938	// are host or task. If host is specified, then all containers within the tasks
14939	// that specified the host PID mode on the same container instance share the
14940	// same process namespace with the host Amazon EC2 instance. If task is specified,
14941	// all containers within the specified task share the same process namespace.
14942	// If no value is specified, the default is a private namespace. For more information,
14943	// see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid)
14944	// in the Docker run reference.
14945	//
14946	// If the host PID mode is used, be aware that there is a heightened risk of
14947	// undesired process namespace expose. For more information, see Docker security
14948	// (https://docs.docker.com/engine/security/security/).
14949	//
14950	// This parameter is not supported for Windows containers or tasks using the
14951	// Fargate launch type.
14952	PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"`
14953
14954	// An array of placement constraint objects to use for the task. You can specify
14955	// a maximum of 10 constraints per task (this limit includes constraints in
14956	// the task definition and those specified at runtime).
14957	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
14958
14959	// The configuration details for the App Mesh proxy.
14960	//
14961	// For tasks using the EC2 launch type, the container instances require at least
14962	// version 1.26.0 of the container agent and at least version 1.26.0-1 of the
14963	// ecs-init package to enable a proxy configuration. If your container instances
14964	// are launched from the Amazon ECS-optimized AMI version 20190301 or later,
14965	// then they contain the required versions of the container agent and ecs-init.
14966	// For more information, see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
14967	// in the Amazon Elastic Container Service Developer Guide.
14968	//
14969	// For tasks using the Fargate launch type, the task or service requires platform
14970	// version 1.3.0 or later.
14971	ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"`
14972
14973	// The launch type required by the task. If no value is specified, it defaults
14974	// to EC2.
14975	RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"`
14976
14977	// The metadata that you apply to the task definition to help you categorize
14978	// and organize them. Each tag consists of a key and an optional value, both
14979	// of which you define.
14980	//
14981	// The following basic restrictions apply to tags:
14982	//
14983	//    * Maximum number of tags per resource - 50
14984	//
14985	//    * For each resource, each tag key must be unique, and each tag key can
14986	//    have only one value.
14987	//
14988	//    * Maximum key length - 128 Unicode characters in UTF-8
14989	//
14990	//    * Maximum value length - 256 Unicode characters in UTF-8
14991	//
14992	//    * If your tagging schema is used across multiple services and resources,
14993	//    remember that other services may have restrictions on allowed characters.
14994	//    Generally allowed characters are: letters, numbers, and spaces representable
14995	//    in UTF-8, and the following characters: + - = . _ : / @.
14996	//
14997	//    * Tag keys and values are case-sensitive.
14998	//
14999	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
15000	//    as a prefix for either keys or values as it is reserved for AWS use. You
15001	//    cannot edit or delete tag keys or values with this prefix. Tags with this
15002	//    prefix do not count against your tags per resource limit.
15003	Tags []*Tag `locationName:"tags" type:"list"`
15004
15005	// The short name or full Amazon Resource Name (ARN) of the IAM role that containers
15006	// in this task can assume. All containers in this task are granted the permissions
15007	// that are specified in this role. For more information, see IAM Roles for
15008	// Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
15009	// in the Amazon Elastic Container Service Developer Guide.
15010	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
15011
15012	// A list of volume definitions in JSON format that containers in your task
15013	// may use.
15014	Volumes []*Volume `locationName:"volumes" type:"list"`
15015}
15016
15017// String returns the string representation
15018func (s RegisterTaskDefinitionInput) String() string {
15019	return awsutil.Prettify(s)
15020}
15021
15022// GoString returns the string representation
15023func (s RegisterTaskDefinitionInput) GoString() string {
15024	return s.String()
15025}
15026
15027// Validate inspects the fields of the type to determine if they are valid.
15028func (s *RegisterTaskDefinitionInput) Validate() error {
15029	invalidParams := request.ErrInvalidParams{Context: "RegisterTaskDefinitionInput"}
15030	if s.ContainerDefinitions == nil {
15031		invalidParams.Add(request.NewErrParamRequired("ContainerDefinitions"))
15032	}
15033	if s.Family == nil {
15034		invalidParams.Add(request.NewErrParamRequired("Family"))
15035	}
15036	if s.ContainerDefinitions != nil {
15037		for i, v := range s.ContainerDefinitions {
15038			if v == nil {
15039				continue
15040			}
15041			if err := v.Validate(); err != nil {
15042				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContainerDefinitions", i), err.(request.ErrInvalidParams))
15043			}
15044		}
15045	}
15046	if s.InferenceAccelerators != nil {
15047		for i, v := range s.InferenceAccelerators {
15048			if v == nil {
15049				continue
15050			}
15051			if err := v.Validate(); err != nil {
15052				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InferenceAccelerators", i), err.(request.ErrInvalidParams))
15053			}
15054		}
15055	}
15056	if s.ProxyConfiguration != nil {
15057		if err := s.ProxyConfiguration.Validate(); err != nil {
15058			invalidParams.AddNested("ProxyConfiguration", err.(request.ErrInvalidParams))
15059		}
15060	}
15061	if s.Tags != nil {
15062		for i, v := range s.Tags {
15063			if v == nil {
15064				continue
15065			}
15066			if err := v.Validate(); err != nil {
15067				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
15068			}
15069		}
15070	}
15071	if s.Volumes != nil {
15072		for i, v := range s.Volumes {
15073			if v == nil {
15074				continue
15075			}
15076			if err := v.Validate(); err != nil {
15077				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Volumes", i), err.(request.ErrInvalidParams))
15078			}
15079		}
15080	}
15081
15082	if invalidParams.Len() > 0 {
15083		return invalidParams
15084	}
15085	return nil
15086}
15087
15088// SetContainerDefinitions sets the ContainerDefinitions field's value.
15089func (s *RegisterTaskDefinitionInput) SetContainerDefinitions(v []*ContainerDefinition) *RegisterTaskDefinitionInput {
15090	s.ContainerDefinitions = v
15091	return s
15092}
15093
15094// SetCpu sets the Cpu field's value.
15095func (s *RegisterTaskDefinitionInput) SetCpu(v string) *RegisterTaskDefinitionInput {
15096	s.Cpu = &v
15097	return s
15098}
15099
15100// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
15101func (s *RegisterTaskDefinitionInput) SetExecutionRoleArn(v string) *RegisterTaskDefinitionInput {
15102	s.ExecutionRoleArn = &v
15103	return s
15104}
15105
15106// SetFamily sets the Family field's value.
15107func (s *RegisterTaskDefinitionInput) SetFamily(v string) *RegisterTaskDefinitionInput {
15108	s.Family = &v
15109	return s
15110}
15111
15112// SetInferenceAccelerators sets the InferenceAccelerators field's value.
15113func (s *RegisterTaskDefinitionInput) SetInferenceAccelerators(v []*InferenceAccelerator) *RegisterTaskDefinitionInput {
15114	s.InferenceAccelerators = v
15115	return s
15116}
15117
15118// SetIpcMode sets the IpcMode field's value.
15119func (s *RegisterTaskDefinitionInput) SetIpcMode(v string) *RegisterTaskDefinitionInput {
15120	s.IpcMode = &v
15121	return s
15122}
15123
15124// SetMemory sets the Memory field's value.
15125func (s *RegisterTaskDefinitionInput) SetMemory(v string) *RegisterTaskDefinitionInput {
15126	s.Memory = &v
15127	return s
15128}
15129
15130// SetNetworkMode sets the NetworkMode field's value.
15131func (s *RegisterTaskDefinitionInput) SetNetworkMode(v string) *RegisterTaskDefinitionInput {
15132	s.NetworkMode = &v
15133	return s
15134}
15135
15136// SetPidMode sets the PidMode field's value.
15137func (s *RegisterTaskDefinitionInput) SetPidMode(v string) *RegisterTaskDefinitionInput {
15138	s.PidMode = &v
15139	return s
15140}
15141
15142// SetPlacementConstraints sets the PlacementConstraints field's value.
15143func (s *RegisterTaskDefinitionInput) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *RegisterTaskDefinitionInput {
15144	s.PlacementConstraints = v
15145	return s
15146}
15147
15148// SetProxyConfiguration sets the ProxyConfiguration field's value.
15149func (s *RegisterTaskDefinitionInput) SetProxyConfiguration(v *ProxyConfiguration) *RegisterTaskDefinitionInput {
15150	s.ProxyConfiguration = v
15151	return s
15152}
15153
15154// SetRequiresCompatibilities sets the RequiresCompatibilities field's value.
15155func (s *RegisterTaskDefinitionInput) SetRequiresCompatibilities(v []*string) *RegisterTaskDefinitionInput {
15156	s.RequiresCompatibilities = v
15157	return s
15158}
15159
15160// SetTags sets the Tags field's value.
15161func (s *RegisterTaskDefinitionInput) SetTags(v []*Tag) *RegisterTaskDefinitionInput {
15162	s.Tags = v
15163	return s
15164}
15165
15166// SetTaskRoleArn sets the TaskRoleArn field's value.
15167func (s *RegisterTaskDefinitionInput) SetTaskRoleArn(v string) *RegisterTaskDefinitionInput {
15168	s.TaskRoleArn = &v
15169	return s
15170}
15171
15172// SetVolumes sets the Volumes field's value.
15173func (s *RegisterTaskDefinitionInput) SetVolumes(v []*Volume) *RegisterTaskDefinitionInput {
15174	s.Volumes = v
15175	return s
15176}
15177
15178type RegisterTaskDefinitionOutput struct {
15179	_ struct{} `type:"structure"`
15180
15181	// The list of tags associated with the task definition.
15182	Tags []*Tag `locationName:"tags" type:"list"`
15183
15184	// The full description of the registered task definition.
15185	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
15186}
15187
15188// String returns the string representation
15189func (s RegisterTaskDefinitionOutput) String() string {
15190	return awsutil.Prettify(s)
15191}
15192
15193// GoString returns the string representation
15194func (s RegisterTaskDefinitionOutput) GoString() string {
15195	return s.String()
15196}
15197
15198// SetTags sets the Tags field's value.
15199func (s *RegisterTaskDefinitionOutput) SetTags(v []*Tag) *RegisterTaskDefinitionOutput {
15200	s.Tags = v
15201	return s
15202}
15203
15204// SetTaskDefinition sets the TaskDefinition field's value.
15205func (s *RegisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *RegisterTaskDefinitionOutput {
15206	s.TaskDefinition = v
15207	return s
15208}
15209
15210// The repository credentials for private registry authentication.
15211type RepositoryCredentials struct {
15212	_ struct{} `type:"structure"`
15213
15214	// The Amazon Resource Name (ARN) of the secret containing the private repository
15215	// credentials.
15216	//
15217	// When you are using the Amazon ECS API, AWS CLI, or AWS SDK, if the secret
15218	// exists in the same Region as the task that you are launching then you can
15219	// use either the full ARN or the name of the secret. When you are using the
15220	// AWS Management Console, you must specify the full ARN of the secret.
15221	//
15222	// CredentialsParameter is a required field
15223	CredentialsParameter *string `locationName:"credentialsParameter" type:"string" required:"true"`
15224}
15225
15226// String returns the string representation
15227func (s RepositoryCredentials) String() string {
15228	return awsutil.Prettify(s)
15229}
15230
15231// GoString returns the string representation
15232func (s RepositoryCredentials) GoString() string {
15233	return s.String()
15234}
15235
15236// Validate inspects the fields of the type to determine if they are valid.
15237func (s *RepositoryCredentials) Validate() error {
15238	invalidParams := request.ErrInvalidParams{Context: "RepositoryCredentials"}
15239	if s.CredentialsParameter == nil {
15240		invalidParams.Add(request.NewErrParamRequired("CredentialsParameter"))
15241	}
15242
15243	if invalidParams.Len() > 0 {
15244		return invalidParams
15245	}
15246	return nil
15247}
15248
15249// SetCredentialsParameter sets the CredentialsParameter field's value.
15250func (s *RepositoryCredentials) SetCredentialsParameter(v string) *RepositoryCredentials {
15251	s.CredentialsParameter = &v
15252	return s
15253}
15254
15255// Describes the resources available for a container instance.
15256type Resource struct {
15257	_ struct{} `type:"structure"`
15258
15259	// When the doubleValue type is set, the value of the resource must be a double
15260	// precision floating-point type.
15261	DoubleValue *float64 `locationName:"doubleValue" type:"double"`
15262
15263	// When the integerValue type is set, the value of the resource must be an integer.
15264	IntegerValue *int64 `locationName:"integerValue" type:"integer"`
15265
15266	// When the longValue type is set, the value of the resource must be an extended
15267	// precision floating-point type.
15268	LongValue *int64 `locationName:"longValue" type:"long"`
15269
15270	// The name of the resource, such as CPU, MEMORY, PORTS, PORTS_UDP, or a user-defined
15271	// resource.
15272	Name *string `locationName:"name" type:"string"`
15273
15274	// When the stringSetValue type is set, the value of the resource must be a
15275	// string type.
15276	StringSetValue []*string `locationName:"stringSetValue" type:"list"`
15277
15278	// The type of the resource, such as INTEGER, DOUBLE, LONG, or STRINGSET.
15279	Type *string `locationName:"type" type:"string"`
15280}
15281
15282// String returns the string representation
15283func (s Resource) String() string {
15284	return awsutil.Prettify(s)
15285}
15286
15287// GoString returns the string representation
15288func (s Resource) GoString() string {
15289	return s.String()
15290}
15291
15292// SetDoubleValue sets the DoubleValue field's value.
15293func (s *Resource) SetDoubleValue(v float64) *Resource {
15294	s.DoubleValue = &v
15295	return s
15296}
15297
15298// SetIntegerValue sets the IntegerValue field's value.
15299func (s *Resource) SetIntegerValue(v int64) *Resource {
15300	s.IntegerValue = &v
15301	return s
15302}
15303
15304// SetLongValue sets the LongValue field's value.
15305func (s *Resource) SetLongValue(v int64) *Resource {
15306	s.LongValue = &v
15307	return s
15308}
15309
15310// SetName sets the Name field's value.
15311func (s *Resource) SetName(v string) *Resource {
15312	s.Name = &v
15313	return s
15314}
15315
15316// SetStringSetValue sets the StringSetValue field's value.
15317func (s *Resource) SetStringSetValue(v []*string) *Resource {
15318	s.StringSetValue = v
15319	return s
15320}
15321
15322// SetType sets the Type field's value.
15323func (s *Resource) SetType(v string) *Resource {
15324	s.Type = &v
15325	return s
15326}
15327
15328// The specified resource is in-use and cannot be removed.
15329type ResourceInUseException struct {
15330	_            struct{}                  `type:"structure"`
15331	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15332
15333	Message_ *string `locationName:"message" type:"string"`
15334}
15335
15336// String returns the string representation
15337func (s ResourceInUseException) String() string {
15338	return awsutil.Prettify(s)
15339}
15340
15341// GoString returns the string representation
15342func (s ResourceInUseException) GoString() string {
15343	return s.String()
15344}
15345
15346func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
15347	return &ResourceInUseException{
15348		RespMetadata: v,
15349	}
15350}
15351
15352// Code returns the exception type name.
15353func (s *ResourceInUseException) Code() string {
15354	return "ResourceInUseException"
15355}
15356
15357// Message returns the exception's message.
15358func (s *ResourceInUseException) Message() string {
15359	if s.Message_ != nil {
15360		return *s.Message_
15361	}
15362	return ""
15363}
15364
15365// OrigErr always returns nil, satisfies awserr.Error interface.
15366func (s *ResourceInUseException) OrigErr() error {
15367	return nil
15368}
15369
15370func (s *ResourceInUseException) Error() string {
15371	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15372}
15373
15374// Status code returns the HTTP status code for the request's response error.
15375func (s *ResourceInUseException) StatusCode() int {
15376	return s.RespMetadata.StatusCode
15377}
15378
15379// RequestID returns the service's response RequestID for request.
15380func (s *ResourceInUseException) RequestID() string {
15381	return s.RespMetadata.RequestID
15382}
15383
15384// The specified resource could not be found.
15385type ResourceNotFoundException struct {
15386	_            struct{}                  `type:"structure"`
15387	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15388
15389	Message_ *string `locationName:"message" type:"string"`
15390}
15391
15392// String returns the string representation
15393func (s ResourceNotFoundException) String() string {
15394	return awsutil.Prettify(s)
15395}
15396
15397// GoString returns the string representation
15398func (s ResourceNotFoundException) GoString() string {
15399	return s.String()
15400}
15401
15402func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
15403	return &ResourceNotFoundException{
15404		RespMetadata: v,
15405	}
15406}
15407
15408// Code returns the exception type name.
15409func (s *ResourceNotFoundException) Code() string {
15410	return "ResourceNotFoundException"
15411}
15412
15413// Message returns the exception's message.
15414func (s *ResourceNotFoundException) Message() string {
15415	if s.Message_ != nil {
15416		return *s.Message_
15417	}
15418	return ""
15419}
15420
15421// OrigErr always returns nil, satisfies awserr.Error interface.
15422func (s *ResourceNotFoundException) OrigErr() error {
15423	return nil
15424}
15425
15426func (s *ResourceNotFoundException) Error() string {
15427	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15428}
15429
15430// Status code returns the HTTP status code for the request's response error.
15431func (s *ResourceNotFoundException) StatusCode() int {
15432	return s.RespMetadata.StatusCode
15433}
15434
15435// RequestID returns the service's response RequestID for request.
15436func (s *ResourceNotFoundException) RequestID() string {
15437	return s.RespMetadata.RequestID
15438}
15439
15440// The type and amount of a resource to assign to a container. The supported
15441// resource types are GPUs and Elastic Inference accelerators. For more information,
15442// see Working with GPUs on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-gpu.html)
15443// or Working with Amazon Elastic Inference on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
15444// in the Amazon Elastic Container Service Developer Guide
15445type ResourceRequirement struct {
15446	_ struct{} `type:"structure"`
15447
15448	// The type of resource to assign to a container. The supported values are GPU
15449	// or InferenceAccelerator.
15450	//
15451	// Type is a required field
15452	Type *string `locationName:"type" type:"string" required:"true" enum:"ResourceType"`
15453
15454	// The value for the specified resource type.
15455	//
15456	// If the GPU type is used, the value is the number of physical GPUs the Amazon
15457	// ECS container agent will reserve for the container. The number of GPUs reserved
15458	// for all containers in a task should not exceed the number of available GPUs
15459	// on the container instance the task is launched on.
15460	//
15461	// If the InferenceAccelerator type is used, the value should match the deviceName
15462	// for an InferenceAccelerator specified in a task definition.
15463	//
15464	// Value is a required field
15465	Value *string `locationName:"value" type:"string" required:"true"`
15466}
15467
15468// String returns the string representation
15469func (s ResourceRequirement) String() string {
15470	return awsutil.Prettify(s)
15471}
15472
15473// GoString returns the string representation
15474func (s ResourceRequirement) GoString() string {
15475	return s.String()
15476}
15477
15478// Validate inspects the fields of the type to determine if they are valid.
15479func (s *ResourceRequirement) Validate() error {
15480	invalidParams := request.ErrInvalidParams{Context: "ResourceRequirement"}
15481	if s.Type == nil {
15482		invalidParams.Add(request.NewErrParamRequired("Type"))
15483	}
15484	if s.Value == nil {
15485		invalidParams.Add(request.NewErrParamRequired("Value"))
15486	}
15487
15488	if invalidParams.Len() > 0 {
15489		return invalidParams
15490	}
15491	return nil
15492}
15493
15494// SetType sets the Type field's value.
15495func (s *ResourceRequirement) SetType(v string) *ResourceRequirement {
15496	s.Type = &v
15497	return s
15498}
15499
15500// SetValue sets the Value field's value.
15501func (s *ResourceRequirement) SetValue(v string) *ResourceRequirement {
15502	s.Value = &v
15503	return s
15504}
15505
15506type RunTaskInput struct {
15507	_ struct{} `type:"structure"`
15508
15509	// The capacity provider strategy to use for the task.
15510	//
15511	// A capacity provider strategy consists of one or more capacity providers along
15512	// with the base and weight to assign to them. A capacity provider must be associated
15513	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
15514	// API is used to associate a capacity provider with a cluster. Only capacity
15515	// providers with an ACTIVE or UPDATING status can be used.
15516	//
15517	// If a capacityProviderStrategy is specified, the launchType parameter must
15518	// be omitted. If no capacityProviderStrategy or launchType is specified, the
15519	// defaultCapacityProviderStrategy for the cluster is used.
15520	//
15521	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
15522	// provider must already be created. New capacity providers can be created with
15523	// the CreateCapacityProvider API operation.
15524	//
15525	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
15526	// capacity providers. The AWS Fargate capacity providers are available to all
15527	// accounts and only need to be associated with a cluster to be used.
15528	//
15529	// The PutClusterCapacityProviders API operation is used to update the list
15530	// of available capacity providers for a cluster after the cluster is created.
15531	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
15532
15533	// The short name or full Amazon Resource Name (ARN) of the cluster on which
15534	// to run your task. If you do not specify a cluster, the default cluster is
15535	// assumed.
15536	Cluster *string `locationName:"cluster" type:"string"`
15537
15538	// The number of instantiations of the specified task to place on your cluster.
15539	// You can specify up to 10 tasks per call.
15540	Count *int64 `locationName:"count" type:"integer"`
15541
15542	// Specifies whether to enable Amazon ECS managed tags for the task. For more
15543	// information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
15544	// in the Amazon Elastic Container Service Developer Guide.
15545	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
15546
15547	// The name of the task group to associate with the task. The default value
15548	// is the family name of the task definition (for example, family:my-family-name).
15549	Group *string `locationName:"group" type:"string"`
15550
15551	// The launch type on which to run your task. For more information, see Amazon
15552	// ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
15553	// in the Amazon Elastic Container Service Developer Guide.
15554	//
15555	// If a launchType is specified, the capacityProviderStrategy parameter must
15556	// be omitted.
15557	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
15558
15559	// The network configuration for the task. This parameter is required for task
15560	// definitions that use the awsvpc network mode to receive their own elastic
15561	// network interface, and it is not supported for other network modes. For more
15562	// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
15563	// in the Amazon Elastic Container Service Developer Guide.
15564	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
15565
15566	// A list of container overrides in JSON format that specify the name of a container
15567	// in the specified task definition and the overrides it should receive. You
15568	// can override the default command for a container (that is specified in the
15569	// task definition or Docker image) with a command override. You can also override
15570	// existing environment variables (that are specified in the task definition
15571	// or Docker image) on a container or add new environment variables to it with
15572	// an environment override.
15573	//
15574	// A total of 8192 characters are allowed for overrides. This limit includes
15575	// the JSON formatting characters of the override structure.
15576	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
15577
15578	// An array of placement constraint objects to use for the task. You can specify
15579	// up to 10 constraints per task (including constraints in the task definition
15580	// and those specified at runtime).
15581	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
15582
15583	// The placement strategy objects to use for the task. You can specify a maximum
15584	// of five strategy rules per task.
15585	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
15586
15587	// The platform version the task should run. A platform version is only specified
15588	// for tasks using the Fargate launch type. If one is not specified, the LATEST
15589	// platform version is used by default. For more information, see AWS Fargate
15590	// Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
15591	// in the Amazon Elastic Container Service Developer Guide.
15592	PlatformVersion *string `locationName:"platformVersion" type:"string"`
15593
15594	// Specifies whether to propagate the tags from the task definition to the task.
15595	// If no value is specified, the tags are not propagated. Tags can only be propagated
15596	// to the task during task creation. To add tags to a task after task creation,
15597	// use the TagResource API action.
15598	//
15599	// An error will be received if you specify the SERVICE option when running
15600	// a task.
15601	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
15602
15603	// The reference ID to use for the task.
15604	ReferenceId *string `locationName:"referenceId" type:"string"`
15605
15606	// An optional tag specified when a task is started. For example, if you automatically
15607	// trigger a task to run a batch process job, you could apply a unique identifier
15608	// for that job to your task with the startedBy parameter. You can then identify
15609	// which tasks belong to that job by filtering the results of a ListTasks call
15610	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
15611	// hyphens, and underscores are allowed.
15612	//
15613	// If a task is started by an Amazon ECS service, then the startedBy parameter
15614	// contains the deployment ID of the service that starts it.
15615	StartedBy *string `locationName:"startedBy" type:"string"`
15616
15617	// The metadata that you apply to the task to help you categorize and organize
15618	// them. Each tag consists of a key and an optional value, both of which you
15619	// define.
15620	//
15621	// The following basic restrictions apply to tags:
15622	//
15623	//    * Maximum number of tags per resource - 50
15624	//
15625	//    * For each resource, each tag key must be unique, and each tag key can
15626	//    have only one value.
15627	//
15628	//    * Maximum key length - 128 Unicode characters in UTF-8
15629	//
15630	//    * Maximum value length - 256 Unicode characters in UTF-8
15631	//
15632	//    * If your tagging schema is used across multiple services and resources,
15633	//    remember that other services may have restrictions on allowed characters.
15634	//    Generally allowed characters are: letters, numbers, and spaces representable
15635	//    in UTF-8, and the following characters: + - = . _ : / @.
15636	//
15637	//    * Tag keys and values are case-sensitive.
15638	//
15639	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
15640	//    as a prefix for either keys or values as it is reserved for AWS use. You
15641	//    cannot edit or delete tag keys or values with this prefix. Tags with this
15642	//    prefix do not count against your tags per resource limit.
15643	Tags []*Tag `locationName:"tags" type:"list"`
15644
15645	// The family and revision (family:revision) or full ARN of the task definition
15646	// to run. If a revision is not specified, the latest ACTIVE revision is used.
15647	//
15648	// TaskDefinition is a required field
15649	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
15650}
15651
15652// String returns the string representation
15653func (s RunTaskInput) String() string {
15654	return awsutil.Prettify(s)
15655}
15656
15657// GoString returns the string representation
15658func (s RunTaskInput) GoString() string {
15659	return s.String()
15660}
15661
15662// Validate inspects the fields of the type to determine if they are valid.
15663func (s *RunTaskInput) Validate() error {
15664	invalidParams := request.ErrInvalidParams{Context: "RunTaskInput"}
15665	if s.TaskDefinition == nil {
15666		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
15667	}
15668	if s.CapacityProviderStrategy != nil {
15669		for i, v := range s.CapacityProviderStrategy {
15670			if v == nil {
15671				continue
15672			}
15673			if err := v.Validate(); err != nil {
15674				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
15675			}
15676		}
15677	}
15678	if s.NetworkConfiguration != nil {
15679		if err := s.NetworkConfiguration.Validate(); err != nil {
15680			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
15681		}
15682	}
15683	if s.Overrides != nil {
15684		if err := s.Overrides.Validate(); err != nil {
15685			invalidParams.AddNested("Overrides", err.(request.ErrInvalidParams))
15686		}
15687	}
15688	if s.Tags != nil {
15689		for i, v := range s.Tags {
15690			if v == nil {
15691				continue
15692			}
15693			if err := v.Validate(); err != nil {
15694				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
15695			}
15696		}
15697	}
15698
15699	if invalidParams.Len() > 0 {
15700		return invalidParams
15701	}
15702	return nil
15703}
15704
15705// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
15706func (s *RunTaskInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *RunTaskInput {
15707	s.CapacityProviderStrategy = v
15708	return s
15709}
15710
15711// SetCluster sets the Cluster field's value.
15712func (s *RunTaskInput) SetCluster(v string) *RunTaskInput {
15713	s.Cluster = &v
15714	return s
15715}
15716
15717// SetCount sets the Count field's value.
15718func (s *RunTaskInput) SetCount(v int64) *RunTaskInput {
15719	s.Count = &v
15720	return s
15721}
15722
15723// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
15724func (s *RunTaskInput) SetEnableECSManagedTags(v bool) *RunTaskInput {
15725	s.EnableECSManagedTags = &v
15726	return s
15727}
15728
15729// SetGroup sets the Group field's value.
15730func (s *RunTaskInput) SetGroup(v string) *RunTaskInput {
15731	s.Group = &v
15732	return s
15733}
15734
15735// SetLaunchType sets the LaunchType field's value.
15736func (s *RunTaskInput) SetLaunchType(v string) *RunTaskInput {
15737	s.LaunchType = &v
15738	return s
15739}
15740
15741// SetNetworkConfiguration sets the NetworkConfiguration field's value.
15742func (s *RunTaskInput) SetNetworkConfiguration(v *NetworkConfiguration) *RunTaskInput {
15743	s.NetworkConfiguration = v
15744	return s
15745}
15746
15747// SetOverrides sets the Overrides field's value.
15748func (s *RunTaskInput) SetOverrides(v *TaskOverride) *RunTaskInput {
15749	s.Overrides = v
15750	return s
15751}
15752
15753// SetPlacementConstraints sets the PlacementConstraints field's value.
15754func (s *RunTaskInput) SetPlacementConstraints(v []*PlacementConstraint) *RunTaskInput {
15755	s.PlacementConstraints = v
15756	return s
15757}
15758
15759// SetPlacementStrategy sets the PlacementStrategy field's value.
15760func (s *RunTaskInput) SetPlacementStrategy(v []*PlacementStrategy) *RunTaskInput {
15761	s.PlacementStrategy = v
15762	return s
15763}
15764
15765// SetPlatformVersion sets the PlatformVersion field's value.
15766func (s *RunTaskInput) SetPlatformVersion(v string) *RunTaskInput {
15767	s.PlatformVersion = &v
15768	return s
15769}
15770
15771// SetPropagateTags sets the PropagateTags field's value.
15772func (s *RunTaskInput) SetPropagateTags(v string) *RunTaskInput {
15773	s.PropagateTags = &v
15774	return s
15775}
15776
15777// SetReferenceId sets the ReferenceId field's value.
15778func (s *RunTaskInput) SetReferenceId(v string) *RunTaskInput {
15779	s.ReferenceId = &v
15780	return s
15781}
15782
15783// SetStartedBy sets the StartedBy field's value.
15784func (s *RunTaskInput) SetStartedBy(v string) *RunTaskInput {
15785	s.StartedBy = &v
15786	return s
15787}
15788
15789// SetTags sets the Tags field's value.
15790func (s *RunTaskInput) SetTags(v []*Tag) *RunTaskInput {
15791	s.Tags = v
15792	return s
15793}
15794
15795// SetTaskDefinition sets the TaskDefinition field's value.
15796func (s *RunTaskInput) SetTaskDefinition(v string) *RunTaskInput {
15797	s.TaskDefinition = &v
15798	return s
15799}
15800
15801type RunTaskOutput struct {
15802	_ struct{} `type:"structure"`
15803
15804	// Any failures associated with the call.
15805	Failures []*Failure `locationName:"failures" type:"list"`
15806
15807	// A full description of the tasks that were run. The tasks that were successfully
15808	// placed on your cluster are described here.
15809	Tasks []*Task `locationName:"tasks" type:"list"`
15810}
15811
15812// String returns the string representation
15813func (s RunTaskOutput) String() string {
15814	return awsutil.Prettify(s)
15815}
15816
15817// GoString returns the string representation
15818func (s RunTaskOutput) GoString() string {
15819	return s.String()
15820}
15821
15822// SetFailures sets the Failures field's value.
15823func (s *RunTaskOutput) SetFailures(v []*Failure) *RunTaskOutput {
15824	s.Failures = v
15825	return s
15826}
15827
15828// SetTasks sets the Tasks field's value.
15829func (s *RunTaskOutput) SetTasks(v []*Task) *RunTaskOutput {
15830	s.Tasks = v
15831	return s
15832}
15833
15834// A floating-point percentage of the desired number of tasks to place and keep
15835// running in the task set.
15836type Scale struct {
15837	_ struct{} `type:"structure"`
15838
15839	// The unit of measure for the scale value.
15840	Unit *string `locationName:"unit" type:"string" enum:"ScaleUnit"`
15841
15842	// The value, specified as a percent total of a service's desiredCount, to scale
15843	// the task set. Accepted values are numbers between 0 and 100.
15844	Value *float64 `locationName:"value" type:"double"`
15845}
15846
15847// String returns the string representation
15848func (s Scale) String() string {
15849	return awsutil.Prettify(s)
15850}
15851
15852// GoString returns the string representation
15853func (s Scale) GoString() string {
15854	return s.String()
15855}
15856
15857// SetUnit sets the Unit field's value.
15858func (s *Scale) SetUnit(v string) *Scale {
15859	s.Unit = &v
15860	return s
15861}
15862
15863// SetValue sets the Value field's value.
15864func (s *Scale) SetValue(v float64) *Scale {
15865	s.Value = &v
15866	return s
15867}
15868
15869// An object representing the secret to expose to your container. Secrets can
15870// be exposed to a container in the following ways:
15871//
15872//    * To inject sensitive data into your containers as environment variables,
15873//    use the secrets container definition parameter.
15874//
15875//    * To reference sensitive information in the log configuration of a container,
15876//    use the secretOptions container definition parameter.
15877//
15878// For more information, see Specifying Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
15879// in the Amazon Elastic Container Service Developer Guide.
15880type Secret struct {
15881	_ struct{} `type:"structure"`
15882
15883	// The name of the secret.
15884	//
15885	// Name is a required field
15886	Name *string `locationName:"name" type:"string" required:"true"`
15887
15888	// The secret to expose to the container. The supported values are either the
15889	// full ARN of the AWS Secrets Manager secret or the full ARN of the parameter
15890	// in the AWS Systems Manager Parameter Store.
15891	//
15892	// If the AWS Systems Manager Parameter Store parameter exists in the same Region
15893	// as the task you are launching, then you can use either the full ARN or name
15894	// of the parameter. If the parameter exists in a different Region, then the
15895	// full ARN must be specified.
15896	//
15897	// ValueFrom is a required field
15898	ValueFrom *string `locationName:"valueFrom" type:"string" required:"true"`
15899}
15900
15901// String returns the string representation
15902func (s Secret) String() string {
15903	return awsutil.Prettify(s)
15904}
15905
15906// GoString returns the string representation
15907func (s Secret) GoString() string {
15908	return s.String()
15909}
15910
15911// Validate inspects the fields of the type to determine if they are valid.
15912func (s *Secret) Validate() error {
15913	invalidParams := request.ErrInvalidParams{Context: "Secret"}
15914	if s.Name == nil {
15915		invalidParams.Add(request.NewErrParamRequired("Name"))
15916	}
15917	if s.ValueFrom == nil {
15918		invalidParams.Add(request.NewErrParamRequired("ValueFrom"))
15919	}
15920
15921	if invalidParams.Len() > 0 {
15922		return invalidParams
15923	}
15924	return nil
15925}
15926
15927// SetName sets the Name field's value.
15928func (s *Secret) SetName(v string) *Secret {
15929	s.Name = &v
15930	return s
15931}
15932
15933// SetValueFrom sets the ValueFrom field's value.
15934func (s *Secret) SetValueFrom(v string) *Secret {
15935	s.ValueFrom = &v
15936	return s
15937}
15938
15939// These errors are usually caused by a server issue.
15940type ServerException struct {
15941	_            struct{}                  `type:"structure"`
15942	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15943
15944	Message_ *string `locationName:"message" type:"string"`
15945}
15946
15947// String returns the string representation
15948func (s ServerException) String() string {
15949	return awsutil.Prettify(s)
15950}
15951
15952// GoString returns the string representation
15953func (s ServerException) GoString() string {
15954	return s.String()
15955}
15956
15957func newErrorServerException(v protocol.ResponseMetadata) error {
15958	return &ServerException{
15959		RespMetadata: v,
15960	}
15961}
15962
15963// Code returns the exception type name.
15964func (s *ServerException) Code() string {
15965	return "ServerException"
15966}
15967
15968// Message returns the exception's message.
15969func (s *ServerException) Message() string {
15970	if s.Message_ != nil {
15971		return *s.Message_
15972	}
15973	return ""
15974}
15975
15976// OrigErr always returns nil, satisfies awserr.Error interface.
15977func (s *ServerException) OrigErr() error {
15978	return nil
15979}
15980
15981func (s *ServerException) Error() string {
15982	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15983}
15984
15985// Status code returns the HTTP status code for the request's response error.
15986func (s *ServerException) StatusCode() int {
15987	return s.RespMetadata.StatusCode
15988}
15989
15990// RequestID returns the service's response RequestID for request.
15991func (s *ServerException) RequestID() string {
15992	return s.RespMetadata.RequestID
15993}
15994
15995// Details on a service within a cluster
15996type Service struct {
15997	_ struct{} `type:"structure"`
15998
15999	// The capacity provider strategy associated with the service.
16000	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
16001
16002	// The Amazon Resource Name (ARN) of the cluster that hosts the service.
16003	ClusterArn *string `locationName:"clusterArn" type:"string"`
16004
16005	// The Unix timestamp for when the service was created.
16006	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
16007
16008	// The principal that created the service.
16009	CreatedBy *string `locationName:"createdBy" type:"string"`
16010
16011	// Optional deployment parameters that control how many tasks run during the
16012	// deployment and the ordering of stopping and starting tasks.
16013	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
16014
16015	// The deployment controller type the service is using. When using the DescribeServices
16016	// API, this field is omitted if the service is using the ECS deployment controller
16017	// type.
16018	DeploymentController *DeploymentController `locationName:"deploymentController" type:"structure"`
16019
16020	// The current state of deployments for the service.
16021	Deployments []*Deployment `locationName:"deployments" type:"list"`
16022
16023	// The desired number of instantiations of the task definition to keep running
16024	// on the service. This value is specified when the service is created with
16025	// CreateService, and it can be modified with UpdateService.
16026	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
16027
16028	// Specifies whether to enable Amazon ECS managed tags for the tasks in the
16029	// service. For more information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
16030	// in the Amazon Elastic Container Service Developer Guide.
16031	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
16032
16033	// The event stream for your service. A maximum of 100 of the latest events
16034	// are displayed.
16035	Events []*ServiceEvent `locationName:"events" type:"list"`
16036
16037	// The period of time, in seconds, that the Amazon ECS service scheduler ignores
16038	// unhealthy Elastic Load Balancing target health checks after a task has first
16039	// started.
16040	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
16041
16042	// The launch type on which your service is running. If no value is specified,
16043	// it will default to EC2. Valid values include EC2 and FARGATE. For more information,
16044	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
16045	// in the Amazon Elastic Container Service Developer Guide.
16046	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
16047
16048	// A list of Elastic Load Balancing load balancer objects, containing the load
16049	// balancer name, the container name (as it appears in a container definition),
16050	// and the container port to access from the load balancer.
16051	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
16052
16053	// The VPC subnet and security group configuration for tasks that receive their
16054	// own elastic network interface by using the awsvpc networking mode.
16055	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
16056
16057	// The number of tasks in the cluster that are in the PENDING state.
16058	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
16059
16060	// The placement constraints for the tasks in the service.
16061	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
16062
16063	// The placement strategy that determines how tasks for the service are placed.
16064	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
16065
16066	// The platform version on which to run your service. A platform version is
16067	// only specified for tasks using the Fargate launch type. If one is not specified,
16068	// the LATEST platform version is used by default. For more information, see
16069	// AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
16070	// in the Amazon Elastic Container Service Developer Guide.
16071	PlatformVersion *string `locationName:"platformVersion" type:"string"`
16072
16073	// Specifies whether to propagate the tags from the task definition or the service
16074	// to the task. If no value is specified, the tags are not propagated.
16075	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
16076
16077	// The ARN of the IAM role associated with the service that allows the Amazon
16078	// ECS container agent to register container instances with an Elastic Load
16079	// Balancing load balancer.
16080	RoleArn *string `locationName:"roleArn" type:"string"`
16081
16082	// The number of tasks in the cluster that are in the RUNNING state.
16083	RunningCount *int64 `locationName:"runningCount" type:"integer"`
16084
16085	// The scheduling strategy to use for the service. For more information, see
16086	// Services (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).
16087	//
16088	// There are two service scheduler strategies available:
16089	//
16090	//    * REPLICA-The replica scheduling strategy places and maintains the desired
16091	//    number of tasks across your cluster. By default, the service scheduler
16092	//    spreads tasks across Availability Zones. You can use task placement strategies
16093	//    and constraints to customize task placement decisions.
16094	//
16095	//    * DAEMON-The daemon scheduling strategy deploys exactly one task on each
16096	//    active container instance that meets all of the task placement constraints
16097	//    that you specify in your cluster. The service scheduler also evaluates
16098	//    the task placement constraints for running tasks and will stop tasks that
16099	//    do not meet the placement constraints. Fargate tasks do not support the
16100	//    DAEMON scheduling strategy.
16101	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
16102
16103	// The ARN that identifies the service. The ARN contains the arn:aws:ecs namespace,
16104	// followed by the Region of the service, the AWS account ID of the service
16105	// owner, the service namespace, and then the service name. For example, arn:aws:ecs:region:012345678910:service/my-service.
16106	ServiceArn *string `locationName:"serviceArn" type:"string"`
16107
16108	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
16109	// and hyphens are allowed. Service names must be unique within a cluster, but
16110	// you can have similarly named services in multiple clusters within a Region
16111	// or across multiple Regions.
16112	ServiceName *string `locationName:"serviceName" type:"string"`
16113
16114	// The details of the service discovery registries to assign to this service.
16115	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
16116	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
16117
16118	// The status of the service. The valid values are ACTIVE, DRAINING, or INACTIVE.
16119	Status *string `locationName:"status" type:"string"`
16120
16121	// The metadata that you apply to the service to help you categorize and organize
16122	// them. Each tag consists of a key and an optional value, both of which you
16123	// define.
16124	//
16125	// The following basic restrictions apply to tags:
16126	//
16127	//    * Maximum number of tags per resource - 50
16128	//
16129	//    * For each resource, each tag key must be unique, and each tag key can
16130	//    have only one value.
16131	//
16132	//    * Maximum key length - 128 Unicode characters in UTF-8
16133	//
16134	//    * Maximum value length - 256 Unicode characters in UTF-8
16135	//
16136	//    * If your tagging schema is used across multiple services and resources,
16137	//    remember that other services may have restrictions on allowed characters.
16138	//    Generally allowed characters are: letters, numbers, and spaces representable
16139	//    in UTF-8, and the following characters: + - = . _ : / @.
16140	//
16141	//    * Tag keys and values are case-sensitive.
16142	//
16143	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
16144	//    as a prefix for either keys or values as it is reserved for AWS use. You
16145	//    cannot edit or delete tag keys or values with this prefix. Tags with this
16146	//    prefix do not count against your tags per resource limit.
16147	Tags []*Tag `locationName:"tags" type:"list"`
16148
16149	// The task definition to use for tasks in the service. This value is specified
16150	// when the service is created with CreateService, and it can be modified with
16151	// UpdateService.
16152	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
16153
16154	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
16155	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
16156	// desired number of tasks, how many tasks are running, and whether the task
16157	// set serves production traffic.
16158	TaskSets []*TaskSet `locationName:"taskSets" type:"list"`
16159}
16160
16161// String returns the string representation
16162func (s Service) String() string {
16163	return awsutil.Prettify(s)
16164}
16165
16166// GoString returns the string representation
16167func (s Service) GoString() string {
16168	return s.String()
16169}
16170
16171// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
16172func (s *Service) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Service {
16173	s.CapacityProviderStrategy = v
16174	return s
16175}
16176
16177// SetClusterArn sets the ClusterArn field's value.
16178func (s *Service) SetClusterArn(v string) *Service {
16179	s.ClusterArn = &v
16180	return s
16181}
16182
16183// SetCreatedAt sets the CreatedAt field's value.
16184func (s *Service) SetCreatedAt(v time.Time) *Service {
16185	s.CreatedAt = &v
16186	return s
16187}
16188
16189// SetCreatedBy sets the CreatedBy field's value.
16190func (s *Service) SetCreatedBy(v string) *Service {
16191	s.CreatedBy = &v
16192	return s
16193}
16194
16195// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
16196func (s *Service) SetDeploymentConfiguration(v *DeploymentConfiguration) *Service {
16197	s.DeploymentConfiguration = v
16198	return s
16199}
16200
16201// SetDeploymentController sets the DeploymentController field's value.
16202func (s *Service) SetDeploymentController(v *DeploymentController) *Service {
16203	s.DeploymentController = v
16204	return s
16205}
16206
16207// SetDeployments sets the Deployments field's value.
16208func (s *Service) SetDeployments(v []*Deployment) *Service {
16209	s.Deployments = v
16210	return s
16211}
16212
16213// SetDesiredCount sets the DesiredCount field's value.
16214func (s *Service) SetDesiredCount(v int64) *Service {
16215	s.DesiredCount = &v
16216	return s
16217}
16218
16219// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
16220func (s *Service) SetEnableECSManagedTags(v bool) *Service {
16221	s.EnableECSManagedTags = &v
16222	return s
16223}
16224
16225// SetEvents sets the Events field's value.
16226func (s *Service) SetEvents(v []*ServiceEvent) *Service {
16227	s.Events = v
16228	return s
16229}
16230
16231// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
16232func (s *Service) SetHealthCheckGracePeriodSeconds(v int64) *Service {
16233	s.HealthCheckGracePeriodSeconds = &v
16234	return s
16235}
16236
16237// SetLaunchType sets the LaunchType field's value.
16238func (s *Service) SetLaunchType(v string) *Service {
16239	s.LaunchType = &v
16240	return s
16241}
16242
16243// SetLoadBalancers sets the LoadBalancers field's value.
16244func (s *Service) SetLoadBalancers(v []*LoadBalancer) *Service {
16245	s.LoadBalancers = v
16246	return s
16247}
16248
16249// SetNetworkConfiguration sets the NetworkConfiguration field's value.
16250func (s *Service) SetNetworkConfiguration(v *NetworkConfiguration) *Service {
16251	s.NetworkConfiguration = v
16252	return s
16253}
16254
16255// SetPendingCount sets the PendingCount field's value.
16256func (s *Service) SetPendingCount(v int64) *Service {
16257	s.PendingCount = &v
16258	return s
16259}
16260
16261// SetPlacementConstraints sets the PlacementConstraints field's value.
16262func (s *Service) SetPlacementConstraints(v []*PlacementConstraint) *Service {
16263	s.PlacementConstraints = v
16264	return s
16265}
16266
16267// SetPlacementStrategy sets the PlacementStrategy field's value.
16268func (s *Service) SetPlacementStrategy(v []*PlacementStrategy) *Service {
16269	s.PlacementStrategy = v
16270	return s
16271}
16272
16273// SetPlatformVersion sets the PlatformVersion field's value.
16274func (s *Service) SetPlatformVersion(v string) *Service {
16275	s.PlatformVersion = &v
16276	return s
16277}
16278
16279// SetPropagateTags sets the PropagateTags field's value.
16280func (s *Service) SetPropagateTags(v string) *Service {
16281	s.PropagateTags = &v
16282	return s
16283}
16284
16285// SetRoleArn sets the RoleArn field's value.
16286func (s *Service) SetRoleArn(v string) *Service {
16287	s.RoleArn = &v
16288	return s
16289}
16290
16291// SetRunningCount sets the RunningCount field's value.
16292func (s *Service) SetRunningCount(v int64) *Service {
16293	s.RunningCount = &v
16294	return s
16295}
16296
16297// SetSchedulingStrategy sets the SchedulingStrategy field's value.
16298func (s *Service) SetSchedulingStrategy(v string) *Service {
16299	s.SchedulingStrategy = &v
16300	return s
16301}
16302
16303// SetServiceArn sets the ServiceArn field's value.
16304func (s *Service) SetServiceArn(v string) *Service {
16305	s.ServiceArn = &v
16306	return s
16307}
16308
16309// SetServiceName sets the ServiceName field's value.
16310func (s *Service) SetServiceName(v string) *Service {
16311	s.ServiceName = &v
16312	return s
16313}
16314
16315// SetServiceRegistries sets the ServiceRegistries field's value.
16316func (s *Service) SetServiceRegistries(v []*ServiceRegistry) *Service {
16317	s.ServiceRegistries = v
16318	return s
16319}
16320
16321// SetStatus sets the Status field's value.
16322func (s *Service) SetStatus(v string) *Service {
16323	s.Status = &v
16324	return s
16325}
16326
16327// SetTags sets the Tags field's value.
16328func (s *Service) SetTags(v []*Tag) *Service {
16329	s.Tags = v
16330	return s
16331}
16332
16333// SetTaskDefinition sets the TaskDefinition field's value.
16334func (s *Service) SetTaskDefinition(v string) *Service {
16335	s.TaskDefinition = &v
16336	return s
16337}
16338
16339// SetTaskSets sets the TaskSets field's value.
16340func (s *Service) SetTaskSets(v []*TaskSet) *Service {
16341	s.TaskSets = v
16342	return s
16343}
16344
16345// Details on an event associated with a service.
16346type ServiceEvent struct {
16347	_ struct{} `type:"structure"`
16348
16349	// The Unix timestamp for when the event was triggered.
16350	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
16351
16352	// The ID string of the event.
16353	Id *string `locationName:"id" type:"string"`
16354
16355	// The event message.
16356	Message *string `locationName:"message" type:"string"`
16357}
16358
16359// String returns the string representation
16360func (s ServiceEvent) String() string {
16361	return awsutil.Prettify(s)
16362}
16363
16364// GoString returns the string representation
16365func (s ServiceEvent) GoString() string {
16366	return s.String()
16367}
16368
16369// SetCreatedAt sets the CreatedAt field's value.
16370func (s *ServiceEvent) SetCreatedAt(v time.Time) *ServiceEvent {
16371	s.CreatedAt = &v
16372	return s
16373}
16374
16375// SetId sets the Id field's value.
16376func (s *ServiceEvent) SetId(v string) *ServiceEvent {
16377	s.Id = &v
16378	return s
16379}
16380
16381// SetMessage sets the Message field's value.
16382func (s *ServiceEvent) SetMessage(v string) *ServiceEvent {
16383	s.Message = &v
16384	return s
16385}
16386
16387// The specified service is not active. You can't update a service that is inactive.
16388// If you have previously deleted a service, you can re-create it with CreateService.
16389type ServiceNotActiveException struct {
16390	_            struct{}                  `type:"structure"`
16391	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16392
16393	Message_ *string `locationName:"message" type:"string"`
16394}
16395
16396// String returns the string representation
16397func (s ServiceNotActiveException) String() string {
16398	return awsutil.Prettify(s)
16399}
16400
16401// GoString returns the string representation
16402func (s ServiceNotActiveException) GoString() string {
16403	return s.String()
16404}
16405
16406func newErrorServiceNotActiveException(v protocol.ResponseMetadata) error {
16407	return &ServiceNotActiveException{
16408		RespMetadata: v,
16409	}
16410}
16411
16412// Code returns the exception type name.
16413func (s *ServiceNotActiveException) Code() string {
16414	return "ServiceNotActiveException"
16415}
16416
16417// Message returns the exception's message.
16418func (s *ServiceNotActiveException) Message() string {
16419	if s.Message_ != nil {
16420		return *s.Message_
16421	}
16422	return ""
16423}
16424
16425// OrigErr always returns nil, satisfies awserr.Error interface.
16426func (s *ServiceNotActiveException) OrigErr() error {
16427	return nil
16428}
16429
16430func (s *ServiceNotActiveException) Error() string {
16431	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16432}
16433
16434// Status code returns the HTTP status code for the request's response error.
16435func (s *ServiceNotActiveException) StatusCode() int {
16436	return s.RespMetadata.StatusCode
16437}
16438
16439// RequestID returns the service's response RequestID for request.
16440func (s *ServiceNotActiveException) RequestID() string {
16441	return s.RespMetadata.RequestID
16442}
16443
16444// The specified service could not be found. You can view your available services
16445// with ListServices. Amazon ECS services are cluster-specific and Region-specific.
16446type ServiceNotFoundException struct {
16447	_            struct{}                  `type:"structure"`
16448	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16449
16450	Message_ *string `locationName:"message" type:"string"`
16451}
16452
16453// String returns the string representation
16454func (s ServiceNotFoundException) String() string {
16455	return awsutil.Prettify(s)
16456}
16457
16458// GoString returns the string representation
16459func (s ServiceNotFoundException) GoString() string {
16460	return s.String()
16461}
16462
16463func newErrorServiceNotFoundException(v protocol.ResponseMetadata) error {
16464	return &ServiceNotFoundException{
16465		RespMetadata: v,
16466	}
16467}
16468
16469// Code returns the exception type name.
16470func (s *ServiceNotFoundException) Code() string {
16471	return "ServiceNotFoundException"
16472}
16473
16474// Message returns the exception's message.
16475func (s *ServiceNotFoundException) Message() string {
16476	if s.Message_ != nil {
16477		return *s.Message_
16478	}
16479	return ""
16480}
16481
16482// OrigErr always returns nil, satisfies awserr.Error interface.
16483func (s *ServiceNotFoundException) OrigErr() error {
16484	return nil
16485}
16486
16487func (s *ServiceNotFoundException) Error() string {
16488	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16489}
16490
16491// Status code returns the HTTP status code for the request's response error.
16492func (s *ServiceNotFoundException) StatusCode() int {
16493	return s.RespMetadata.StatusCode
16494}
16495
16496// RequestID returns the service's response RequestID for request.
16497func (s *ServiceNotFoundException) RequestID() string {
16498	return s.RespMetadata.RequestID
16499}
16500
16501// Details of the service registry.
16502type ServiceRegistry struct {
16503	_ struct{} `type:"structure"`
16504
16505	// The container name value, already specified in the task definition, to be
16506	// used for your service discovery service. If the task definition that your
16507	// service task specifies uses the bridge or host network mode, you must specify
16508	// a containerName and containerPort combination from the task definition. If
16509	// the task definition that your service task specifies uses the awsvpc network
16510	// mode and a type SRV DNS record is used, you must specify either a containerName
16511	// and containerPort combination or a port value, but not both.
16512	ContainerName *string `locationName:"containerName" type:"string"`
16513
16514	// The port value, already specified in the task definition, to be used for
16515	// your service discovery service. If the task definition your service task
16516	// specifies uses the bridge or host network mode, you must specify a containerName
16517	// and containerPort combination from the task definition. If the task definition
16518	// your service task specifies uses the awsvpc network mode and a type SRV DNS
16519	// record is used, you must specify either a containerName and containerPort
16520	// combination or a port value, but not both.
16521	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
16522
16523	// The port value used if your service discovery service specified an SRV record.
16524	// This field may be used if both the awsvpc network mode and SRV records are
16525	// used.
16526	Port *int64 `locationName:"port" type:"integer"`
16527
16528	// The Amazon Resource Name (ARN) of the service registry. The currently supported
16529	// service registry is AWS Cloud Map. For more information, see CreateService
16530	// (https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html).
16531	RegistryArn *string `locationName:"registryArn" type:"string"`
16532}
16533
16534// String returns the string representation
16535func (s ServiceRegistry) String() string {
16536	return awsutil.Prettify(s)
16537}
16538
16539// GoString returns the string representation
16540func (s ServiceRegistry) GoString() string {
16541	return s.String()
16542}
16543
16544// SetContainerName sets the ContainerName field's value.
16545func (s *ServiceRegistry) SetContainerName(v string) *ServiceRegistry {
16546	s.ContainerName = &v
16547	return s
16548}
16549
16550// SetContainerPort sets the ContainerPort field's value.
16551func (s *ServiceRegistry) SetContainerPort(v int64) *ServiceRegistry {
16552	s.ContainerPort = &v
16553	return s
16554}
16555
16556// SetPort sets the Port field's value.
16557func (s *ServiceRegistry) SetPort(v int64) *ServiceRegistry {
16558	s.Port = &v
16559	return s
16560}
16561
16562// SetRegistryArn sets the RegistryArn field's value.
16563func (s *ServiceRegistry) SetRegistryArn(v string) *ServiceRegistry {
16564	s.RegistryArn = &v
16565	return s
16566}
16567
16568// The current account setting for a resource.
16569type Setting struct {
16570	_ struct{} `type:"structure"`
16571
16572	// The Amazon ECS resource name.
16573	Name *string `locationName:"name" type:"string" enum:"SettingName"`
16574
16575	// The ARN of the principal, which can be an IAM user, IAM role, or the root
16576	// user. If this field is omitted, the authenticated user is assumed.
16577	PrincipalArn *string `locationName:"principalArn" type:"string"`
16578
16579	// Whether the account setting is enabled or disabled for the specified resource.
16580	Value *string `locationName:"value" type:"string"`
16581}
16582
16583// String returns the string representation
16584func (s Setting) String() string {
16585	return awsutil.Prettify(s)
16586}
16587
16588// GoString returns the string representation
16589func (s Setting) GoString() string {
16590	return s.String()
16591}
16592
16593// SetName sets the Name field's value.
16594func (s *Setting) SetName(v string) *Setting {
16595	s.Name = &v
16596	return s
16597}
16598
16599// SetPrincipalArn sets the PrincipalArn field's value.
16600func (s *Setting) SetPrincipalArn(v string) *Setting {
16601	s.PrincipalArn = &v
16602	return s
16603}
16604
16605// SetValue sets the Value field's value.
16606func (s *Setting) SetValue(v string) *Setting {
16607	s.Value = &v
16608	return s
16609}
16610
16611type StartTaskInput struct {
16612	_ struct{} `type:"structure"`
16613
16614	// The short name or full Amazon Resource Name (ARN) of the cluster on which
16615	// to start your task. If you do not specify a cluster, the default cluster
16616	// is assumed.
16617	Cluster *string `locationName:"cluster" type:"string"`
16618
16619	// The container instance IDs or full ARN entries for the container instances
16620	// on which you would like to place your task. You can specify up to 10 container
16621	// instances.
16622	//
16623	// ContainerInstances is a required field
16624	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
16625
16626	// Specifies whether to enable Amazon ECS managed tags for the task. For more
16627	// information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
16628	// in the Amazon Elastic Container Service Developer Guide.
16629	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
16630
16631	// The name of the task group to associate with the task. The default value
16632	// is the family name of the task definition (for example, family:my-family-name).
16633	Group *string `locationName:"group" type:"string"`
16634
16635	// The VPC subnet and security group configuration for tasks that receive their
16636	// own elastic network interface by using the awsvpc networking mode.
16637	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
16638
16639	// A list of container overrides in JSON format that specify the name of a container
16640	// in the specified task definition and the overrides it should receive. You
16641	// can override the default command for a container (that is specified in the
16642	// task definition or Docker image) with a command override. You can also override
16643	// existing environment variables (that are specified in the task definition
16644	// or Docker image) on a container or add new environment variables to it with
16645	// an environment override.
16646	//
16647	// A total of 8192 characters are allowed for overrides. This limit includes
16648	// the JSON formatting characters of the override structure.
16649	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
16650
16651	// Specifies whether to propagate the tags from the task definition or the service
16652	// to the task. If no value is specified, the tags are not propagated.
16653	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
16654
16655	// The reference ID to use for the task.
16656	ReferenceId *string `locationName:"referenceId" type:"string"`
16657
16658	// An optional tag specified when a task is started. For example, if you automatically
16659	// trigger a task to run a batch process job, you could apply a unique identifier
16660	// for that job to your task with the startedBy parameter. You can then identify
16661	// which tasks belong to that job by filtering the results of a ListTasks call
16662	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
16663	// hyphens, and underscores are allowed.
16664	//
16665	// If a task is started by an Amazon ECS service, then the startedBy parameter
16666	// contains the deployment ID of the service that starts it.
16667	StartedBy *string `locationName:"startedBy" type:"string"`
16668
16669	// The metadata that you apply to the task to help you categorize and organize
16670	// them. Each tag consists of a key and an optional value, both of which you
16671	// define.
16672	//
16673	// The following basic restrictions apply to tags:
16674	//
16675	//    * Maximum number of tags per resource - 50
16676	//
16677	//    * For each resource, each tag key must be unique, and each tag key can
16678	//    have only one value.
16679	//
16680	//    * Maximum key length - 128 Unicode characters in UTF-8
16681	//
16682	//    * Maximum value length - 256 Unicode characters in UTF-8
16683	//
16684	//    * If your tagging schema is used across multiple services and resources,
16685	//    remember that other services may have restrictions on allowed characters.
16686	//    Generally allowed characters are: letters, numbers, and spaces representable
16687	//    in UTF-8, and the following characters: + - = . _ : / @.
16688	//
16689	//    * Tag keys and values are case-sensitive.
16690	//
16691	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
16692	//    as a prefix for either keys or values as it is reserved for AWS use. You
16693	//    cannot edit or delete tag keys or values with this prefix. Tags with this
16694	//    prefix do not count against your tags per resource limit.
16695	Tags []*Tag `locationName:"tags" type:"list"`
16696
16697	// The family and revision (family:revision) or full ARN of the task definition
16698	// to start. If a revision is not specified, the latest ACTIVE revision is used.
16699	//
16700	// TaskDefinition is a required field
16701	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
16702}
16703
16704// String returns the string representation
16705func (s StartTaskInput) String() string {
16706	return awsutil.Prettify(s)
16707}
16708
16709// GoString returns the string representation
16710func (s StartTaskInput) GoString() string {
16711	return s.String()
16712}
16713
16714// Validate inspects the fields of the type to determine if they are valid.
16715func (s *StartTaskInput) Validate() error {
16716	invalidParams := request.ErrInvalidParams{Context: "StartTaskInput"}
16717	if s.ContainerInstances == nil {
16718		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
16719	}
16720	if s.TaskDefinition == nil {
16721		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
16722	}
16723	if s.NetworkConfiguration != nil {
16724		if err := s.NetworkConfiguration.Validate(); err != nil {
16725			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
16726		}
16727	}
16728	if s.Overrides != nil {
16729		if err := s.Overrides.Validate(); err != nil {
16730			invalidParams.AddNested("Overrides", err.(request.ErrInvalidParams))
16731		}
16732	}
16733	if s.Tags != nil {
16734		for i, v := range s.Tags {
16735			if v == nil {
16736				continue
16737			}
16738			if err := v.Validate(); err != nil {
16739				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
16740			}
16741		}
16742	}
16743
16744	if invalidParams.Len() > 0 {
16745		return invalidParams
16746	}
16747	return nil
16748}
16749
16750// SetCluster sets the Cluster field's value.
16751func (s *StartTaskInput) SetCluster(v string) *StartTaskInput {
16752	s.Cluster = &v
16753	return s
16754}
16755
16756// SetContainerInstances sets the ContainerInstances field's value.
16757func (s *StartTaskInput) SetContainerInstances(v []*string) *StartTaskInput {
16758	s.ContainerInstances = v
16759	return s
16760}
16761
16762// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
16763func (s *StartTaskInput) SetEnableECSManagedTags(v bool) *StartTaskInput {
16764	s.EnableECSManagedTags = &v
16765	return s
16766}
16767
16768// SetGroup sets the Group field's value.
16769func (s *StartTaskInput) SetGroup(v string) *StartTaskInput {
16770	s.Group = &v
16771	return s
16772}
16773
16774// SetNetworkConfiguration sets the NetworkConfiguration field's value.
16775func (s *StartTaskInput) SetNetworkConfiguration(v *NetworkConfiguration) *StartTaskInput {
16776	s.NetworkConfiguration = v
16777	return s
16778}
16779
16780// SetOverrides sets the Overrides field's value.
16781func (s *StartTaskInput) SetOverrides(v *TaskOverride) *StartTaskInput {
16782	s.Overrides = v
16783	return s
16784}
16785
16786// SetPropagateTags sets the PropagateTags field's value.
16787func (s *StartTaskInput) SetPropagateTags(v string) *StartTaskInput {
16788	s.PropagateTags = &v
16789	return s
16790}
16791
16792// SetReferenceId sets the ReferenceId field's value.
16793func (s *StartTaskInput) SetReferenceId(v string) *StartTaskInput {
16794	s.ReferenceId = &v
16795	return s
16796}
16797
16798// SetStartedBy sets the StartedBy field's value.
16799func (s *StartTaskInput) SetStartedBy(v string) *StartTaskInput {
16800	s.StartedBy = &v
16801	return s
16802}
16803
16804// SetTags sets the Tags field's value.
16805func (s *StartTaskInput) SetTags(v []*Tag) *StartTaskInput {
16806	s.Tags = v
16807	return s
16808}
16809
16810// SetTaskDefinition sets the TaskDefinition field's value.
16811func (s *StartTaskInput) SetTaskDefinition(v string) *StartTaskInput {
16812	s.TaskDefinition = &v
16813	return s
16814}
16815
16816type StartTaskOutput struct {
16817	_ struct{} `type:"structure"`
16818
16819	// Any failures associated with the call.
16820	Failures []*Failure `locationName:"failures" type:"list"`
16821
16822	// A full description of the tasks that were started. Each task that was successfully
16823	// placed on your container instances is described.
16824	Tasks []*Task `locationName:"tasks" type:"list"`
16825}
16826
16827// String returns the string representation
16828func (s StartTaskOutput) String() string {
16829	return awsutil.Prettify(s)
16830}
16831
16832// GoString returns the string representation
16833func (s StartTaskOutput) GoString() string {
16834	return s.String()
16835}
16836
16837// SetFailures sets the Failures field's value.
16838func (s *StartTaskOutput) SetFailures(v []*Failure) *StartTaskOutput {
16839	s.Failures = v
16840	return s
16841}
16842
16843// SetTasks sets the Tasks field's value.
16844func (s *StartTaskOutput) SetTasks(v []*Task) *StartTaskOutput {
16845	s.Tasks = v
16846	return s
16847}
16848
16849type StopTaskInput struct {
16850	_ struct{} `type:"structure"`
16851
16852	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
16853	// the task to stop. If you do not specify a cluster, the default cluster is
16854	// assumed.
16855	Cluster *string `locationName:"cluster" type:"string"`
16856
16857	// An optional message specified when a task is stopped. For example, if you
16858	// are using a custom scheduler, you can use this parameter to specify the reason
16859	// for stopping the task here, and the message appears in subsequent DescribeTasks
16860	// API operations on this task. Up to 255 characters are allowed in this message.
16861	Reason *string `locationName:"reason" type:"string"`
16862
16863	// The task ID or full Amazon Resource Name (ARN) of the task to stop.
16864	//
16865	// Task is a required field
16866	Task *string `locationName:"task" type:"string" required:"true"`
16867}
16868
16869// String returns the string representation
16870func (s StopTaskInput) String() string {
16871	return awsutil.Prettify(s)
16872}
16873
16874// GoString returns the string representation
16875func (s StopTaskInput) GoString() string {
16876	return s.String()
16877}
16878
16879// Validate inspects the fields of the type to determine if they are valid.
16880func (s *StopTaskInput) Validate() error {
16881	invalidParams := request.ErrInvalidParams{Context: "StopTaskInput"}
16882	if s.Task == nil {
16883		invalidParams.Add(request.NewErrParamRequired("Task"))
16884	}
16885
16886	if invalidParams.Len() > 0 {
16887		return invalidParams
16888	}
16889	return nil
16890}
16891
16892// SetCluster sets the Cluster field's value.
16893func (s *StopTaskInput) SetCluster(v string) *StopTaskInput {
16894	s.Cluster = &v
16895	return s
16896}
16897
16898// SetReason sets the Reason field's value.
16899func (s *StopTaskInput) SetReason(v string) *StopTaskInput {
16900	s.Reason = &v
16901	return s
16902}
16903
16904// SetTask sets the Task field's value.
16905func (s *StopTaskInput) SetTask(v string) *StopTaskInput {
16906	s.Task = &v
16907	return s
16908}
16909
16910type StopTaskOutput struct {
16911	_ struct{} `type:"structure"`
16912
16913	// The task that was stopped.
16914	Task *Task `locationName:"task" type:"structure"`
16915}
16916
16917// String returns the string representation
16918func (s StopTaskOutput) String() string {
16919	return awsutil.Prettify(s)
16920}
16921
16922// GoString returns the string representation
16923func (s StopTaskOutput) GoString() string {
16924	return s.String()
16925}
16926
16927// SetTask sets the Task field's value.
16928func (s *StopTaskOutput) SetTask(v *Task) *StopTaskOutput {
16929	s.Task = v
16930	return s
16931}
16932
16933type SubmitAttachmentStateChangesInput struct {
16934	_ struct{} `type:"structure"`
16935
16936	// Any attachments associated with the state change request.
16937	//
16938	// Attachments is a required field
16939	Attachments []*AttachmentStateChange `locationName:"attachments" type:"list" required:"true"`
16940
16941	// The short name or full ARN of the cluster that hosts the container instance
16942	// the attachment belongs to.
16943	Cluster *string `locationName:"cluster" type:"string"`
16944}
16945
16946// String returns the string representation
16947func (s SubmitAttachmentStateChangesInput) String() string {
16948	return awsutil.Prettify(s)
16949}
16950
16951// GoString returns the string representation
16952func (s SubmitAttachmentStateChangesInput) GoString() string {
16953	return s.String()
16954}
16955
16956// Validate inspects the fields of the type to determine if they are valid.
16957func (s *SubmitAttachmentStateChangesInput) Validate() error {
16958	invalidParams := request.ErrInvalidParams{Context: "SubmitAttachmentStateChangesInput"}
16959	if s.Attachments == nil {
16960		invalidParams.Add(request.NewErrParamRequired("Attachments"))
16961	}
16962	if s.Attachments != nil {
16963		for i, v := range s.Attachments {
16964			if v == nil {
16965				continue
16966			}
16967			if err := v.Validate(); err != nil {
16968				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams))
16969			}
16970		}
16971	}
16972
16973	if invalidParams.Len() > 0 {
16974		return invalidParams
16975	}
16976	return nil
16977}
16978
16979// SetAttachments sets the Attachments field's value.
16980func (s *SubmitAttachmentStateChangesInput) SetAttachments(v []*AttachmentStateChange) *SubmitAttachmentStateChangesInput {
16981	s.Attachments = v
16982	return s
16983}
16984
16985// SetCluster sets the Cluster field's value.
16986func (s *SubmitAttachmentStateChangesInput) SetCluster(v string) *SubmitAttachmentStateChangesInput {
16987	s.Cluster = &v
16988	return s
16989}
16990
16991type SubmitAttachmentStateChangesOutput struct {
16992	_ struct{} `type:"structure"`
16993
16994	// Acknowledgement of the state change.
16995	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
16996}
16997
16998// String returns the string representation
16999func (s SubmitAttachmentStateChangesOutput) String() string {
17000	return awsutil.Prettify(s)
17001}
17002
17003// GoString returns the string representation
17004func (s SubmitAttachmentStateChangesOutput) GoString() string {
17005	return s.String()
17006}
17007
17008// SetAcknowledgment sets the Acknowledgment field's value.
17009func (s *SubmitAttachmentStateChangesOutput) SetAcknowledgment(v string) *SubmitAttachmentStateChangesOutput {
17010	s.Acknowledgment = &v
17011	return s
17012}
17013
17014type SubmitContainerStateChangeInput struct {
17015	_ struct{} `type:"structure"`
17016
17017	// The short name or full ARN of the cluster that hosts the container.
17018	Cluster *string `locationName:"cluster" type:"string"`
17019
17020	// The name of the container.
17021	ContainerName *string `locationName:"containerName" type:"string"`
17022
17023	// The exit code returned for the state change request.
17024	ExitCode *int64 `locationName:"exitCode" type:"integer"`
17025
17026	// The network bindings of the container.
17027	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
17028
17029	// The reason for the state change request.
17030	Reason *string `locationName:"reason" type:"string"`
17031
17032	// The ID of the Docker container.
17033	RuntimeId *string `locationName:"runtimeId" type:"string"`
17034
17035	// The status of the state change request.
17036	Status *string `locationName:"status" type:"string"`
17037
17038	// The task ID or full Amazon Resource Name (ARN) of the task that hosts the
17039	// container.
17040	Task *string `locationName:"task" type:"string"`
17041}
17042
17043// String returns the string representation
17044func (s SubmitContainerStateChangeInput) String() string {
17045	return awsutil.Prettify(s)
17046}
17047
17048// GoString returns the string representation
17049func (s SubmitContainerStateChangeInput) GoString() string {
17050	return s.String()
17051}
17052
17053// SetCluster sets the Cluster field's value.
17054func (s *SubmitContainerStateChangeInput) SetCluster(v string) *SubmitContainerStateChangeInput {
17055	s.Cluster = &v
17056	return s
17057}
17058
17059// SetContainerName sets the ContainerName field's value.
17060func (s *SubmitContainerStateChangeInput) SetContainerName(v string) *SubmitContainerStateChangeInput {
17061	s.ContainerName = &v
17062	return s
17063}
17064
17065// SetExitCode sets the ExitCode field's value.
17066func (s *SubmitContainerStateChangeInput) SetExitCode(v int64) *SubmitContainerStateChangeInput {
17067	s.ExitCode = &v
17068	return s
17069}
17070
17071// SetNetworkBindings sets the NetworkBindings field's value.
17072func (s *SubmitContainerStateChangeInput) SetNetworkBindings(v []*NetworkBinding) *SubmitContainerStateChangeInput {
17073	s.NetworkBindings = v
17074	return s
17075}
17076
17077// SetReason sets the Reason field's value.
17078func (s *SubmitContainerStateChangeInput) SetReason(v string) *SubmitContainerStateChangeInput {
17079	s.Reason = &v
17080	return s
17081}
17082
17083// SetRuntimeId sets the RuntimeId field's value.
17084func (s *SubmitContainerStateChangeInput) SetRuntimeId(v string) *SubmitContainerStateChangeInput {
17085	s.RuntimeId = &v
17086	return s
17087}
17088
17089// SetStatus sets the Status field's value.
17090func (s *SubmitContainerStateChangeInput) SetStatus(v string) *SubmitContainerStateChangeInput {
17091	s.Status = &v
17092	return s
17093}
17094
17095// SetTask sets the Task field's value.
17096func (s *SubmitContainerStateChangeInput) SetTask(v string) *SubmitContainerStateChangeInput {
17097	s.Task = &v
17098	return s
17099}
17100
17101type SubmitContainerStateChangeOutput struct {
17102	_ struct{} `type:"structure"`
17103
17104	// Acknowledgement of the state change.
17105	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
17106}
17107
17108// String returns the string representation
17109func (s SubmitContainerStateChangeOutput) String() string {
17110	return awsutil.Prettify(s)
17111}
17112
17113// GoString returns the string representation
17114func (s SubmitContainerStateChangeOutput) GoString() string {
17115	return s.String()
17116}
17117
17118// SetAcknowledgment sets the Acknowledgment field's value.
17119func (s *SubmitContainerStateChangeOutput) SetAcknowledgment(v string) *SubmitContainerStateChangeOutput {
17120	s.Acknowledgment = &v
17121	return s
17122}
17123
17124type SubmitTaskStateChangeInput struct {
17125	_ struct{} `type:"structure"`
17126
17127	// Any attachments associated with the state change request.
17128	Attachments []*AttachmentStateChange `locationName:"attachments" type:"list"`
17129
17130	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
17131	// the task.
17132	Cluster *string `locationName:"cluster" type:"string"`
17133
17134	// Any containers associated with the state change request.
17135	Containers []*ContainerStateChange `locationName:"containers" type:"list"`
17136
17137	// The Unix timestamp for when the task execution stopped.
17138	ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"`
17139
17140	// The Unix timestamp for when the container image pull began.
17141	PullStartedAt *time.Time `locationName:"pullStartedAt" type:"timestamp"`
17142
17143	// The Unix timestamp for when the container image pull completed.
17144	PullStoppedAt *time.Time `locationName:"pullStoppedAt" type:"timestamp"`
17145
17146	// The reason for the state change request.
17147	Reason *string `locationName:"reason" type:"string"`
17148
17149	// The status of the state change request.
17150	Status *string `locationName:"status" type:"string"`
17151
17152	// The task ID or full ARN of the task in the state change request.
17153	Task *string `locationName:"task" type:"string"`
17154}
17155
17156// String returns the string representation
17157func (s SubmitTaskStateChangeInput) String() string {
17158	return awsutil.Prettify(s)
17159}
17160
17161// GoString returns the string representation
17162func (s SubmitTaskStateChangeInput) GoString() string {
17163	return s.String()
17164}
17165
17166// Validate inspects the fields of the type to determine if they are valid.
17167func (s *SubmitTaskStateChangeInput) Validate() error {
17168	invalidParams := request.ErrInvalidParams{Context: "SubmitTaskStateChangeInput"}
17169	if s.Attachments != nil {
17170		for i, v := range s.Attachments {
17171			if v == nil {
17172				continue
17173			}
17174			if err := v.Validate(); err != nil {
17175				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams))
17176			}
17177		}
17178	}
17179
17180	if invalidParams.Len() > 0 {
17181		return invalidParams
17182	}
17183	return nil
17184}
17185
17186// SetAttachments sets the Attachments field's value.
17187func (s *SubmitTaskStateChangeInput) SetAttachments(v []*AttachmentStateChange) *SubmitTaskStateChangeInput {
17188	s.Attachments = v
17189	return s
17190}
17191
17192// SetCluster sets the Cluster field's value.
17193func (s *SubmitTaskStateChangeInput) SetCluster(v string) *SubmitTaskStateChangeInput {
17194	s.Cluster = &v
17195	return s
17196}
17197
17198// SetContainers sets the Containers field's value.
17199func (s *SubmitTaskStateChangeInput) SetContainers(v []*ContainerStateChange) *SubmitTaskStateChangeInput {
17200	s.Containers = v
17201	return s
17202}
17203
17204// SetExecutionStoppedAt sets the ExecutionStoppedAt field's value.
17205func (s *SubmitTaskStateChangeInput) SetExecutionStoppedAt(v time.Time) *SubmitTaskStateChangeInput {
17206	s.ExecutionStoppedAt = &v
17207	return s
17208}
17209
17210// SetPullStartedAt sets the PullStartedAt field's value.
17211func (s *SubmitTaskStateChangeInput) SetPullStartedAt(v time.Time) *SubmitTaskStateChangeInput {
17212	s.PullStartedAt = &v
17213	return s
17214}
17215
17216// SetPullStoppedAt sets the PullStoppedAt field's value.
17217func (s *SubmitTaskStateChangeInput) SetPullStoppedAt(v time.Time) *SubmitTaskStateChangeInput {
17218	s.PullStoppedAt = &v
17219	return s
17220}
17221
17222// SetReason sets the Reason field's value.
17223func (s *SubmitTaskStateChangeInput) SetReason(v string) *SubmitTaskStateChangeInput {
17224	s.Reason = &v
17225	return s
17226}
17227
17228// SetStatus sets the Status field's value.
17229func (s *SubmitTaskStateChangeInput) SetStatus(v string) *SubmitTaskStateChangeInput {
17230	s.Status = &v
17231	return s
17232}
17233
17234// SetTask sets the Task field's value.
17235func (s *SubmitTaskStateChangeInput) SetTask(v string) *SubmitTaskStateChangeInput {
17236	s.Task = &v
17237	return s
17238}
17239
17240type SubmitTaskStateChangeOutput struct {
17241	_ struct{} `type:"structure"`
17242
17243	// Acknowledgement of the state change.
17244	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
17245}
17246
17247// String returns the string representation
17248func (s SubmitTaskStateChangeOutput) String() string {
17249	return awsutil.Prettify(s)
17250}
17251
17252// GoString returns the string representation
17253func (s SubmitTaskStateChangeOutput) GoString() string {
17254	return s.String()
17255}
17256
17257// SetAcknowledgment sets the Acknowledgment field's value.
17258func (s *SubmitTaskStateChangeOutput) SetAcknowledgment(v string) *SubmitTaskStateChangeOutput {
17259	s.Acknowledgment = &v
17260	return s
17261}
17262
17263// A list of namespaced kernel parameters to set in the container. This parameter
17264// maps to Sysctls in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
17265// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
17266// and the --sysctl option to docker run (https://docs.docker.com/engine/reference/run/).
17267//
17268// It is not recommended that you specify network-related systemControls parameters
17269// for multiple containers in a single task that also uses either the awsvpc
17270// or host network mode for the following reasons:
17271//
17272//    * For tasks that use the awsvpc network mode, if you set systemControls
17273//    for any container, it applies to all containers in the task. If you set
17274//    different systemControls for multiple containers in a single task, the
17275//    container that is started last determines which systemControls take effect.
17276//
17277//    * For tasks that use the host network mode, the systemControls parameter
17278//    applies to the container instance's kernel parameter as well as that of
17279//    all containers of any tasks running on that container instance.
17280type SystemControl struct {
17281	_ struct{} `type:"structure"`
17282
17283	// The namespaced kernel parameter for which to set a value.
17284	Namespace *string `locationName:"namespace" type:"string"`
17285
17286	// The value for the namespaced kernel parameter specified in namespace.
17287	Value *string `locationName:"value" type:"string"`
17288}
17289
17290// String returns the string representation
17291func (s SystemControl) String() string {
17292	return awsutil.Prettify(s)
17293}
17294
17295// GoString returns the string representation
17296func (s SystemControl) GoString() string {
17297	return s.String()
17298}
17299
17300// SetNamespace sets the Namespace field's value.
17301func (s *SystemControl) SetNamespace(v string) *SystemControl {
17302	s.Namespace = &v
17303	return s
17304}
17305
17306// SetValue sets the Value field's value.
17307func (s *SystemControl) SetValue(v string) *SystemControl {
17308	s.Value = &v
17309	return s
17310}
17311
17312// The metadata that you apply to a resource to help you categorize and organize
17313// them. Each tag consists of a key and an optional value, both of which you
17314// define.
17315//
17316// The following basic restrictions apply to tags:
17317//
17318//    * Maximum number of tags per resource - 50
17319//
17320//    * For each resource, each tag key must be unique, and each tag key can
17321//    have only one value.
17322//
17323//    * Maximum key length - 128 Unicode characters in UTF-8
17324//
17325//    * Maximum value length - 256 Unicode characters in UTF-8
17326//
17327//    * If your tagging schema is used across multiple services and resources,
17328//    remember that other services may have restrictions on allowed characters.
17329//    Generally allowed characters are: letters, numbers, and spaces representable
17330//    in UTF-8, and the following characters: + - = . _ : / @.
17331//
17332//    * Tag keys and values are case-sensitive.
17333//
17334//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
17335//    as a prefix for either keys or values as it is reserved for AWS use. You
17336//    cannot edit or delete tag keys or values with this prefix. Tags with this
17337//    prefix do not count against your tags per resource limit.
17338type Tag struct {
17339	_ struct{} `type:"structure"`
17340
17341	// One part of a key-value pair that make up a tag. A key is a general label
17342	// that acts like a category for more specific tag values.
17343	Key *string `locationName:"key" min:"1" type:"string"`
17344
17345	// The optional part of a key-value pair that make up a tag. A value acts as
17346	// a descriptor within a tag category (key).
17347	Value *string `locationName:"value" type:"string"`
17348}
17349
17350// String returns the string representation
17351func (s Tag) String() string {
17352	return awsutil.Prettify(s)
17353}
17354
17355// GoString returns the string representation
17356func (s Tag) GoString() string {
17357	return s.String()
17358}
17359
17360// Validate inspects the fields of the type to determine if they are valid.
17361func (s *Tag) Validate() error {
17362	invalidParams := request.ErrInvalidParams{Context: "Tag"}
17363	if s.Key != nil && len(*s.Key) < 1 {
17364		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
17365	}
17366
17367	if invalidParams.Len() > 0 {
17368		return invalidParams
17369	}
17370	return nil
17371}
17372
17373// SetKey sets the Key field's value.
17374func (s *Tag) SetKey(v string) *Tag {
17375	s.Key = &v
17376	return s
17377}
17378
17379// SetValue sets the Value field's value.
17380func (s *Tag) SetValue(v string) *Tag {
17381	s.Value = &v
17382	return s
17383}
17384
17385type TagResourceInput struct {
17386	_ struct{} `type:"structure"`
17387
17388	// The Amazon Resource Name (ARN) of the resource to which to add tags. Currently,
17389	// the supported resources are Amazon ECS capacity providers, tasks, services,
17390	// task definitions, clusters, and container instances.
17391	//
17392	// ResourceArn is a required field
17393	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
17394
17395	// The tags to add to the resource. A tag is an array of key-value pairs.
17396	//
17397	// The following basic restrictions apply to tags:
17398	//
17399	//    * Maximum number of tags per resource - 50
17400	//
17401	//    * For each resource, each tag key must be unique, and each tag key can
17402	//    have only one value.
17403	//
17404	//    * Maximum key length - 128 Unicode characters in UTF-8
17405	//
17406	//    * Maximum value length - 256 Unicode characters in UTF-8
17407	//
17408	//    * If your tagging schema is used across multiple services and resources,
17409	//    remember that other services may have restrictions on allowed characters.
17410	//    Generally allowed characters are: letters, numbers, and spaces representable
17411	//    in UTF-8, and the following characters: + - = . _ : / @.
17412	//
17413	//    * Tag keys and values are case-sensitive.
17414	//
17415	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
17416	//    as a prefix for either keys or values as it is reserved for AWS use. You
17417	//    cannot edit or delete tag keys or values with this prefix. Tags with this
17418	//    prefix do not count against your tags per resource limit.
17419	//
17420	// Tags is a required field
17421	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
17422}
17423
17424// String returns the string representation
17425func (s TagResourceInput) String() string {
17426	return awsutil.Prettify(s)
17427}
17428
17429// GoString returns the string representation
17430func (s TagResourceInput) GoString() string {
17431	return s.String()
17432}
17433
17434// Validate inspects the fields of the type to determine if they are valid.
17435func (s *TagResourceInput) Validate() error {
17436	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
17437	if s.ResourceArn == nil {
17438		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
17439	}
17440	if s.Tags == nil {
17441		invalidParams.Add(request.NewErrParamRequired("Tags"))
17442	}
17443	if s.Tags != nil {
17444		for i, v := range s.Tags {
17445			if v == nil {
17446				continue
17447			}
17448			if err := v.Validate(); err != nil {
17449				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
17450			}
17451		}
17452	}
17453
17454	if invalidParams.Len() > 0 {
17455		return invalidParams
17456	}
17457	return nil
17458}
17459
17460// SetResourceArn sets the ResourceArn field's value.
17461func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
17462	s.ResourceArn = &v
17463	return s
17464}
17465
17466// SetTags sets the Tags field's value.
17467func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
17468	s.Tags = v
17469	return s
17470}
17471
17472type TagResourceOutput struct {
17473	_ struct{} `type:"structure"`
17474}
17475
17476// String returns the string representation
17477func (s TagResourceOutput) String() string {
17478	return awsutil.Prettify(s)
17479}
17480
17481// GoString returns the string representation
17482func (s TagResourceOutput) GoString() string {
17483	return s.String()
17484}
17485
17486// The specified target could not be found. You can view your available container
17487// instances with ListContainerInstances. Amazon ECS container instances are
17488// cluster-specific and Region-specific.
17489type TargetNotFoundException struct {
17490	_            struct{}                  `type:"structure"`
17491	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17492
17493	Message_ *string `locationName:"message" type:"string"`
17494}
17495
17496// String returns the string representation
17497func (s TargetNotFoundException) String() string {
17498	return awsutil.Prettify(s)
17499}
17500
17501// GoString returns the string representation
17502func (s TargetNotFoundException) GoString() string {
17503	return s.String()
17504}
17505
17506func newErrorTargetNotFoundException(v protocol.ResponseMetadata) error {
17507	return &TargetNotFoundException{
17508		RespMetadata: v,
17509	}
17510}
17511
17512// Code returns the exception type name.
17513func (s *TargetNotFoundException) Code() string {
17514	return "TargetNotFoundException"
17515}
17516
17517// Message returns the exception's message.
17518func (s *TargetNotFoundException) Message() string {
17519	if s.Message_ != nil {
17520		return *s.Message_
17521	}
17522	return ""
17523}
17524
17525// OrigErr always returns nil, satisfies awserr.Error interface.
17526func (s *TargetNotFoundException) OrigErr() error {
17527	return nil
17528}
17529
17530func (s *TargetNotFoundException) Error() string {
17531	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
17532}
17533
17534// Status code returns the HTTP status code for the request's response error.
17535func (s *TargetNotFoundException) StatusCode() int {
17536	return s.RespMetadata.StatusCode
17537}
17538
17539// RequestID returns the service's response RequestID for request.
17540func (s *TargetNotFoundException) RequestID() string {
17541	return s.RespMetadata.RequestID
17542}
17543
17544// Details on a task in a cluster.
17545type Task struct {
17546	_ struct{} `type:"structure"`
17547
17548	// The Elastic Network Adapter associated with the task if the task uses the
17549	// awsvpc network mode.
17550	Attachments []*Attachment `locationName:"attachments" type:"list"`
17551
17552	// The attributes of the task
17553	Attributes []*Attribute `locationName:"attributes" type:"list"`
17554
17555	// The availability zone of the task.
17556	AvailabilityZone *string `locationName:"availabilityZone" type:"string"`
17557
17558	// The capacity provider associated with the task.
17559	CapacityProviderName *string `locationName:"capacityProviderName" type:"string"`
17560
17561	// The ARN of the cluster that hosts the task.
17562	ClusterArn *string `locationName:"clusterArn" type:"string"`
17563
17564	// The connectivity status of a task.
17565	Connectivity *string `locationName:"connectivity" type:"string" enum:"Connectivity"`
17566
17567	// The Unix timestamp for when the task last went into CONNECTED status.
17568	ConnectivityAt *time.Time `locationName:"connectivityAt" type:"timestamp"`
17569
17570	// The ARN of the container instances that host the task.
17571	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
17572
17573	// The containers associated with the task.
17574	Containers []*Container `locationName:"containers" type:"list"`
17575
17576	// The number of CPU units used by the task as expressed in a task definition.
17577	// It can be expressed as an integer using CPU units, for example 1024. It can
17578	// also be expressed as a string using vCPUs, for example 1 vCPU or 1 vcpu.
17579	// String values are converted to an integer indicating the CPU units when the
17580	// task definition is registered.
17581	//
17582	// If you are using the EC2 launch type, this field is optional. Supported values
17583	// are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).
17584	//
17585	// If you are using the Fargate launch type, this field is required and you
17586	// must use one of the following values, which determines your range of supported
17587	// values for the memory parameter:
17588	//
17589	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
17590	//    2048 (2 GB)
17591	//
17592	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
17593	//    (3 GB), 4096 (4 GB)
17594	//
17595	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
17596	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
17597	//
17598	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
17599	//    (16 GB) in increments of 1024 (1 GB)
17600	//
17601	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
17602	//    (30 GB) in increments of 1024 (1 GB)
17603	Cpu *string `locationName:"cpu" type:"string"`
17604
17605	// The Unix timestamp for when the task was created (the task entered the PENDING
17606	// state).
17607	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
17608
17609	// The desired status of the task. For more information, see Task Lifecycle
17610	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html).
17611	DesiredStatus *string `locationName:"desiredStatus" type:"string"`
17612
17613	// The Unix timestamp for when the task execution stopped.
17614	ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"`
17615
17616	// The name of the task group associated with the task.
17617	Group *string `locationName:"group" type:"string"`
17618
17619	// The health status for the task, which is determined by the health of the
17620	// essential containers in the task. If all essential containers in the task
17621	// are reporting as HEALTHY, then the task status also reports as HEALTHY. If
17622	// any essential containers in the task are reporting as UNHEALTHY or UNKNOWN,
17623	// then the task status also reports as UNHEALTHY or UNKNOWN, accordingly.
17624	//
17625	// The Amazon ECS container agent does not monitor or report on Docker health
17626	// checks that are embedded in a container image (such as those specified in
17627	// a parent image or from the image's Dockerfile) and not specified in the container
17628	// definition. Health check parameters that are specified in a container definition
17629	// override any Docker health checks that exist in the container image.
17630	HealthStatus *string `locationName:"healthStatus" type:"string" enum:"HealthStatus"`
17631
17632	// The Elastic Inference accelerator associated with the task.
17633	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
17634
17635	// The last known status of the task. For more information, see Task Lifecycle
17636	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html).
17637	LastStatus *string `locationName:"lastStatus" type:"string"`
17638
17639	// The launch type on which your task is running. For more information, see
17640	// Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
17641	// in the Amazon Elastic Container Service Developer Guide.
17642	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
17643
17644	// The amount of memory (in MiB) used by the task as expressed in a task definition.
17645	// It can be expressed as an integer using MiB, for example 1024. It can also
17646	// be expressed as a string using GB, for example 1GB or 1 GB. String values
17647	// are converted to an integer indicating the MiB when the task definition is
17648	// registered.
17649	//
17650	// If you are using the EC2 launch type, this field is optional.
17651	//
17652	// If you are using the Fargate launch type, this field is required and you
17653	// must use one of the following values, which determines your range of supported
17654	// values for the cpu parameter:
17655	//
17656	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
17657	//    vCPU)
17658	//
17659	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
17660	//    512 (.5 vCPU)
17661	//
17662	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
17663	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
17664	//
17665	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
17666	//    Available cpu values: 2048 (2 vCPU)
17667	//
17668	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
17669	//    Available cpu values: 4096 (4 vCPU)
17670	Memory *string `locationName:"memory" type:"string"`
17671
17672	// One or more container overrides.
17673	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
17674
17675	// The platform version on which your task is running. A platform version is
17676	// only specified for tasks using the Fargate launch type. If one is not specified,
17677	// the LATEST platform version is used by default. For more information, see
17678	// AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
17679	// in the Amazon Elastic Container Service Developer Guide.
17680	PlatformVersion *string `locationName:"platformVersion" type:"string"`
17681
17682	// The Unix timestamp for when the container image pull began.
17683	PullStartedAt *time.Time `locationName:"pullStartedAt" type:"timestamp"`
17684
17685	// The Unix timestamp for when the container image pull completed.
17686	PullStoppedAt *time.Time `locationName:"pullStoppedAt" type:"timestamp"`
17687
17688	// The Unix timestamp for when the task started (the task transitioned from
17689	// the PENDING state to the RUNNING state).
17690	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
17691
17692	// The tag specified when a task is started. If the task is started by an Amazon
17693	// ECS service, then the startedBy parameter contains the deployment ID of the
17694	// service that starts it.
17695	StartedBy *string `locationName:"startedBy" type:"string"`
17696
17697	// The stop code indicating why a task was stopped. The stoppedReason may contain
17698	// additional details.
17699	StopCode *string `locationName:"stopCode" type:"string" enum:"TaskStopCode"`
17700
17701	// The Unix timestamp for when the task was stopped (the task transitioned from
17702	// the RUNNING state to the STOPPED state).
17703	StoppedAt *time.Time `locationName:"stoppedAt" type:"timestamp"`
17704
17705	// The reason that the task was stopped.
17706	StoppedReason *string `locationName:"stoppedReason" type:"string"`
17707
17708	// The Unix timestamp for when the task stops (transitions from the RUNNING
17709	// state to STOPPED).
17710	StoppingAt *time.Time `locationName:"stoppingAt" type:"timestamp"`
17711
17712	// The metadata that you apply to the task to help you categorize and organize
17713	// them. Each tag consists of a key and an optional value, both of which you
17714	// define.
17715	//
17716	// The following basic restrictions apply to tags:
17717	//
17718	//    * Maximum number of tags per resource - 50
17719	//
17720	//    * For each resource, each tag key must be unique, and each tag key can
17721	//    have only one value.
17722	//
17723	//    * Maximum key length - 128 Unicode characters in UTF-8
17724	//
17725	//    * Maximum value length - 256 Unicode characters in UTF-8
17726	//
17727	//    * If your tagging schema is used across multiple services and resources,
17728	//    remember that other services may have restrictions on allowed characters.
17729	//    Generally allowed characters are: letters, numbers, and spaces representable
17730	//    in UTF-8, and the following characters: + - = . _ : / @.
17731	//
17732	//    * Tag keys and values are case-sensitive.
17733	//
17734	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
17735	//    as a prefix for either keys or values as it is reserved for AWS use. You
17736	//    cannot edit or delete tag keys or values with this prefix. Tags with this
17737	//    prefix do not count against your tags per resource limit.
17738	Tags []*Tag `locationName:"tags" type:"list"`
17739
17740	// The Amazon Resource Name (ARN) of the task.
17741	TaskArn *string `locationName:"taskArn" type:"string"`
17742
17743	// The ARN of the task definition that creates the task.
17744	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
17745
17746	// The version counter for the task. Every time a task experiences a change
17747	// that triggers a CloudWatch event, the version counter is incremented. If
17748	// you are replicating your Amazon ECS task state with CloudWatch Events, you
17749	// can compare the version of a task reported by the Amazon ECS API actions
17750	// with the version reported in CloudWatch Events for the task (inside the detail
17751	// object) to verify that the version in your event stream is current.
17752	Version *int64 `locationName:"version" type:"long"`
17753}
17754
17755// String returns the string representation
17756func (s Task) String() string {
17757	return awsutil.Prettify(s)
17758}
17759
17760// GoString returns the string representation
17761func (s Task) GoString() string {
17762	return s.String()
17763}
17764
17765// SetAttachments sets the Attachments field's value.
17766func (s *Task) SetAttachments(v []*Attachment) *Task {
17767	s.Attachments = v
17768	return s
17769}
17770
17771// SetAttributes sets the Attributes field's value.
17772func (s *Task) SetAttributes(v []*Attribute) *Task {
17773	s.Attributes = v
17774	return s
17775}
17776
17777// SetAvailabilityZone sets the AvailabilityZone field's value.
17778func (s *Task) SetAvailabilityZone(v string) *Task {
17779	s.AvailabilityZone = &v
17780	return s
17781}
17782
17783// SetCapacityProviderName sets the CapacityProviderName field's value.
17784func (s *Task) SetCapacityProviderName(v string) *Task {
17785	s.CapacityProviderName = &v
17786	return s
17787}
17788
17789// SetClusterArn sets the ClusterArn field's value.
17790func (s *Task) SetClusterArn(v string) *Task {
17791	s.ClusterArn = &v
17792	return s
17793}
17794
17795// SetConnectivity sets the Connectivity field's value.
17796func (s *Task) SetConnectivity(v string) *Task {
17797	s.Connectivity = &v
17798	return s
17799}
17800
17801// SetConnectivityAt sets the ConnectivityAt field's value.
17802func (s *Task) SetConnectivityAt(v time.Time) *Task {
17803	s.ConnectivityAt = &v
17804	return s
17805}
17806
17807// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
17808func (s *Task) SetContainerInstanceArn(v string) *Task {
17809	s.ContainerInstanceArn = &v
17810	return s
17811}
17812
17813// SetContainers sets the Containers field's value.
17814func (s *Task) SetContainers(v []*Container) *Task {
17815	s.Containers = v
17816	return s
17817}
17818
17819// SetCpu sets the Cpu field's value.
17820func (s *Task) SetCpu(v string) *Task {
17821	s.Cpu = &v
17822	return s
17823}
17824
17825// SetCreatedAt sets the CreatedAt field's value.
17826func (s *Task) SetCreatedAt(v time.Time) *Task {
17827	s.CreatedAt = &v
17828	return s
17829}
17830
17831// SetDesiredStatus sets the DesiredStatus field's value.
17832func (s *Task) SetDesiredStatus(v string) *Task {
17833	s.DesiredStatus = &v
17834	return s
17835}
17836
17837// SetExecutionStoppedAt sets the ExecutionStoppedAt field's value.
17838func (s *Task) SetExecutionStoppedAt(v time.Time) *Task {
17839	s.ExecutionStoppedAt = &v
17840	return s
17841}
17842
17843// SetGroup sets the Group field's value.
17844func (s *Task) SetGroup(v string) *Task {
17845	s.Group = &v
17846	return s
17847}
17848
17849// SetHealthStatus sets the HealthStatus field's value.
17850func (s *Task) SetHealthStatus(v string) *Task {
17851	s.HealthStatus = &v
17852	return s
17853}
17854
17855// SetInferenceAccelerators sets the InferenceAccelerators field's value.
17856func (s *Task) SetInferenceAccelerators(v []*InferenceAccelerator) *Task {
17857	s.InferenceAccelerators = v
17858	return s
17859}
17860
17861// SetLastStatus sets the LastStatus field's value.
17862func (s *Task) SetLastStatus(v string) *Task {
17863	s.LastStatus = &v
17864	return s
17865}
17866
17867// SetLaunchType sets the LaunchType field's value.
17868func (s *Task) SetLaunchType(v string) *Task {
17869	s.LaunchType = &v
17870	return s
17871}
17872
17873// SetMemory sets the Memory field's value.
17874func (s *Task) SetMemory(v string) *Task {
17875	s.Memory = &v
17876	return s
17877}
17878
17879// SetOverrides sets the Overrides field's value.
17880func (s *Task) SetOverrides(v *TaskOverride) *Task {
17881	s.Overrides = v
17882	return s
17883}
17884
17885// SetPlatformVersion sets the PlatformVersion field's value.
17886func (s *Task) SetPlatformVersion(v string) *Task {
17887	s.PlatformVersion = &v
17888	return s
17889}
17890
17891// SetPullStartedAt sets the PullStartedAt field's value.
17892func (s *Task) SetPullStartedAt(v time.Time) *Task {
17893	s.PullStartedAt = &v
17894	return s
17895}
17896
17897// SetPullStoppedAt sets the PullStoppedAt field's value.
17898func (s *Task) SetPullStoppedAt(v time.Time) *Task {
17899	s.PullStoppedAt = &v
17900	return s
17901}
17902
17903// SetStartedAt sets the StartedAt field's value.
17904func (s *Task) SetStartedAt(v time.Time) *Task {
17905	s.StartedAt = &v
17906	return s
17907}
17908
17909// SetStartedBy sets the StartedBy field's value.
17910func (s *Task) SetStartedBy(v string) *Task {
17911	s.StartedBy = &v
17912	return s
17913}
17914
17915// SetStopCode sets the StopCode field's value.
17916func (s *Task) SetStopCode(v string) *Task {
17917	s.StopCode = &v
17918	return s
17919}
17920
17921// SetStoppedAt sets the StoppedAt field's value.
17922func (s *Task) SetStoppedAt(v time.Time) *Task {
17923	s.StoppedAt = &v
17924	return s
17925}
17926
17927// SetStoppedReason sets the StoppedReason field's value.
17928func (s *Task) SetStoppedReason(v string) *Task {
17929	s.StoppedReason = &v
17930	return s
17931}
17932
17933// SetStoppingAt sets the StoppingAt field's value.
17934func (s *Task) SetStoppingAt(v time.Time) *Task {
17935	s.StoppingAt = &v
17936	return s
17937}
17938
17939// SetTags sets the Tags field's value.
17940func (s *Task) SetTags(v []*Tag) *Task {
17941	s.Tags = v
17942	return s
17943}
17944
17945// SetTaskArn sets the TaskArn field's value.
17946func (s *Task) SetTaskArn(v string) *Task {
17947	s.TaskArn = &v
17948	return s
17949}
17950
17951// SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
17952func (s *Task) SetTaskDefinitionArn(v string) *Task {
17953	s.TaskDefinitionArn = &v
17954	return s
17955}
17956
17957// SetVersion sets the Version field's value.
17958func (s *Task) SetVersion(v int64) *Task {
17959	s.Version = &v
17960	return s
17961}
17962
17963// The details of a task definition which describes the container and volume
17964// definitions of an Amazon Elastic Container Service task. You can specify
17965// which Docker images to use, the required resources, and other configurations
17966// related to launching the task definition through an Amazon ECS service or
17967// task.
17968type TaskDefinition struct {
17969	_ struct{} `type:"structure"`
17970
17971	// The launch type to use with your task. For more information, see Amazon ECS
17972	// Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
17973	// in the Amazon Elastic Container Service Developer Guide.
17974	Compatibilities []*string `locationName:"compatibilities" type:"list"`
17975
17976	// A list of container definitions in JSON format that describe the different
17977	// containers that make up your task. For more information about container definition
17978	// parameters and defaults, see Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
17979	// in the Amazon Elastic Container Service Developer Guide.
17980	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list"`
17981
17982	// The number of cpu units used by the task. If you are using the EC2 launch
17983	// type, this field is optional and any value can be used. If you are using
17984	// the Fargate launch type, this field is required and you must use one of the
17985	// following values, which determines your range of valid values for the memory
17986	// parameter:
17987	//
17988	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
17989	//    2048 (2 GB)
17990	//
17991	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
17992	//    (3 GB), 4096 (4 GB)
17993	//
17994	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
17995	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
17996	//
17997	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
17998	//    (16 GB) in increments of 1024 (1 GB)
17999	//
18000	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
18001	//    (30 GB) in increments of 1024 (1 GB)
18002	Cpu *string `locationName:"cpu" type:"string"`
18003
18004	// The Amazon Resource Name (ARN) of the task execution role that containers
18005	// in this task can assume. All containers in this task are granted the permissions
18006	// that are specified in this role.
18007	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
18008
18009	// The name of a family that this task definition is registered to. Up to 255
18010	// letters (uppercase and lowercase), numbers, hyphens, and underscores are
18011	// allowed.
18012	//
18013	// A family groups multiple versions of a task definition. Amazon ECS gives
18014	// the first task definition that you registered to a family a revision number
18015	// of 1. Amazon ECS gives sequential revision numbers to each task definition
18016	// that you add.
18017	Family *string `locationName:"family" type:"string"`
18018
18019	// The Elastic Inference accelerator associated with the task.
18020	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
18021
18022	// The IPC resource namespace to use for the containers in the task. The valid
18023	// values are host, task, or none. If host is specified, then all containers
18024	// within the tasks that specified the host IPC mode on the same container instance
18025	// share the same IPC resources with the host Amazon EC2 instance. If task is
18026	// specified, all containers within the specified task share the same IPC resources.
18027	// If none is specified, then IPC resources within the containers of a task
18028	// are private and not shared with other containers in a task or on the container
18029	// instance. If no value is specified, then the IPC resource namespace sharing
18030	// depends on the Docker daemon setting on the container instance. For more
18031	// information, see IPC settings (https://docs.docker.com/engine/reference/run/#ipc-settings---ipc)
18032	// in the Docker run reference.
18033	//
18034	// If the host IPC mode is used, be aware that there is a heightened risk of
18035	// undesired IPC namespace expose. For more information, see Docker security
18036	// (https://docs.docker.com/engine/security/security/).
18037	//
18038	// If you are setting namespaced kernel parameters using systemControls for
18039	// the containers in the task, the following will apply to your IPC resource
18040	// namespace. For more information, see System Controls (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)
18041	// in the Amazon Elastic Container Service Developer Guide.
18042	//
18043	//    * For tasks that use the host IPC mode, IPC namespace related systemControls
18044	//    are not supported.
18045	//
18046	//    * For tasks that use the task IPC mode, IPC namespace related systemControls
18047	//    will apply to all containers within a task.
18048	//
18049	// This parameter is not supported for Windows containers or tasks using the
18050	// Fargate launch type.
18051	IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"`
18052
18053	// The amount (in MiB) of memory used by the task.
18054	//
18055	// If using the EC2 launch type, this field is optional and any value can be
18056	// used. If a task-level memory value is specified then the container-level
18057	// memory value is optional.
18058	//
18059	// If using the Fargate launch type, this field is required and you must use
18060	// one of the following values, which determines your range of valid values
18061	// for the cpu parameter:
18062	//
18063	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
18064	//    vCPU)
18065	//
18066	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
18067	//    512 (.5 vCPU)
18068	//
18069	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
18070	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
18071	//
18072	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
18073	//    Available cpu values: 2048 (2 vCPU)
18074	//
18075	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
18076	//    Available cpu values: 4096 (4 vCPU)
18077	Memory *string `locationName:"memory" type:"string"`
18078
18079	// The Docker networking mode to use for the containers in the task. The valid
18080	// values are none, bridge, awsvpc, and host. The default Docker network mode
18081	// is bridge. If you are using the Fargate launch type, the awsvpc network mode
18082	// is required. If you are using the EC2 launch type, any network mode can be
18083	// used. If the network mode is set to none, you cannot specify port mappings
18084	// in your container definitions, and the tasks containers do not have external
18085	// connectivity. The host and awsvpc network modes offer the highest networking
18086	// performance for containers because they use the EC2 network stack instead
18087	// of the virtualized network stack provided by the bridge mode.
18088	//
18089	// With the host and awsvpc network modes, exposed container ports are mapped
18090	// directly to the corresponding host port (for the host network mode) or the
18091	// attached elastic network interface port (for the awsvpc network mode), so
18092	// you cannot take advantage of dynamic host port mappings.
18093	//
18094	// If the network mode is awsvpc, the task is allocated an elastic network interface,
18095	// and you must specify a NetworkConfiguration value when you create a service
18096	// or run a task with the task definition. For more information, see Task Networking
18097	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
18098	// in the Amazon Elastic Container Service Developer Guide.
18099	//
18100	// Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with
18101	// the ecs-init package, or AWS Fargate infrastructure support the awsvpc network
18102	// mode.
18103	//
18104	// If the network mode is host, you cannot run multiple instantiations of the
18105	// same task on a single container instance when port mappings are used.
18106	//
18107	// Docker for Windows uses different network modes than Docker for Linux. When
18108	// you register a task definition with Windows containers, you must not specify
18109	// a network mode. If you use the console to register a task definition with
18110	// Windows containers, you must choose the <default> network mode object.
18111	//
18112	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
18113	// in the Docker run reference.
18114	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
18115
18116	// The process namespace to use for the containers in the task. The valid values
18117	// are host or task. If host is specified, then all containers within the tasks
18118	// that specified the host PID mode on the same container instance share the
18119	// same process namespace with the host Amazon EC2 instance. If task is specified,
18120	// all containers within the specified task share the same process namespace.
18121	// If no value is specified, the default is a private namespace. For more information,
18122	// see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid)
18123	// in the Docker run reference.
18124	//
18125	// If the host PID mode is used, be aware that there is a heightened risk of
18126	// undesired process namespace expose. For more information, see Docker security
18127	// (https://docs.docker.com/engine/security/security/).
18128	//
18129	// This parameter is not supported for Windows containers or tasks using the
18130	// Fargate launch type.
18131	PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"`
18132
18133	// An array of placement constraint objects to use for tasks. This field is
18134	// not valid if you are using the Fargate launch type for your task.
18135	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
18136
18137	// The configuration details for the App Mesh proxy.
18138	//
18139	// Your Amazon ECS container instances require at least version 1.26.0 of the
18140	// container agent and at least version 1.26.0-1 of the ecs-init package to
18141	// enable a proxy configuration. If your container instances are launched from
18142	// the Amazon ECS-optimized AMI version 20190301 or later, then they contain
18143	// the required versions of the container agent and ecs-init. For more information,
18144	// see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
18145	// in the Amazon Elastic Container Service Developer Guide.
18146	ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"`
18147
18148	// The container instance attributes required by your task. This field is not
18149	// valid if you are using the Fargate launch type for your task.
18150	RequiresAttributes []*Attribute `locationName:"requiresAttributes" type:"list"`
18151
18152	// The launch type the task requires. If no value is specified, it will default
18153	// to EC2. Valid values include EC2 and FARGATE.
18154	RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"`
18155
18156	// The revision of the task in a particular family. The revision is a version
18157	// number of a task definition in a family. When you register a task definition
18158	// for the first time, the revision is 1. Each time that you register a new
18159	// revision of a task definition in the same family, the revision value always
18160	// increases by one, even if you have deregistered previous revisions in this
18161	// family.
18162	Revision *int64 `locationName:"revision" type:"integer"`
18163
18164	// The status of the task definition.
18165	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
18166
18167	// The full Amazon Resource Name (ARN) of the task definition.
18168	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
18169
18170	// The short name or full Amazon Resource Name (ARN) of the AWS Identity and
18171	// Access Management (IAM) role that grants containers in the task permission
18172	// to call AWS APIs on your behalf. For more information, see Amazon ECS Task
18173	// Role (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
18174	// in the Amazon Elastic Container Service Developer Guide.
18175	//
18176	// IAM roles for tasks on Windows require that the -EnableTaskIAMRole option
18177	// is set when you launch the Amazon ECS-optimized Windows AMI. Your containers
18178	// must also run some configuration code in order to take advantage of the feature.
18179	// For more information, see Windows IAM Roles for Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html)
18180	// in the Amazon Elastic Container Service Developer Guide.
18181	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
18182
18183	// The list of volume definitions for the task.
18184	//
18185	// If your tasks are using the Fargate launch type, the host and sourcePath
18186	// parameters are not supported.
18187	//
18188	// For more information about volume definition parameters and defaults, see
18189	// Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html)
18190	// in the Amazon Elastic Container Service Developer Guide.
18191	Volumes []*Volume `locationName:"volumes" type:"list"`
18192}
18193
18194// String returns the string representation
18195func (s TaskDefinition) String() string {
18196	return awsutil.Prettify(s)
18197}
18198
18199// GoString returns the string representation
18200func (s TaskDefinition) GoString() string {
18201	return s.String()
18202}
18203
18204// SetCompatibilities sets the Compatibilities field's value.
18205func (s *TaskDefinition) SetCompatibilities(v []*string) *TaskDefinition {
18206	s.Compatibilities = v
18207	return s
18208}
18209
18210// SetContainerDefinitions sets the ContainerDefinitions field's value.
18211func (s *TaskDefinition) SetContainerDefinitions(v []*ContainerDefinition) *TaskDefinition {
18212	s.ContainerDefinitions = v
18213	return s
18214}
18215
18216// SetCpu sets the Cpu field's value.
18217func (s *TaskDefinition) SetCpu(v string) *TaskDefinition {
18218	s.Cpu = &v
18219	return s
18220}
18221
18222// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
18223func (s *TaskDefinition) SetExecutionRoleArn(v string) *TaskDefinition {
18224	s.ExecutionRoleArn = &v
18225	return s
18226}
18227
18228// SetFamily sets the Family field's value.
18229func (s *TaskDefinition) SetFamily(v string) *TaskDefinition {
18230	s.Family = &v
18231	return s
18232}
18233
18234// SetInferenceAccelerators sets the InferenceAccelerators field's value.
18235func (s *TaskDefinition) SetInferenceAccelerators(v []*InferenceAccelerator) *TaskDefinition {
18236	s.InferenceAccelerators = v
18237	return s
18238}
18239
18240// SetIpcMode sets the IpcMode field's value.
18241func (s *TaskDefinition) SetIpcMode(v string) *TaskDefinition {
18242	s.IpcMode = &v
18243	return s
18244}
18245
18246// SetMemory sets the Memory field's value.
18247func (s *TaskDefinition) SetMemory(v string) *TaskDefinition {
18248	s.Memory = &v
18249	return s
18250}
18251
18252// SetNetworkMode sets the NetworkMode field's value.
18253func (s *TaskDefinition) SetNetworkMode(v string) *TaskDefinition {
18254	s.NetworkMode = &v
18255	return s
18256}
18257
18258// SetPidMode sets the PidMode field's value.
18259func (s *TaskDefinition) SetPidMode(v string) *TaskDefinition {
18260	s.PidMode = &v
18261	return s
18262}
18263
18264// SetPlacementConstraints sets the PlacementConstraints field's value.
18265func (s *TaskDefinition) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *TaskDefinition {
18266	s.PlacementConstraints = v
18267	return s
18268}
18269
18270// SetProxyConfiguration sets the ProxyConfiguration field's value.
18271func (s *TaskDefinition) SetProxyConfiguration(v *ProxyConfiguration) *TaskDefinition {
18272	s.ProxyConfiguration = v
18273	return s
18274}
18275
18276// SetRequiresAttributes sets the RequiresAttributes field's value.
18277func (s *TaskDefinition) SetRequiresAttributes(v []*Attribute) *TaskDefinition {
18278	s.RequiresAttributes = v
18279	return s
18280}
18281
18282// SetRequiresCompatibilities sets the RequiresCompatibilities field's value.
18283func (s *TaskDefinition) SetRequiresCompatibilities(v []*string) *TaskDefinition {
18284	s.RequiresCompatibilities = v
18285	return s
18286}
18287
18288// SetRevision sets the Revision field's value.
18289func (s *TaskDefinition) SetRevision(v int64) *TaskDefinition {
18290	s.Revision = &v
18291	return s
18292}
18293
18294// SetStatus sets the Status field's value.
18295func (s *TaskDefinition) SetStatus(v string) *TaskDefinition {
18296	s.Status = &v
18297	return s
18298}
18299
18300// SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
18301func (s *TaskDefinition) SetTaskDefinitionArn(v string) *TaskDefinition {
18302	s.TaskDefinitionArn = &v
18303	return s
18304}
18305
18306// SetTaskRoleArn sets the TaskRoleArn field's value.
18307func (s *TaskDefinition) SetTaskRoleArn(v string) *TaskDefinition {
18308	s.TaskRoleArn = &v
18309	return s
18310}
18311
18312// SetVolumes sets the Volumes field's value.
18313func (s *TaskDefinition) SetVolumes(v []*Volume) *TaskDefinition {
18314	s.Volumes = v
18315	return s
18316}
18317
18318// An object representing a constraint on task placement in the task definition.
18319// For more information, see Task Placement Constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
18320// in the Amazon Elastic Container Service Developer Guide.
18321//
18322// If you are using the Fargate launch type, task placement constraints are
18323// not supported.
18324type TaskDefinitionPlacementConstraint struct {
18325	_ struct{} `type:"structure"`
18326
18327	// A cluster query language expression to apply to the constraint. For more
18328	// information, see Cluster Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
18329	// in the Amazon Elastic Container Service Developer Guide.
18330	Expression *string `locationName:"expression" type:"string"`
18331
18332	// The type of constraint. The MemberOf constraint restricts selection to be
18333	// from a group of valid candidates.
18334	Type *string `locationName:"type" type:"string" enum:"TaskDefinitionPlacementConstraintType"`
18335}
18336
18337// String returns the string representation
18338func (s TaskDefinitionPlacementConstraint) String() string {
18339	return awsutil.Prettify(s)
18340}
18341
18342// GoString returns the string representation
18343func (s TaskDefinitionPlacementConstraint) GoString() string {
18344	return s.String()
18345}
18346
18347// SetExpression sets the Expression field's value.
18348func (s *TaskDefinitionPlacementConstraint) SetExpression(v string) *TaskDefinitionPlacementConstraint {
18349	s.Expression = &v
18350	return s
18351}
18352
18353// SetType sets the Type field's value.
18354func (s *TaskDefinitionPlacementConstraint) SetType(v string) *TaskDefinitionPlacementConstraint {
18355	s.Type = &v
18356	return s
18357}
18358
18359// The overrides associated with a task.
18360type TaskOverride struct {
18361	_ struct{} `type:"structure"`
18362
18363	// One or more container overrides sent to a task.
18364	ContainerOverrides []*ContainerOverride `locationName:"containerOverrides" type:"list"`
18365
18366	// The cpu override for the task.
18367	Cpu *string `locationName:"cpu" type:"string"`
18368
18369	// The Amazon Resource Name (ARN) of the task execution role that the Amazon
18370	// ECS container agent and the Docker daemon can assume.
18371	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
18372
18373	// The Elastic Inference accelerator override for the task.
18374	InferenceAcceleratorOverrides []*InferenceAcceleratorOverride `locationName:"inferenceAcceleratorOverrides" type:"list"`
18375
18376	// The memory override for the task.
18377	Memory *string `locationName:"memory" type:"string"`
18378
18379	// The Amazon Resource Name (ARN) of the IAM role that containers in this task
18380	// can assume. All containers in this task are granted the permissions that
18381	// are specified in this role.
18382	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
18383}
18384
18385// String returns the string representation
18386func (s TaskOverride) String() string {
18387	return awsutil.Prettify(s)
18388}
18389
18390// GoString returns the string representation
18391func (s TaskOverride) GoString() string {
18392	return s.String()
18393}
18394
18395// Validate inspects the fields of the type to determine if they are valid.
18396func (s *TaskOverride) Validate() error {
18397	invalidParams := request.ErrInvalidParams{Context: "TaskOverride"}
18398	if s.ContainerOverrides != nil {
18399		for i, v := range s.ContainerOverrides {
18400			if v == nil {
18401				continue
18402			}
18403			if err := v.Validate(); err != nil {
18404				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContainerOverrides", i), err.(request.ErrInvalidParams))
18405			}
18406		}
18407	}
18408
18409	if invalidParams.Len() > 0 {
18410		return invalidParams
18411	}
18412	return nil
18413}
18414
18415// SetContainerOverrides sets the ContainerOverrides field's value.
18416func (s *TaskOverride) SetContainerOverrides(v []*ContainerOverride) *TaskOverride {
18417	s.ContainerOverrides = v
18418	return s
18419}
18420
18421// SetCpu sets the Cpu field's value.
18422func (s *TaskOverride) SetCpu(v string) *TaskOverride {
18423	s.Cpu = &v
18424	return s
18425}
18426
18427// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
18428func (s *TaskOverride) SetExecutionRoleArn(v string) *TaskOverride {
18429	s.ExecutionRoleArn = &v
18430	return s
18431}
18432
18433// SetInferenceAcceleratorOverrides sets the InferenceAcceleratorOverrides field's value.
18434func (s *TaskOverride) SetInferenceAcceleratorOverrides(v []*InferenceAcceleratorOverride) *TaskOverride {
18435	s.InferenceAcceleratorOverrides = v
18436	return s
18437}
18438
18439// SetMemory sets the Memory field's value.
18440func (s *TaskOverride) SetMemory(v string) *TaskOverride {
18441	s.Memory = &v
18442	return s
18443}
18444
18445// SetTaskRoleArn sets the TaskRoleArn field's value.
18446func (s *TaskOverride) SetTaskRoleArn(v string) *TaskOverride {
18447	s.TaskRoleArn = &v
18448	return s
18449}
18450
18451// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
18452// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
18453// desired number of tasks, how many tasks are running, and whether the task
18454// set serves production traffic.
18455type TaskSet struct {
18456	_ struct{} `type:"structure"`
18457
18458	// The capacity provider strategy associated with the task set.
18459	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
18460
18461	// The Amazon Resource Name (ARN) of the cluster that the service that hosts
18462	// the task set exists in.
18463	ClusterArn *string `locationName:"clusterArn" type:"string"`
18464
18465	// The computed desired count for the task set. This is calculated by multiplying
18466	// the service's desiredCount by the task set's scale percentage. The result
18467	// is always rounded up. For example, if the computed desired count is 1.2,
18468	// it rounds up to 2 tasks.
18469	ComputedDesiredCount *int64 `locationName:"computedDesiredCount" type:"integer"`
18470
18471	// The Unix timestamp for when the task set was created.
18472	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
18473
18474	// The external ID associated with the task set.
18475	//
18476	// If a task set is created by an AWS CodeDeploy deployment, the externalId
18477	// parameter contains the AWS CodeDeploy deployment ID.
18478	//
18479	// If a task set is created for an external deployment and is associated with
18480	// a service discovery registry, the externalId parameter contains the ECS_TASK_SET_EXTERNAL_ID
18481	// AWS Cloud Map attribute.
18482	ExternalId *string `locationName:"externalId" type:"string"`
18483
18484	// The ID of the task set.
18485	Id *string `locationName:"id" type:"string"`
18486
18487	// The launch type the tasks in the task set are using. For more information,
18488	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
18489	// in the Amazon Elastic Container Service Developer Guide.
18490	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
18491
18492	// Details on a load balancer that is used with a task set.
18493	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
18494
18495	// The network configuration for the task set.
18496	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
18497
18498	// The number of tasks in the task set that are in the PENDING status during
18499	// a deployment. A task in the PENDING state is preparing to enter the RUNNING
18500	// state. A task set enters the PENDING status when it launches for the first
18501	// time or when it is restarted after being in the STOPPED state.
18502	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
18503
18504	// The platform version on which the tasks in the task set are running. A platform
18505	// version is only specified for tasks using the Fargate launch type. If one
18506	// is not specified, the LATEST platform version is used by default. For more
18507	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
18508	// in the Amazon Elastic Container Service Developer Guide.
18509	PlatformVersion *string `locationName:"platformVersion" type:"string"`
18510
18511	// The number of tasks in the task set that are in the RUNNING status during
18512	// a deployment. A task in the RUNNING state is running and ready for use.
18513	RunningCount *int64 `locationName:"runningCount" type:"integer"`
18514
18515	// A floating-point percentage of the desired number of tasks to place and keep
18516	// running in the task set.
18517	Scale *Scale `locationName:"scale" type:"structure"`
18518
18519	// The Amazon Resource Name (ARN) of the service the task set exists in.
18520	ServiceArn *string `locationName:"serviceArn" type:"string"`
18521
18522	// The details of the service discovery registries to assign to this task set.
18523	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
18524	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
18525
18526	// The stability status, which indicates whether the task set has reached a
18527	// steady state. If the following conditions are met, the task set will be in
18528	// STEADY_STATE:
18529	//
18530	//    * The task runningCount is equal to the computedDesiredCount.
18531	//
18532	//    * The pendingCount is 0.
18533	//
18534	//    * There are no tasks running on container instances in the DRAINING status.
18535	//
18536	//    * All tasks are reporting a healthy status from the load balancers, service
18537	//    discovery, and container health checks.
18538	//
18539	// If any of those conditions are not met, the stability status returns STABILIZING.
18540	StabilityStatus *string `locationName:"stabilityStatus" type:"string" enum:"StabilityStatus"`
18541
18542	// The Unix timestamp for when the task set stability status was retrieved.
18543	StabilityStatusAt *time.Time `locationName:"stabilityStatusAt" type:"timestamp"`
18544
18545	// The tag specified when a task set is started. If the task set is created
18546	// by an AWS CodeDeploy deployment, the startedBy parameter is CODE_DEPLOY.
18547	// For a task set created for an external deployment, the startedBy field isn't
18548	// used.
18549	StartedBy *string `locationName:"startedBy" type:"string"`
18550
18551	// The status of the task set. The following describes each state:
18552	//
18553	// PRIMARY
18554	//
18555	// The task set is serving production traffic.
18556	//
18557	// ACTIVE
18558	//
18559	// The task set is not serving production traffic.
18560	//
18561	// DRAINING
18562	//
18563	// The tasks in the task set are being stopped and their corresponding targets
18564	// are being deregistered from their target group.
18565	Status *string `locationName:"status" type:"string"`
18566
18567	// The metadata that you apply to the task set to help you categorize and organize
18568	// them. Each tag consists of a key and an optional value, both of which you
18569	// define.
18570	//
18571	// The following basic restrictions apply to tags:
18572	//
18573	//    * Maximum number of tags per resource - 50
18574	//
18575	//    * For each resource, each tag key must be unique, and each tag key can
18576	//    have only one value.
18577	//
18578	//    * Maximum key length - 128 Unicode characters in UTF-8
18579	//
18580	//    * Maximum value length - 256 Unicode characters in UTF-8
18581	//
18582	//    * If your tagging schema is used across multiple services and resources,
18583	//    remember that other services may have restrictions on allowed characters.
18584	//    Generally allowed characters are: letters, numbers, and spaces representable
18585	//    in UTF-8, and the following characters: + - = . _ : / @.
18586	//
18587	//    * Tag keys and values are case-sensitive.
18588	//
18589	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
18590	//    as a prefix for either keys or values as it is reserved for AWS use. You
18591	//    cannot edit or delete tag keys or values with this prefix. Tags with this
18592	//    prefix do not count against your tags per resource limit.
18593	Tags []*Tag `locationName:"tags" type:"list"`
18594
18595	// The task definition the task set is using.
18596	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
18597
18598	// The Amazon Resource Name (ARN) of the task set.
18599	TaskSetArn *string `locationName:"taskSetArn" type:"string"`
18600
18601	// The Unix timestamp for when the task set was last updated.
18602	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
18603}
18604
18605// String returns the string representation
18606func (s TaskSet) String() string {
18607	return awsutil.Prettify(s)
18608}
18609
18610// GoString returns the string representation
18611func (s TaskSet) GoString() string {
18612	return s.String()
18613}
18614
18615// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
18616func (s *TaskSet) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *TaskSet {
18617	s.CapacityProviderStrategy = v
18618	return s
18619}
18620
18621// SetClusterArn sets the ClusterArn field's value.
18622func (s *TaskSet) SetClusterArn(v string) *TaskSet {
18623	s.ClusterArn = &v
18624	return s
18625}
18626
18627// SetComputedDesiredCount sets the ComputedDesiredCount field's value.
18628func (s *TaskSet) SetComputedDesiredCount(v int64) *TaskSet {
18629	s.ComputedDesiredCount = &v
18630	return s
18631}
18632
18633// SetCreatedAt sets the CreatedAt field's value.
18634func (s *TaskSet) SetCreatedAt(v time.Time) *TaskSet {
18635	s.CreatedAt = &v
18636	return s
18637}
18638
18639// SetExternalId sets the ExternalId field's value.
18640func (s *TaskSet) SetExternalId(v string) *TaskSet {
18641	s.ExternalId = &v
18642	return s
18643}
18644
18645// SetId sets the Id field's value.
18646func (s *TaskSet) SetId(v string) *TaskSet {
18647	s.Id = &v
18648	return s
18649}
18650
18651// SetLaunchType sets the LaunchType field's value.
18652func (s *TaskSet) SetLaunchType(v string) *TaskSet {
18653	s.LaunchType = &v
18654	return s
18655}
18656
18657// SetLoadBalancers sets the LoadBalancers field's value.
18658func (s *TaskSet) SetLoadBalancers(v []*LoadBalancer) *TaskSet {
18659	s.LoadBalancers = v
18660	return s
18661}
18662
18663// SetNetworkConfiguration sets the NetworkConfiguration field's value.
18664func (s *TaskSet) SetNetworkConfiguration(v *NetworkConfiguration) *TaskSet {
18665	s.NetworkConfiguration = v
18666	return s
18667}
18668
18669// SetPendingCount sets the PendingCount field's value.
18670func (s *TaskSet) SetPendingCount(v int64) *TaskSet {
18671	s.PendingCount = &v
18672	return s
18673}
18674
18675// SetPlatformVersion sets the PlatformVersion field's value.
18676func (s *TaskSet) SetPlatformVersion(v string) *TaskSet {
18677	s.PlatformVersion = &v
18678	return s
18679}
18680
18681// SetRunningCount sets the RunningCount field's value.
18682func (s *TaskSet) SetRunningCount(v int64) *TaskSet {
18683	s.RunningCount = &v
18684	return s
18685}
18686
18687// SetScale sets the Scale field's value.
18688func (s *TaskSet) SetScale(v *Scale) *TaskSet {
18689	s.Scale = v
18690	return s
18691}
18692
18693// SetServiceArn sets the ServiceArn field's value.
18694func (s *TaskSet) SetServiceArn(v string) *TaskSet {
18695	s.ServiceArn = &v
18696	return s
18697}
18698
18699// SetServiceRegistries sets the ServiceRegistries field's value.
18700func (s *TaskSet) SetServiceRegistries(v []*ServiceRegistry) *TaskSet {
18701	s.ServiceRegistries = v
18702	return s
18703}
18704
18705// SetStabilityStatus sets the StabilityStatus field's value.
18706func (s *TaskSet) SetStabilityStatus(v string) *TaskSet {
18707	s.StabilityStatus = &v
18708	return s
18709}
18710
18711// SetStabilityStatusAt sets the StabilityStatusAt field's value.
18712func (s *TaskSet) SetStabilityStatusAt(v time.Time) *TaskSet {
18713	s.StabilityStatusAt = &v
18714	return s
18715}
18716
18717// SetStartedBy sets the StartedBy field's value.
18718func (s *TaskSet) SetStartedBy(v string) *TaskSet {
18719	s.StartedBy = &v
18720	return s
18721}
18722
18723// SetStatus sets the Status field's value.
18724func (s *TaskSet) SetStatus(v string) *TaskSet {
18725	s.Status = &v
18726	return s
18727}
18728
18729// SetTags sets the Tags field's value.
18730func (s *TaskSet) SetTags(v []*Tag) *TaskSet {
18731	s.Tags = v
18732	return s
18733}
18734
18735// SetTaskDefinition sets the TaskDefinition field's value.
18736func (s *TaskSet) SetTaskDefinition(v string) *TaskSet {
18737	s.TaskDefinition = &v
18738	return s
18739}
18740
18741// SetTaskSetArn sets the TaskSetArn field's value.
18742func (s *TaskSet) SetTaskSetArn(v string) *TaskSet {
18743	s.TaskSetArn = &v
18744	return s
18745}
18746
18747// SetUpdatedAt sets the UpdatedAt field's value.
18748func (s *TaskSet) SetUpdatedAt(v time.Time) *TaskSet {
18749	s.UpdatedAt = &v
18750	return s
18751}
18752
18753// The specified task set could not be found. You can view your available task
18754// sets with DescribeTaskSets. Task sets are specific to each cluster, service
18755// and Region.
18756type TaskSetNotFoundException struct {
18757	_            struct{}                  `type:"structure"`
18758	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
18759
18760	Message_ *string `locationName:"message" type:"string"`
18761}
18762
18763// String returns the string representation
18764func (s TaskSetNotFoundException) String() string {
18765	return awsutil.Prettify(s)
18766}
18767
18768// GoString returns the string representation
18769func (s TaskSetNotFoundException) GoString() string {
18770	return s.String()
18771}
18772
18773func newErrorTaskSetNotFoundException(v protocol.ResponseMetadata) error {
18774	return &TaskSetNotFoundException{
18775		RespMetadata: v,
18776	}
18777}
18778
18779// Code returns the exception type name.
18780func (s *TaskSetNotFoundException) Code() string {
18781	return "TaskSetNotFoundException"
18782}
18783
18784// Message returns the exception's message.
18785func (s *TaskSetNotFoundException) Message() string {
18786	if s.Message_ != nil {
18787		return *s.Message_
18788	}
18789	return ""
18790}
18791
18792// OrigErr always returns nil, satisfies awserr.Error interface.
18793func (s *TaskSetNotFoundException) OrigErr() error {
18794	return nil
18795}
18796
18797func (s *TaskSetNotFoundException) Error() string {
18798	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
18799}
18800
18801// Status code returns the HTTP status code for the request's response error.
18802func (s *TaskSetNotFoundException) StatusCode() int {
18803	return s.RespMetadata.StatusCode
18804}
18805
18806// RequestID returns the service's response RequestID for request.
18807func (s *TaskSetNotFoundException) RequestID() string {
18808	return s.RespMetadata.RequestID
18809}
18810
18811// The container path, mount options, and size of the tmpfs mount.
18812type Tmpfs struct {
18813	_ struct{} `type:"structure"`
18814
18815	// The absolute file path where the tmpfs volume is to be mounted.
18816	//
18817	// ContainerPath is a required field
18818	ContainerPath *string `locationName:"containerPath" type:"string" required:"true"`
18819
18820	// The list of tmpfs volume mount options.
18821	//
18822	// Valid values: "defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev"
18823	// | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" |
18824	// "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind"
18825	// | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared"
18826	// | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime"
18827	// | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"
18828	MountOptions []*string `locationName:"mountOptions" type:"list"`
18829
18830	// The size (in MiB) of the tmpfs volume.
18831	//
18832	// Size is a required field
18833	Size *int64 `locationName:"size" type:"integer" required:"true"`
18834}
18835
18836// String returns the string representation
18837func (s Tmpfs) String() string {
18838	return awsutil.Prettify(s)
18839}
18840
18841// GoString returns the string representation
18842func (s Tmpfs) GoString() string {
18843	return s.String()
18844}
18845
18846// Validate inspects the fields of the type to determine if they are valid.
18847func (s *Tmpfs) Validate() error {
18848	invalidParams := request.ErrInvalidParams{Context: "Tmpfs"}
18849	if s.ContainerPath == nil {
18850		invalidParams.Add(request.NewErrParamRequired("ContainerPath"))
18851	}
18852	if s.Size == nil {
18853		invalidParams.Add(request.NewErrParamRequired("Size"))
18854	}
18855
18856	if invalidParams.Len() > 0 {
18857		return invalidParams
18858	}
18859	return nil
18860}
18861
18862// SetContainerPath sets the ContainerPath field's value.
18863func (s *Tmpfs) SetContainerPath(v string) *Tmpfs {
18864	s.ContainerPath = &v
18865	return s
18866}
18867
18868// SetMountOptions sets the MountOptions field's value.
18869func (s *Tmpfs) SetMountOptions(v []*string) *Tmpfs {
18870	s.MountOptions = v
18871	return s
18872}
18873
18874// SetSize sets the Size field's value.
18875func (s *Tmpfs) SetSize(v int64) *Tmpfs {
18876	s.Size = &v
18877	return s
18878}
18879
18880// The ulimit settings to pass to the container.
18881type Ulimit struct {
18882	_ struct{} `type:"structure"`
18883
18884	// The hard limit for the ulimit type.
18885	//
18886	// HardLimit is a required field
18887	HardLimit *int64 `locationName:"hardLimit" type:"integer" required:"true"`
18888
18889	// The type of the ulimit.
18890	//
18891	// Name is a required field
18892	Name *string `locationName:"name" type:"string" required:"true" enum:"UlimitName"`
18893
18894	// The soft limit for the ulimit type.
18895	//
18896	// SoftLimit is a required field
18897	SoftLimit *int64 `locationName:"softLimit" type:"integer" required:"true"`
18898}
18899
18900// String returns the string representation
18901func (s Ulimit) String() string {
18902	return awsutil.Prettify(s)
18903}
18904
18905// GoString returns the string representation
18906func (s Ulimit) GoString() string {
18907	return s.String()
18908}
18909
18910// Validate inspects the fields of the type to determine if they are valid.
18911func (s *Ulimit) Validate() error {
18912	invalidParams := request.ErrInvalidParams{Context: "Ulimit"}
18913	if s.HardLimit == nil {
18914		invalidParams.Add(request.NewErrParamRequired("HardLimit"))
18915	}
18916	if s.Name == nil {
18917		invalidParams.Add(request.NewErrParamRequired("Name"))
18918	}
18919	if s.SoftLimit == nil {
18920		invalidParams.Add(request.NewErrParamRequired("SoftLimit"))
18921	}
18922
18923	if invalidParams.Len() > 0 {
18924		return invalidParams
18925	}
18926	return nil
18927}
18928
18929// SetHardLimit sets the HardLimit field's value.
18930func (s *Ulimit) SetHardLimit(v int64) *Ulimit {
18931	s.HardLimit = &v
18932	return s
18933}
18934
18935// SetName sets the Name field's value.
18936func (s *Ulimit) SetName(v string) *Ulimit {
18937	s.Name = &v
18938	return s
18939}
18940
18941// SetSoftLimit sets the SoftLimit field's value.
18942func (s *Ulimit) SetSoftLimit(v int64) *Ulimit {
18943	s.SoftLimit = &v
18944	return s
18945}
18946
18947// The specified task is not supported in this Region.
18948type UnsupportedFeatureException struct {
18949	_            struct{}                  `type:"structure"`
18950	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
18951
18952	Message_ *string `locationName:"message" type:"string"`
18953}
18954
18955// String returns the string representation
18956func (s UnsupportedFeatureException) String() string {
18957	return awsutil.Prettify(s)
18958}
18959
18960// GoString returns the string representation
18961func (s UnsupportedFeatureException) GoString() string {
18962	return s.String()
18963}
18964
18965func newErrorUnsupportedFeatureException(v protocol.ResponseMetadata) error {
18966	return &UnsupportedFeatureException{
18967		RespMetadata: v,
18968	}
18969}
18970
18971// Code returns the exception type name.
18972func (s *UnsupportedFeatureException) Code() string {
18973	return "UnsupportedFeatureException"
18974}
18975
18976// Message returns the exception's message.
18977func (s *UnsupportedFeatureException) Message() string {
18978	if s.Message_ != nil {
18979		return *s.Message_
18980	}
18981	return ""
18982}
18983
18984// OrigErr always returns nil, satisfies awserr.Error interface.
18985func (s *UnsupportedFeatureException) OrigErr() error {
18986	return nil
18987}
18988
18989func (s *UnsupportedFeatureException) Error() string {
18990	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
18991}
18992
18993// Status code returns the HTTP status code for the request's response error.
18994func (s *UnsupportedFeatureException) StatusCode() int {
18995	return s.RespMetadata.StatusCode
18996}
18997
18998// RequestID returns the service's response RequestID for request.
18999func (s *UnsupportedFeatureException) RequestID() string {
19000	return s.RespMetadata.RequestID
19001}
19002
19003type UntagResourceInput struct {
19004	_ struct{} `type:"structure"`
19005
19006	// The Amazon Resource Name (ARN) of the resource from which to delete tags.
19007	// Currently, the supported resources are Amazon ECS capacity providers, tasks,
19008	// services, task definitions, clusters, and container instances.
19009	//
19010	// ResourceArn is a required field
19011	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
19012
19013	// The keys of the tags to be removed.
19014	//
19015	// TagKeys is a required field
19016	TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
19017}
19018
19019// String returns the string representation
19020func (s UntagResourceInput) String() string {
19021	return awsutil.Prettify(s)
19022}
19023
19024// GoString returns the string representation
19025func (s UntagResourceInput) GoString() string {
19026	return s.String()
19027}
19028
19029// Validate inspects the fields of the type to determine if they are valid.
19030func (s *UntagResourceInput) Validate() error {
19031	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
19032	if s.ResourceArn == nil {
19033		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
19034	}
19035	if s.TagKeys == nil {
19036		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
19037	}
19038
19039	if invalidParams.Len() > 0 {
19040		return invalidParams
19041	}
19042	return nil
19043}
19044
19045// SetResourceArn sets the ResourceArn field's value.
19046func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
19047	s.ResourceArn = &v
19048	return s
19049}
19050
19051// SetTagKeys sets the TagKeys field's value.
19052func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
19053	s.TagKeys = v
19054	return s
19055}
19056
19057type UntagResourceOutput struct {
19058	_ struct{} `type:"structure"`
19059}
19060
19061// String returns the string representation
19062func (s UntagResourceOutput) String() string {
19063	return awsutil.Prettify(s)
19064}
19065
19066// GoString returns the string representation
19067func (s UntagResourceOutput) GoString() string {
19068	return s.String()
19069}
19070
19071type UpdateClusterSettingsInput struct {
19072	_ struct{} `type:"structure"`
19073
19074	// The name of the cluster to modify the settings for.
19075	//
19076	// Cluster is a required field
19077	Cluster *string `locationName:"cluster" type:"string" required:"true"`
19078
19079	// The setting to use by default for a cluster. This parameter is used to enable
19080	// CloudWatch Container Insights for a cluster. If this value is specified,
19081	// it will override the containerInsights value set with PutAccountSetting or
19082	// PutAccountSettingDefault.
19083	//
19084	// Settings is a required field
19085	Settings []*ClusterSetting `locationName:"settings" type:"list" required:"true"`
19086}
19087
19088// String returns the string representation
19089func (s UpdateClusterSettingsInput) String() string {
19090	return awsutil.Prettify(s)
19091}
19092
19093// GoString returns the string representation
19094func (s UpdateClusterSettingsInput) GoString() string {
19095	return s.String()
19096}
19097
19098// Validate inspects the fields of the type to determine if they are valid.
19099func (s *UpdateClusterSettingsInput) Validate() error {
19100	invalidParams := request.ErrInvalidParams{Context: "UpdateClusterSettingsInput"}
19101	if s.Cluster == nil {
19102		invalidParams.Add(request.NewErrParamRequired("Cluster"))
19103	}
19104	if s.Settings == nil {
19105		invalidParams.Add(request.NewErrParamRequired("Settings"))
19106	}
19107
19108	if invalidParams.Len() > 0 {
19109		return invalidParams
19110	}
19111	return nil
19112}
19113
19114// SetCluster sets the Cluster field's value.
19115func (s *UpdateClusterSettingsInput) SetCluster(v string) *UpdateClusterSettingsInput {
19116	s.Cluster = &v
19117	return s
19118}
19119
19120// SetSettings sets the Settings field's value.
19121func (s *UpdateClusterSettingsInput) SetSettings(v []*ClusterSetting) *UpdateClusterSettingsInput {
19122	s.Settings = v
19123	return s
19124}
19125
19126type UpdateClusterSettingsOutput struct {
19127	_ struct{} `type:"structure"`
19128
19129	// A regional grouping of one or more container instances on which you can run
19130	// task requests. Each account receives a default cluster the first time you
19131	// use the Amazon ECS service, but you may also create other clusters. Clusters
19132	// may contain more than one instance type simultaneously.
19133	Cluster *Cluster `locationName:"cluster" type:"structure"`
19134}
19135
19136// String returns the string representation
19137func (s UpdateClusterSettingsOutput) String() string {
19138	return awsutil.Prettify(s)
19139}
19140
19141// GoString returns the string representation
19142func (s UpdateClusterSettingsOutput) GoString() string {
19143	return s.String()
19144}
19145
19146// SetCluster sets the Cluster field's value.
19147func (s *UpdateClusterSettingsOutput) SetCluster(v *Cluster) *UpdateClusterSettingsOutput {
19148	s.Cluster = v
19149	return s
19150}
19151
19152type UpdateContainerAgentInput struct {
19153	_ struct{} `type:"structure"`
19154
19155	// The short name or full Amazon Resource Name (ARN) of the cluster that your
19156	// container instance is running on. If you do not specify a cluster, the default
19157	// cluster is assumed.
19158	Cluster *string `locationName:"cluster" type:"string"`
19159
19160	// The container instance ID or full ARN entries for the container instance
19161	// on which you would like to update the Amazon ECS container agent.
19162	//
19163	// ContainerInstance is a required field
19164	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
19165}
19166
19167// String returns the string representation
19168func (s UpdateContainerAgentInput) String() string {
19169	return awsutil.Prettify(s)
19170}
19171
19172// GoString returns the string representation
19173func (s UpdateContainerAgentInput) GoString() string {
19174	return s.String()
19175}
19176
19177// Validate inspects the fields of the type to determine if they are valid.
19178func (s *UpdateContainerAgentInput) Validate() error {
19179	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerAgentInput"}
19180	if s.ContainerInstance == nil {
19181		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
19182	}
19183
19184	if invalidParams.Len() > 0 {
19185		return invalidParams
19186	}
19187	return nil
19188}
19189
19190// SetCluster sets the Cluster field's value.
19191func (s *UpdateContainerAgentInput) SetCluster(v string) *UpdateContainerAgentInput {
19192	s.Cluster = &v
19193	return s
19194}
19195
19196// SetContainerInstance sets the ContainerInstance field's value.
19197func (s *UpdateContainerAgentInput) SetContainerInstance(v string) *UpdateContainerAgentInput {
19198	s.ContainerInstance = &v
19199	return s
19200}
19201
19202type UpdateContainerAgentOutput struct {
19203	_ struct{} `type:"structure"`
19204
19205	// The container instance for which the container agent was updated.
19206	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
19207}
19208
19209// String returns the string representation
19210func (s UpdateContainerAgentOutput) String() string {
19211	return awsutil.Prettify(s)
19212}
19213
19214// GoString returns the string representation
19215func (s UpdateContainerAgentOutput) GoString() string {
19216	return s.String()
19217}
19218
19219// SetContainerInstance sets the ContainerInstance field's value.
19220func (s *UpdateContainerAgentOutput) SetContainerInstance(v *ContainerInstance) *UpdateContainerAgentOutput {
19221	s.ContainerInstance = v
19222	return s
19223}
19224
19225type UpdateContainerInstancesStateInput struct {
19226	_ struct{} `type:"structure"`
19227
19228	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
19229	// the container instance to update. If you do not specify a cluster, the default
19230	// cluster is assumed.
19231	Cluster *string `locationName:"cluster" type:"string"`
19232
19233	// A list of container instance IDs or full ARN entries.
19234	//
19235	// ContainerInstances is a required field
19236	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
19237
19238	// The container instance state with which to update the container instance.
19239	// The only valid values for this action are ACTIVE and DRAINING. A container
19240	// instance can only be updated to DRAINING status once it has reached an ACTIVE
19241	// state. If a container instance is in REGISTERING, DEREGISTERING, or REGISTRATION_FAILED
19242	// state you can describe the container instance but will be unable to update
19243	// the container instance state.
19244	//
19245	// Status is a required field
19246	Status *string `locationName:"status" type:"string" required:"true" enum:"ContainerInstanceStatus"`
19247}
19248
19249// String returns the string representation
19250func (s UpdateContainerInstancesStateInput) String() string {
19251	return awsutil.Prettify(s)
19252}
19253
19254// GoString returns the string representation
19255func (s UpdateContainerInstancesStateInput) GoString() string {
19256	return s.String()
19257}
19258
19259// Validate inspects the fields of the type to determine if they are valid.
19260func (s *UpdateContainerInstancesStateInput) Validate() error {
19261	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerInstancesStateInput"}
19262	if s.ContainerInstances == nil {
19263		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
19264	}
19265	if s.Status == nil {
19266		invalidParams.Add(request.NewErrParamRequired("Status"))
19267	}
19268
19269	if invalidParams.Len() > 0 {
19270		return invalidParams
19271	}
19272	return nil
19273}
19274
19275// SetCluster sets the Cluster field's value.
19276func (s *UpdateContainerInstancesStateInput) SetCluster(v string) *UpdateContainerInstancesStateInput {
19277	s.Cluster = &v
19278	return s
19279}
19280
19281// SetContainerInstances sets the ContainerInstances field's value.
19282func (s *UpdateContainerInstancesStateInput) SetContainerInstances(v []*string) *UpdateContainerInstancesStateInput {
19283	s.ContainerInstances = v
19284	return s
19285}
19286
19287// SetStatus sets the Status field's value.
19288func (s *UpdateContainerInstancesStateInput) SetStatus(v string) *UpdateContainerInstancesStateInput {
19289	s.Status = &v
19290	return s
19291}
19292
19293type UpdateContainerInstancesStateOutput struct {
19294	_ struct{} `type:"structure"`
19295
19296	// The list of container instances.
19297	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
19298
19299	// Any failures associated with the call.
19300	Failures []*Failure `locationName:"failures" type:"list"`
19301}
19302
19303// String returns the string representation
19304func (s UpdateContainerInstancesStateOutput) String() string {
19305	return awsutil.Prettify(s)
19306}
19307
19308// GoString returns the string representation
19309func (s UpdateContainerInstancesStateOutput) GoString() string {
19310	return s.String()
19311}
19312
19313// SetContainerInstances sets the ContainerInstances field's value.
19314func (s *UpdateContainerInstancesStateOutput) SetContainerInstances(v []*ContainerInstance) *UpdateContainerInstancesStateOutput {
19315	s.ContainerInstances = v
19316	return s
19317}
19318
19319// SetFailures sets the Failures field's value.
19320func (s *UpdateContainerInstancesStateOutput) SetFailures(v []*Failure) *UpdateContainerInstancesStateOutput {
19321	s.Failures = v
19322	return s
19323}
19324
19325// There is already a current Amazon ECS container agent update in progress
19326// on the specified container instance. If the container agent becomes disconnected
19327// while it is in a transitional stage, such as PENDING or STAGING, the update
19328// process can get stuck in that state. However, when the agent reconnects,
19329// it resumes where it stopped previously.
19330type UpdateInProgressException struct {
19331	_            struct{}                  `type:"structure"`
19332	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19333
19334	Message_ *string `locationName:"message" type:"string"`
19335}
19336
19337// String returns the string representation
19338func (s UpdateInProgressException) String() string {
19339	return awsutil.Prettify(s)
19340}
19341
19342// GoString returns the string representation
19343func (s UpdateInProgressException) GoString() string {
19344	return s.String()
19345}
19346
19347func newErrorUpdateInProgressException(v protocol.ResponseMetadata) error {
19348	return &UpdateInProgressException{
19349		RespMetadata: v,
19350	}
19351}
19352
19353// Code returns the exception type name.
19354func (s *UpdateInProgressException) Code() string {
19355	return "UpdateInProgressException"
19356}
19357
19358// Message returns the exception's message.
19359func (s *UpdateInProgressException) Message() string {
19360	if s.Message_ != nil {
19361		return *s.Message_
19362	}
19363	return ""
19364}
19365
19366// OrigErr always returns nil, satisfies awserr.Error interface.
19367func (s *UpdateInProgressException) OrigErr() error {
19368	return nil
19369}
19370
19371func (s *UpdateInProgressException) Error() string {
19372	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19373}
19374
19375// Status code returns the HTTP status code for the request's response error.
19376func (s *UpdateInProgressException) StatusCode() int {
19377	return s.RespMetadata.StatusCode
19378}
19379
19380// RequestID returns the service's response RequestID for request.
19381func (s *UpdateInProgressException) RequestID() string {
19382	return s.RespMetadata.RequestID
19383}
19384
19385type UpdateServiceInput struct {
19386	_ struct{} `type:"structure"`
19387
19388	// The capacity provider strategy to update the service to use.
19389	//
19390	// If the service is using the default capacity provider strategy for the cluster,
19391	// the service can be updated to use one or more capacity providers as opposed
19392	// to the default capacity provider strategy. However, when a service is using
19393	// a capacity provider strategy that is not the default capacity provider strategy,
19394	// the service cannot be updated to use the cluster's default capacity provider
19395	// strategy.
19396	//
19397	// A capacity provider strategy consists of one or more capacity providers along
19398	// with the base and weight to assign to them. A capacity provider must be associated
19399	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
19400	// API is used to associate a capacity provider with a cluster. Only capacity
19401	// providers with an ACTIVE or UPDATING status can be used.
19402	//
19403	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
19404	// provider must already be created. New capacity providers can be created with
19405	// the CreateCapacityProvider API operation.
19406	//
19407	// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
19408	// capacity providers. The AWS Fargate capacity providers are available to all
19409	// accounts and only need to be associated with a cluster to be used.
19410	//
19411	// The PutClusterCapacityProviders API operation is used to update the list
19412	// of available capacity providers for a cluster after the cluster is created.
19413	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
19414
19415	// The short name or full Amazon Resource Name (ARN) of the cluster that your
19416	// service is running on. If you do not specify a cluster, the default cluster
19417	// is assumed.
19418	Cluster *string `locationName:"cluster" type:"string"`
19419
19420	// Optional deployment parameters that control how many tasks run during the
19421	// deployment and the ordering of stopping and starting tasks.
19422	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
19423
19424	// The number of instantiations of the task to place and keep running in your
19425	// service.
19426	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
19427
19428	// Whether to force a new deployment of the service. Deployments are not forced
19429	// by default. You can use this option to trigger a new deployment with no service
19430	// definition changes. For example, you can update a service's tasks to use
19431	// a newer Docker image with the same image/tag combination (my_image:latest)
19432	// or to roll Fargate tasks onto a newer platform version.
19433	ForceNewDeployment *bool `locationName:"forceNewDeployment" type:"boolean"`
19434
19435	// The period of time, in seconds, that the Amazon ECS service scheduler should
19436	// ignore unhealthy Elastic Load Balancing target health checks after a task
19437	// has first started. This is only valid if your service is configured to use
19438	// a load balancer. If your service's tasks take a while to start and respond
19439	// to Elastic Load Balancing health checks, you can specify a health check grace
19440	// period of up to 2,147,483,647 seconds. During that time, the Amazon ECS service
19441	// scheduler ignores the Elastic Load Balancing health check status. This grace
19442	// period can prevent the ECS service scheduler from marking tasks as unhealthy
19443	// and stopping them before they have time to come up.
19444	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
19445
19446	// An object representing the network configuration for a task or service.
19447	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
19448
19449	// An array of task placement constraint objects to update the service to use.
19450	// If no value is specified, the existing placement constraints for the service
19451	// will remain unchanged. If this value is specified, it will override any existing
19452	// placement constraints defined for the service. To remove all existing placement
19453	// constraints, specify an empty array.
19454	//
19455	// You can specify a maximum of 10 constraints per task (this limit includes
19456	// constraints in the task definition and those specified at runtime).
19457	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
19458
19459	// The task placement strategy objects to update the service to use. If no value
19460	// is specified, the existing placement strategy for the service will remain
19461	// unchanged. If this value is specified, it will override the existing placement
19462	// strategy defined for the service. To remove an existing placement strategy,
19463	// specify an empty object.
19464	//
19465	// You can specify a maximum of five strategy rules per service.
19466	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
19467
19468	// The platform version on which your tasks in the service are running. A platform
19469	// version is only specified for tasks using the Fargate launch type. If a platform
19470	// version is not specified, the LATEST platform version is used by default.
19471	// For more information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
19472	// in the Amazon Elastic Container Service Developer Guide.
19473	PlatformVersion *string `locationName:"platformVersion" type:"string"`
19474
19475	// The name of the service to update.
19476	//
19477	// Service is a required field
19478	Service *string `locationName:"service" type:"string" required:"true"`
19479
19480	// The family and revision (family:revision) or full ARN of the task definition
19481	// to run in your service. If a revision is not specified, the latest ACTIVE
19482	// revision is used. If you modify the task definition with UpdateService, Amazon
19483	// ECS spawns a task with the new version of the task definition and then stops
19484	// an old task after the new version is running.
19485	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
19486}
19487
19488// String returns the string representation
19489func (s UpdateServiceInput) String() string {
19490	return awsutil.Prettify(s)
19491}
19492
19493// GoString returns the string representation
19494func (s UpdateServiceInput) GoString() string {
19495	return s.String()
19496}
19497
19498// Validate inspects the fields of the type to determine if they are valid.
19499func (s *UpdateServiceInput) Validate() error {
19500	invalidParams := request.ErrInvalidParams{Context: "UpdateServiceInput"}
19501	if s.Service == nil {
19502		invalidParams.Add(request.NewErrParamRequired("Service"))
19503	}
19504	if s.CapacityProviderStrategy != nil {
19505		for i, v := range s.CapacityProviderStrategy {
19506			if v == nil {
19507				continue
19508			}
19509			if err := v.Validate(); err != nil {
19510				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
19511			}
19512		}
19513	}
19514	if s.NetworkConfiguration != nil {
19515		if err := s.NetworkConfiguration.Validate(); err != nil {
19516			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
19517		}
19518	}
19519
19520	if invalidParams.Len() > 0 {
19521		return invalidParams
19522	}
19523	return nil
19524}
19525
19526// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
19527func (s *UpdateServiceInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *UpdateServiceInput {
19528	s.CapacityProviderStrategy = v
19529	return s
19530}
19531
19532// SetCluster sets the Cluster field's value.
19533func (s *UpdateServiceInput) SetCluster(v string) *UpdateServiceInput {
19534	s.Cluster = &v
19535	return s
19536}
19537
19538// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
19539func (s *UpdateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *UpdateServiceInput {
19540	s.DeploymentConfiguration = v
19541	return s
19542}
19543
19544// SetDesiredCount sets the DesiredCount field's value.
19545func (s *UpdateServiceInput) SetDesiredCount(v int64) *UpdateServiceInput {
19546	s.DesiredCount = &v
19547	return s
19548}
19549
19550// SetForceNewDeployment sets the ForceNewDeployment field's value.
19551func (s *UpdateServiceInput) SetForceNewDeployment(v bool) *UpdateServiceInput {
19552	s.ForceNewDeployment = &v
19553	return s
19554}
19555
19556// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
19557func (s *UpdateServiceInput) SetHealthCheckGracePeriodSeconds(v int64) *UpdateServiceInput {
19558	s.HealthCheckGracePeriodSeconds = &v
19559	return s
19560}
19561
19562// SetNetworkConfiguration sets the NetworkConfiguration field's value.
19563func (s *UpdateServiceInput) SetNetworkConfiguration(v *NetworkConfiguration) *UpdateServiceInput {
19564	s.NetworkConfiguration = v
19565	return s
19566}
19567
19568// SetPlacementConstraints sets the PlacementConstraints field's value.
19569func (s *UpdateServiceInput) SetPlacementConstraints(v []*PlacementConstraint) *UpdateServiceInput {
19570	s.PlacementConstraints = v
19571	return s
19572}
19573
19574// SetPlacementStrategy sets the PlacementStrategy field's value.
19575func (s *UpdateServiceInput) SetPlacementStrategy(v []*PlacementStrategy) *UpdateServiceInput {
19576	s.PlacementStrategy = v
19577	return s
19578}
19579
19580// SetPlatformVersion sets the PlatformVersion field's value.
19581func (s *UpdateServiceInput) SetPlatformVersion(v string) *UpdateServiceInput {
19582	s.PlatformVersion = &v
19583	return s
19584}
19585
19586// SetService sets the Service field's value.
19587func (s *UpdateServiceInput) SetService(v string) *UpdateServiceInput {
19588	s.Service = &v
19589	return s
19590}
19591
19592// SetTaskDefinition sets the TaskDefinition field's value.
19593func (s *UpdateServiceInput) SetTaskDefinition(v string) *UpdateServiceInput {
19594	s.TaskDefinition = &v
19595	return s
19596}
19597
19598type UpdateServiceOutput struct {
19599	_ struct{} `type:"structure"`
19600
19601	// The full description of your service following the update call.
19602	Service *Service `locationName:"service" type:"structure"`
19603}
19604
19605// String returns the string representation
19606func (s UpdateServiceOutput) String() string {
19607	return awsutil.Prettify(s)
19608}
19609
19610// GoString returns the string representation
19611func (s UpdateServiceOutput) GoString() string {
19612	return s.String()
19613}
19614
19615// SetService sets the Service field's value.
19616func (s *UpdateServiceOutput) SetService(v *Service) *UpdateServiceOutput {
19617	s.Service = v
19618	return s
19619}
19620
19621type UpdateServicePrimaryTaskSetInput struct {
19622	_ struct{} `type:"structure"`
19623
19624	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
19625	// the service that the task set exists in.
19626	//
19627	// Cluster is a required field
19628	Cluster *string `locationName:"cluster" type:"string" required:"true"`
19629
19630	// The short name or full Amazon Resource Name (ARN) of the task set to set
19631	// as the primary task set in the deployment.
19632	//
19633	// PrimaryTaskSet is a required field
19634	PrimaryTaskSet *string `locationName:"primaryTaskSet" type:"string" required:"true"`
19635
19636	// The short name or full Amazon Resource Name (ARN) of the service that the
19637	// task set exists in.
19638	//
19639	// Service is a required field
19640	Service *string `locationName:"service" type:"string" required:"true"`
19641}
19642
19643// String returns the string representation
19644func (s UpdateServicePrimaryTaskSetInput) String() string {
19645	return awsutil.Prettify(s)
19646}
19647
19648// GoString returns the string representation
19649func (s UpdateServicePrimaryTaskSetInput) GoString() string {
19650	return s.String()
19651}
19652
19653// Validate inspects the fields of the type to determine if they are valid.
19654func (s *UpdateServicePrimaryTaskSetInput) Validate() error {
19655	invalidParams := request.ErrInvalidParams{Context: "UpdateServicePrimaryTaskSetInput"}
19656	if s.Cluster == nil {
19657		invalidParams.Add(request.NewErrParamRequired("Cluster"))
19658	}
19659	if s.PrimaryTaskSet == nil {
19660		invalidParams.Add(request.NewErrParamRequired("PrimaryTaskSet"))
19661	}
19662	if s.Service == nil {
19663		invalidParams.Add(request.NewErrParamRequired("Service"))
19664	}
19665
19666	if invalidParams.Len() > 0 {
19667		return invalidParams
19668	}
19669	return nil
19670}
19671
19672// SetCluster sets the Cluster field's value.
19673func (s *UpdateServicePrimaryTaskSetInput) SetCluster(v string) *UpdateServicePrimaryTaskSetInput {
19674	s.Cluster = &v
19675	return s
19676}
19677
19678// SetPrimaryTaskSet sets the PrimaryTaskSet field's value.
19679func (s *UpdateServicePrimaryTaskSetInput) SetPrimaryTaskSet(v string) *UpdateServicePrimaryTaskSetInput {
19680	s.PrimaryTaskSet = &v
19681	return s
19682}
19683
19684// SetService sets the Service field's value.
19685func (s *UpdateServicePrimaryTaskSetInput) SetService(v string) *UpdateServicePrimaryTaskSetInput {
19686	s.Service = &v
19687	return s
19688}
19689
19690type UpdateServicePrimaryTaskSetOutput struct {
19691	_ struct{} `type:"structure"`
19692
19693	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
19694	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
19695	// desired number of tasks, how many tasks are running, and whether the task
19696	// set serves production traffic.
19697	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
19698}
19699
19700// String returns the string representation
19701func (s UpdateServicePrimaryTaskSetOutput) String() string {
19702	return awsutil.Prettify(s)
19703}
19704
19705// GoString returns the string representation
19706func (s UpdateServicePrimaryTaskSetOutput) GoString() string {
19707	return s.String()
19708}
19709
19710// SetTaskSet sets the TaskSet field's value.
19711func (s *UpdateServicePrimaryTaskSetOutput) SetTaskSet(v *TaskSet) *UpdateServicePrimaryTaskSetOutput {
19712	s.TaskSet = v
19713	return s
19714}
19715
19716type UpdateTaskSetInput struct {
19717	_ struct{} `type:"structure"`
19718
19719	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
19720	// the service that the task set exists in.
19721	//
19722	// Cluster is a required field
19723	Cluster *string `locationName:"cluster" type:"string" required:"true"`
19724
19725	// A floating-point percentage of the desired number of tasks to place and keep
19726	// running in the task set.
19727	//
19728	// Scale is a required field
19729	Scale *Scale `locationName:"scale" type:"structure" required:"true"`
19730
19731	// The short name or full Amazon Resource Name (ARN) of the service that the
19732	// task set exists in.
19733	//
19734	// Service is a required field
19735	Service *string `locationName:"service" type:"string" required:"true"`
19736
19737	// The short name or full Amazon Resource Name (ARN) of the task set to update.
19738	//
19739	// TaskSet is a required field
19740	TaskSet *string `locationName:"taskSet" type:"string" required:"true"`
19741}
19742
19743// String returns the string representation
19744func (s UpdateTaskSetInput) String() string {
19745	return awsutil.Prettify(s)
19746}
19747
19748// GoString returns the string representation
19749func (s UpdateTaskSetInput) GoString() string {
19750	return s.String()
19751}
19752
19753// Validate inspects the fields of the type to determine if they are valid.
19754func (s *UpdateTaskSetInput) Validate() error {
19755	invalidParams := request.ErrInvalidParams{Context: "UpdateTaskSetInput"}
19756	if s.Cluster == nil {
19757		invalidParams.Add(request.NewErrParamRequired("Cluster"))
19758	}
19759	if s.Scale == nil {
19760		invalidParams.Add(request.NewErrParamRequired("Scale"))
19761	}
19762	if s.Service == nil {
19763		invalidParams.Add(request.NewErrParamRequired("Service"))
19764	}
19765	if s.TaskSet == nil {
19766		invalidParams.Add(request.NewErrParamRequired("TaskSet"))
19767	}
19768
19769	if invalidParams.Len() > 0 {
19770		return invalidParams
19771	}
19772	return nil
19773}
19774
19775// SetCluster sets the Cluster field's value.
19776func (s *UpdateTaskSetInput) SetCluster(v string) *UpdateTaskSetInput {
19777	s.Cluster = &v
19778	return s
19779}
19780
19781// SetScale sets the Scale field's value.
19782func (s *UpdateTaskSetInput) SetScale(v *Scale) *UpdateTaskSetInput {
19783	s.Scale = v
19784	return s
19785}
19786
19787// SetService sets the Service field's value.
19788func (s *UpdateTaskSetInput) SetService(v string) *UpdateTaskSetInput {
19789	s.Service = &v
19790	return s
19791}
19792
19793// SetTaskSet sets the TaskSet field's value.
19794func (s *UpdateTaskSetInput) SetTaskSet(v string) *UpdateTaskSetInput {
19795	s.TaskSet = &v
19796	return s
19797}
19798
19799type UpdateTaskSetOutput struct {
19800	_ struct{} `type:"structure"`
19801
19802	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
19803	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
19804	// desired number of tasks, how many tasks are running, and whether the task
19805	// set serves production traffic.
19806	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
19807}
19808
19809// String returns the string representation
19810func (s UpdateTaskSetOutput) String() string {
19811	return awsutil.Prettify(s)
19812}
19813
19814// GoString returns the string representation
19815func (s UpdateTaskSetOutput) GoString() string {
19816	return s.String()
19817}
19818
19819// SetTaskSet sets the TaskSet field's value.
19820func (s *UpdateTaskSetOutput) SetTaskSet(v *TaskSet) *UpdateTaskSetOutput {
19821	s.TaskSet = v
19822	return s
19823}
19824
19825// The Docker and Amazon ECS container agent version information about a container
19826// instance.
19827type VersionInfo struct {
19828	_ struct{} `type:"structure"`
19829
19830	// The Git commit hash for the Amazon ECS container agent build on the amazon-ecs-agent
19831	// (https://github.com/aws/amazon-ecs-agent/commits/master) GitHub repository.
19832	AgentHash *string `locationName:"agentHash" type:"string"`
19833
19834	// The version number of the Amazon ECS container agent.
19835	AgentVersion *string `locationName:"agentVersion" type:"string"`
19836
19837	// The Docker version running on the container instance.
19838	DockerVersion *string `locationName:"dockerVersion" type:"string"`
19839}
19840
19841// String returns the string representation
19842func (s VersionInfo) String() string {
19843	return awsutil.Prettify(s)
19844}
19845
19846// GoString returns the string representation
19847func (s VersionInfo) GoString() string {
19848	return s.String()
19849}
19850
19851// SetAgentHash sets the AgentHash field's value.
19852func (s *VersionInfo) SetAgentHash(v string) *VersionInfo {
19853	s.AgentHash = &v
19854	return s
19855}
19856
19857// SetAgentVersion sets the AgentVersion field's value.
19858func (s *VersionInfo) SetAgentVersion(v string) *VersionInfo {
19859	s.AgentVersion = &v
19860	return s
19861}
19862
19863// SetDockerVersion sets the DockerVersion field's value.
19864func (s *VersionInfo) SetDockerVersion(v string) *VersionInfo {
19865	s.DockerVersion = &v
19866	return s
19867}
19868
19869// A data volume used in a task definition. For tasks that use a Docker volume,
19870// specify a DockerVolumeConfiguration. For tasks that use a bind mount host
19871// volume, specify a host and optional sourcePath. For more information, see
19872// Using Data Volumes in Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html).
19873type Volume struct {
19874	_ struct{} `type:"structure"`
19875
19876	// This parameter is specified when you are using Docker volumes. Docker volumes
19877	// are only supported when you are using the EC2 launch type. Windows containers
19878	// only support the use of the local driver. To use bind mounts, specify the
19879	// host parameter instead.
19880	DockerVolumeConfiguration *DockerVolumeConfiguration `locationName:"dockerVolumeConfiguration" type:"structure"`
19881
19882	// This parameter is specified when you are using an Amazon Elastic File System
19883	// (Amazon EFS) file storage. Amazon EFS file systems are only supported when
19884	// you are using the EC2 launch type.
19885	//
19886	// EFSVolumeConfiguration remains in preview and is a Beta Service as defined
19887	// by and subject to the Beta Service Participation Service Terms located at
19888	// https://aws.amazon.com/service-terms (https://aws.amazon.com/service-terms)
19889	// ("Beta Terms"). These Beta Terms apply to your participation in this preview
19890	// of EFSVolumeConfiguration.
19891	EfsVolumeConfiguration *EFSVolumeConfiguration `locationName:"efsVolumeConfiguration" type:"structure"`
19892
19893	// This parameter is specified when you are using bind mount host volumes. Bind
19894	// mount host volumes are supported when you are using either the EC2 or Fargate
19895	// launch types. The contents of the host parameter determine whether your bind
19896	// mount host volume persists on the host container instance and where it is
19897	// stored. If the host parameter is empty, then the Docker daemon assigns a
19898	// host path for your data volume. However, the data is not guaranteed to persist
19899	// after the containers associated with it stop running.
19900	//
19901	// Windows containers can mount whole directories on the same drive as $env:ProgramData.
19902	// Windows containers cannot mount directories on a different drive, and mount
19903	// point cannot be across drives. For example, you can mount C:\my\path:C:\my\path
19904	// and D:\:D:\, but not D:\my\path:C:\my\path or D:\:C:\my\path.
19905	Host *HostVolumeProperties `locationName:"host" type:"structure"`
19906
19907	// The name of the volume. Up to 255 letters (uppercase and lowercase), numbers,
19908	// and hyphens are allowed. This name is referenced in the sourceVolume parameter
19909	// of container definition mountPoints.
19910	Name *string `locationName:"name" type:"string"`
19911}
19912
19913// String returns the string representation
19914func (s Volume) String() string {
19915	return awsutil.Prettify(s)
19916}
19917
19918// GoString returns the string representation
19919func (s Volume) GoString() string {
19920	return s.String()
19921}
19922
19923// Validate inspects the fields of the type to determine if they are valid.
19924func (s *Volume) Validate() error {
19925	invalidParams := request.ErrInvalidParams{Context: "Volume"}
19926	if s.EfsVolumeConfiguration != nil {
19927		if err := s.EfsVolumeConfiguration.Validate(); err != nil {
19928			invalidParams.AddNested("EfsVolumeConfiguration", err.(request.ErrInvalidParams))
19929		}
19930	}
19931
19932	if invalidParams.Len() > 0 {
19933		return invalidParams
19934	}
19935	return nil
19936}
19937
19938// SetDockerVolumeConfiguration sets the DockerVolumeConfiguration field's value.
19939func (s *Volume) SetDockerVolumeConfiguration(v *DockerVolumeConfiguration) *Volume {
19940	s.DockerVolumeConfiguration = v
19941	return s
19942}
19943
19944// SetEfsVolumeConfiguration sets the EfsVolumeConfiguration field's value.
19945func (s *Volume) SetEfsVolumeConfiguration(v *EFSVolumeConfiguration) *Volume {
19946	s.EfsVolumeConfiguration = v
19947	return s
19948}
19949
19950// SetHost sets the Host field's value.
19951func (s *Volume) SetHost(v *HostVolumeProperties) *Volume {
19952	s.Host = v
19953	return s
19954}
19955
19956// SetName sets the Name field's value.
19957func (s *Volume) SetName(v string) *Volume {
19958	s.Name = &v
19959	return s
19960}
19961
19962// Details on a data volume from another container in the same task definition.
19963type VolumeFrom struct {
19964	_ struct{} `type:"structure"`
19965
19966	// If this value is true, the container has read-only access to the volume.
19967	// If this value is false, then the container can write to the volume. The default
19968	// value is false.
19969	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
19970
19971	// The name of another container within the same task definition from which
19972	// to mount volumes.
19973	SourceContainer *string `locationName:"sourceContainer" type:"string"`
19974}
19975
19976// String returns the string representation
19977func (s VolumeFrom) String() string {
19978	return awsutil.Prettify(s)
19979}
19980
19981// GoString returns the string representation
19982func (s VolumeFrom) GoString() string {
19983	return s.String()
19984}
19985
19986// SetReadOnly sets the ReadOnly field's value.
19987func (s *VolumeFrom) SetReadOnly(v bool) *VolumeFrom {
19988	s.ReadOnly = &v
19989	return s
19990}
19991
19992// SetSourceContainer sets the SourceContainer field's value.
19993func (s *VolumeFrom) SetSourceContainer(v string) *VolumeFrom {
19994	s.SourceContainer = &v
19995	return s
19996}
19997
19998const (
19999	// AgentUpdateStatusPending is a AgentUpdateStatus enum value
20000	AgentUpdateStatusPending = "PENDING"
20001
20002	// AgentUpdateStatusStaging is a AgentUpdateStatus enum value
20003	AgentUpdateStatusStaging = "STAGING"
20004
20005	// AgentUpdateStatusStaged is a AgentUpdateStatus enum value
20006	AgentUpdateStatusStaged = "STAGED"
20007
20008	// AgentUpdateStatusUpdating is a AgentUpdateStatus enum value
20009	AgentUpdateStatusUpdating = "UPDATING"
20010
20011	// AgentUpdateStatusUpdated is a AgentUpdateStatus enum value
20012	AgentUpdateStatusUpdated = "UPDATED"
20013
20014	// AgentUpdateStatusFailed is a AgentUpdateStatus enum value
20015	AgentUpdateStatusFailed = "FAILED"
20016)
20017
20018const (
20019	// AssignPublicIpEnabled is a AssignPublicIp enum value
20020	AssignPublicIpEnabled = "ENABLED"
20021
20022	// AssignPublicIpDisabled is a AssignPublicIp enum value
20023	AssignPublicIpDisabled = "DISABLED"
20024)
20025
20026const (
20027	// CapacityProviderFieldTags is a CapacityProviderField enum value
20028	CapacityProviderFieldTags = "TAGS"
20029)
20030
20031const (
20032	// CapacityProviderStatusActive is a CapacityProviderStatus enum value
20033	CapacityProviderStatusActive = "ACTIVE"
20034)
20035
20036const (
20037	// ClusterFieldAttachments is a ClusterField enum value
20038	ClusterFieldAttachments = "ATTACHMENTS"
20039
20040	// ClusterFieldSettings is a ClusterField enum value
20041	ClusterFieldSettings = "SETTINGS"
20042
20043	// ClusterFieldStatistics is a ClusterField enum value
20044	ClusterFieldStatistics = "STATISTICS"
20045
20046	// ClusterFieldTags is a ClusterField enum value
20047	ClusterFieldTags = "TAGS"
20048)
20049
20050const (
20051	// ClusterSettingNameContainerInsights is a ClusterSettingName enum value
20052	ClusterSettingNameContainerInsights = "containerInsights"
20053)
20054
20055const (
20056	// CompatibilityEc2 is a Compatibility enum value
20057	CompatibilityEc2 = "EC2"
20058
20059	// CompatibilityFargate is a Compatibility enum value
20060	CompatibilityFargate = "FARGATE"
20061)
20062
20063const (
20064	// ConnectivityConnected is a Connectivity enum value
20065	ConnectivityConnected = "CONNECTED"
20066
20067	// ConnectivityDisconnected is a Connectivity enum value
20068	ConnectivityDisconnected = "DISCONNECTED"
20069)
20070
20071const (
20072	// ContainerConditionStart is a ContainerCondition enum value
20073	ContainerConditionStart = "START"
20074
20075	// ContainerConditionComplete is a ContainerCondition enum value
20076	ContainerConditionComplete = "COMPLETE"
20077
20078	// ContainerConditionSuccess is a ContainerCondition enum value
20079	ContainerConditionSuccess = "SUCCESS"
20080
20081	// ContainerConditionHealthy is a ContainerCondition enum value
20082	ContainerConditionHealthy = "HEALTHY"
20083)
20084
20085const (
20086	// ContainerInstanceFieldTags is a ContainerInstanceField enum value
20087	ContainerInstanceFieldTags = "TAGS"
20088)
20089
20090const (
20091	// ContainerInstanceStatusActive is a ContainerInstanceStatus enum value
20092	ContainerInstanceStatusActive = "ACTIVE"
20093
20094	// ContainerInstanceStatusDraining is a ContainerInstanceStatus enum value
20095	ContainerInstanceStatusDraining = "DRAINING"
20096
20097	// ContainerInstanceStatusRegistering is a ContainerInstanceStatus enum value
20098	ContainerInstanceStatusRegistering = "REGISTERING"
20099
20100	// ContainerInstanceStatusDeregistering is a ContainerInstanceStatus enum value
20101	ContainerInstanceStatusDeregistering = "DEREGISTERING"
20102
20103	// ContainerInstanceStatusRegistrationFailed is a ContainerInstanceStatus enum value
20104	ContainerInstanceStatusRegistrationFailed = "REGISTRATION_FAILED"
20105)
20106
20107const (
20108	// DeploymentControllerTypeEcs is a DeploymentControllerType enum value
20109	DeploymentControllerTypeEcs = "ECS"
20110
20111	// DeploymentControllerTypeCodeDeploy is a DeploymentControllerType enum value
20112	DeploymentControllerTypeCodeDeploy = "CODE_DEPLOY"
20113
20114	// DeploymentControllerTypeExternal is a DeploymentControllerType enum value
20115	DeploymentControllerTypeExternal = "EXTERNAL"
20116)
20117
20118const (
20119	// DesiredStatusRunning is a DesiredStatus enum value
20120	DesiredStatusRunning = "RUNNING"
20121
20122	// DesiredStatusPending is a DesiredStatus enum value
20123	DesiredStatusPending = "PENDING"
20124
20125	// DesiredStatusStopped is a DesiredStatus enum value
20126	DesiredStatusStopped = "STOPPED"
20127)
20128
20129const (
20130	// DeviceCgroupPermissionRead is a DeviceCgroupPermission enum value
20131	DeviceCgroupPermissionRead = "read"
20132
20133	// DeviceCgroupPermissionWrite is a DeviceCgroupPermission enum value
20134	DeviceCgroupPermissionWrite = "write"
20135
20136	// DeviceCgroupPermissionMknod is a DeviceCgroupPermission enum value
20137	DeviceCgroupPermissionMknod = "mknod"
20138)
20139
20140const (
20141	// EFSAuthorizationConfigIAMEnabled is a EFSAuthorizationConfigIAM enum value
20142	EFSAuthorizationConfigIAMEnabled = "ENABLED"
20143
20144	// EFSAuthorizationConfigIAMDisabled is a EFSAuthorizationConfigIAM enum value
20145	EFSAuthorizationConfigIAMDisabled = "DISABLED"
20146)
20147
20148const (
20149	// EFSTransitEncryptionEnabled is a EFSTransitEncryption enum value
20150	EFSTransitEncryptionEnabled = "ENABLED"
20151
20152	// EFSTransitEncryptionDisabled is a EFSTransitEncryption enum value
20153	EFSTransitEncryptionDisabled = "DISABLED"
20154)
20155
20156const (
20157	// EnvironmentFileTypeS3 is a EnvironmentFileType enum value
20158	EnvironmentFileTypeS3 = "s3"
20159)
20160
20161const (
20162	// FirelensConfigurationTypeFluentd is a FirelensConfigurationType enum value
20163	FirelensConfigurationTypeFluentd = "fluentd"
20164
20165	// FirelensConfigurationTypeFluentbit is a FirelensConfigurationType enum value
20166	FirelensConfigurationTypeFluentbit = "fluentbit"
20167)
20168
20169const (
20170	// HealthStatusHealthy is a HealthStatus enum value
20171	HealthStatusHealthy = "HEALTHY"
20172
20173	// HealthStatusUnhealthy is a HealthStatus enum value
20174	HealthStatusUnhealthy = "UNHEALTHY"
20175
20176	// HealthStatusUnknown is a HealthStatus enum value
20177	HealthStatusUnknown = "UNKNOWN"
20178)
20179
20180const (
20181	// IpcModeHost is a IpcMode enum value
20182	IpcModeHost = "host"
20183
20184	// IpcModeTask is a IpcMode enum value
20185	IpcModeTask = "task"
20186
20187	// IpcModeNone is a IpcMode enum value
20188	IpcModeNone = "none"
20189)
20190
20191const (
20192	// LaunchTypeEc2 is a LaunchType enum value
20193	LaunchTypeEc2 = "EC2"
20194
20195	// LaunchTypeFargate is a LaunchType enum value
20196	LaunchTypeFargate = "FARGATE"
20197)
20198
20199const (
20200	// LogDriverJsonFile is a LogDriver enum value
20201	LogDriverJsonFile = "json-file"
20202
20203	// LogDriverSyslog is a LogDriver enum value
20204	LogDriverSyslog = "syslog"
20205
20206	// LogDriverJournald is a LogDriver enum value
20207	LogDriverJournald = "journald"
20208
20209	// LogDriverGelf is a LogDriver enum value
20210	LogDriverGelf = "gelf"
20211
20212	// LogDriverFluentd is a LogDriver enum value
20213	LogDriverFluentd = "fluentd"
20214
20215	// LogDriverAwslogs is a LogDriver enum value
20216	LogDriverAwslogs = "awslogs"
20217
20218	// LogDriverSplunk is a LogDriver enum value
20219	LogDriverSplunk = "splunk"
20220
20221	// LogDriverAwsfirelens is a LogDriver enum value
20222	LogDriverAwsfirelens = "awsfirelens"
20223)
20224
20225const (
20226	// ManagedScalingStatusEnabled is a ManagedScalingStatus enum value
20227	ManagedScalingStatusEnabled = "ENABLED"
20228
20229	// ManagedScalingStatusDisabled is a ManagedScalingStatus enum value
20230	ManagedScalingStatusDisabled = "DISABLED"
20231)
20232
20233const (
20234	// ManagedTerminationProtectionEnabled is a ManagedTerminationProtection enum value
20235	ManagedTerminationProtectionEnabled = "ENABLED"
20236
20237	// ManagedTerminationProtectionDisabled is a ManagedTerminationProtection enum value
20238	ManagedTerminationProtectionDisabled = "DISABLED"
20239)
20240
20241const (
20242	// NetworkModeBridge is a NetworkMode enum value
20243	NetworkModeBridge = "bridge"
20244
20245	// NetworkModeHost is a NetworkMode enum value
20246	NetworkModeHost = "host"
20247
20248	// NetworkModeAwsvpc is a NetworkMode enum value
20249	NetworkModeAwsvpc = "awsvpc"
20250
20251	// NetworkModeNone is a NetworkMode enum value
20252	NetworkModeNone = "none"
20253)
20254
20255const (
20256	// PidModeHost is a PidMode enum value
20257	PidModeHost = "host"
20258
20259	// PidModeTask is a PidMode enum value
20260	PidModeTask = "task"
20261)
20262
20263const (
20264	// PlacementConstraintTypeDistinctInstance is a PlacementConstraintType enum value
20265	PlacementConstraintTypeDistinctInstance = "distinctInstance"
20266
20267	// PlacementConstraintTypeMemberOf is a PlacementConstraintType enum value
20268	PlacementConstraintTypeMemberOf = "memberOf"
20269)
20270
20271const (
20272	// PlacementStrategyTypeRandom is a PlacementStrategyType enum value
20273	PlacementStrategyTypeRandom = "random"
20274
20275	// PlacementStrategyTypeSpread is a PlacementStrategyType enum value
20276	PlacementStrategyTypeSpread = "spread"
20277
20278	// PlacementStrategyTypeBinpack is a PlacementStrategyType enum value
20279	PlacementStrategyTypeBinpack = "binpack"
20280)
20281
20282const (
20283	// PlatformDeviceTypeGpu is a PlatformDeviceType enum value
20284	PlatformDeviceTypeGpu = "GPU"
20285)
20286
20287const (
20288	// PropagateTagsTaskDefinition is a PropagateTags enum value
20289	PropagateTagsTaskDefinition = "TASK_DEFINITION"
20290
20291	// PropagateTagsService is a PropagateTags enum value
20292	PropagateTagsService = "SERVICE"
20293)
20294
20295const (
20296	// ProxyConfigurationTypeAppmesh is a ProxyConfigurationType enum value
20297	ProxyConfigurationTypeAppmesh = "APPMESH"
20298)
20299
20300const (
20301	// ResourceTypeGpu is a ResourceType enum value
20302	ResourceTypeGpu = "GPU"
20303
20304	// ResourceTypeInferenceAccelerator is a ResourceType enum value
20305	ResourceTypeInferenceAccelerator = "InferenceAccelerator"
20306)
20307
20308const (
20309	// ScaleUnitPercent is a ScaleUnit enum value
20310	ScaleUnitPercent = "PERCENT"
20311)
20312
20313const (
20314	// SchedulingStrategyReplica is a SchedulingStrategy enum value
20315	SchedulingStrategyReplica = "REPLICA"
20316
20317	// SchedulingStrategyDaemon is a SchedulingStrategy enum value
20318	SchedulingStrategyDaemon = "DAEMON"
20319)
20320
20321const (
20322	// ScopeTask is a Scope enum value
20323	ScopeTask = "task"
20324
20325	// ScopeShared is a Scope enum value
20326	ScopeShared = "shared"
20327)
20328
20329const (
20330	// ServiceFieldTags is a ServiceField enum value
20331	ServiceFieldTags = "TAGS"
20332)
20333
20334const (
20335	// SettingNameServiceLongArnFormat is a SettingName enum value
20336	SettingNameServiceLongArnFormat = "serviceLongArnFormat"
20337
20338	// SettingNameTaskLongArnFormat is a SettingName enum value
20339	SettingNameTaskLongArnFormat = "taskLongArnFormat"
20340
20341	// SettingNameContainerInstanceLongArnFormat is a SettingName enum value
20342	SettingNameContainerInstanceLongArnFormat = "containerInstanceLongArnFormat"
20343
20344	// SettingNameAwsvpcTrunking is a SettingName enum value
20345	SettingNameAwsvpcTrunking = "awsvpcTrunking"
20346
20347	// SettingNameContainerInsights is a SettingName enum value
20348	SettingNameContainerInsights = "containerInsights"
20349)
20350
20351const (
20352	// SortOrderAsc is a SortOrder enum value
20353	SortOrderAsc = "ASC"
20354
20355	// SortOrderDesc is a SortOrder enum value
20356	SortOrderDesc = "DESC"
20357)
20358
20359const (
20360	// StabilityStatusSteadyState is a StabilityStatus enum value
20361	StabilityStatusSteadyState = "STEADY_STATE"
20362
20363	// StabilityStatusStabilizing is a StabilityStatus enum value
20364	StabilityStatusStabilizing = "STABILIZING"
20365)
20366
20367const (
20368	// TargetTypeContainerInstance is a TargetType enum value
20369	TargetTypeContainerInstance = "container-instance"
20370)
20371
20372const (
20373	// TaskDefinitionFamilyStatusActive is a TaskDefinitionFamilyStatus enum value
20374	TaskDefinitionFamilyStatusActive = "ACTIVE"
20375
20376	// TaskDefinitionFamilyStatusInactive is a TaskDefinitionFamilyStatus enum value
20377	TaskDefinitionFamilyStatusInactive = "INACTIVE"
20378
20379	// TaskDefinitionFamilyStatusAll is a TaskDefinitionFamilyStatus enum value
20380	TaskDefinitionFamilyStatusAll = "ALL"
20381)
20382
20383const (
20384	// TaskDefinitionFieldTags is a TaskDefinitionField enum value
20385	TaskDefinitionFieldTags = "TAGS"
20386)
20387
20388const (
20389	// TaskDefinitionPlacementConstraintTypeMemberOf is a TaskDefinitionPlacementConstraintType enum value
20390	TaskDefinitionPlacementConstraintTypeMemberOf = "memberOf"
20391)
20392
20393const (
20394	// TaskDefinitionStatusActive is a TaskDefinitionStatus enum value
20395	TaskDefinitionStatusActive = "ACTIVE"
20396
20397	// TaskDefinitionStatusInactive is a TaskDefinitionStatus enum value
20398	TaskDefinitionStatusInactive = "INACTIVE"
20399)
20400
20401const (
20402	// TaskFieldTags is a TaskField enum value
20403	TaskFieldTags = "TAGS"
20404)
20405
20406const (
20407	// TaskSetFieldTags is a TaskSetField enum value
20408	TaskSetFieldTags = "TAGS"
20409)
20410
20411const (
20412	// TaskStopCodeTaskFailedToStart is a TaskStopCode enum value
20413	TaskStopCodeTaskFailedToStart = "TaskFailedToStart"
20414
20415	// TaskStopCodeEssentialContainerExited is a TaskStopCode enum value
20416	TaskStopCodeEssentialContainerExited = "EssentialContainerExited"
20417
20418	// TaskStopCodeUserInitiated is a TaskStopCode enum value
20419	TaskStopCodeUserInitiated = "UserInitiated"
20420)
20421
20422const (
20423	// TransportProtocolTcp is a TransportProtocol enum value
20424	TransportProtocolTcp = "tcp"
20425
20426	// TransportProtocolUdp is a TransportProtocol enum value
20427	TransportProtocolUdp = "udp"
20428)
20429
20430const (
20431	// UlimitNameCore is a UlimitName enum value
20432	UlimitNameCore = "core"
20433
20434	// UlimitNameCpu is a UlimitName enum value
20435	UlimitNameCpu = "cpu"
20436
20437	// UlimitNameData is a UlimitName enum value
20438	UlimitNameData = "data"
20439
20440	// UlimitNameFsize is a UlimitName enum value
20441	UlimitNameFsize = "fsize"
20442
20443	// UlimitNameLocks is a UlimitName enum value
20444	UlimitNameLocks = "locks"
20445
20446	// UlimitNameMemlock is a UlimitName enum value
20447	UlimitNameMemlock = "memlock"
20448
20449	// UlimitNameMsgqueue is a UlimitName enum value
20450	UlimitNameMsgqueue = "msgqueue"
20451
20452	// UlimitNameNice is a UlimitName enum value
20453	UlimitNameNice = "nice"
20454
20455	// UlimitNameNofile is a UlimitName enum value
20456	UlimitNameNofile = "nofile"
20457
20458	// UlimitNameNproc is a UlimitName enum value
20459	UlimitNameNproc = "nproc"
20460
20461	// UlimitNameRss is a UlimitName enum value
20462	UlimitNameRss = "rss"
20463
20464	// UlimitNameRtprio is a UlimitName enum value
20465	UlimitNameRtprio = "rtprio"
20466
20467	// UlimitNameRttime is a UlimitName enum value
20468	UlimitNameRttime = "rttime"
20469
20470	// UlimitNameSigpending is a UlimitName enum value
20471	UlimitNameSigpending = "sigpending"
20472
20473	// UlimitNameStack is a UlimitName enum value
20474	UlimitNameStack = "stack"
20475)
20476