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 opCreateCluster = "CreateCluster"
17
18// CreateClusterRequest generates a "aws/request.Request" representing the
19// client's request for the CreateCluster 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 CreateCluster for more information on using the CreateCluster
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 CreateClusterRequest method.
34//    req, resp := client.CreateClusterRequest(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/CreateCluster
42func (c *ECS) CreateClusterRequest(input *CreateClusterInput) (req *request.Request, output *CreateClusterOutput) {
43	op := &request.Operation{
44		Name:       opCreateCluster,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &CreateClusterInput{}
51	}
52
53	output = &CreateClusterOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// CreateCluster API operation for Amazon EC2 Container Service.
59//
60// Creates a new Amazon ECS cluster. By default, your account receives a default
61// cluster when you launch your first container instance. However, you can create
62// your own cluster with a unique name with the CreateCluster action.
63//
64// When you call the CreateCluster API operation, Amazon ECS attempts to create
65// the service-linked role for your account so that required resources in other
66// AWS services can be managed on your behalf. However, if the IAM user that
67// makes the call does not have permissions to create the service-linked role,
68// it is not created. For more information, see Using Service-Linked Roles for
69// Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
70// in the Amazon Elastic Container Service Developer Guide.
71//
72// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
73// with awserr.Error's Code and Message methods to get detailed information about
74// the error.
75//
76// See the AWS API reference guide for Amazon EC2 Container Service's
77// API operation CreateCluster for usage and error information.
78//
79// Returned Error Codes:
80//   * ErrCodeServerException "ServerException"
81//   These errors are usually caused by a server issue.
82//
83//   * ErrCodeClientException "ClientException"
84//   These errors are usually caused by a client action, such as using an action
85//   or resource on behalf of a user that doesn't have permissions to use the
86//   action or resource, or specifying an identifier that is not valid.
87//
88//   * ErrCodeInvalidParameterException "InvalidParameterException"
89//   The specified parameter is invalid. Review the available parameters for the
90//   API request.
91//
92// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCluster
93func (c *ECS) CreateCluster(input *CreateClusterInput) (*CreateClusterOutput, error) {
94	req, out := c.CreateClusterRequest(input)
95	return out, req.Send()
96}
97
98// CreateClusterWithContext is the same as CreateCluster with the addition of
99// the ability to pass a context and additional request options.
100//
101// See CreateCluster 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) CreateClusterWithContext(ctx aws.Context, input *CreateClusterInput, opts ...request.Option) (*CreateClusterOutput, error) {
108	req, out := c.CreateClusterRequest(input)
109	req.SetContext(ctx)
110	req.ApplyOptions(opts...)
111	return out, req.Send()
112}
113
114const opCreateService = "CreateService"
115
116// CreateServiceRequest generates a "aws/request.Request" representing the
117// client's request for the CreateService 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 CreateService for more information on using the CreateService
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 CreateServiceRequest method.
132//    req, resp := client.CreateServiceRequest(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/CreateService
140func (c *ECS) CreateServiceRequest(input *CreateServiceInput) (req *request.Request, output *CreateServiceOutput) {
141	op := &request.Operation{
142		Name:       opCreateService,
143		HTTPMethod: "POST",
144		HTTPPath:   "/",
145	}
146
147	if input == nil {
148		input = &CreateServiceInput{}
149	}
150
151	output = &CreateServiceOutput{}
152	req = c.newRequest(op, input, output)
153	return
154}
155
156// CreateService API operation for Amazon EC2 Container Service.
157//
158// Runs and maintains a desired number of tasks from a specified task definition.
159// If the number of tasks running in a service drops below the desiredCount,
160// Amazon ECS spawns another copy of the task in the specified cluster. To update
161// an existing service, see UpdateService.
162//
163// In addition to maintaining the desired count of tasks in your service, you
164// can optionally run your service behind a load balancer. The load balancer
165// distributes traffic across the tasks that are associated with the service.
166// For more information, see Service Load Balancing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)
167// in the Amazon Elastic Container Service Developer Guide.
168//
169// Tasks for services that do not use a load balancer are considered healthy
170// if they're in the RUNNING state. Tasks for services that do use a load balancer
171// are considered healthy if they're in the RUNNING state and the container
172// instance that they're hosted on is reported as healthy by the load balancer.
173//
174// There are two service scheduler strategies available:
175//
176//    * REPLICA - The replica scheduling strategy places and maintains the desired
177//    number of tasks across your cluster. By default, the service scheduler
178//    spreads tasks across Availability Zones. You can use task placement strategies
179//    and constraints to customize task placement decisions. For more information,
180//    see Service Scheduler Concepts (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html)
181//    in the Amazon Elastic Container Service Developer Guide.
182//
183//    * DAEMON - The daemon scheduling strategy deploys exactly one task on
184//    each active container instance that meets all of the task placement constraints
185//    that you specify in your cluster. When using this strategy, you don't
186//    need to specify a desired number of tasks, a task placement strategy,
187//    or use Service Auto Scaling policies. For more information, see Service
188//    Scheduler Concepts (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html)
189//    in the Amazon Elastic Container Service Developer Guide.
190//
191// You can optionally specify a deployment configuration for your service. The
192// deployment is triggered by changing properties, such as the task definition
193// or the desired count of a service, with an UpdateService operation. The default
194// value for a replica service for minimumHealthyPercent is 100%. The default
195// value for a daemon service for minimumHealthyPercent is 0%.
196//
197// If a service is using the ECS deployment controller, the minimum healthy
198// percent represents a lower limit on the number of tasks in a service that
199// must remain in the RUNNING state during a deployment, as a percentage of
200// the desired number of tasks (rounded up to the nearest integer), and while
201// any container instances are in the DRAINING state if the service contains
202// tasks using the EC2 launch type. This parameter enables you to deploy without
203// using additional cluster capacity. For example, if your service has a desired
204// number of four tasks and a minimum healthy percent of 50%, the scheduler
205// might stop two existing tasks to free up cluster capacity before starting
206// two new tasks. Tasks for services that do not use a load balancer are considered
207// healthy if they're in the RUNNING state. Tasks for services that do use a
208// load balancer are considered healthy if they're in the RUNNING state and
209// they're reported as healthy by the load balancer. The default value for minimum
210// healthy percent is 100%.
211//
212// If a service is using the ECS deployment controller, the maximum percent
213// parameter represents an upper limit on the number of tasks in a service that
214// are allowed in the RUNNING or PENDING state during a deployment, as a percentage
215// of the desired number of tasks (rounded down to the nearest integer), and
216// while any container instances are in the DRAINING state if the service contains
217// tasks using the EC2 launch type. This parameter enables you to define the
218// deployment batch size. For example, if your service has a desired number
219// of four tasks and a maximum percent value of 200%, the scheduler may start
220// four new tasks before stopping the four older tasks (provided that the cluster
221// resources required to do this are available). The default value for maximum
222// percent is 200%.
223//
224// If a service is using either the CODE_DEPLOY or EXTERNAL deployment controller
225// types and tasks that use the EC2 launch type, the minimum healthy percent
226// and maximum percent values are used only to define the lower and upper limit
227// on the number of the tasks in the service that remain in the RUNNING state
228// while the container instances are in the DRAINING state. If the tasks in
229// the service use the Fargate launch type, the minimum healthy percent and
230// maximum percent values aren't used, although they're currently visible when
231// describing your service.
232//
233// When creating a service that uses the EXTERNAL deployment controller, you
234// can specify only parameters that aren't controlled at the task set level.
235// The only required parameter is the service name. You control your services
236// using the CreateTaskSet operation. For more information, see Amazon ECS Deployment
237// Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
238// in the Amazon Elastic Container Service Developer Guide.
239//
240// When the service scheduler launches new tasks, it determines task placement
241// in your cluster using the following logic:
242//
243//    * Determine which of the container instances in your cluster can support
244//    your service's task definition (for example, they have the required CPU,
245//    memory, ports, and container instance attributes).
246//
247//    * By default, the service scheduler attempts to balance tasks across Availability
248//    Zones in this manner (although you can choose a different placement strategy)
249//    with the placementStrategy parameter): Sort the valid container instances,
250//    giving priority to instances that have the fewest number of running tasks
251//    for this service in their respective Availability Zone. For example, if
252//    zone A has one running service task and zones B and C each have zero,
253//    valid container instances in either zone B or C are considered optimal
254//    for placement. Place the new service task on a valid container instance
255//    in an optimal Availability Zone (based on the previous steps), favoring
256//    container instances with the fewest number of running tasks for this service.
257//
258// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
259// with awserr.Error's Code and Message methods to get detailed information about
260// the error.
261//
262// See the AWS API reference guide for Amazon EC2 Container Service's
263// API operation CreateService for usage and error information.
264//
265// Returned Error Codes:
266//   * ErrCodeServerException "ServerException"
267//   These errors are usually caused by a server issue.
268//
269//   * ErrCodeClientException "ClientException"
270//   These errors are usually caused by a client action, such as using an action
271//   or resource on behalf of a user that doesn't have permissions to use the
272//   action or resource, or specifying an identifier that is not valid.
273//
274//   * ErrCodeInvalidParameterException "InvalidParameterException"
275//   The specified parameter is invalid. Review the available parameters for the
276//   API request.
277//
278//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
279//   The specified cluster could not be found. You can view your available clusters
280//   with ListClusters. Amazon ECS clusters are Region-specific.
281//
282//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
283//   The specified task is not supported in this Region.
284//
285//   * ErrCodePlatformUnknownException "PlatformUnknownException"
286//   The specified platform version does not exist.
287//
288//   * ErrCodePlatformTaskDefinitionIncompatibilityException "PlatformTaskDefinitionIncompatibilityException"
289//   The specified platform version does not satisfy the task definition's required
290//   capabilities.
291//
292//   * ErrCodeAccessDeniedException "AccessDeniedException"
293//   You do not have authorization to perform the requested action.
294//
295// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateService
296func (c *ECS) CreateService(input *CreateServiceInput) (*CreateServiceOutput, error) {
297	req, out := c.CreateServiceRequest(input)
298	return out, req.Send()
299}
300
301// CreateServiceWithContext is the same as CreateService with the addition of
302// the ability to pass a context and additional request options.
303//
304// See CreateService for details on how to use this API operation.
305//
306// The context must be non-nil and will be used for request cancellation. If
307// the context is nil a panic will occur. In the future the SDK may create
308// sub-contexts for http.Requests. See https://golang.org/pkg/context/
309// for more information on using Contexts.
310func (c *ECS) CreateServiceWithContext(ctx aws.Context, input *CreateServiceInput, opts ...request.Option) (*CreateServiceOutput, error) {
311	req, out := c.CreateServiceRequest(input)
312	req.SetContext(ctx)
313	req.ApplyOptions(opts...)
314	return out, req.Send()
315}
316
317const opCreateTaskSet = "CreateTaskSet"
318
319// CreateTaskSetRequest generates a "aws/request.Request" representing the
320// client's request for the CreateTaskSet operation. The "output" return
321// value will be populated with the request's response once the request completes
322// successfully.
323//
324// Use "Send" method on the returned Request to send the API call to the service.
325// the "output" return value is not valid until after Send returns without error.
326//
327// See CreateTaskSet for more information on using the CreateTaskSet
328// API call, and error handling.
329//
330// This method is useful when you want to inject custom logic or configuration
331// into the SDK's request lifecycle. Such as custom headers, or retry logic.
332//
333//
334//    // Example sending a request using the CreateTaskSetRequest method.
335//    req, resp := client.CreateTaskSetRequest(params)
336//
337//    err := req.Send()
338//    if err == nil { // resp is now filled
339//        fmt.Println(resp)
340//    }
341//
342// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateTaskSet
343func (c *ECS) CreateTaskSetRequest(input *CreateTaskSetInput) (req *request.Request, output *CreateTaskSetOutput) {
344	op := &request.Operation{
345		Name:       opCreateTaskSet,
346		HTTPMethod: "POST",
347		HTTPPath:   "/",
348	}
349
350	if input == nil {
351		input = &CreateTaskSetInput{}
352	}
353
354	output = &CreateTaskSetOutput{}
355	req = c.newRequest(op, input, output)
356	return
357}
358
359// CreateTaskSet API operation for Amazon EC2 Container Service.
360//
361// Create a task set in the specified cluster and service. This is used when
362// a service uses the EXTERNAL deployment controller type. For more information,
363// see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
364// in the Amazon Elastic Container Service Developer Guide.
365//
366// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
367// with awserr.Error's Code and Message methods to get detailed information about
368// the error.
369//
370// See the AWS API reference guide for Amazon EC2 Container Service's
371// API operation CreateTaskSet for usage and error information.
372//
373// Returned Error Codes:
374//   * ErrCodeServerException "ServerException"
375//   These errors are usually caused by a server issue.
376//
377//   * ErrCodeClientException "ClientException"
378//   These errors are usually caused by a client action, such as using an action
379//   or resource on behalf of a user that doesn't have permissions to use the
380//   action or resource, or specifying an identifier that is not valid.
381//
382//   * ErrCodeInvalidParameterException "InvalidParameterException"
383//   The specified parameter is invalid. Review the available parameters for the
384//   API request.
385//
386//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
387//   The specified cluster could not be found. You can view your available clusters
388//   with ListClusters. Amazon ECS clusters are Region-specific.
389//
390//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
391//   The specified task is not supported in this Region.
392//
393//   * ErrCodePlatformUnknownException "PlatformUnknownException"
394//   The specified platform version does not exist.
395//
396//   * ErrCodePlatformTaskDefinitionIncompatibilityException "PlatformTaskDefinitionIncompatibilityException"
397//   The specified platform version does not satisfy the task definition's required
398//   capabilities.
399//
400//   * ErrCodeAccessDeniedException "AccessDeniedException"
401//   You do not have authorization to perform the requested action.
402//
403//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
404//   The specified service could not be found. You can view your available services
405//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
406//
407//   * ErrCodeServiceNotActiveException "ServiceNotActiveException"
408//   The specified service is not active. You can't update a service that is inactive.
409//   If you have previously deleted a service, you can re-create it with CreateService.
410//
411// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateTaskSet
412func (c *ECS) CreateTaskSet(input *CreateTaskSetInput) (*CreateTaskSetOutput, error) {
413	req, out := c.CreateTaskSetRequest(input)
414	return out, req.Send()
415}
416
417// CreateTaskSetWithContext is the same as CreateTaskSet with the addition of
418// the ability to pass a context and additional request options.
419//
420// See CreateTaskSet for details on how to use this API operation.
421//
422// The context must be non-nil and will be used for request cancellation. If
423// the context is nil a panic will occur. In the future the SDK may create
424// sub-contexts for http.Requests. See https://golang.org/pkg/context/
425// for more information on using Contexts.
426func (c *ECS) CreateTaskSetWithContext(ctx aws.Context, input *CreateTaskSetInput, opts ...request.Option) (*CreateTaskSetOutput, error) {
427	req, out := c.CreateTaskSetRequest(input)
428	req.SetContext(ctx)
429	req.ApplyOptions(opts...)
430	return out, req.Send()
431}
432
433const opDeleteAccountSetting = "DeleteAccountSetting"
434
435// DeleteAccountSettingRequest generates a "aws/request.Request" representing the
436// client's request for the DeleteAccountSetting operation. The "output" return
437// value will be populated with the request's response once the request completes
438// successfully.
439//
440// Use "Send" method on the returned Request to send the API call to the service.
441// the "output" return value is not valid until after Send returns without error.
442//
443// See DeleteAccountSetting for more information on using the DeleteAccountSetting
444// API call, and error handling.
445//
446// This method is useful when you want to inject custom logic or configuration
447// into the SDK's request lifecycle. Such as custom headers, or retry logic.
448//
449//
450//    // Example sending a request using the DeleteAccountSettingRequest method.
451//    req, resp := client.DeleteAccountSettingRequest(params)
452//
453//    err := req.Send()
454//    if err == nil { // resp is now filled
455//        fmt.Println(resp)
456//    }
457//
458// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAccountSetting
459func (c *ECS) DeleteAccountSettingRequest(input *DeleteAccountSettingInput) (req *request.Request, output *DeleteAccountSettingOutput) {
460	op := &request.Operation{
461		Name:       opDeleteAccountSetting,
462		HTTPMethod: "POST",
463		HTTPPath:   "/",
464	}
465
466	if input == nil {
467		input = &DeleteAccountSettingInput{}
468	}
469
470	output = &DeleteAccountSettingOutput{}
471	req = c.newRequest(op, input, output)
472	return
473}
474
475// DeleteAccountSetting API operation for Amazon EC2 Container Service.
476//
477// Disables an account setting for a specified IAM user, IAM role, or the root
478// user for an account.
479//
480// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
481// with awserr.Error's Code and Message methods to get detailed information about
482// the error.
483//
484// See the AWS API reference guide for Amazon EC2 Container Service's
485// API operation DeleteAccountSetting for usage and error information.
486//
487// Returned Error Codes:
488//   * ErrCodeServerException "ServerException"
489//   These errors are usually caused by a server issue.
490//
491//   * ErrCodeClientException "ClientException"
492//   These errors are usually caused by a client action, such as using an action
493//   or resource on behalf of a user that doesn't have permissions to use the
494//   action or resource, or specifying an identifier that is not valid.
495//
496//   * ErrCodeInvalidParameterException "InvalidParameterException"
497//   The specified parameter is invalid. Review the available parameters for the
498//   API request.
499//
500// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAccountSetting
501func (c *ECS) DeleteAccountSetting(input *DeleteAccountSettingInput) (*DeleteAccountSettingOutput, error) {
502	req, out := c.DeleteAccountSettingRequest(input)
503	return out, req.Send()
504}
505
506// DeleteAccountSettingWithContext is the same as DeleteAccountSetting with the addition of
507// the ability to pass a context and additional request options.
508//
509// See DeleteAccountSetting for details on how to use this API operation.
510//
511// The context must be non-nil and will be used for request cancellation. If
512// the context is nil a panic will occur. In the future the SDK may create
513// sub-contexts for http.Requests. See https://golang.org/pkg/context/
514// for more information on using Contexts.
515func (c *ECS) DeleteAccountSettingWithContext(ctx aws.Context, input *DeleteAccountSettingInput, opts ...request.Option) (*DeleteAccountSettingOutput, error) {
516	req, out := c.DeleteAccountSettingRequest(input)
517	req.SetContext(ctx)
518	req.ApplyOptions(opts...)
519	return out, req.Send()
520}
521
522const opDeleteAttributes = "DeleteAttributes"
523
524// DeleteAttributesRequest generates a "aws/request.Request" representing the
525// client's request for the DeleteAttributes operation. The "output" return
526// value will be populated with the request's response once the request completes
527// successfully.
528//
529// Use "Send" method on the returned Request to send the API call to the service.
530// the "output" return value is not valid until after Send returns without error.
531//
532// See DeleteAttributes for more information on using the DeleteAttributes
533// API call, and error handling.
534//
535// This method is useful when you want to inject custom logic or configuration
536// into the SDK's request lifecycle. Such as custom headers, or retry logic.
537//
538//
539//    // Example sending a request using the DeleteAttributesRequest method.
540//    req, resp := client.DeleteAttributesRequest(params)
541//
542//    err := req.Send()
543//    if err == nil { // resp is now filled
544//        fmt.Println(resp)
545//    }
546//
547// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributes
548func (c *ECS) DeleteAttributesRequest(input *DeleteAttributesInput) (req *request.Request, output *DeleteAttributesOutput) {
549	op := &request.Operation{
550		Name:       opDeleteAttributes,
551		HTTPMethod: "POST",
552		HTTPPath:   "/",
553	}
554
555	if input == nil {
556		input = &DeleteAttributesInput{}
557	}
558
559	output = &DeleteAttributesOutput{}
560	req = c.newRequest(op, input, output)
561	return
562}
563
564// DeleteAttributes API operation for Amazon EC2 Container Service.
565//
566// Deletes one or more custom attributes from an Amazon ECS resource.
567//
568// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
569// with awserr.Error's Code and Message methods to get detailed information about
570// the error.
571//
572// See the AWS API reference guide for Amazon EC2 Container Service's
573// API operation DeleteAttributes for usage and error information.
574//
575// Returned Error Codes:
576//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
577//   The specified cluster could not be found. You can view your available clusters
578//   with ListClusters. Amazon ECS clusters are Region-specific.
579//
580//   * ErrCodeTargetNotFoundException "TargetNotFoundException"
581//   The specified target could not be found. You can view your available container
582//   instances with ListContainerInstances. Amazon ECS container instances are
583//   cluster-specific and Region-specific.
584//
585//   * ErrCodeInvalidParameterException "InvalidParameterException"
586//   The specified parameter is invalid. Review the available parameters for the
587//   API request.
588//
589// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributes
590func (c *ECS) DeleteAttributes(input *DeleteAttributesInput) (*DeleteAttributesOutput, error) {
591	req, out := c.DeleteAttributesRequest(input)
592	return out, req.Send()
593}
594
595// DeleteAttributesWithContext is the same as DeleteAttributes with the addition of
596// the ability to pass a context and additional request options.
597//
598// See DeleteAttributes for details on how to use this API operation.
599//
600// The context must be non-nil and will be used for request cancellation. If
601// the context is nil a panic will occur. In the future the SDK may create
602// sub-contexts for http.Requests. See https://golang.org/pkg/context/
603// for more information on using Contexts.
604func (c *ECS) DeleteAttributesWithContext(ctx aws.Context, input *DeleteAttributesInput, opts ...request.Option) (*DeleteAttributesOutput, error) {
605	req, out := c.DeleteAttributesRequest(input)
606	req.SetContext(ctx)
607	req.ApplyOptions(opts...)
608	return out, req.Send()
609}
610
611const opDeleteCluster = "DeleteCluster"
612
613// DeleteClusterRequest generates a "aws/request.Request" representing the
614// client's request for the DeleteCluster operation. The "output" return
615// value will be populated with the request's response once the request completes
616// successfully.
617//
618// Use "Send" method on the returned Request to send the API call to the service.
619// the "output" return value is not valid until after Send returns without error.
620//
621// See DeleteCluster for more information on using the DeleteCluster
622// API call, and error handling.
623//
624// This method is useful when you want to inject custom logic or configuration
625// into the SDK's request lifecycle. Such as custom headers, or retry logic.
626//
627//
628//    // Example sending a request using the DeleteClusterRequest method.
629//    req, resp := client.DeleteClusterRequest(params)
630//
631//    err := req.Send()
632//    if err == nil { // resp is now filled
633//        fmt.Println(resp)
634//    }
635//
636// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCluster
637func (c *ECS) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Request, output *DeleteClusterOutput) {
638	op := &request.Operation{
639		Name:       opDeleteCluster,
640		HTTPMethod: "POST",
641		HTTPPath:   "/",
642	}
643
644	if input == nil {
645		input = &DeleteClusterInput{}
646	}
647
648	output = &DeleteClusterOutput{}
649	req = c.newRequest(op, input, output)
650	return
651}
652
653// DeleteCluster API operation for Amazon EC2 Container Service.
654//
655// Deletes the specified cluster. You must deregister all container instances
656// from this cluster before you may delete it. You can list the container instances
657// in a cluster with ListContainerInstances and deregister them with DeregisterContainerInstance.
658//
659// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
660// with awserr.Error's Code and Message methods to get detailed information about
661// the error.
662//
663// See the AWS API reference guide for Amazon EC2 Container Service's
664// API operation DeleteCluster for usage and error information.
665//
666// Returned Error Codes:
667//   * ErrCodeServerException "ServerException"
668//   These errors are usually caused by a server issue.
669//
670//   * ErrCodeClientException "ClientException"
671//   These errors are usually caused by a client action, such as using an action
672//   or resource on behalf of a user that doesn't have permissions to use the
673//   action or resource, or specifying an identifier that is not valid.
674//
675//   * ErrCodeInvalidParameterException "InvalidParameterException"
676//   The specified parameter is invalid. Review the available parameters for the
677//   API request.
678//
679//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
680//   The specified cluster could not be found. You can view your available clusters
681//   with ListClusters. Amazon ECS clusters are Region-specific.
682//
683//   * ErrCodeClusterContainsContainerInstancesException "ClusterContainsContainerInstancesException"
684//   You cannot delete a cluster that has registered container instances. First,
685//   deregister the container instances before you can delete the cluster. For
686//   more information, see DeregisterContainerInstance.
687//
688//   * ErrCodeClusterContainsServicesException "ClusterContainsServicesException"
689//   You cannot delete a cluster that contains services. First, update the service
690//   to reduce its desired task count to 0 and then delete the service. For more
691//   information, see UpdateService and DeleteService.
692//
693//   * ErrCodeClusterContainsTasksException "ClusterContainsTasksException"
694//   You cannot delete a cluster that has active tasks.
695//
696// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCluster
697func (c *ECS) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error) {
698	req, out := c.DeleteClusterRequest(input)
699	return out, req.Send()
700}
701
702// DeleteClusterWithContext is the same as DeleteCluster with the addition of
703// the ability to pass a context and additional request options.
704//
705// See DeleteCluster for details on how to use this API operation.
706//
707// The context must be non-nil and will be used for request cancellation. If
708// the context is nil a panic will occur. In the future the SDK may create
709// sub-contexts for http.Requests. See https://golang.org/pkg/context/
710// for more information on using Contexts.
711func (c *ECS) DeleteClusterWithContext(ctx aws.Context, input *DeleteClusterInput, opts ...request.Option) (*DeleteClusterOutput, error) {
712	req, out := c.DeleteClusterRequest(input)
713	req.SetContext(ctx)
714	req.ApplyOptions(opts...)
715	return out, req.Send()
716}
717
718const opDeleteService = "DeleteService"
719
720// DeleteServiceRequest generates a "aws/request.Request" representing the
721// client's request for the DeleteService operation. The "output" return
722// value will be populated with the request's response once the request completes
723// successfully.
724//
725// Use "Send" method on the returned Request to send the API call to the service.
726// the "output" return value is not valid until after Send returns without error.
727//
728// See DeleteService for more information on using the DeleteService
729// API call, and error handling.
730//
731// This method is useful when you want to inject custom logic or configuration
732// into the SDK's request lifecycle. Such as custom headers, or retry logic.
733//
734//
735//    // Example sending a request using the DeleteServiceRequest method.
736//    req, resp := client.DeleteServiceRequest(params)
737//
738//    err := req.Send()
739//    if err == nil { // resp is now filled
740//        fmt.Println(resp)
741//    }
742//
743// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteService
744func (c *ECS) DeleteServiceRequest(input *DeleteServiceInput) (req *request.Request, output *DeleteServiceOutput) {
745	op := &request.Operation{
746		Name:       opDeleteService,
747		HTTPMethod: "POST",
748		HTTPPath:   "/",
749	}
750
751	if input == nil {
752		input = &DeleteServiceInput{}
753	}
754
755	output = &DeleteServiceOutput{}
756	req = c.newRequest(op, input, output)
757	return
758}
759
760// DeleteService API operation for Amazon EC2 Container Service.
761//
762// Deletes a specified service within a cluster. You can delete a service if
763// you have no running tasks in it and the desired task count is zero. If the
764// service is actively maintaining tasks, you cannot delete it, and you must
765// update the service to a desired task count of zero. For more information,
766// see UpdateService.
767//
768// When you delete a service, if there are still running tasks that require
769// cleanup, the service status moves from ACTIVE to DRAINING, and the service
770// is no longer visible in the console or in the ListServices API operation.
771// After the tasks have stopped, then the service status moves from DRAINING
772// to INACTIVE. Services in the DRAINING or INACTIVE status can still be viewed
773// with the DescribeServices API operation. However, in the future, INACTIVE
774// services may be cleaned up and purged from Amazon ECS record keeping, and
775// DescribeServices calls on those services return a ServiceNotFoundException
776// error.
777//
778// If you attempt to create a new service with the same name as an existing
779// service in either ACTIVE or DRAINING status, you receive an error.
780//
781// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
782// with awserr.Error's Code and Message methods to get detailed information about
783// the error.
784//
785// See the AWS API reference guide for Amazon EC2 Container Service's
786// API operation DeleteService for usage and error information.
787//
788// Returned Error Codes:
789//   * ErrCodeServerException "ServerException"
790//   These errors are usually caused by a server issue.
791//
792//   * ErrCodeClientException "ClientException"
793//   These errors are usually caused by a client action, such as using an action
794//   or resource on behalf of a user that doesn't have permissions to use the
795//   action or resource, or specifying an identifier that is not valid.
796//
797//   * ErrCodeInvalidParameterException "InvalidParameterException"
798//   The specified parameter is invalid. Review the available parameters for the
799//   API request.
800//
801//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
802//   The specified cluster could not be found. You can view your available clusters
803//   with ListClusters. Amazon ECS clusters are Region-specific.
804//
805//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
806//   The specified service could not be found. You can view your available services
807//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
808//
809// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteService
810func (c *ECS) DeleteService(input *DeleteServiceInput) (*DeleteServiceOutput, error) {
811	req, out := c.DeleteServiceRequest(input)
812	return out, req.Send()
813}
814
815// DeleteServiceWithContext is the same as DeleteService with the addition of
816// the ability to pass a context and additional request options.
817//
818// See DeleteService for details on how to use this API operation.
819//
820// The context must be non-nil and will be used for request cancellation. If
821// the context is nil a panic will occur. In the future the SDK may create
822// sub-contexts for http.Requests. See https://golang.org/pkg/context/
823// for more information on using Contexts.
824func (c *ECS) DeleteServiceWithContext(ctx aws.Context, input *DeleteServiceInput, opts ...request.Option) (*DeleteServiceOutput, error) {
825	req, out := c.DeleteServiceRequest(input)
826	req.SetContext(ctx)
827	req.ApplyOptions(opts...)
828	return out, req.Send()
829}
830
831const opDeleteTaskSet = "DeleteTaskSet"
832
833// DeleteTaskSetRequest generates a "aws/request.Request" representing the
834// client's request for the DeleteTaskSet operation. The "output" return
835// value will be populated with the request's response once the request completes
836// successfully.
837//
838// Use "Send" method on the returned Request to send the API call to the service.
839// the "output" return value is not valid until after Send returns without error.
840//
841// See DeleteTaskSet for more information on using the DeleteTaskSet
842// API call, and error handling.
843//
844// This method is useful when you want to inject custom logic or configuration
845// into the SDK's request lifecycle. Such as custom headers, or retry logic.
846//
847//
848//    // Example sending a request using the DeleteTaskSetRequest method.
849//    req, resp := client.DeleteTaskSetRequest(params)
850//
851//    err := req.Send()
852//    if err == nil { // resp is now filled
853//        fmt.Println(resp)
854//    }
855//
856// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteTaskSet
857func (c *ECS) DeleteTaskSetRequest(input *DeleteTaskSetInput) (req *request.Request, output *DeleteTaskSetOutput) {
858	op := &request.Operation{
859		Name:       opDeleteTaskSet,
860		HTTPMethod: "POST",
861		HTTPPath:   "/",
862	}
863
864	if input == nil {
865		input = &DeleteTaskSetInput{}
866	}
867
868	output = &DeleteTaskSetOutput{}
869	req = c.newRequest(op, input, output)
870	return
871}
872
873// DeleteTaskSet API operation for Amazon EC2 Container Service.
874//
875// Deletes a specified task set within a service. This is used when a service
876// uses the EXTERNAL deployment controller type. For more information, see Amazon
877// ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
878// in the Amazon Elastic Container Service Developer Guide.
879//
880// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
881// with awserr.Error's Code and Message methods to get detailed information about
882// the error.
883//
884// See the AWS API reference guide for Amazon EC2 Container Service's
885// API operation DeleteTaskSet for usage and error information.
886//
887// Returned Error Codes:
888//   * ErrCodeServerException "ServerException"
889//   These errors are usually caused by a server issue.
890//
891//   * ErrCodeClientException "ClientException"
892//   These errors are usually caused by a client action, such as using an action
893//   or resource on behalf of a user that doesn't have permissions to use the
894//   action or resource, or specifying an identifier that is not valid.
895//
896//   * ErrCodeInvalidParameterException "InvalidParameterException"
897//   The specified parameter is invalid. Review the available parameters for the
898//   API request.
899//
900//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
901//   The specified cluster could not be found. You can view your available clusters
902//   with ListClusters. Amazon ECS clusters are Region-specific.
903//
904//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
905//   The specified task is not supported in this Region.
906//
907//   * ErrCodeAccessDeniedException "AccessDeniedException"
908//   You do not have authorization to perform the requested action.
909//
910//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
911//   The specified service could not be found. You can view your available services
912//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
913//
914//   * ErrCodeServiceNotActiveException "ServiceNotActiveException"
915//   The specified service is not active. You can't update a service that is inactive.
916//   If you have previously deleted a service, you can re-create it with CreateService.
917//
918//   * ErrCodeTaskSetNotFoundException "TaskSetNotFoundException"
919//   The specified task set could not be found. You can view your available container
920//   instances with DescribeTaskSets. Task sets are specific to each cluster,
921//   service and Region.
922//
923// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteTaskSet
924func (c *ECS) DeleteTaskSet(input *DeleteTaskSetInput) (*DeleteTaskSetOutput, error) {
925	req, out := c.DeleteTaskSetRequest(input)
926	return out, req.Send()
927}
928
929// DeleteTaskSetWithContext is the same as DeleteTaskSet with the addition of
930// the ability to pass a context and additional request options.
931//
932// See DeleteTaskSet for details on how to use this API operation.
933//
934// The context must be non-nil and will be used for request cancellation. If
935// the context is nil a panic will occur. In the future the SDK may create
936// sub-contexts for http.Requests. See https://golang.org/pkg/context/
937// for more information on using Contexts.
938func (c *ECS) DeleteTaskSetWithContext(ctx aws.Context, input *DeleteTaskSetInput, opts ...request.Option) (*DeleteTaskSetOutput, error) {
939	req, out := c.DeleteTaskSetRequest(input)
940	req.SetContext(ctx)
941	req.ApplyOptions(opts...)
942	return out, req.Send()
943}
944
945const opDeregisterContainerInstance = "DeregisterContainerInstance"
946
947// DeregisterContainerInstanceRequest generates a "aws/request.Request" representing the
948// client's request for the DeregisterContainerInstance operation. The "output" return
949// value will be populated with the request's response once the request completes
950// successfully.
951//
952// Use "Send" method on the returned Request to send the API call to the service.
953// the "output" return value is not valid until after Send returns without error.
954//
955// See DeregisterContainerInstance for more information on using the DeregisterContainerInstance
956// API call, and error handling.
957//
958// This method is useful when you want to inject custom logic or configuration
959// into the SDK's request lifecycle. Such as custom headers, or retry logic.
960//
961//
962//    // Example sending a request using the DeregisterContainerInstanceRequest method.
963//    req, resp := client.DeregisterContainerInstanceRequest(params)
964//
965//    err := req.Send()
966//    if err == nil { // resp is now filled
967//        fmt.Println(resp)
968//    }
969//
970// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstance
971func (c *ECS) DeregisterContainerInstanceRequest(input *DeregisterContainerInstanceInput) (req *request.Request, output *DeregisterContainerInstanceOutput) {
972	op := &request.Operation{
973		Name:       opDeregisterContainerInstance,
974		HTTPMethod: "POST",
975		HTTPPath:   "/",
976	}
977
978	if input == nil {
979		input = &DeregisterContainerInstanceInput{}
980	}
981
982	output = &DeregisterContainerInstanceOutput{}
983	req = c.newRequest(op, input, output)
984	return
985}
986
987// DeregisterContainerInstance API operation for Amazon EC2 Container Service.
988//
989// Deregisters an Amazon ECS container instance from the specified cluster.
990// This instance is no longer available to run tasks.
991//
992// If you intend to use the container instance for some other purpose after
993// deregistration, you should stop all of the tasks running on the container
994// instance before deregistration. That prevents any orphaned tasks from consuming
995// resources.
996//
997// Deregistering a container instance removes the instance from a cluster, but
998// it does not terminate the EC2 instance. If you are finished using the instance,
999// be sure to terminate it in the Amazon EC2 console to stop billing.
1000//
1001// If you terminate a running container instance, Amazon ECS automatically deregisters
1002// the instance from your cluster (stopped container instances or instances
1003// with disconnected agents are not automatically deregistered when terminated).
1004//
1005// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1006// with awserr.Error's Code and Message methods to get detailed information about
1007// the error.
1008//
1009// See the AWS API reference guide for Amazon EC2 Container Service's
1010// API operation DeregisterContainerInstance for usage and error information.
1011//
1012// Returned Error Codes:
1013//   * ErrCodeServerException "ServerException"
1014//   These errors are usually caused by a server issue.
1015//
1016//   * ErrCodeClientException "ClientException"
1017//   These errors are usually caused by a client action, such as using an action
1018//   or resource on behalf of a user that doesn't have permissions to use the
1019//   action or resource, or specifying an identifier that is not valid.
1020//
1021//   * ErrCodeInvalidParameterException "InvalidParameterException"
1022//   The specified parameter is invalid. Review the available parameters for the
1023//   API request.
1024//
1025//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1026//   The specified cluster could not be found. You can view your available clusters
1027//   with ListClusters. Amazon ECS clusters are Region-specific.
1028//
1029// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstance
1030func (c *ECS) DeregisterContainerInstance(input *DeregisterContainerInstanceInput) (*DeregisterContainerInstanceOutput, error) {
1031	req, out := c.DeregisterContainerInstanceRequest(input)
1032	return out, req.Send()
1033}
1034
1035// DeregisterContainerInstanceWithContext is the same as DeregisterContainerInstance with the addition of
1036// the ability to pass a context and additional request options.
1037//
1038// See DeregisterContainerInstance for details on how to use this API operation.
1039//
1040// The context must be non-nil and will be used for request cancellation. If
1041// the context is nil a panic will occur. In the future the SDK may create
1042// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1043// for more information on using Contexts.
1044func (c *ECS) DeregisterContainerInstanceWithContext(ctx aws.Context, input *DeregisterContainerInstanceInput, opts ...request.Option) (*DeregisterContainerInstanceOutput, error) {
1045	req, out := c.DeregisterContainerInstanceRequest(input)
1046	req.SetContext(ctx)
1047	req.ApplyOptions(opts...)
1048	return out, req.Send()
1049}
1050
1051const opDeregisterTaskDefinition = "DeregisterTaskDefinition"
1052
1053// DeregisterTaskDefinitionRequest generates a "aws/request.Request" representing the
1054// client's request for the DeregisterTaskDefinition operation. The "output" return
1055// value will be populated with the request's response once the request completes
1056// successfully.
1057//
1058// Use "Send" method on the returned Request to send the API call to the service.
1059// the "output" return value is not valid until after Send returns without error.
1060//
1061// See DeregisterTaskDefinition for more information on using the DeregisterTaskDefinition
1062// API call, and error handling.
1063//
1064// This method is useful when you want to inject custom logic or configuration
1065// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1066//
1067//
1068//    // Example sending a request using the DeregisterTaskDefinitionRequest method.
1069//    req, resp := client.DeregisterTaskDefinitionRequest(params)
1070//
1071//    err := req.Send()
1072//    if err == nil { // resp is now filled
1073//        fmt.Println(resp)
1074//    }
1075//
1076// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinition
1077func (c *ECS) DeregisterTaskDefinitionRequest(input *DeregisterTaskDefinitionInput) (req *request.Request, output *DeregisterTaskDefinitionOutput) {
1078	op := &request.Operation{
1079		Name:       opDeregisterTaskDefinition,
1080		HTTPMethod: "POST",
1081		HTTPPath:   "/",
1082	}
1083
1084	if input == nil {
1085		input = &DeregisterTaskDefinitionInput{}
1086	}
1087
1088	output = &DeregisterTaskDefinitionOutput{}
1089	req = c.newRequest(op, input, output)
1090	return
1091}
1092
1093// DeregisterTaskDefinition API operation for Amazon EC2 Container Service.
1094//
1095// Deregisters the specified task definition by family and revision. Upon deregistration,
1096// the task definition is marked as INACTIVE. Existing tasks and services that
1097// reference an INACTIVE task definition continue to run without disruption.
1098// Existing services that reference an INACTIVE task definition can still scale
1099// up or down by modifying the service's desired count.
1100//
1101// You cannot use an INACTIVE task definition to run new tasks or create new
1102// services, and you cannot update an existing service to reference an INACTIVE
1103// task definition. However, there may be up to a 10-minute window following
1104// deregistration where these restrictions have not yet taken effect.
1105//
1106// At this time, INACTIVE task definitions remain discoverable in your account
1107// indefinitely. However, this behavior is subject to change in the future,
1108// so you should not rely on INACTIVE task definitions persisting beyond the
1109// lifecycle of any associated tasks and services.
1110//
1111// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1112// with awserr.Error's Code and Message methods to get detailed information about
1113// the error.
1114//
1115// See the AWS API reference guide for Amazon EC2 Container Service's
1116// API operation DeregisterTaskDefinition for usage and error information.
1117//
1118// Returned Error Codes:
1119//   * ErrCodeServerException "ServerException"
1120//   These errors are usually caused by a server issue.
1121//
1122//   * ErrCodeClientException "ClientException"
1123//   These errors are usually caused by a client action, such as using an action
1124//   or resource on behalf of a user that doesn't have permissions to use the
1125//   action or resource, or specifying an identifier that is not valid.
1126//
1127//   * ErrCodeInvalidParameterException "InvalidParameterException"
1128//   The specified parameter is invalid. Review the available parameters for the
1129//   API request.
1130//
1131// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinition
1132func (c *ECS) DeregisterTaskDefinition(input *DeregisterTaskDefinitionInput) (*DeregisterTaskDefinitionOutput, error) {
1133	req, out := c.DeregisterTaskDefinitionRequest(input)
1134	return out, req.Send()
1135}
1136
1137// DeregisterTaskDefinitionWithContext is the same as DeregisterTaskDefinition with the addition of
1138// the ability to pass a context and additional request options.
1139//
1140// See DeregisterTaskDefinition for details on how to use this API operation.
1141//
1142// The context must be non-nil and will be used for request cancellation. If
1143// the context is nil a panic will occur. In the future the SDK may create
1144// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1145// for more information on using Contexts.
1146func (c *ECS) DeregisterTaskDefinitionWithContext(ctx aws.Context, input *DeregisterTaskDefinitionInput, opts ...request.Option) (*DeregisterTaskDefinitionOutput, error) {
1147	req, out := c.DeregisterTaskDefinitionRequest(input)
1148	req.SetContext(ctx)
1149	req.ApplyOptions(opts...)
1150	return out, req.Send()
1151}
1152
1153const opDescribeClusters = "DescribeClusters"
1154
1155// DescribeClustersRequest generates a "aws/request.Request" representing the
1156// client's request for the DescribeClusters operation. The "output" return
1157// value will be populated with the request's response once the request completes
1158// successfully.
1159//
1160// Use "Send" method on the returned Request to send the API call to the service.
1161// the "output" return value is not valid until after Send returns without error.
1162//
1163// See DescribeClusters for more information on using the DescribeClusters
1164// API call, and error handling.
1165//
1166// This method is useful when you want to inject custom logic or configuration
1167// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1168//
1169//
1170//    // Example sending a request using the DescribeClustersRequest method.
1171//    req, resp := client.DescribeClustersRequest(params)
1172//
1173//    err := req.Send()
1174//    if err == nil { // resp is now filled
1175//        fmt.Println(resp)
1176//    }
1177//
1178// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClusters
1179func (c *ECS) DescribeClustersRequest(input *DescribeClustersInput) (req *request.Request, output *DescribeClustersOutput) {
1180	op := &request.Operation{
1181		Name:       opDescribeClusters,
1182		HTTPMethod: "POST",
1183		HTTPPath:   "/",
1184	}
1185
1186	if input == nil {
1187		input = &DescribeClustersInput{}
1188	}
1189
1190	output = &DescribeClustersOutput{}
1191	req = c.newRequest(op, input, output)
1192	return
1193}
1194
1195// DescribeClusters API operation for Amazon EC2 Container Service.
1196//
1197// Describes one or more of your clusters.
1198//
1199// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1200// with awserr.Error's Code and Message methods to get detailed information about
1201// the error.
1202//
1203// See the AWS API reference guide for Amazon EC2 Container Service's
1204// API operation DescribeClusters for usage and error information.
1205//
1206// Returned Error Codes:
1207//   * ErrCodeServerException "ServerException"
1208//   These errors are usually caused by a server issue.
1209//
1210//   * ErrCodeClientException "ClientException"
1211//   These errors are usually caused by a client action, such as using an action
1212//   or resource on behalf of a user that doesn't have permissions to use the
1213//   action or resource, or specifying an identifier that is not valid.
1214//
1215//   * ErrCodeInvalidParameterException "InvalidParameterException"
1216//   The specified parameter is invalid. Review the available parameters for the
1217//   API request.
1218//
1219// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClusters
1220func (c *ECS) DescribeClusters(input *DescribeClustersInput) (*DescribeClustersOutput, error) {
1221	req, out := c.DescribeClustersRequest(input)
1222	return out, req.Send()
1223}
1224
1225// DescribeClustersWithContext is the same as DescribeClusters with the addition of
1226// the ability to pass a context and additional request options.
1227//
1228// See DescribeClusters for details on how to use this API operation.
1229//
1230// The context must be non-nil and will be used for request cancellation. If
1231// the context is nil a panic will occur. In the future the SDK may create
1232// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1233// for more information on using Contexts.
1234func (c *ECS) DescribeClustersWithContext(ctx aws.Context, input *DescribeClustersInput, opts ...request.Option) (*DescribeClustersOutput, error) {
1235	req, out := c.DescribeClustersRequest(input)
1236	req.SetContext(ctx)
1237	req.ApplyOptions(opts...)
1238	return out, req.Send()
1239}
1240
1241const opDescribeContainerInstances = "DescribeContainerInstances"
1242
1243// DescribeContainerInstancesRequest generates a "aws/request.Request" representing the
1244// client's request for the DescribeContainerInstances operation. The "output" return
1245// value will be populated with the request's response once the request completes
1246// successfully.
1247//
1248// Use "Send" method on the returned Request to send the API call to the service.
1249// the "output" return value is not valid until after Send returns without error.
1250//
1251// See DescribeContainerInstances for more information on using the DescribeContainerInstances
1252// API call, and error handling.
1253//
1254// This method is useful when you want to inject custom logic or configuration
1255// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1256//
1257//
1258//    // Example sending a request using the DescribeContainerInstancesRequest method.
1259//    req, resp := client.DescribeContainerInstancesRequest(params)
1260//
1261//    err := req.Send()
1262//    if err == nil { // resp is now filled
1263//        fmt.Println(resp)
1264//    }
1265//
1266// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstances
1267func (c *ECS) DescribeContainerInstancesRequest(input *DescribeContainerInstancesInput) (req *request.Request, output *DescribeContainerInstancesOutput) {
1268	op := &request.Operation{
1269		Name:       opDescribeContainerInstances,
1270		HTTPMethod: "POST",
1271		HTTPPath:   "/",
1272	}
1273
1274	if input == nil {
1275		input = &DescribeContainerInstancesInput{}
1276	}
1277
1278	output = &DescribeContainerInstancesOutput{}
1279	req = c.newRequest(op, input, output)
1280	return
1281}
1282
1283// DescribeContainerInstances API operation for Amazon EC2 Container Service.
1284//
1285// Describes Amazon Elastic Container Service container instances. Returns metadata
1286// about registered and remaining resources on each container instance requested.
1287//
1288// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1289// with awserr.Error's Code and Message methods to get detailed information about
1290// the error.
1291//
1292// See the AWS API reference guide for Amazon EC2 Container Service's
1293// API operation DescribeContainerInstances for usage and error information.
1294//
1295// Returned Error Codes:
1296//   * ErrCodeServerException "ServerException"
1297//   These errors are usually caused by a server issue.
1298//
1299//   * ErrCodeClientException "ClientException"
1300//   These errors are usually caused by a client action, such as using an action
1301//   or resource on behalf of a user that doesn't have permissions to use the
1302//   action or resource, or specifying an identifier that is not valid.
1303//
1304//   * ErrCodeInvalidParameterException "InvalidParameterException"
1305//   The specified parameter is invalid. Review the available parameters for the
1306//   API request.
1307//
1308//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1309//   The specified cluster could not be found. You can view your available clusters
1310//   with ListClusters. Amazon ECS clusters are Region-specific.
1311//
1312// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstances
1313func (c *ECS) DescribeContainerInstances(input *DescribeContainerInstancesInput) (*DescribeContainerInstancesOutput, error) {
1314	req, out := c.DescribeContainerInstancesRequest(input)
1315	return out, req.Send()
1316}
1317
1318// DescribeContainerInstancesWithContext is the same as DescribeContainerInstances with the addition of
1319// the ability to pass a context and additional request options.
1320//
1321// See DescribeContainerInstances for details on how to use this API operation.
1322//
1323// The context must be non-nil and will be used for request cancellation. If
1324// the context is nil a panic will occur. In the future the SDK may create
1325// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1326// for more information on using Contexts.
1327func (c *ECS) DescribeContainerInstancesWithContext(ctx aws.Context, input *DescribeContainerInstancesInput, opts ...request.Option) (*DescribeContainerInstancesOutput, error) {
1328	req, out := c.DescribeContainerInstancesRequest(input)
1329	req.SetContext(ctx)
1330	req.ApplyOptions(opts...)
1331	return out, req.Send()
1332}
1333
1334const opDescribeServices = "DescribeServices"
1335
1336// DescribeServicesRequest generates a "aws/request.Request" representing the
1337// client's request for the DescribeServices operation. The "output" return
1338// value will be populated with the request's response once the request completes
1339// successfully.
1340//
1341// Use "Send" method on the returned Request to send the API call to the service.
1342// the "output" return value is not valid until after Send returns without error.
1343//
1344// See DescribeServices for more information on using the DescribeServices
1345// API call, and error handling.
1346//
1347// This method is useful when you want to inject custom logic or configuration
1348// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1349//
1350//
1351//    // Example sending a request using the DescribeServicesRequest method.
1352//    req, resp := client.DescribeServicesRequest(params)
1353//
1354//    err := req.Send()
1355//    if err == nil { // resp is now filled
1356//        fmt.Println(resp)
1357//    }
1358//
1359// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServices
1360func (c *ECS) DescribeServicesRequest(input *DescribeServicesInput) (req *request.Request, output *DescribeServicesOutput) {
1361	op := &request.Operation{
1362		Name:       opDescribeServices,
1363		HTTPMethod: "POST",
1364		HTTPPath:   "/",
1365	}
1366
1367	if input == nil {
1368		input = &DescribeServicesInput{}
1369	}
1370
1371	output = &DescribeServicesOutput{}
1372	req = c.newRequest(op, input, output)
1373	return
1374}
1375
1376// DescribeServices API operation for Amazon EC2 Container Service.
1377//
1378// Describes the specified services running in your cluster.
1379//
1380// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1381// with awserr.Error's Code and Message methods to get detailed information about
1382// the error.
1383//
1384// See the AWS API reference guide for Amazon EC2 Container Service's
1385// API operation DescribeServices for usage and error information.
1386//
1387// Returned Error Codes:
1388//   * ErrCodeServerException "ServerException"
1389//   These errors are usually caused by a server issue.
1390//
1391//   * ErrCodeClientException "ClientException"
1392//   These errors are usually caused by a client action, such as using an action
1393//   or resource on behalf of a user that doesn't have permissions to use the
1394//   action or resource, or specifying an identifier that is not valid.
1395//
1396//   * ErrCodeInvalidParameterException "InvalidParameterException"
1397//   The specified parameter is invalid. Review the available parameters for the
1398//   API request.
1399//
1400//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1401//   The specified cluster could not be found. You can view your available clusters
1402//   with ListClusters. Amazon ECS clusters are Region-specific.
1403//
1404// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServices
1405func (c *ECS) DescribeServices(input *DescribeServicesInput) (*DescribeServicesOutput, error) {
1406	req, out := c.DescribeServicesRequest(input)
1407	return out, req.Send()
1408}
1409
1410// DescribeServicesWithContext is the same as DescribeServices with the addition of
1411// the ability to pass a context and additional request options.
1412//
1413// See DescribeServices for details on how to use this API operation.
1414//
1415// The context must be non-nil and will be used for request cancellation. If
1416// the context is nil a panic will occur. In the future the SDK may create
1417// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1418// for more information on using Contexts.
1419func (c *ECS) DescribeServicesWithContext(ctx aws.Context, input *DescribeServicesInput, opts ...request.Option) (*DescribeServicesOutput, error) {
1420	req, out := c.DescribeServicesRequest(input)
1421	req.SetContext(ctx)
1422	req.ApplyOptions(opts...)
1423	return out, req.Send()
1424}
1425
1426const opDescribeTaskDefinition = "DescribeTaskDefinition"
1427
1428// DescribeTaskDefinitionRequest generates a "aws/request.Request" representing the
1429// client's request for the DescribeTaskDefinition operation. The "output" return
1430// value will be populated with the request's response once the request completes
1431// successfully.
1432//
1433// Use "Send" method on the returned Request to send the API call to the service.
1434// the "output" return value is not valid until after Send returns without error.
1435//
1436// See DescribeTaskDefinition for more information on using the DescribeTaskDefinition
1437// API call, and error handling.
1438//
1439// This method is useful when you want to inject custom logic or configuration
1440// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1441//
1442//
1443//    // Example sending a request using the DescribeTaskDefinitionRequest method.
1444//    req, resp := client.DescribeTaskDefinitionRequest(params)
1445//
1446//    err := req.Send()
1447//    if err == nil { // resp is now filled
1448//        fmt.Println(resp)
1449//    }
1450//
1451// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinition
1452func (c *ECS) DescribeTaskDefinitionRequest(input *DescribeTaskDefinitionInput) (req *request.Request, output *DescribeTaskDefinitionOutput) {
1453	op := &request.Operation{
1454		Name:       opDescribeTaskDefinition,
1455		HTTPMethod: "POST",
1456		HTTPPath:   "/",
1457	}
1458
1459	if input == nil {
1460		input = &DescribeTaskDefinitionInput{}
1461	}
1462
1463	output = &DescribeTaskDefinitionOutput{}
1464	req = c.newRequest(op, input, output)
1465	return
1466}
1467
1468// DescribeTaskDefinition API operation for Amazon EC2 Container Service.
1469//
1470// Describes a task definition. You can specify a family and revision to find
1471// information about a specific task definition, or you can simply specify the
1472// family to find the latest ACTIVE revision in that family.
1473//
1474// You can only describe INACTIVE task definitions while an active task or service
1475// references them.
1476//
1477// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1478// with awserr.Error's Code and Message methods to get detailed information about
1479// the error.
1480//
1481// See the AWS API reference guide for Amazon EC2 Container Service's
1482// API operation DescribeTaskDefinition for usage and error information.
1483//
1484// Returned Error Codes:
1485//   * ErrCodeServerException "ServerException"
1486//   These errors are usually caused by a server issue.
1487//
1488//   * ErrCodeClientException "ClientException"
1489//   These errors are usually caused by a client action, such as using an action
1490//   or resource on behalf of a user that doesn't have permissions to use the
1491//   action or resource, or specifying an identifier that is not valid.
1492//
1493//   * ErrCodeInvalidParameterException "InvalidParameterException"
1494//   The specified parameter is invalid. Review the available parameters for the
1495//   API request.
1496//
1497// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinition
1498func (c *ECS) DescribeTaskDefinition(input *DescribeTaskDefinitionInput) (*DescribeTaskDefinitionOutput, error) {
1499	req, out := c.DescribeTaskDefinitionRequest(input)
1500	return out, req.Send()
1501}
1502
1503// DescribeTaskDefinitionWithContext is the same as DescribeTaskDefinition with the addition of
1504// the ability to pass a context and additional request options.
1505//
1506// See DescribeTaskDefinition for details on how to use this API operation.
1507//
1508// The context must be non-nil and will be used for request cancellation. If
1509// the context is nil a panic will occur. In the future the SDK may create
1510// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1511// for more information on using Contexts.
1512func (c *ECS) DescribeTaskDefinitionWithContext(ctx aws.Context, input *DescribeTaskDefinitionInput, opts ...request.Option) (*DescribeTaskDefinitionOutput, error) {
1513	req, out := c.DescribeTaskDefinitionRequest(input)
1514	req.SetContext(ctx)
1515	req.ApplyOptions(opts...)
1516	return out, req.Send()
1517}
1518
1519const opDescribeTaskSets = "DescribeTaskSets"
1520
1521// DescribeTaskSetsRequest generates a "aws/request.Request" representing the
1522// client's request for the DescribeTaskSets operation. The "output" return
1523// value will be populated with the request's response once the request completes
1524// successfully.
1525//
1526// Use "Send" method on the returned Request to send the API call to the service.
1527// the "output" return value is not valid until after Send returns without error.
1528//
1529// See DescribeTaskSets for more information on using the DescribeTaskSets
1530// API call, and error handling.
1531//
1532// This method is useful when you want to inject custom logic or configuration
1533// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1534//
1535//
1536//    // Example sending a request using the DescribeTaskSetsRequest method.
1537//    req, resp := client.DescribeTaskSetsRequest(params)
1538//
1539//    err := req.Send()
1540//    if err == nil { // resp is now filled
1541//        fmt.Println(resp)
1542//    }
1543//
1544// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskSets
1545func (c *ECS) DescribeTaskSetsRequest(input *DescribeTaskSetsInput) (req *request.Request, output *DescribeTaskSetsOutput) {
1546	op := &request.Operation{
1547		Name:       opDescribeTaskSets,
1548		HTTPMethod: "POST",
1549		HTTPPath:   "/",
1550	}
1551
1552	if input == nil {
1553		input = &DescribeTaskSetsInput{}
1554	}
1555
1556	output = &DescribeTaskSetsOutput{}
1557	req = c.newRequest(op, input, output)
1558	return
1559}
1560
1561// DescribeTaskSets API operation for Amazon EC2 Container Service.
1562//
1563// Describes the task sets in the specified cluster and service. This is used
1564// when a service uses the EXTERNAL deployment controller type. For more information,
1565// see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
1566// in the Amazon Elastic Container Service Developer Guide.
1567//
1568// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1569// with awserr.Error's Code and Message methods to get detailed information about
1570// the error.
1571//
1572// See the AWS API reference guide for Amazon EC2 Container Service's
1573// API operation DescribeTaskSets for usage and error information.
1574//
1575// Returned Error Codes:
1576//   * ErrCodeServerException "ServerException"
1577//   These errors are usually caused by a server issue.
1578//
1579//   * ErrCodeClientException "ClientException"
1580//   These errors are usually caused by a client action, such as using an action
1581//   or resource on behalf of a user that doesn't have permissions to use the
1582//   action or resource, or specifying an identifier that is not valid.
1583//
1584//   * ErrCodeInvalidParameterException "InvalidParameterException"
1585//   The specified parameter is invalid. Review the available parameters for the
1586//   API request.
1587//
1588//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1589//   The specified cluster could not be found. You can view your available clusters
1590//   with ListClusters. Amazon ECS clusters are Region-specific.
1591//
1592//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
1593//   The specified task is not supported in this Region.
1594//
1595//   * ErrCodeAccessDeniedException "AccessDeniedException"
1596//   You do not have authorization to perform the requested action.
1597//
1598//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
1599//   The specified service could not be found. You can view your available services
1600//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
1601//
1602//   * ErrCodeServiceNotActiveException "ServiceNotActiveException"
1603//   The specified service is not active. You can't update a service that is inactive.
1604//   If you have previously deleted a service, you can re-create it with CreateService.
1605//
1606// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskSets
1607func (c *ECS) DescribeTaskSets(input *DescribeTaskSetsInput) (*DescribeTaskSetsOutput, error) {
1608	req, out := c.DescribeTaskSetsRequest(input)
1609	return out, req.Send()
1610}
1611
1612// DescribeTaskSetsWithContext is the same as DescribeTaskSets with the addition of
1613// the ability to pass a context and additional request options.
1614//
1615// See DescribeTaskSets for details on how to use this API operation.
1616//
1617// The context must be non-nil and will be used for request cancellation. If
1618// the context is nil a panic will occur. In the future the SDK may create
1619// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1620// for more information on using Contexts.
1621func (c *ECS) DescribeTaskSetsWithContext(ctx aws.Context, input *DescribeTaskSetsInput, opts ...request.Option) (*DescribeTaskSetsOutput, error) {
1622	req, out := c.DescribeTaskSetsRequest(input)
1623	req.SetContext(ctx)
1624	req.ApplyOptions(opts...)
1625	return out, req.Send()
1626}
1627
1628const opDescribeTasks = "DescribeTasks"
1629
1630// DescribeTasksRequest generates a "aws/request.Request" representing the
1631// client's request for the DescribeTasks operation. The "output" return
1632// value will be populated with the request's response once the request completes
1633// successfully.
1634//
1635// Use "Send" method on the returned Request to send the API call to the service.
1636// the "output" return value is not valid until after Send returns without error.
1637//
1638// See DescribeTasks for more information on using the DescribeTasks
1639// API call, and error handling.
1640//
1641// This method is useful when you want to inject custom logic or configuration
1642// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1643//
1644//
1645//    // Example sending a request using the DescribeTasksRequest method.
1646//    req, resp := client.DescribeTasksRequest(params)
1647//
1648//    err := req.Send()
1649//    if err == nil { // resp is now filled
1650//        fmt.Println(resp)
1651//    }
1652//
1653// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasks
1654func (c *ECS) DescribeTasksRequest(input *DescribeTasksInput) (req *request.Request, output *DescribeTasksOutput) {
1655	op := &request.Operation{
1656		Name:       opDescribeTasks,
1657		HTTPMethod: "POST",
1658		HTTPPath:   "/",
1659	}
1660
1661	if input == nil {
1662		input = &DescribeTasksInput{}
1663	}
1664
1665	output = &DescribeTasksOutput{}
1666	req = c.newRequest(op, input, output)
1667	return
1668}
1669
1670// DescribeTasks API operation for Amazon EC2 Container Service.
1671//
1672// Describes a specified task or tasks.
1673//
1674// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1675// with awserr.Error's Code and Message methods to get detailed information about
1676// the error.
1677//
1678// See the AWS API reference guide for Amazon EC2 Container Service's
1679// API operation DescribeTasks for usage and error information.
1680//
1681// Returned Error Codes:
1682//   * ErrCodeServerException "ServerException"
1683//   These errors are usually caused by a server issue.
1684//
1685//   * ErrCodeClientException "ClientException"
1686//   These errors are usually caused by a client action, such as using an action
1687//   or resource on behalf of a user that doesn't have permissions to use the
1688//   action or resource, or specifying an identifier that is not valid.
1689//
1690//   * ErrCodeInvalidParameterException "InvalidParameterException"
1691//   The specified parameter is invalid. Review the available parameters for the
1692//   API request.
1693//
1694//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1695//   The specified cluster could not be found. You can view your available clusters
1696//   with ListClusters. Amazon ECS clusters are Region-specific.
1697//
1698// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasks
1699func (c *ECS) DescribeTasks(input *DescribeTasksInput) (*DescribeTasksOutput, error) {
1700	req, out := c.DescribeTasksRequest(input)
1701	return out, req.Send()
1702}
1703
1704// DescribeTasksWithContext is the same as DescribeTasks with the addition of
1705// the ability to pass a context and additional request options.
1706//
1707// See DescribeTasks for details on how to use this API operation.
1708//
1709// The context must be non-nil and will be used for request cancellation. If
1710// the context is nil a panic will occur. In the future the SDK may create
1711// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1712// for more information on using Contexts.
1713func (c *ECS) DescribeTasksWithContext(ctx aws.Context, input *DescribeTasksInput, opts ...request.Option) (*DescribeTasksOutput, error) {
1714	req, out := c.DescribeTasksRequest(input)
1715	req.SetContext(ctx)
1716	req.ApplyOptions(opts...)
1717	return out, req.Send()
1718}
1719
1720const opDiscoverPollEndpoint = "DiscoverPollEndpoint"
1721
1722// DiscoverPollEndpointRequest generates a "aws/request.Request" representing the
1723// client's request for the DiscoverPollEndpoint operation. The "output" return
1724// value will be populated with the request's response once the request completes
1725// successfully.
1726//
1727// Use "Send" method on the returned Request to send the API call to the service.
1728// the "output" return value is not valid until after Send returns without error.
1729//
1730// See DiscoverPollEndpoint for more information on using the DiscoverPollEndpoint
1731// API call, and error handling.
1732//
1733// This method is useful when you want to inject custom logic or configuration
1734// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1735//
1736//
1737//    // Example sending a request using the DiscoverPollEndpointRequest method.
1738//    req, resp := client.DiscoverPollEndpointRequest(params)
1739//
1740//    err := req.Send()
1741//    if err == nil { // resp is now filled
1742//        fmt.Println(resp)
1743//    }
1744//
1745// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpoint
1746func (c *ECS) DiscoverPollEndpointRequest(input *DiscoverPollEndpointInput) (req *request.Request, output *DiscoverPollEndpointOutput) {
1747	op := &request.Operation{
1748		Name:       opDiscoverPollEndpoint,
1749		HTTPMethod: "POST",
1750		HTTPPath:   "/",
1751	}
1752
1753	if input == nil {
1754		input = &DiscoverPollEndpointInput{}
1755	}
1756
1757	output = &DiscoverPollEndpointOutput{}
1758	req = c.newRequest(op, input, output)
1759	return
1760}
1761
1762// DiscoverPollEndpoint API operation for Amazon EC2 Container Service.
1763//
1764//
1765// This action is only used by the Amazon ECS agent, and it is not intended
1766// for use outside of the agent.
1767//
1768// Returns an endpoint for the Amazon ECS agent to poll for updates.
1769//
1770// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1771// with awserr.Error's Code and Message methods to get detailed information about
1772// the error.
1773//
1774// See the AWS API reference guide for Amazon EC2 Container Service's
1775// API operation DiscoverPollEndpoint for usage and error information.
1776//
1777// Returned Error Codes:
1778//   * ErrCodeServerException "ServerException"
1779//   These errors are usually caused by a server issue.
1780//
1781//   * ErrCodeClientException "ClientException"
1782//   These errors are usually caused by a client action, such as using an action
1783//   or resource on behalf of a user that doesn't have permissions to use the
1784//   action or resource, or specifying an identifier that is not valid.
1785//
1786// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpoint
1787func (c *ECS) DiscoverPollEndpoint(input *DiscoverPollEndpointInput) (*DiscoverPollEndpointOutput, error) {
1788	req, out := c.DiscoverPollEndpointRequest(input)
1789	return out, req.Send()
1790}
1791
1792// DiscoverPollEndpointWithContext is the same as DiscoverPollEndpoint with the addition of
1793// the ability to pass a context and additional request options.
1794//
1795// See DiscoverPollEndpoint for details on how to use this API operation.
1796//
1797// The context must be non-nil and will be used for request cancellation. If
1798// the context is nil a panic will occur. In the future the SDK may create
1799// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1800// for more information on using Contexts.
1801func (c *ECS) DiscoverPollEndpointWithContext(ctx aws.Context, input *DiscoverPollEndpointInput, opts ...request.Option) (*DiscoverPollEndpointOutput, error) {
1802	req, out := c.DiscoverPollEndpointRequest(input)
1803	req.SetContext(ctx)
1804	req.ApplyOptions(opts...)
1805	return out, req.Send()
1806}
1807
1808const opListAccountSettings = "ListAccountSettings"
1809
1810// ListAccountSettingsRequest generates a "aws/request.Request" representing the
1811// client's request for the ListAccountSettings operation. The "output" return
1812// value will be populated with the request's response once the request completes
1813// successfully.
1814//
1815// Use "Send" method on the returned Request to send the API call to the service.
1816// the "output" return value is not valid until after Send returns without error.
1817//
1818// See ListAccountSettings for more information on using the ListAccountSettings
1819// API call, and error handling.
1820//
1821// This method is useful when you want to inject custom logic or configuration
1822// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1823//
1824//
1825//    // Example sending a request using the ListAccountSettingsRequest method.
1826//    req, resp := client.ListAccountSettingsRequest(params)
1827//
1828//    err := req.Send()
1829//    if err == nil { // resp is now filled
1830//        fmt.Println(resp)
1831//    }
1832//
1833// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAccountSettings
1834func (c *ECS) ListAccountSettingsRequest(input *ListAccountSettingsInput) (req *request.Request, output *ListAccountSettingsOutput) {
1835	op := &request.Operation{
1836		Name:       opListAccountSettings,
1837		HTTPMethod: "POST",
1838		HTTPPath:   "/",
1839	}
1840
1841	if input == nil {
1842		input = &ListAccountSettingsInput{}
1843	}
1844
1845	output = &ListAccountSettingsOutput{}
1846	req = c.newRequest(op, input, output)
1847	return
1848}
1849
1850// ListAccountSettings API operation for Amazon EC2 Container Service.
1851//
1852// Lists the account settings for a specified principal.
1853//
1854// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1855// with awserr.Error's Code and Message methods to get detailed information about
1856// the error.
1857//
1858// See the AWS API reference guide for Amazon EC2 Container Service's
1859// API operation ListAccountSettings for usage and error information.
1860//
1861// Returned Error Codes:
1862//   * ErrCodeServerException "ServerException"
1863//   These errors are usually caused by a server issue.
1864//
1865//   * ErrCodeClientException "ClientException"
1866//   These errors are usually caused by a client action, such as using an action
1867//   or resource on behalf of a user that doesn't have permissions to use the
1868//   action or resource, or specifying an identifier that is not valid.
1869//
1870//   * ErrCodeInvalidParameterException "InvalidParameterException"
1871//   The specified parameter is invalid. Review the available parameters for the
1872//   API request.
1873//
1874// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAccountSettings
1875func (c *ECS) ListAccountSettings(input *ListAccountSettingsInput) (*ListAccountSettingsOutput, error) {
1876	req, out := c.ListAccountSettingsRequest(input)
1877	return out, req.Send()
1878}
1879
1880// ListAccountSettingsWithContext is the same as ListAccountSettings with the addition of
1881// the ability to pass a context and additional request options.
1882//
1883// See ListAccountSettings for details on how to use this API operation.
1884//
1885// The context must be non-nil and will be used for request cancellation. If
1886// the context is nil a panic will occur. In the future the SDK may create
1887// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1888// for more information on using Contexts.
1889func (c *ECS) ListAccountSettingsWithContext(ctx aws.Context, input *ListAccountSettingsInput, opts ...request.Option) (*ListAccountSettingsOutput, error) {
1890	req, out := c.ListAccountSettingsRequest(input)
1891	req.SetContext(ctx)
1892	req.ApplyOptions(opts...)
1893	return out, req.Send()
1894}
1895
1896const opListAttributes = "ListAttributes"
1897
1898// ListAttributesRequest generates a "aws/request.Request" representing the
1899// client's request for the ListAttributes operation. The "output" return
1900// value will be populated with the request's response once the request completes
1901// successfully.
1902//
1903// Use "Send" method on the returned Request to send the API call to the service.
1904// the "output" return value is not valid until after Send returns without error.
1905//
1906// See ListAttributes for more information on using the ListAttributes
1907// API call, and error handling.
1908//
1909// This method is useful when you want to inject custom logic or configuration
1910// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1911//
1912//
1913//    // Example sending a request using the ListAttributesRequest method.
1914//    req, resp := client.ListAttributesRequest(params)
1915//
1916//    err := req.Send()
1917//    if err == nil { // resp is now filled
1918//        fmt.Println(resp)
1919//    }
1920//
1921// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributes
1922func (c *ECS) ListAttributesRequest(input *ListAttributesInput) (req *request.Request, output *ListAttributesOutput) {
1923	op := &request.Operation{
1924		Name:       opListAttributes,
1925		HTTPMethod: "POST",
1926		HTTPPath:   "/",
1927	}
1928
1929	if input == nil {
1930		input = &ListAttributesInput{}
1931	}
1932
1933	output = &ListAttributesOutput{}
1934	req = c.newRequest(op, input, output)
1935	return
1936}
1937
1938// ListAttributes API operation for Amazon EC2 Container Service.
1939//
1940// Lists the attributes for Amazon ECS resources within a specified target type
1941// and cluster. When you specify a target type and cluster, ListAttributes returns
1942// a list of attribute objects, one for each attribute on each resource. You
1943// can filter the list of results to a single attribute name to only return
1944// results that have that name. You can also filter the results by attribute
1945// name and value, for example, to see which container instances in a cluster
1946// are running a Linux AMI (ecs.os-type=linux).
1947//
1948// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1949// with awserr.Error's Code and Message methods to get detailed information about
1950// the error.
1951//
1952// See the AWS API reference guide for Amazon EC2 Container Service's
1953// API operation ListAttributes for usage and error information.
1954//
1955// Returned Error Codes:
1956//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1957//   The specified cluster could not be found. You can view your available clusters
1958//   with ListClusters. Amazon ECS clusters are Region-specific.
1959//
1960//   * ErrCodeInvalidParameterException "InvalidParameterException"
1961//   The specified parameter is invalid. Review the available parameters for the
1962//   API request.
1963//
1964// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributes
1965func (c *ECS) ListAttributes(input *ListAttributesInput) (*ListAttributesOutput, error) {
1966	req, out := c.ListAttributesRequest(input)
1967	return out, req.Send()
1968}
1969
1970// ListAttributesWithContext is the same as ListAttributes with the addition of
1971// the ability to pass a context and additional request options.
1972//
1973// See ListAttributes for details on how to use this API operation.
1974//
1975// The context must be non-nil and will be used for request cancellation. If
1976// the context is nil a panic will occur. In the future the SDK may create
1977// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1978// for more information on using Contexts.
1979func (c *ECS) ListAttributesWithContext(ctx aws.Context, input *ListAttributesInput, opts ...request.Option) (*ListAttributesOutput, error) {
1980	req, out := c.ListAttributesRequest(input)
1981	req.SetContext(ctx)
1982	req.ApplyOptions(opts...)
1983	return out, req.Send()
1984}
1985
1986const opListClusters = "ListClusters"
1987
1988// ListClustersRequest generates a "aws/request.Request" representing the
1989// client's request for the ListClusters operation. The "output" return
1990// value will be populated with the request's response once the request completes
1991// successfully.
1992//
1993// Use "Send" method on the returned Request to send the API call to the service.
1994// the "output" return value is not valid until after Send returns without error.
1995//
1996// See ListClusters for more information on using the ListClusters
1997// API call, and error handling.
1998//
1999// This method is useful when you want to inject custom logic or configuration
2000// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2001//
2002//
2003//    // Example sending a request using the ListClustersRequest method.
2004//    req, resp := client.ListClustersRequest(params)
2005//
2006//    err := req.Send()
2007//    if err == nil { // resp is now filled
2008//        fmt.Println(resp)
2009//    }
2010//
2011// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClusters
2012func (c *ECS) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
2013	op := &request.Operation{
2014		Name:       opListClusters,
2015		HTTPMethod: "POST",
2016		HTTPPath:   "/",
2017		Paginator: &request.Paginator{
2018			InputTokens:     []string{"nextToken"},
2019			OutputTokens:    []string{"nextToken"},
2020			LimitToken:      "maxResults",
2021			TruncationToken: "",
2022		},
2023	}
2024
2025	if input == nil {
2026		input = &ListClustersInput{}
2027	}
2028
2029	output = &ListClustersOutput{}
2030	req = c.newRequest(op, input, output)
2031	return
2032}
2033
2034// ListClusters API operation for Amazon EC2 Container Service.
2035//
2036// Returns a list of existing clusters.
2037//
2038// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2039// with awserr.Error's Code and Message methods to get detailed information about
2040// the error.
2041//
2042// See the AWS API reference guide for Amazon EC2 Container Service's
2043// API operation ListClusters for usage and error information.
2044//
2045// Returned Error Codes:
2046//   * ErrCodeServerException "ServerException"
2047//   These errors are usually caused by a server issue.
2048//
2049//   * ErrCodeClientException "ClientException"
2050//   These errors are usually caused by a client action, such as using an action
2051//   or resource on behalf of a user that doesn't have permissions to use the
2052//   action or resource, or specifying an identifier that is not valid.
2053//
2054//   * ErrCodeInvalidParameterException "InvalidParameterException"
2055//   The specified parameter is invalid. Review the available parameters for the
2056//   API request.
2057//
2058// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClusters
2059func (c *ECS) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
2060	req, out := c.ListClustersRequest(input)
2061	return out, req.Send()
2062}
2063
2064// ListClustersWithContext is the same as ListClusters with the addition of
2065// the ability to pass a context and additional request options.
2066//
2067// See ListClusters for details on how to use this API operation.
2068//
2069// The context must be non-nil and will be used for request cancellation. If
2070// the context is nil a panic will occur. In the future the SDK may create
2071// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2072// for more information on using Contexts.
2073func (c *ECS) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
2074	req, out := c.ListClustersRequest(input)
2075	req.SetContext(ctx)
2076	req.ApplyOptions(opts...)
2077	return out, req.Send()
2078}
2079
2080// ListClustersPages iterates over the pages of a ListClusters operation,
2081// calling the "fn" function with the response data for each page. To stop
2082// iterating, return false from the fn function.
2083//
2084// See ListClusters method for more information on how to use this operation.
2085//
2086// Note: This operation can generate multiple requests to a service.
2087//
2088//    // Example iterating over at most 3 pages of a ListClusters operation.
2089//    pageNum := 0
2090//    err := client.ListClustersPages(params,
2091//        func(page *ecs.ListClustersOutput, lastPage bool) bool {
2092//            pageNum++
2093//            fmt.Println(page)
2094//            return pageNum <= 3
2095//        })
2096//
2097func (c *ECS) ListClustersPages(input *ListClustersInput, fn func(*ListClustersOutput, bool) bool) error {
2098	return c.ListClustersPagesWithContext(aws.BackgroundContext(), input, fn)
2099}
2100
2101// ListClustersPagesWithContext same as ListClustersPages except
2102// it takes a Context and allows setting request options on the pages.
2103//
2104// The context must be non-nil and will be used for request cancellation. If
2105// the context is nil a panic will occur. In the future the SDK may create
2106// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2107// for more information on using Contexts.
2108func (c *ECS) ListClustersPagesWithContext(ctx aws.Context, input *ListClustersInput, fn func(*ListClustersOutput, bool) bool, opts ...request.Option) error {
2109	p := request.Pagination{
2110		NewRequest: func() (*request.Request, error) {
2111			var inCpy *ListClustersInput
2112			if input != nil {
2113				tmp := *input
2114				inCpy = &tmp
2115			}
2116			req, _ := c.ListClustersRequest(inCpy)
2117			req.SetContext(ctx)
2118			req.ApplyOptions(opts...)
2119			return req, nil
2120		},
2121	}
2122
2123	cont := true
2124	for p.Next() && cont {
2125		cont = fn(p.Page().(*ListClustersOutput), !p.HasNextPage())
2126	}
2127	return p.Err()
2128}
2129
2130const opListContainerInstances = "ListContainerInstances"
2131
2132// ListContainerInstancesRequest generates a "aws/request.Request" representing the
2133// client's request for the ListContainerInstances operation. The "output" return
2134// value will be populated with the request's response once the request completes
2135// successfully.
2136//
2137// Use "Send" method on the returned Request to send the API call to the service.
2138// the "output" return value is not valid until after Send returns without error.
2139//
2140// See ListContainerInstances for more information on using the ListContainerInstances
2141// API call, and error handling.
2142//
2143// This method is useful when you want to inject custom logic or configuration
2144// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2145//
2146//
2147//    // Example sending a request using the ListContainerInstancesRequest method.
2148//    req, resp := client.ListContainerInstancesRequest(params)
2149//
2150//    err := req.Send()
2151//    if err == nil { // resp is now filled
2152//        fmt.Println(resp)
2153//    }
2154//
2155// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstances
2156func (c *ECS) ListContainerInstancesRequest(input *ListContainerInstancesInput) (req *request.Request, output *ListContainerInstancesOutput) {
2157	op := &request.Operation{
2158		Name:       opListContainerInstances,
2159		HTTPMethod: "POST",
2160		HTTPPath:   "/",
2161		Paginator: &request.Paginator{
2162			InputTokens:     []string{"nextToken"},
2163			OutputTokens:    []string{"nextToken"},
2164			LimitToken:      "maxResults",
2165			TruncationToken: "",
2166		},
2167	}
2168
2169	if input == nil {
2170		input = &ListContainerInstancesInput{}
2171	}
2172
2173	output = &ListContainerInstancesOutput{}
2174	req = c.newRequest(op, input, output)
2175	return
2176}
2177
2178// ListContainerInstances API operation for Amazon EC2 Container Service.
2179//
2180// Returns a list of container instances in a specified cluster. You can filter
2181// the results of a ListContainerInstances operation with cluster query language
2182// statements inside the filter parameter. For more information, see Cluster
2183// Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
2184// in the Amazon Elastic Container Service Developer Guide.
2185//
2186// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2187// with awserr.Error's Code and Message methods to get detailed information about
2188// the error.
2189//
2190// See the AWS API reference guide for Amazon EC2 Container Service's
2191// API operation ListContainerInstances for usage and error information.
2192//
2193// Returned Error Codes:
2194//   * ErrCodeServerException "ServerException"
2195//   These errors are usually caused by a server issue.
2196//
2197//   * ErrCodeClientException "ClientException"
2198//   These errors are usually caused by a client action, such as using an action
2199//   or resource on behalf of a user that doesn't have permissions to use the
2200//   action or resource, or specifying an identifier that is not valid.
2201//
2202//   * ErrCodeInvalidParameterException "InvalidParameterException"
2203//   The specified parameter is invalid. Review the available parameters for the
2204//   API request.
2205//
2206//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
2207//   The specified cluster could not be found. You can view your available clusters
2208//   with ListClusters. Amazon ECS clusters are Region-specific.
2209//
2210// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstances
2211func (c *ECS) ListContainerInstances(input *ListContainerInstancesInput) (*ListContainerInstancesOutput, error) {
2212	req, out := c.ListContainerInstancesRequest(input)
2213	return out, req.Send()
2214}
2215
2216// ListContainerInstancesWithContext is the same as ListContainerInstances with the addition of
2217// the ability to pass a context and additional request options.
2218//
2219// See ListContainerInstances for details on how to use this API operation.
2220//
2221// The context must be non-nil and will be used for request cancellation. If
2222// the context is nil a panic will occur. In the future the SDK may create
2223// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2224// for more information on using Contexts.
2225func (c *ECS) ListContainerInstancesWithContext(ctx aws.Context, input *ListContainerInstancesInput, opts ...request.Option) (*ListContainerInstancesOutput, error) {
2226	req, out := c.ListContainerInstancesRequest(input)
2227	req.SetContext(ctx)
2228	req.ApplyOptions(opts...)
2229	return out, req.Send()
2230}
2231
2232// ListContainerInstancesPages iterates over the pages of a ListContainerInstances operation,
2233// calling the "fn" function with the response data for each page. To stop
2234// iterating, return false from the fn function.
2235//
2236// See ListContainerInstances method for more information on how to use this operation.
2237//
2238// Note: This operation can generate multiple requests to a service.
2239//
2240//    // Example iterating over at most 3 pages of a ListContainerInstances operation.
2241//    pageNum := 0
2242//    err := client.ListContainerInstancesPages(params,
2243//        func(page *ecs.ListContainerInstancesOutput, lastPage bool) bool {
2244//            pageNum++
2245//            fmt.Println(page)
2246//            return pageNum <= 3
2247//        })
2248//
2249func (c *ECS) ListContainerInstancesPages(input *ListContainerInstancesInput, fn func(*ListContainerInstancesOutput, bool) bool) error {
2250	return c.ListContainerInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
2251}
2252
2253// ListContainerInstancesPagesWithContext same as ListContainerInstancesPages except
2254// it takes a Context and allows setting request options on the pages.
2255//
2256// The context must be non-nil and will be used for request cancellation. If
2257// the context is nil a panic will occur. In the future the SDK may create
2258// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2259// for more information on using Contexts.
2260func (c *ECS) ListContainerInstancesPagesWithContext(ctx aws.Context, input *ListContainerInstancesInput, fn func(*ListContainerInstancesOutput, bool) bool, opts ...request.Option) error {
2261	p := request.Pagination{
2262		NewRequest: func() (*request.Request, error) {
2263			var inCpy *ListContainerInstancesInput
2264			if input != nil {
2265				tmp := *input
2266				inCpy = &tmp
2267			}
2268			req, _ := c.ListContainerInstancesRequest(inCpy)
2269			req.SetContext(ctx)
2270			req.ApplyOptions(opts...)
2271			return req, nil
2272		},
2273	}
2274
2275	cont := true
2276	for p.Next() && cont {
2277		cont = fn(p.Page().(*ListContainerInstancesOutput), !p.HasNextPage())
2278	}
2279	return p.Err()
2280}
2281
2282const opListServices = "ListServices"
2283
2284// ListServicesRequest generates a "aws/request.Request" representing the
2285// client's request for the ListServices operation. The "output" return
2286// value will be populated with the request's response once the request completes
2287// successfully.
2288//
2289// Use "Send" method on the returned Request to send the API call to the service.
2290// the "output" return value is not valid until after Send returns without error.
2291//
2292// See ListServices for more information on using the ListServices
2293// API call, and error handling.
2294//
2295// This method is useful when you want to inject custom logic or configuration
2296// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2297//
2298//
2299//    // Example sending a request using the ListServicesRequest method.
2300//    req, resp := client.ListServicesRequest(params)
2301//
2302//    err := req.Send()
2303//    if err == nil { // resp is now filled
2304//        fmt.Println(resp)
2305//    }
2306//
2307// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServices
2308func (c *ECS) ListServicesRequest(input *ListServicesInput) (req *request.Request, output *ListServicesOutput) {
2309	op := &request.Operation{
2310		Name:       opListServices,
2311		HTTPMethod: "POST",
2312		HTTPPath:   "/",
2313		Paginator: &request.Paginator{
2314			InputTokens:     []string{"nextToken"},
2315			OutputTokens:    []string{"nextToken"},
2316			LimitToken:      "maxResults",
2317			TruncationToken: "",
2318		},
2319	}
2320
2321	if input == nil {
2322		input = &ListServicesInput{}
2323	}
2324
2325	output = &ListServicesOutput{}
2326	req = c.newRequest(op, input, output)
2327	return
2328}
2329
2330// ListServices API operation for Amazon EC2 Container Service.
2331//
2332// Lists the services that are running in a specified cluster.
2333//
2334// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2335// with awserr.Error's Code and Message methods to get detailed information about
2336// the error.
2337//
2338// See the AWS API reference guide for Amazon EC2 Container Service's
2339// API operation ListServices for usage and error information.
2340//
2341// Returned Error Codes:
2342//   * ErrCodeServerException "ServerException"
2343//   These errors are usually caused by a server issue.
2344//
2345//   * ErrCodeClientException "ClientException"
2346//   These errors are usually caused by a client action, such as using an action
2347//   or resource on behalf of a user that doesn't have permissions to use the
2348//   action or resource, or specifying an identifier that is not valid.
2349//
2350//   * ErrCodeInvalidParameterException "InvalidParameterException"
2351//   The specified parameter is invalid. Review the available parameters for the
2352//   API request.
2353//
2354//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
2355//   The specified cluster could not be found. You can view your available clusters
2356//   with ListClusters. Amazon ECS clusters are Region-specific.
2357//
2358// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServices
2359func (c *ECS) ListServices(input *ListServicesInput) (*ListServicesOutput, error) {
2360	req, out := c.ListServicesRequest(input)
2361	return out, req.Send()
2362}
2363
2364// ListServicesWithContext is the same as ListServices with the addition of
2365// the ability to pass a context and additional request options.
2366//
2367// See ListServices for details on how to use this API operation.
2368//
2369// The context must be non-nil and will be used for request cancellation. If
2370// the context is nil a panic will occur. In the future the SDK may create
2371// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2372// for more information on using Contexts.
2373func (c *ECS) ListServicesWithContext(ctx aws.Context, input *ListServicesInput, opts ...request.Option) (*ListServicesOutput, error) {
2374	req, out := c.ListServicesRequest(input)
2375	req.SetContext(ctx)
2376	req.ApplyOptions(opts...)
2377	return out, req.Send()
2378}
2379
2380// ListServicesPages iterates over the pages of a ListServices operation,
2381// calling the "fn" function with the response data for each page. To stop
2382// iterating, return false from the fn function.
2383//
2384// See ListServices method for more information on how to use this operation.
2385//
2386// Note: This operation can generate multiple requests to a service.
2387//
2388//    // Example iterating over at most 3 pages of a ListServices operation.
2389//    pageNum := 0
2390//    err := client.ListServicesPages(params,
2391//        func(page *ecs.ListServicesOutput, lastPage bool) bool {
2392//            pageNum++
2393//            fmt.Println(page)
2394//            return pageNum <= 3
2395//        })
2396//
2397func (c *ECS) ListServicesPages(input *ListServicesInput, fn func(*ListServicesOutput, bool) bool) error {
2398	return c.ListServicesPagesWithContext(aws.BackgroundContext(), input, fn)
2399}
2400
2401// ListServicesPagesWithContext same as ListServicesPages except
2402// it takes a Context and allows setting request options on the pages.
2403//
2404// The context must be non-nil and will be used for request cancellation. If
2405// the context is nil a panic will occur. In the future the SDK may create
2406// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2407// for more information on using Contexts.
2408func (c *ECS) ListServicesPagesWithContext(ctx aws.Context, input *ListServicesInput, fn func(*ListServicesOutput, bool) bool, opts ...request.Option) error {
2409	p := request.Pagination{
2410		NewRequest: func() (*request.Request, error) {
2411			var inCpy *ListServicesInput
2412			if input != nil {
2413				tmp := *input
2414				inCpy = &tmp
2415			}
2416			req, _ := c.ListServicesRequest(inCpy)
2417			req.SetContext(ctx)
2418			req.ApplyOptions(opts...)
2419			return req, nil
2420		},
2421	}
2422
2423	cont := true
2424	for p.Next() && cont {
2425		cont = fn(p.Page().(*ListServicesOutput), !p.HasNextPage())
2426	}
2427	return p.Err()
2428}
2429
2430const opListTagsForResource = "ListTagsForResource"
2431
2432// ListTagsForResourceRequest generates a "aws/request.Request" representing the
2433// client's request for the ListTagsForResource operation. The "output" return
2434// value will be populated with the request's response once the request completes
2435// successfully.
2436//
2437// Use "Send" method on the returned Request to send the API call to the service.
2438// the "output" return value is not valid until after Send returns without error.
2439//
2440// See ListTagsForResource for more information on using the ListTagsForResource
2441// API call, and error handling.
2442//
2443// This method is useful when you want to inject custom logic or configuration
2444// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2445//
2446//
2447//    // Example sending a request using the ListTagsForResourceRequest method.
2448//    req, resp := client.ListTagsForResourceRequest(params)
2449//
2450//    err := req.Send()
2451//    if err == nil { // resp is now filled
2452//        fmt.Println(resp)
2453//    }
2454//
2455// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTagsForResource
2456func (c *ECS) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
2457	op := &request.Operation{
2458		Name:       opListTagsForResource,
2459		HTTPMethod: "POST",
2460		HTTPPath:   "/",
2461	}
2462
2463	if input == nil {
2464		input = &ListTagsForResourceInput{}
2465	}
2466
2467	output = &ListTagsForResourceOutput{}
2468	req = c.newRequest(op, input, output)
2469	return
2470}
2471
2472// ListTagsForResource API operation for Amazon EC2 Container Service.
2473//
2474// List the tags for an Amazon ECS resource.
2475//
2476// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2477// with awserr.Error's Code and Message methods to get detailed information about
2478// the error.
2479//
2480// See the AWS API reference guide for Amazon EC2 Container Service's
2481// API operation ListTagsForResource for usage and error information.
2482//
2483// Returned Error Codes:
2484//   * ErrCodeServerException "ServerException"
2485//   These errors are usually caused by a server issue.
2486//
2487//   * ErrCodeClientException "ClientException"
2488//   These errors are usually caused by a client action, such as using an action
2489//   or resource on behalf of a user that doesn't have permissions to use the
2490//   action or resource, or specifying an identifier that is not valid.
2491//
2492//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
2493//   The specified cluster could not be found. You can view your available clusters
2494//   with ListClusters. Amazon ECS clusters are Region-specific.
2495//
2496//   * ErrCodeInvalidParameterException "InvalidParameterException"
2497//   The specified parameter is invalid. Review the available parameters for the
2498//   API request.
2499//
2500// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTagsForResource
2501func (c *ECS) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
2502	req, out := c.ListTagsForResourceRequest(input)
2503	return out, req.Send()
2504}
2505
2506// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
2507// the ability to pass a context and additional request options.
2508//
2509// See ListTagsForResource for details on how to use this API operation.
2510//
2511// The context must be non-nil and will be used for request cancellation. If
2512// the context is nil a panic will occur. In the future the SDK may create
2513// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2514// for more information on using Contexts.
2515func (c *ECS) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
2516	req, out := c.ListTagsForResourceRequest(input)
2517	req.SetContext(ctx)
2518	req.ApplyOptions(opts...)
2519	return out, req.Send()
2520}
2521
2522const opListTaskDefinitionFamilies = "ListTaskDefinitionFamilies"
2523
2524// ListTaskDefinitionFamiliesRequest generates a "aws/request.Request" representing the
2525// client's request for the ListTaskDefinitionFamilies operation. The "output" return
2526// value will be populated with the request's response once the request completes
2527// successfully.
2528//
2529// Use "Send" method on the returned Request to send the API call to the service.
2530// the "output" return value is not valid until after Send returns without error.
2531//
2532// See ListTaskDefinitionFamilies for more information on using the ListTaskDefinitionFamilies
2533// API call, and error handling.
2534//
2535// This method is useful when you want to inject custom logic or configuration
2536// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2537//
2538//
2539//    // Example sending a request using the ListTaskDefinitionFamiliesRequest method.
2540//    req, resp := client.ListTaskDefinitionFamiliesRequest(params)
2541//
2542//    err := req.Send()
2543//    if err == nil { // resp is now filled
2544//        fmt.Println(resp)
2545//    }
2546//
2547// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamilies
2548func (c *ECS) ListTaskDefinitionFamiliesRequest(input *ListTaskDefinitionFamiliesInput) (req *request.Request, output *ListTaskDefinitionFamiliesOutput) {
2549	op := &request.Operation{
2550		Name:       opListTaskDefinitionFamilies,
2551		HTTPMethod: "POST",
2552		HTTPPath:   "/",
2553		Paginator: &request.Paginator{
2554			InputTokens:     []string{"nextToken"},
2555			OutputTokens:    []string{"nextToken"},
2556			LimitToken:      "maxResults",
2557			TruncationToken: "",
2558		},
2559	}
2560
2561	if input == nil {
2562		input = &ListTaskDefinitionFamiliesInput{}
2563	}
2564
2565	output = &ListTaskDefinitionFamiliesOutput{}
2566	req = c.newRequest(op, input, output)
2567	return
2568}
2569
2570// ListTaskDefinitionFamilies API operation for Amazon EC2 Container Service.
2571//
2572// Returns a list of task definition families that are registered to your account
2573// (which may include task definition families that no longer have any ACTIVE
2574// task definition revisions).
2575//
2576// You can filter out task definition families that do not contain any ACTIVE
2577// task definition revisions by setting the status parameter to ACTIVE. You
2578// can also filter the results with the familyPrefix parameter.
2579//
2580// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2581// with awserr.Error's Code and Message methods to get detailed information about
2582// the error.
2583//
2584// See the AWS API reference guide for Amazon EC2 Container Service's
2585// API operation ListTaskDefinitionFamilies for usage and error information.
2586//
2587// Returned Error Codes:
2588//   * ErrCodeServerException "ServerException"
2589//   These errors are usually caused by a server issue.
2590//
2591//   * ErrCodeClientException "ClientException"
2592//   These errors are usually caused by a client action, such as using an action
2593//   or resource on behalf of a user that doesn't have permissions to use the
2594//   action or resource, or specifying an identifier that is not valid.
2595//
2596//   * ErrCodeInvalidParameterException "InvalidParameterException"
2597//   The specified parameter is invalid. Review the available parameters for the
2598//   API request.
2599//
2600// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamilies
2601func (c *ECS) ListTaskDefinitionFamilies(input *ListTaskDefinitionFamiliesInput) (*ListTaskDefinitionFamiliesOutput, error) {
2602	req, out := c.ListTaskDefinitionFamiliesRequest(input)
2603	return out, req.Send()
2604}
2605
2606// ListTaskDefinitionFamiliesWithContext is the same as ListTaskDefinitionFamilies with the addition of
2607// the ability to pass a context and additional request options.
2608//
2609// See ListTaskDefinitionFamilies for details on how to use this API operation.
2610//
2611// The context must be non-nil and will be used for request cancellation. If
2612// the context is nil a panic will occur. In the future the SDK may create
2613// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2614// for more information on using Contexts.
2615func (c *ECS) ListTaskDefinitionFamiliesWithContext(ctx aws.Context, input *ListTaskDefinitionFamiliesInput, opts ...request.Option) (*ListTaskDefinitionFamiliesOutput, error) {
2616	req, out := c.ListTaskDefinitionFamiliesRequest(input)
2617	req.SetContext(ctx)
2618	req.ApplyOptions(opts...)
2619	return out, req.Send()
2620}
2621
2622// ListTaskDefinitionFamiliesPages iterates over the pages of a ListTaskDefinitionFamilies operation,
2623// calling the "fn" function with the response data for each page. To stop
2624// iterating, return false from the fn function.
2625//
2626// See ListTaskDefinitionFamilies method for more information on how to use this operation.
2627//
2628// Note: This operation can generate multiple requests to a service.
2629//
2630//    // Example iterating over at most 3 pages of a ListTaskDefinitionFamilies operation.
2631//    pageNum := 0
2632//    err := client.ListTaskDefinitionFamiliesPages(params,
2633//        func(page *ecs.ListTaskDefinitionFamiliesOutput, lastPage bool) bool {
2634//            pageNum++
2635//            fmt.Println(page)
2636//            return pageNum <= 3
2637//        })
2638//
2639func (c *ECS) ListTaskDefinitionFamiliesPages(input *ListTaskDefinitionFamiliesInput, fn func(*ListTaskDefinitionFamiliesOutput, bool) bool) error {
2640	return c.ListTaskDefinitionFamiliesPagesWithContext(aws.BackgroundContext(), input, fn)
2641}
2642
2643// ListTaskDefinitionFamiliesPagesWithContext same as ListTaskDefinitionFamiliesPages except
2644// it takes a Context and allows setting request options on the pages.
2645//
2646// The context must be non-nil and will be used for request cancellation. If
2647// the context is nil a panic will occur. In the future the SDK may create
2648// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2649// for more information on using Contexts.
2650func (c *ECS) ListTaskDefinitionFamiliesPagesWithContext(ctx aws.Context, input *ListTaskDefinitionFamiliesInput, fn func(*ListTaskDefinitionFamiliesOutput, bool) bool, opts ...request.Option) error {
2651	p := request.Pagination{
2652		NewRequest: func() (*request.Request, error) {
2653			var inCpy *ListTaskDefinitionFamiliesInput
2654			if input != nil {
2655				tmp := *input
2656				inCpy = &tmp
2657			}
2658			req, _ := c.ListTaskDefinitionFamiliesRequest(inCpy)
2659			req.SetContext(ctx)
2660			req.ApplyOptions(opts...)
2661			return req, nil
2662		},
2663	}
2664
2665	cont := true
2666	for p.Next() && cont {
2667		cont = fn(p.Page().(*ListTaskDefinitionFamiliesOutput), !p.HasNextPage())
2668	}
2669	return p.Err()
2670}
2671
2672const opListTaskDefinitions = "ListTaskDefinitions"
2673
2674// ListTaskDefinitionsRequest generates a "aws/request.Request" representing the
2675// client's request for the ListTaskDefinitions operation. The "output" return
2676// value will be populated with the request's response once the request completes
2677// successfully.
2678//
2679// Use "Send" method on the returned Request to send the API call to the service.
2680// the "output" return value is not valid until after Send returns without error.
2681//
2682// See ListTaskDefinitions for more information on using the ListTaskDefinitions
2683// API call, and error handling.
2684//
2685// This method is useful when you want to inject custom logic or configuration
2686// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2687//
2688//
2689//    // Example sending a request using the ListTaskDefinitionsRequest method.
2690//    req, resp := client.ListTaskDefinitionsRequest(params)
2691//
2692//    err := req.Send()
2693//    if err == nil { // resp is now filled
2694//        fmt.Println(resp)
2695//    }
2696//
2697// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitions
2698func (c *ECS) ListTaskDefinitionsRequest(input *ListTaskDefinitionsInput) (req *request.Request, output *ListTaskDefinitionsOutput) {
2699	op := &request.Operation{
2700		Name:       opListTaskDefinitions,
2701		HTTPMethod: "POST",
2702		HTTPPath:   "/",
2703		Paginator: &request.Paginator{
2704			InputTokens:     []string{"nextToken"},
2705			OutputTokens:    []string{"nextToken"},
2706			LimitToken:      "maxResults",
2707			TruncationToken: "",
2708		},
2709	}
2710
2711	if input == nil {
2712		input = &ListTaskDefinitionsInput{}
2713	}
2714
2715	output = &ListTaskDefinitionsOutput{}
2716	req = c.newRequest(op, input, output)
2717	return
2718}
2719
2720// ListTaskDefinitions API operation for Amazon EC2 Container Service.
2721//
2722// Returns a list of task definitions that are registered to your account. You
2723// can filter the results by family name with the familyPrefix parameter or
2724// by status with the status parameter.
2725//
2726// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2727// with awserr.Error's Code and Message methods to get detailed information about
2728// the error.
2729//
2730// See the AWS API reference guide for Amazon EC2 Container Service's
2731// API operation ListTaskDefinitions for usage and error information.
2732//
2733// Returned Error Codes:
2734//   * ErrCodeServerException "ServerException"
2735//   These errors are usually caused by a server issue.
2736//
2737//   * ErrCodeClientException "ClientException"
2738//   These errors are usually caused by a client action, such as using an action
2739//   or resource on behalf of a user that doesn't have permissions to use the
2740//   action or resource, or specifying an identifier that is not valid.
2741//
2742//   * ErrCodeInvalidParameterException "InvalidParameterException"
2743//   The specified parameter is invalid. Review the available parameters for the
2744//   API request.
2745//
2746// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitions
2747func (c *ECS) ListTaskDefinitions(input *ListTaskDefinitionsInput) (*ListTaskDefinitionsOutput, error) {
2748	req, out := c.ListTaskDefinitionsRequest(input)
2749	return out, req.Send()
2750}
2751
2752// ListTaskDefinitionsWithContext is the same as ListTaskDefinitions with the addition of
2753// the ability to pass a context and additional request options.
2754//
2755// See ListTaskDefinitions for details on how to use this API operation.
2756//
2757// The context must be non-nil and will be used for request cancellation. If
2758// the context is nil a panic will occur. In the future the SDK may create
2759// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2760// for more information on using Contexts.
2761func (c *ECS) ListTaskDefinitionsWithContext(ctx aws.Context, input *ListTaskDefinitionsInput, opts ...request.Option) (*ListTaskDefinitionsOutput, error) {
2762	req, out := c.ListTaskDefinitionsRequest(input)
2763	req.SetContext(ctx)
2764	req.ApplyOptions(opts...)
2765	return out, req.Send()
2766}
2767
2768// ListTaskDefinitionsPages iterates over the pages of a ListTaskDefinitions operation,
2769// calling the "fn" function with the response data for each page. To stop
2770// iterating, return false from the fn function.
2771//
2772// See ListTaskDefinitions method for more information on how to use this operation.
2773//
2774// Note: This operation can generate multiple requests to a service.
2775//
2776//    // Example iterating over at most 3 pages of a ListTaskDefinitions operation.
2777//    pageNum := 0
2778//    err := client.ListTaskDefinitionsPages(params,
2779//        func(page *ecs.ListTaskDefinitionsOutput, lastPage bool) bool {
2780//            pageNum++
2781//            fmt.Println(page)
2782//            return pageNum <= 3
2783//        })
2784//
2785func (c *ECS) ListTaskDefinitionsPages(input *ListTaskDefinitionsInput, fn func(*ListTaskDefinitionsOutput, bool) bool) error {
2786	return c.ListTaskDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn)
2787}
2788
2789// ListTaskDefinitionsPagesWithContext same as ListTaskDefinitionsPages except
2790// it takes a Context and allows setting request options on the pages.
2791//
2792// The context must be non-nil and will be used for request cancellation. If
2793// the context is nil a panic will occur. In the future the SDK may create
2794// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2795// for more information on using Contexts.
2796func (c *ECS) ListTaskDefinitionsPagesWithContext(ctx aws.Context, input *ListTaskDefinitionsInput, fn func(*ListTaskDefinitionsOutput, bool) bool, opts ...request.Option) error {
2797	p := request.Pagination{
2798		NewRequest: func() (*request.Request, error) {
2799			var inCpy *ListTaskDefinitionsInput
2800			if input != nil {
2801				tmp := *input
2802				inCpy = &tmp
2803			}
2804			req, _ := c.ListTaskDefinitionsRequest(inCpy)
2805			req.SetContext(ctx)
2806			req.ApplyOptions(opts...)
2807			return req, nil
2808		},
2809	}
2810
2811	cont := true
2812	for p.Next() && cont {
2813		cont = fn(p.Page().(*ListTaskDefinitionsOutput), !p.HasNextPage())
2814	}
2815	return p.Err()
2816}
2817
2818const opListTasks = "ListTasks"
2819
2820// ListTasksRequest generates a "aws/request.Request" representing the
2821// client's request for the ListTasks operation. The "output" return
2822// value will be populated with the request's response once the request completes
2823// successfully.
2824//
2825// Use "Send" method on the returned Request to send the API call to the service.
2826// the "output" return value is not valid until after Send returns without error.
2827//
2828// See ListTasks for more information on using the ListTasks
2829// API call, and error handling.
2830//
2831// This method is useful when you want to inject custom logic or configuration
2832// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2833//
2834//
2835//    // Example sending a request using the ListTasksRequest method.
2836//    req, resp := client.ListTasksRequest(params)
2837//
2838//    err := req.Send()
2839//    if err == nil { // resp is now filled
2840//        fmt.Println(resp)
2841//    }
2842//
2843// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasks
2844func (c *ECS) ListTasksRequest(input *ListTasksInput) (req *request.Request, output *ListTasksOutput) {
2845	op := &request.Operation{
2846		Name:       opListTasks,
2847		HTTPMethod: "POST",
2848		HTTPPath:   "/",
2849		Paginator: &request.Paginator{
2850			InputTokens:     []string{"nextToken"},
2851			OutputTokens:    []string{"nextToken"},
2852			LimitToken:      "maxResults",
2853			TruncationToken: "",
2854		},
2855	}
2856
2857	if input == nil {
2858		input = &ListTasksInput{}
2859	}
2860
2861	output = &ListTasksOutput{}
2862	req = c.newRequest(op, input, output)
2863	return
2864}
2865
2866// ListTasks API operation for Amazon EC2 Container Service.
2867//
2868// Returns a list of tasks for a specified cluster. You can filter the results
2869// by family name, by a particular container instance, or by the desired status
2870// of the task with the family, containerInstance, and desiredStatus parameters.
2871//
2872// Recently stopped tasks might appear in the returned results. Currently, stopped
2873// tasks appear in the returned results for at least one hour.
2874//
2875// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2876// with awserr.Error's Code and Message methods to get detailed information about
2877// the error.
2878//
2879// See the AWS API reference guide for Amazon EC2 Container Service's
2880// API operation ListTasks for usage and error information.
2881//
2882// Returned Error Codes:
2883//   * ErrCodeServerException "ServerException"
2884//   These errors are usually caused by a server issue.
2885//
2886//   * ErrCodeClientException "ClientException"
2887//   These errors are usually caused by a client action, such as using an action
2888//   or resource on behalf of a user that doesn't have permissions to use the
2889//   action or resource, or specifying an identifier that is not valid.
2890//
2891//   * ErrCodeInvalidParameterException "InvalidParameterException"
2892//   The specified parameter is invalid. Review the available parameters for the
2893//   API request.
2894//
2895//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
2896//   The specified cluster could not be found. You can view your available clusters
2897//   with ListClusters. Amazon ECS clusters are Region-specific.
2898//
2899//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
2900//   The specified service could not be found. You can view your available services
2901//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
2902//
2903// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasks
2904func (c *ECS) ListTasks(input *ListTasksInput) (*ListTasksOutput, error) {
2905	req, out := c.ListTasksRequest(input)
2906	return out, req.Send()
2907}
2908
2909// ListTasksWithContext is the same as ListTasks with the addition of
2910// the ability to pass a context and additional request options.
2911//
2912// See ListTasks for details on how to use this API operation.
2913//
2914// The context must be non-nil and will be used for request cancellation. If
2915// the context is nil a panic will occur. In the future the SDK may create
2916// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2917// for more information on using Contexts.
2918func (c *ECS) ListTasksWithContext(ctx aws.Context, input *ListTasksInput, opts ...request.Option) (*ListTasksOutput, error) {
2919	req, out := c.ListTasksRequest(input)
2920	req.SetContext(ctx)
2921	req.ApplyOptions(opts...)
2922	return out, req.Send()
2923}
2924
2925// ListTasksPages iterates over the pages of a ListTasks operation,
2926// calling the "fn" function with the response data for each page. To stop
2927// iterating, return false from the fn function.
2928//
2929// See ListTasks method for more information on how to use this operation.
2930//
2931// Note: This operation can generate multiple requests to a service.
2932//
2933//    // Example iterating over at most 3 pages of a ListTasks operation.
2934//    pageNum := 0
2935//    err := client.ListTasksPages(params,
2936//        func(page *ecs.ListTasksOutput, lastPage bool) bool {
2937//            pageNum++
2938//            fmt.Println(page)
2939//            return pageNum <= 3
2940//        })
2941//
2942func (c *ECS) ListTasksPages(input *ListTasksInput, fn func(*ListTasksOutput, bool) bool) error {
2943	return c.ListTasksPagesWithContext(aws.BackgroundContext(), input, fn)
2944}
2945
2946// ListTasksPagesWithContext same as ListTasksPages except
2947// it takes a Context and allows setting request options on the pages.
2948//
2949// The context must be non-nil and will be used for request cancellation. If
2950// the context is nil a panic will occur. In the future the SDK may create
2951// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2952// for more information on using Contexts.
2953func (c *ECS) ListTasksPagesWithContext(ctx aws.Context, input *ListTasksInput, fn func(*ListTasksOutput, bool) bool, opts ...request.Option) error {
2954	p := request.Pagination{
2955		NewRequest: func() (*request.Request, error) {
2956			var inCpy *ListTasksInput
2957			if input != nil {
2958				tmp := *input
2959				inCpy = &tmp
2960			}
2961			req, _ := c.ListTasksRequest(inCpy)
2962			req.SetContext(ctx)
2963			req.ApplyOptions(opts...)
2964			return req, nil
2965		},
2966	}
2967
2968	cont := true
2969	for p.Next() && cont {
2970		cont = fn(p.Page().(*ListTasksOutput), !p.HasNextPage())
2971	}
2972	return p.Err()
2973}
2974
2975const opPutAccountSetting = "PutAccountSetting"
2976
2977// PutAccountSettingRequest generates a "aws/request.Request" representing the
2978// client's request for the PutAccountSetting operation. The "output" return
2979// value will be populated with the request's response once the request completes
2980// successfully.
2981//
2982// Use "Send" method on the returned Request to send the API call to the service.
2983// the "output" return value is not valid until after Send returns without error.
2984//
2985// See PutAccountSetting for more information on using the PutAccountSetting
2986// API call, and error handling.
2987//
2988// This method is useful when you want to inject custom logic or configuration
2989// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2990//
2991//
2992//    // Example sending a request using the PutAccountSettingRequest method.
2993//    req, resp := client.PutAccountSettingRequest(params)
2994//
2995//    err := req.Send()
2996//    if err == nil { // resp is now filled
2997//        fmt.Println(resp)
2998//    }
2999//
3000// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSetting
3001func (c *ECS) PutAccountSettingRequest(input *PutAccountSettingInput) (req *request.Request, output *PutAccountSettingOutput) {
3002	op := &request.Operation{
3003		Name:       opPutAccountSetting,
3004		HTTPMethod: "POST",
3005		HTTPPath:   "/",
3006	}
3007
3008	if input == nil {
3009		input = &PutAccountSettingInput{}
3010	}
3011
3012	output = &PutAccountSettingOutput{}
3013	req = c.newRequest(op, input, output)
3014	return
3015}
3016
3017// PutAccountSetting API operation for Amazon EC2 Container Service.
3018//
3019// Modifies an account setting. If you change the account setting for the root
3020// user, the default settings for all of the IAM users and roles for which no
3021// individual account setting has been specified are reset. For more information,
3022// see Account Settings (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html)
3023// in the Amazon Elastic Container Service Developer Guide.
3024//
3025// When serviceLongArnFormat, taskLongArnFormat, or containerInstanceLongArnFormat
3026// are specified, the Amazon Resource Name (ARN) and resource ID format of the
3027// resource type for a specified IAM user, IAM role, or the root user for an
3028// account is affected. The opt-in and opt-out account setting must be set for
3029// each Amazon ECS resource separately. The ARN and resource ID format of a
3030// resource will be defined by the opt-in status of the IAM user or role that
3031// created the resource. You must enable this setting to use Amazon ECS features
3032// such as resource tagging.
3033//
3034// When awsvpcTrunking is specified, the elastic network interface (ENI) limit
3035// for any new container instances that support the feature is changed. If awsvpcTrunking
3036// is enabled, any new container instances that support the feature are launched
3037// have the increased ENI limits available to them. For more information, see
3038// Elastic Network Interface Trunking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html)
3039// in the Amazon Elastic Container Service Developer Guide.
3040//
3041// When containerInsights is specified, the default setting indicating whether
3042// CloudWatch Container Insights is enabled for your clusters is changed. If
3043// containerInsights is enabled, any new clusters that are created will have
3044// Container Insights enabled unless you disable it during cluster creation.
3045// For more information, see CloudWatch Container Insights (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-container-insights.html)
3046// in the Amazon Elastic Container Service Developer Guide.
3047//
3048// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3049// with awserr.Error's Code and Message methods to get detailed information about
3050// the error.
3051//
3052// See the AWS API reference guide for Amazon EC2 Container Service's
3053// API operation PutAccountSetting for usage and error information.
3054//
3055// Returned Error Codes:
3056//   * ErrCodeServerException "ServerException"
3057//   These errors are usually caused by a server issue.
3058//
3059//   * ErrCodeClientException "ClientException"
3060//   These errors are usually caused by a client action, such as using an action
3061//   or resource on behalf of a user that doesn't have permissions to use the
3062//   action or resource, or specifying an identifier that is not valid.
3063//
3064//   * ErrCodeInvalidParameterException "InvalidParameterException"
3065//   The specified parameter is invalid. Review the available parameters for the
3066//   API request.
3067//
3068// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSetting
3069func (c *ECS) PutAccountSetting(input *PutAccountSettingInput) (*PutAccountSettingOutput, error) {
3070	req, out := c.PutAccountSettingRequest(input)
3071	return out, req.Send()
3072}
3073
3074// PutAccountSettingWithContext is the same as PutAccountSetting with the addition of
3075// the ability to pass a context and additional request options.
3076//
3077// See PutAccountSetting for details on how to use this API operation.
3078//
3079// The context must be non-nil and will be used for request cancellation. If
3080// the context is nil a panic will occur. In the future the SDK may create
3081// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3082// for more information on using Contexts.
3083func (c *ECS) PutAccountSettingWithContext(ctx aws.Context, input *PutAccountSettingInput, opts ...request.Option) (*PutAccountSettingOutput, error) {
3084	req, out := c.PutAccountSettingRequest(input)
3085	req.SetContext(ctx)
3086	req.ApplyOptions(opts...)
3087	return out, req.Send()
3088}
3089
3090const opPutAccountSettingDefault = "PutAccountSettingDefault"
3091
3092// PutAccountSettingDefaultRequest generates a "aws/request.Request" representing the
3093// client's request for the PutAccountSettingDefault operation. The "output" return
3094// value will be populated with the request's response once the request completes
3095// successfully.
3096//
3097// Use "Send" method on the returned Request to send the API call to the service.
3098// the "output" return value is not valid until after Send returns without error.
3099//
3100// See PutAccountSettingDefault for more information on using the PutAccountSettingDefault
3101// API call, and error handling.
3102//
3103// This method is useful when you want to inject custom logic or configuration
3104// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3105//
3106//
3107//    // Example sending a request using the PutAccountSettingDefaultRequest method.
3108//    req, resp := client.PutAccountSettingDefaultRequest(params)
3109//
3110//    err := req.Send()
3111//    if err == nil { // resp is now filled
3112//        fmt.Println(resp)
3113//    }
3114//
3115// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSettingDefault
3116func (c *ECS) PutAccountSettingDefaultRequest(input *PutAccountSettingDefaultInput) (req *request.Request, output *PutAccountSettingDefaultOutput) {
3117	op := &request.Operation{
3118		Name:       opPutAccountSettingDefault,
3119		HTTPMethod: "POST",
3120		HTTPPath:   "/",
3121	}
3122
3123	if input == nil {
3124		input = &PutAccountSettingDefaultInput{}
3125	}
3126
3127	output = &PutAccountSettingDefaultOutput{}
3128	req = c.newRequest(op, input, output)
3129	return
3130}
3131
3132// PutAccountSettingDefault API operation for Amazon EC2 Container Service.
3133//
3134// Modifies an account setting for all IAM users on an account for whom no individual
3135// account setting has been specified.
3136//
3137// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3138// with awserr.Error's Code and Message methods to get detailed information about
3139// the error.
3140//
3141// See the AWS API reference guide for Amazon EC2 Container Service's
3142// API operation PutAccountSettingDefault for usage and error information.
3143//
3144// Returned Error Codes:
3145//   * ErrCodeServerException "ServerException"
3146//   These errors are usually caused by a server issue.
3147//
3148//   * ErrCodeClientException "ClientException"
3149//   These errors are usually caused by a client action, such as using an action
3150//   or resource on behalf of a user that doesn't have permissions to use the
3151//   action or resource, or specifying an identifier that is not valid.
3152//
3153//   * ErrCodeInvalidParameterException "InvalidParameterException"
3154//   The specified parameter is invalid. Review the available parameters for the
3155//   API request.
3156//
3157// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSettingDefault
3158func (c *ECS) PutAccountSettingDefault(input *PutAccountSettingDefaultInput) (*PutAccountSettingDefaultOutput, error) {
3159	req, out := c.PutAccountSettingDefaultRequest(input)
3160	return out, req.Send()
3161}
3162
3163// PutAccountSettingDefaultWithContext is the same as PutAccountSettingDefault with the addition of
3164// the ability to pass a context and additional request options.
3165//
3166// See PutAccountSettingDefault for details on how to use this API operation.
3167//
3168// The context must be non-nil and will be used for request cancellation. If
3169// the context is nil a panic will occur. In the future the SDK may create
3170// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3171// for more information on using Contexts.
3172func (c *ECS) PutAccountSettingDefaultWithContext(ctx aws.Context, input *PutAccountSettingDefaultInput, opts ...request.Option) (*PutAccountSettingDefaultOutput, error) {
3173	req, out := c.PutAccountSettingDefaultRequest(input)
3174	req.SetContext(ctx)
3175	req.ApplyOptions(opts...)
3176	return out, req.Send()
3177}
3178
3179const opPutAttributes = "PutAttributes"
3180
3181// PutAttributesRequest generates a "aws/request.Request" representing the
3182// client's request for the PutAttributes operation. The "output" return
3183// value will be populated with the request's response once the request completes
3184// successfully.
3185//
3186// Use "Send" method on the returned Request to send the API call to the service.
3187// the "output" return value is not valid until after Send returns without error.
3188//
3189// See PutAttributes for more information on using the PutAttributes
3190// API call, and error handling.
3191//
3192// This method is useful when you want to inject custom logic or configuration
3193// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3194//
3195//
3196//    // Example sending a request using the PutAttributesRequest method.
3197//    req, resp := client.PutAttributesRequest(params)
3198//
3199//    err := req.Send()
3200//    if err == nil { // resp is now filled
3201//        fmt.Println(resp)
3202//    }
3203//
3204// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributes
3205func (c *ECS) PutAttributesRequest(input *PutAttributesInput) (req *request.Request, output *PutAttributesOutput) {
3206	op := &request.Operation{
3207		Name:       opPutAttributes,
3208		HTTPMethod: "POST",
3209		HTTPPath:   "/",
3210	}
3211
3212	if input == nil {
3213		input = &PutAttributesInput{}
3214	}
3215
3216	output = &PutAttributesOutput{}
3217	req = c.newRequest(op, input, output)
3218	return
3219}
3220
3221// PutAttributes API operation for Amazon EC2 Container Service.
3222//
3223// Create or update an attribute on an Amazon ECS resource. If the attribute
3224// does not exist, it is created. If the attribute exists, its value is replaced
3225// with the specified value. To delete an attribute, use DeleteAttributes. For
3226// more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
3227// in the Amazon Elastic Container Service Developer Guide.
3228//
3229// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3230// with awserr.Error's Code and Message methods to get detailed information about
3231// the error.
3232//
3233// See the AWS API reference guide for Amazon EC2 Container Service's
3234// API operation PutAttributes for usage and error information.
3235//
3236// Returned Error Codes:
3237//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
3238//   The specified cluster could not be found. You can view your available clusters
3239//   with ListClusters. Amazon ECS clusters are Region-specific.
3240//
3241//   * ErrCodeTargetNotFoundException "TargetNotFoundException"
3242//   The specified target could not be found. You can view your available container
3243//   instances with ListContainerInstances. Amazon ECS container instances are
3244//   cluster-specific and Region-specific.
3245//
3246//   * ErrCodeAttributeLimitExceededException "AttributeLimitExceededException"
3247//   You can apply up to 10 custom attributes per resource. You can view the attributes
3248//   of a resource with ListAttributes. You can remove existing attributes on
3249//   a resource with DeleteAttributes.
3250//
3251//   * ErrCodeInvalidParameterException "InvalidParameterException"
3252//   The specified parameter is invalid. Review the available parameters for the
3253//   API request.
3254//
3255// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributes
3256func (c *ECS) PutAttributes(input *PutAttributesInput) (*PutAttributesOutput, error) {
3257	req, out := c.PutAttributesRequest(input)
3258	return out, req.Send()
3259}
3260
3261// PutAttributesWithContext is the same as PutAttributes with the addition of
3262// the ability to pass a context and additional request options.
3263//
3264// See PutAttributes for details on how to use this API operation.
3265//
3266// The context must be non-nil and will be used for request cancellation. If
3267// the context is nil a panic will occur. In the future the SDK may create
3268// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3269// for more information on using Contexts.
3270func (c *ECS) PutAttributesWithContext(ctx aws.Context, input *PutAttributesInput, opts ...request.Option) (*PutAttributesOutput, error) {
3271	req, out := c.PutAttributesRequest(input)
3272	req.SetContext(ctx)
3273	req.ApplyOptions(opts...)
3274	return out, req.Send()
3275}
3276
3277const opRegisterContainerInstance = "RegisterContainerInstance"
3278
3279// RegisterContainerInstanceRequest generates a "aws/request.Request" representing the
3280// client's request for the RegisterContainerInstance operation. The "output" return
3281// value will be populated with the request's response once the request completes
3282// successfully.
3283//
3284// Use "Send" method on the returned Request to send the API call to the service.
3285// the "output" return value is not valid until after Send returns without error.
3286//
3287// See RegisterContainerInstance for more information on using the RegisterContainerInstance
3288// API call, and error handling.
3289//
3290// This method is useful when you want to inject custom logic or configuration
3291// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3292//
3293//
3294//    // Example sending a request using the RegisterContainerInstanceRequest method.
3295//    req, resp := client.RegisterContainerInstanceRequest(params)
3296//
3297//    err := req.Send()
3298//    if err == nil { // resp is now filled
3299//        fmt.Println(resp)
3300//    }
3301//
3302// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstance
3303func (c *ECS) RegisterContainerInstanceRequest(input *RegisterContainerInstanceInput) (req *request.Request, output *RegisterContainerInstanceOutput) {
3304	op := &request.Operation{
3305		Name:       opRegisterContainerInstance,
3306		HTTPMethod: "POST",
3307		HTTPPath:   "/",
3308	}
3309
3310	if input == nil {
3311		input = &RegisterContainerInstanceInput{}
3312	}
3313
3314	output = &RegisterContainerInstanceOutput{}
3315	req = c.newRequest(op, input, output)
3316	return
3317}
3318
3319// RegisterContainerInstance API operation for Amazon EC2 Container Service.
3320//
3321//
3322// This action is only used by the Amazon ECS agent, and it is not intended
3323// for use outside of the agent.
3324//
3325// Registers an EC2 instance into the specified cluster. This instance becomes
3326// available to place containers on.
3327//
3328// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3329// with awserr.Error's Code and Message methods to get detailed information about
3330// the error.
3331//
3332// See the AWS API reference guide for Amazon EC2 Container Service's
3333// API operation RegisterContainerInstance for usage and error information.
3334//
3335// Returned Error Codes:
3336//   * ErrCodeServerException "ServerException"
3337//   These errors are usually caused by a server issue.
3338//
3339//   * ErrCodeClientException "ClientException"
3340//   These errors are usually caused by a client action, such as using an action
3341//   or resource on behalf of a user that doesn't have permissions to use the
3342//   action or resource, or specifying an identifier that is not valid.
3343//
3344//   * ErrCodeInvalidParameterException "InvalidParameterException"
3345//   The specified parameter is invalid. Review the available parameters for the
3346//   API request.
3347//
3348// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstance
3349func (c *ECS) RegisterContainerInstance(input *RegisterContainerInstanceInput) (*RegisterContainerInstanceOutput, error) {
3350	req, out := c.RegisterContainerInstanceRequest(input)
3351	return out, req.Send()
3352}
3353
3354// RegisterContainerInstanceWithContext is the same as RegisterContainerInstance with the addition of
3355// the ability to pass a context and additional request options.
3356//
3357// See RegisterContainerInstance for details on how to use this API operation.
3358//
3359// The context must be non-nil and will be used for request cancellation. If
3360// the context is nil a panic will occur. In the future the SDK may create
3361// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3362// for more information on using Contexts.
3363func (c *ECS) RegisterContainerInstanceWithContext(ctx aws.Context, input *RegisterContainerInstanceInput, opts ...request.Option) (*RegisterContainerInstanceOutput, error) {
3364	req, out := c.RegisterContainerInstanceRequest(input)
3365	req.SetContext(ctx)
3366	req.ApplyOptions(opts...)
3367	return out, req.Send()
3368}
3369
3370const opRegisterTaskDefinition = "RegisterTaskDefinition"
3371
3372// RegisterTaskDefinitionRequest generates a "aws/request.Request" representing the
3373// client's request for the RegisterTaskDefinition operation. The "output" return
3374// value will be populated with the request's response once the request completes
3375// successfully.
3376//
3377// Use "Send" method on the returned Request to send the API call to the service.
3378// the "output" return value is not valid until after Send returns without error.
3379//
3380// See RegisterTaskDefinition for more information on using the RegisterTaskDefinition
3381// API call, and error handling.
3382//
3383// This method is useful when you want to inject custom logic or configuration
3384// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3385//
3386//
3387//    // Example sending a request using the RegisterTaskDefinitionRequest method.
3388//    req, resp := client.RegisterTaskDefinitionRequest(params)
3389//
3390//    err := req.Send()
3391//    if err == nil { // resp is now filled
3392//        fmt.Println(resp)
3393//    }
3394//
3395// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinition
3396func (c *ECS) RegisterTaskDefinitionRequest(input *RegisterTaskDefinitionInput) (req *request.Request, output *RegisterTaskDefinitionOutput) {
3397	op := &request.Operation{
3398		Name:       opRegisterTaskDefinition,
3399		HTTPMethod: "POST",
3400		HTTPPath:   "/",
3401	}
3402
3403	if input == nil {
3404		input = &RegisterTaskDefinitionInput{}
3405	}
3406
3407	output = &RegisterTaskDefinitionOutput{}
3408	req = c.newRequest(op, input, output)
3409	return
3410}
3411
3412// RegisterTaskDefinition API operation for Amazon EC2 Container Service.
3413//
3414// Registers a new task definition from the supplied family and containerDefinitions.
3415// Optionally, you can add data volumes to your containers with the volumes
3416// parameter. For more information about task definition parameters and defaults,
3417// see Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
3418// in the Amazon Elastic Container Service Developer Guide.
3419//
3420// You can specify an IAM role for your task with the taskRoleArn parameter.
3421// When you specify an IAM role for a task, its containers can then use the
3422// latest versions of the AWS CLI or SDKs to make API requests to the AWS services
3423// that are specified in the IAM policy associated with the role. For more information,
3424// see IAM Roles for Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
3425// in the Amazon Elastic Container Service Developer Guide.
3426//
3427// You can specify a Docker networking mode for the containers in your task
3428// definition with the networkMode parameter. The available network modes correspond
3429// to those described in Network settings (https://docs.docker.com/engine/reference/run/#/network-settings)
3430// in the Docker run reference. If you specify the awsvpc network mode, the
3431// task is allocated an elastic network interface, and you must specify a NetworkConfiguration
3432// when you create a service or run a task with the task definition. For more
3433// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
3434// in the Amazon Elastic Container Service Developer Guide.
3435//
3436// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3437// with awserr.Error's Code and Message methods to get detailed information about
3438// the error.
3439//
3440// See the AWS API reference guide for Amazon EC2 Container Service's
3441// API operation RegisterTaskDefinition for usage and error information.
3442//
3443// Returned Error Codes:
3444//   * ErrCodeServerException "ServerException"
3445//   These errors are usually caused by a server issue.
3446//
3447//   * ErrCodeClientException "ClientException"
3448//   These errors are usually caused by a client action, such as using an action
3449//   or resource on behalf of a user that doesn't have permissions to use the
3450//   action or resource, or specifying an identifier that is not valid.
3451//
3452//   * ErrCodeInvalidParameterException "InvalidParameterException"
3453//   The specified parameter is invalid. Review the available parameters for the
3454//   API request.
3455//
3456// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinition
3457func (c *ECS) RegisterTaskDefinition(input *RegisterTaskDefinitionInput) (*RegisterTaskDefinitionOutput, error) {
3458	req, out := c.RegisterTaskDefinitionRequest(input)
3459	return out, req.Send()
3460}
3461
3462// RegisterTaskDefinitionWithContext is the same as RegisterTaskDefinition with the addition of
3463// the ability to pass a context and additional request options.
3464//
3465// See RegisterTaskDefinition for details on how to use this API operation.
3466//
3467// The context must be non-nil and will be used for request cancellation. If
3468// the context is nil a panic will occur. In the future the SDK may create
3469// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3470// for more information on using Contexts.
3471func (c *ECS) RegisterTaskDefinitionWithContext(ctx aws.Context, input *RegisterTaskDefinitionInput, opts ...request.Option) (*RegisterTaskDefinitionOutput, error) {
3472	req, out := c.RegisterTaskDefinitionRequest(input)
3473	req.SetContext(ctx)
3474	req.ApplyOptions(opts...)
3475	return out, req.Send()
3476}
3477
3478const opRunTask = "RunTask"
3479
3480// RunTaskRequest generates a "aws/request.Request" representing the
3481// client's request for the RunTask operation. The "output" return
3482// value will be populated with the request's response once the request completes
3483// successfully.
3484//
3485// Use "Send" method on the returned Request to send the API call to the service.
3486// the "output" return value is not valid until after Send returns without error.
3487//
3488// See RunTask for more information on using the RunTask
3489// API call, and error handling.
3490//
3491// This method is useful when you want to inject custom logic or configuration
3492// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3493//
3494//
3495//    // Example sending a request using the RunTaskRequest method.
3496//    req, resp := client.RunTaskRequest(params)
3497//
3498//    err := req.Send()
3499//    if err == nil { // resp is now filled
3500//        fmt.Println(resp)
3501//    }
3502//
3503// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTask
3504func (c *ECS) RunTaskRequest(input *RunTaskInput) (req *request.Request, output *RunTaskOutput) {
3505	op := &request.Operation{
3506		Name:       opRunTask,
3507		HTTPMethod: "POST",
3508		HTTPPath:   "/",
3509	}
3510
3511	if input == nil {
3512		input = &RunTaskInput{}
3513	}
3514
3515	output = &RunTaskOutput{}
3516	req = c.newRequest(op, input, output)
3517	return
3518}
3519
3520// RunTask API operation for Amazon EC2 Container Service.
3521//
3522// Starts a new task using the specified task definition.
3523//
3524// You can allow Amazon ECS to place tasks for you, or you can customize how
3525// Amazon ECS places tasks using placement constraints and placement strategies.
3526// For more information, see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html)
3527// in the Amazon Elastic Container Service Developer Guide.
3528//
3529// Alternatively, you can use StartTask to use your own scheduler or place tasks
3530// manually on specific container instances.
3531//
3532// The Amazon ECS API follows an eventual consistency model, due to the distributed
3533// nature of the system supporting the API. This means that the result of an
3534// API command you run that affects your Amazon ECS resources might not be immediately
3535// visible to all subsequent commands you run. Keep this in mind when you carry
3536// out an API command that immediately follows a previous API command.
3537//
3538// To manage eventual consistency, you can do the following:
3539//
3540//    * Confirm the state of the resource before you run a command to modify
3541//    it. Run the DescribeTasks command using an exponential backoff algorithm
3542//    to ensure that you allow enough time for the previous command to propagate
3543//    through the system. To do this, run the DescribeTasks command repeatedly,
3544//    starting with a couple of seconds of wait time and increasing gradually
3545//    up to five minutes of wait time.
3546//
3547//    * Add wait time between subsequent commands, even if the DescribeTasks
3548//    command returns an accurate response. Apply an exponential backoff algorithm
3549//    starting with a couple of seconds of wait time, and increase gradually
3550//    up to about five minutes of wait time.
3551//
3552// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3553// with awserr.Error's Code and Message methods to get detailed information about
3554// the error.
3555//
3556// See the AWS API reference guide for Amazon EC2 Container Service's
3557// API operation RunTask for usage and error information.
3558//
3559// Returned Error Codes:
3560//   * ErrCodeServerException "ServerException"
3561//   These errors are usually caused by a server issue.
3562//
3563//   * ErrCodeClientException "ClientException"
3564//   These errors are usually caused by a client action, such as using an action
3565//   or resource on behalf of a user that doesn't have permissions to use the
3566//   action or resource, or specifying an identifier that is not valid.
3567//
3568//   * ErrCodeInvalidParameterException "InvalidParameterException"
3569//   The specified parameter is invalid. Review the available parameters for the
3570//   API request.
3571//
3572//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
3573//   The specified cluster could not be found. You can view your available clusters
3574//   with ListClusters. Amazon ECS clusters are Region-specific.
3575//
3576//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
3577//   The specified task is not supported in this Region.
3578//
3579//   * ErrCodePlatformUnknownException "PlatformUnknownException"
3580//   The specified platform version does not exist.
3581//
3582//   * ErrCodePlatformTaskDefinitionIncompatibilityException "PlatformTaskDefinitionIncompatibilityException"
3583//   The specified platform version does not satisfy the task definition's required
3584//   capabilities.
3585//
3586//   * ErrCodeAccessDeniedException "AccessDeniedException"
3587//   You do not have authorization to perform the requested action.
3588//
3589//   * ErrCodeBlockedException "BlockedException"
3590//   Your AWS account has been blocked. For more information, contact AWS Support
3591//   (http://aws.amazon.com/contact-us/).
3592//
3593// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTask
3594func (c *ECS) RunTask(input *RunTaskInput) (*RunTaskOutput, error) {
3595	req, out := c.RunTaskRequest(input)
3596	return out, req.Send()
3597}
3598
3599// RunTaskWithContext is the same as RunTask with the addition of
3600// the ability to pass a context and additional request options.
3601//
3602// See RunTask for details on how to use this API operation.
3603//
3604// The context must be non-nil and will be used for request cancellation. If
3605// the context is nil a panic will occur. In the future the SDK may create
3606// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3607// for more information on using Contexts.
3608func (c *ECS) RunTaskWithContext(ctx aws.Context, input *RunTaskInput, opts ...request.Option) (*RunTaskOutput, error) {
3609	req, out := c.RunTaskRequest(input)
3610	req.SetContext(ctx)
3611	req.ApplyOptions(opts...)
3612	return out, req.Send()
3613}
3614
3615const opStartTask = "StartTask"
3616
3617// StartTaskRequest generates a "aws/request.Request" representing the
3618// client's request for the StartTask operation. The "output" return
3619// value will be populated with the request's response once the request completes
3620// successfully.
3621//
3622// Use "Send" method on the returned Request to send the API call to the service.
3623// the "output" return value is not valid until after Send returns without error.
3624//
3625// See StartTask for more information on using the StartTask
3626// API call, and error handling.
3627//
3628// This method is useful when you want to inject custom logic or configuration
3629// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3630//
3631//
3632//    // Example sending a request using the StartTaskRequest method.
3633//    req, resp := client.StartTaskRequest(params)
3634//
3635//    err := req.Send()
3636//    if err == nil { // resp is now filled
3637//        fmt.Println(resp)
3638//    }
3639//
3640// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTask
3641func (c *ECS) StartTaskRequest(input *StartTaskInput) (req *request.Request, output *StartTaskOutput) {
3642	op := &request.Operation{
3643		Name:       opStartTask,
3644		HTTPMethod: "POST",
3645		HTTPPath:   "/",
3646	}
3647
3648	if input == nil {
3649		input = &StartTaskInput{}
3650	}
3651
3652	output = &StartTaskOutput{}
3653	req = c.newRequest(op, input, output)
3654	return
3655}
3656
3657// StartTask API operation for Amazon EC2 Container Service.
3658//
3659// Starts a new task from the specified task definition on the specified container
3660// instance or instances.
3661//
3662// Alternatively, you can use RunTask to place tasks for you. For more information,
3663// see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html)
3664// in the Amazon Elastic Container Service Developer Guide.
3665//
3666// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3667// with awserr.Error's Code and Message methods to get detailed information about
3668// the error.
3669//
3670// See the AWS API reference guide for Amazon EC2 Container Service's
3671// API operation StartTask for usage and error information.
3672//
3673// Returned Error Codes:
3674//   * ErrCodeServerException "ServerException"
3675//   These errors are usually caused by a server issue.
3676//
3677//   * ErrCodeClientException "ClientException"
3678//   These errors are usually caused by a client action, such as using an action
3679//   or resource on behalf of a user that doesn't have permissions to use the
3680//   action or resource, or specifying an identifier that is not valid.
3681//
3682//   * ErrCodeInvalidParameterException "InvalidParameterException"
3683//   The specified parameter is invalid. Review the available parameters for the
3684//   API request.
3685//
3686//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
3687//   The specified cluster could not be found. You can view your available clusters
3688//   with ListClusters. Amazon ECS clusters are Region-specific.
3689//
3690// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTask
3691func (c *ECS) StartTask(input *StartTaskInput) (*StartTaskOutput, error) {
3692	req, out := c.StartTaskRequest(input)
3693	return out, req.Send()
3694}
3695
3696// StartTaskWithContext is the same as StartTask with the addition of
3697// the ability to pass a context and additional request options.
3698//
3699// See StartTask for details on how to use this API operation.
3700//
3701// The context must be non-nil and will be used for request cancellation. If
3702// the context is nil a panic will occur. In the future the SDK may create
3703// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3704// for more information on using Contexts.
3705func (c *ECS) StartTaskWithContext(ctx aws.Context, input *StartTaskInput, opts ...request.Option) (*StartTaskOutput, error) {
3706	req, out := c.StartTaskRequest(input)
3707	req.SetContext(ctx)
3708	req.ApplyOptions(opts...)
3709	return out, req.Send()
3710}
3711
3712const opStopTask = "StopTask"
3713
3714// StopTaskRequest generates a "aws/request.Request" representing the
3715// client's request for the StopTask operation. The "output" return
3716// value will be populated with the request's response once the request completes
3717// successfully.
3718//
3719// Use "Send" method on the returned Request to send the API call to the service.
3720// the "output" return value is not valid until after Send returns without error.
3721//
3722// See StopTask for more information on using the StopTask
3723// API call, and error handling.
3724//
3725// This method is useful when you want to inject custom logic or configuration
3726// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3727//
3728//
3729//    // Example sending a request using the StopTaskRequest method.
3730//    req, resp := client.StopTaskRequest(params)
3731//
3732//    err := req.Send()
3733//    if err == nil { // resp is now filled
3734//        fmt.Println(resp)
3735//    }
3736//
3737// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTask
3738func (c *ECS) StopTaskRequest(input *StopTaskInput) (req *request.Request, output *StopTaskOutput) {
3739	op := &request.Operation{
3740		Name:       opStopTask,
3741		HTTPMethod: "POST",
3742		HTTPPath:   "/",
3743	}
3744
3745	if input == nil {
3746		input = &StopTaskInput{}
3747	}
3748
3749	output = &StopTaskOutput{}
3750	req = c.newRequest(op, input, output)
3751	return
3752}
3753
3754// StopTask API operation for Amazon EC2 Container Service.
3755//
3756// Stops a running task. Any tags associated with the task will be deleted.
3757//
3758// When StopTask is called on a task, the equivalent of docker stop is issued
3759// to the containers running in the task. This results in a SIGTERM value and
3760// a default 30-second timeout, after which the SIGKILL value is sent and the
3761// containers are forcibly stopped. If the container handles the SIGTERM value
3762// gracefully and exits within 30 seconds from receiving it, no SIGKILL value
3763// is sent.
3764//
3765// The default 30-second timeout can be configured on the Amazon ECS container
3766// agent with the ECS_CONTAINER_STOP_TIMEOUT variable. For more information,
3767// see Amazon ECS Container Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
3768// in the Amazon Elastic Container Service Developer Guide.
3769//
3770// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3771// with awserr.Error's Code and Message methods to get detailed information about
3772// the error.
3773//
3774// See the AWS API reference guide for Amazon EC2 Container Service's
3775// API operation StopTask for usage and error information.
3776//
3777// Returned Error Codes:
3778//   * ErrCodeServerException "ServerException"
3779//   These errors are usually caused by a server issue.
3780//
3781//   * ErrCodeClientException "ClientException"
3782//   These errors are usually caused by a client action, such as using an action
3783//   or resource on behalf of a user that doesn't have permissions to use the
3784//   action or resource, or specifying an identifier that is not valid.
3785//
3786//   * ErrCodeInvalidParameterException "InvalidParameterException"
3787//   The specified parameter is invalid. Review the available parameters for the
3788//   API request.
3789//
3790//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
3791//   The specified cluster could not be found. You can view your available clusters
3792//   with ListClusters. Amazon ECS clusters are Region-specific.
3793//
3794// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTask
3795func (c *ECS) StopTask(input *StopTaskInput) (*StopTaskOutput, error) {
3796	req, out := c.StopTaskRequest(input)
3797	return out, req.Send()
3798}
3799
3800// StopTaskWithContext is the same as StopTask with the addition of
3801// the ability to pass a context and additional request options.
3802//
3803// See StopTask for details on how to use this API operation.
3804//
3805// The context must be non-nil and will be used for request cancellation. If
3806// the context is nil a panic will occur. In the future the SDK may create
3807// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3808// for more information on using Contexts.
3809func (c *ECS) StopTaskWithContext(ctx aws.Context, input *StopTaskInput, opts ...request.Option) (*StopTaskOutput, error) {
3810	req, out := c.StopTaskRequest(input)
3811	req.SetContext(ctx)
3812	req.ApplyOptions(opts...)
3813	return out, req.Send()
3814}
3815
3816const opSubmitAttachmentStateChanges = "SubmitAttachmentStateChanges"
3817
3818// SubmitAttachmentStateChangesRequest generates a "aws/request.Request" representing the
3819// client's request for the SubmitAttachmentStateChanges operation. The "output" return
3820// value will be populated with the request's response once the request completes
3821// successfully.
3822//
3823// Use "Send" method on the returned Request to send the API call to the service.
3824// the "output" return value is not valid until after Send returns without error.
3825//
3826// See SubmitAttachmentStateChanges for more information on using the SubmitAttachmentStateChanges
3827// API call, and error handling.
3828//
3829// This method is useful when you want to inject custom logic or configuration
3830// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3831//
3832//
3833//    // Example sending a request using the SubmitAttachmentStateChangesRequest method.
3834//    req, resp := client.SubmitAttachmentStateChangesRequest(params)
3835//
3836//    err := req.Send()
3837//    if err == nil { // resp is now filled
3838//        fmt.Println(resp)
3839//    }
3840//
3841// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitAttachmentStateChanges
3842func (c *ECS) SubmitAttachmentStateChangesRequest(input *SubmitAttachmentStateChangesInput) (req *request.Request, output *SubmitAttachmentStateChangesOutput) {
3843	op := &request.Operation{
3844		Name:       opSubmitAttachmentStateChanges,
3845		HTTPMethod: "POST",
3846		HTTPPath:   "/",
3847	}
3848
3849	if input == nil {
3850		input = &SubmitAttachmentStateChangesInput{}
3851	}
3852
3853	output = &SubmitAttachmentStateChangesOutput{}
3854	req = c.newRequest(op, input, output)
3855	return
3856}
3857
3858// SubmitAttachmentStateChanges API operation for Amazon EC2 Container Service.
3859//
3860//
3861// This action is only used by the Amazon ECS agent, and it is not intended
3862// for use outside of the agent.
3863//
3864// Sent to acknowledge that an attachment changed states.
3865//
3866// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3867// with awserr.Error's Code and Message methods to get detailed information about
3868// the error.
3869//
3870// See the AWS API reference guide for Amazon EC2 Container Service's
3871// API operation SubmitAttachmentStateChanges for usage and error information.
3872//
3873// Returned Error Codes:
3874//   * ErrCodeServerException "ServerException"
3875//   These errors are usually caused by a server issue.
3876//
3877//   * ErrCodeClientException "ClientException"
3878//   These errors are usually caused by a client action, such as using an action
3879//   or resource on behalf of a user that doesn't have permissions to use the
3880//   action or resource, or specifying an identifier that is not valid.
3881//
3882//   * ErrCodeAccessDeniedException "AccessDeniedException"
3883//   You do not have authorization to perform the requested action.
3884//
3885//   * ErrCodeInvalidParameterException "InvalidParameterException"
3886//   The specified parameter is invalid. Review the available parameters for the
3887//   API request.
3888//
3889// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitAttachmentStateChanges
3890func (c *ECS) SubmitAttachmentStateChanges(input *SubmitAttachmentStateChangesInput) (*SubmitAttachmentStateChangesOutput, error) {
3891	req, out := c.SubmitAttachmentStateChangesRequest(input)
3892	return out, req.Send()
3893}
3894
3895// SubmitAttachmentStateChangesWithContext is the same as SubmitAttachmentStateChanges with the addition of
3896// the ability to pass a context and additional request options.
3897//
3898// See SubmitAttachmentStateChanges for details on how to use this API operation.
3899//
3900// The context must be non-nil and will be used for request cancellation. If
3901// the context is nil a panic will occur. In the future the SDK may create
3902// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3903// for more information on using Contexts.
3904func (c *ECS) SubmitAttachmentStateChangesWithContext(ctx aws.Context, input *SubmitAttachmentStateChangesInput, opts ...request.Option) (*SubmitAttachmentStateChangesOutput, error) {
3905	req, out := c.SubmitAttachmentStateChangesRequest(input)
3906	req.SetContext(ctx)
3907	req.ApplyOptions(opts...)
3908	return out, req.Send()
3909}
3910
3911const opSubmitContainerStateChange = "SubmitContainerStateChange"
3912
3913// SubmitContainerStateChangeRequest generates a "aws/request.Request" representing the
3914// client's request for the SubmitContainerStateChange operation. The "output" return
3915// value will be populated with the request's response once the request completes
3916// successfully.
3917//
3918// Use "Send" method on the returned Request to send the API call to the service.
3919// the "output" return value is not valid until after Send returns without error.
3920//
3921// See SubmitContainerStateChange for more information on using the SubmitContainerStateChange
3922// API call, and error handling.
3923//
3924// This method is useful when you want to inject custom logic or configuration
3925// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3926//
3927//
3928//    // Example sending a request using the SubmitContainerStateChangeRequest method.
3929//    req, resp := client.SubmitContainerStateChangeRequest(params)
3930//
3931//    err := req.Send()
3932//    if err == nil { // resp is now filled
3933//        fmt.Println(resp)
3934//    }
3935//
3936// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChange
3937func (c *ECS) SubmitContainerStateChangeRequest(input *SubmitContainerStateChangeInput) (req *request.Request, output *SubmitContainerStateChangeOutput) {
3938	op := &request.Operation{
3939		Name:       opSubmitContainerStateChange,
3940		HTTPMethod: "POST",
3941		HTTPPath:   "/",
3942	}
3943
3944	if input == nil {
3945		input = &SubmitContainerStateChangeInput{}
3946	}
3947
3948	output = &SubmitContainerStateChangeOutput{}
3949	req = c.newRequest(op, input, output)
3950	return
3951}
3952
3953// SubmitContainerStateChange API operation for Amazon EC2 Container Service.
3954//
3955//
3956// This action is only used by the Amazon ECS agent, and it is not intended
3957// for use outside of the agent.
3958//
3959// Sent to acknowledge that a container changed states.
3960//
3961// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3962// with awserr.Error's Code and Message methods to get detailed information about
3963// the error.
3964//
3965// See the AWS API reference guide for Amazon EC2 Container Service's
3966// API operation SubmitContainerStateChange for usage and error information.
3967//
3968// Returned Error Codes:
3969//   * ErrCodeServerException "ServerException"
3970//   These errors are usually caused by a server issue.
3971//
3972//   * ErrCodeClientException "ClientException"
3973//   These errors are usually caused by a client action, such as using an action
3974//   or resource on behalf of a user that doesn't have permissions to use the
3975//   action or resource, or specifying an identifier that is not valid.
3976//
3977//   * ErrCodeAccessDeniedException "AccessDeniedException"
3978//   You do not have authorization to perform the requested action.
3979//
3980// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChange
3981func (c *ECS) SubmitContainerStateChange(input *SubmitContainerStateChangeInput) (*SubmitContainerStateChangeOutput, error) {
3982	req, out := c.SubmitContainerStateChangeRequest(input)
3983	return out, req.Send()
3984}
3985
3986// SubmitContainerStateChangeWithContext is the same as SubmitContainerStateChange with the addition of
3987// the ability to pass a context and additional request options.
3988//
3989// See SubmitContainerStateChange for details on how to use this API operation.
3990//
3991// The context must be non-nil and will be used for request cancellation. If
3992// the context is nil a panic will occur. In the future the SDK may create
3993// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3994// for more information on using Contexts.
3995func (c *ECS) SubmitContainerStateChangeWithContext(ctx aws.Context, input *SubmitContainerStateChangeInput, opts ...request.Option) (*SubmitContainerStateChangeOutput, error) {
3996	req, out := c.SubmitContainerStateChangeRequest(input)
3997	req.SetContext(ctx)
3998	req.ApplyOptions(opts...)
3999	return out, req.Send()
4000}
4001
4002const opSubmitTaskStateChange = "SubmitTaskStateChange"
4003
4004// SubmitTaskStateChangeRequest generates a "aws/request.Request" representing the
4005// client's request for the SubmitTaskStateChange operation. The "output" return
4006// value will be populated with the request's response once the request completes
4007// successfully.
4008//
4009// Use "Send" method on the returned Request to send the API call to the service.
4010// the "output" return value is not valid until after Send returns without error.
4011//
4012// See SubmitTaskStateChange for more information on using the SubmitTaskStateChange
4013// API call, and error handling.
4014//
4015// This method is useful when you want to inject custom logic or configuration
4016// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4017//
4018//
4019//    // Example sending a request using the SubmitTaskStateChangeRequest method.
4020//    req, resp := client.SubmitTaskStateChangeRequest(params)
4021//
4022//    err := req.Send()
4023//    if err == nil { // resp is now filled
4024//        fmt.Println(resp)
4025//    }
4026//
4027// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChange
4028func (c *ECS) SubmitTaskStateChangeRequest(input *SubmitTaskStateChangeInput) (req *request.Request, output *SubmitTaskStateChangeOutput) {
4029	op := &request.Operation{
4030		Name:       opSubmitTaskStateChange,
4031		HTTPMethod: "POST",
4032		HTTPPath:   "/",
4033	}
4034
4035	if input == nil {
4036		input = &SubmitTaskStateChangeInput{}
4037	}
4038
4039	output = &SubmitTaskStateChangeOutput{}
4040	req = c.newRequest(op, input, output)
4041	return
4042}
4043
4044// SubmitTaskStateChange API operation for Amazon EC2 Container Service.
4045//
4046//
4047// This action is only used by the Amazon ECS agent, and it is not intended
4048// for use outside of the agent.
4049//
4050// Sent to acknowledge that a task changed states.
4051//
4052// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4053// with awserr.Error's Code and Message methods to get detailed information about
4054// the error.
4055//
4056// See the AWS API reference guide for Amazon EC2 Container Service's
4057// API operation SubmitTaskStateChange for usage and error information.
4058//
4059// Returned Error Codes:
4060//   * ErrCodeServerException "ServerException"
4061//   These errors are usually caused by a server issue.
4062//
4063//   * ErrCodeClientException "ClientException"
4064//   These errors are usually caused by a client action, such as using an action
4065//   or resource on behalf of a user that doesn't have permissions to use the
4066//   action or resource, or specifying an identifier that is not valid.
4067//
4068//   * ErrCodeAccessDeniedException "AccessDeniedException"
4069//   You do not have authorization to perform the requested action.
4070//
4071// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChange
4072func (c *ECS) SubmitTaskStateChange(input *SubmitTaskStateChangeInput) (*SubmitTaskStateChangeOutput, error) {
4073	req, out := c.SubmitTaskStateChangeRequest(input)
4074	return out, req.Send()
4075}
4076
4077// SubmitTaskStateChangeWithContext is the same as SubmitTaskStateChange with the addition of
4078// the ability to pass a context and additional request options.
4079//
4080// See SubmitTaskStateChange for details on how to use this API operation.
4081//
4082// The context must be non-nil and will be used for request cancellation. If
4083// the context is nil a panic will occur. In the future the SDK may create
4084// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4085// for more information on using Contexts.
4086func (c *ECS) SubmitTaskStateChangeWithContext(ctx aws.Context, input *SubmitTaskStateChangeInput, opts ...request.Option) (*SubmitTaskStateChangeOutput, error) {
4087	req, out := c.SubmitTaskStateChangeRequest(input)
4088	req.SetContext(ctx)
4089	req.ApplyOptions(opts...)
4090	return out, req.Send()
4091}
4092
4093const opTagResource = "TagResource"
4094
4095// TagResourceRequest generates a "aws/request.Request" representing the
4096// client's request for the TagResource operation. The "output" return
4097// value will be populated with the request's response once the request completes
4098// successfully.
4099//
4100// Use "Send" method on the returned Request to send the API call to the service.
4101// the "output" return value is not valid until after Send returns without error.
4102//
4103// See TagResource for more information on using the TagResource
4104// API call, and error handling.
4105//
4106// This method is useful when you want to inject custom logic or configuration
4107// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4108//
4109//
4110//    // Example sending a request using the TagResourceRequest method.
4111//    req, resp := client.TagResourceRequest(params)
4112//
4113//    err := req.Send()
4114//    if err == nil { // resp is now filled
4115//        fmt.Println(resp)
4116//    }
4117//
4118// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TagResource
4119func (c *ECS) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
4120	op := &request.Operation{
4121		Name:       opTagResource,
4122		HTTPMethod: "POST",
4123		HTTPPath:   "/",
4124	}
4125
4126	if input == nil {
4127		input = &TagResourceInput{}
4128	}
4129
4130	output = &TagResourceOutput{}
4131	req = c.newRequest(op, input, output)
4132	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4133	return
4134}
4135
4136// TagResource API operation for Amazon EC2 Container Service.
4137//
4138// Associates the specified tags to a resource with the specified resourceArn.
4139// If existing tags on a resource are not specified in the request parameters,
4140// they are not changed. When a resource is deleted, the tags associated with
4141// that resource are deleted as well.
4142//
4143// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4144// with awserr.Error's Code and Message methods to get detailed information about
4145// the error.
4146//
4147// See the AWS API reference guide for Amazon EC2 Container Service's
4148// API operation TagResource for usage and error information.
4149//
4150// Returned Error Codes:
4151//   * ErrCodeServerException "ServerException"
4152//   These errors are usually caused by a server issue.
4153//
4154//   * ErrCodeClientException "ClientException"
4155//   These errors are usually caused by a client action, such as using an action
4156//   or resource on behalf of a user that doesn't have permissions to use the
4157//   action or resource, or specifying an identifier that is not valid.
4158//
4159//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4160//   The specified cluster could not be found. You can view your available clusters
4161//   with ListClusters. Amazon ECS clusters are Region-specific.
4162//
4163//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4164//   The specified resource could not be found.
4165//
4166//   * ErrCodeInvalidParameterException "InvalidParameterException"
4167//   The specified parameter is invalid. Review the available parameters for the
4168//   API request.
4169//
4170// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TagResource
4171func (c *ECS) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
4172	req, out := c.TagResourceRequest(input)
4173	return out, req.Send()
4174}
4175
4176// TagResourceWithContext is the same as TagResource with the addition of
4177// the ability to pass a context and additional request options.
4178//
4179// See TagResource for details on how to use this API operation.
4180//
4181// The context must be non-nil and will be used for request cancellation. If
4182// the context is nil a panic will occur. In the future the SDK may create
4183// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4184// for more information on using Contexts.
4185func (c *ECS) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
4186	req, out := c.TagResourceRequest(input)
4187	req.SetContext(ctx)
4188	req.ApplyOptions(opts...)
4189	return out, req.Send()
4190}
4191
4192const opUntagResource = "UntagResource"
4193
4194// UntagResourceRequest generates a "aws/request.Request" representing the
4195// client's request for the UntagResource operation. The "output" return
4196// value will be populated with the request's response once the request completes
4197// successfully.
4198//
4199// Use "Send" method on the returned Request to send the API call to the service.
4200// the "output" return value is not valid until after Send returns without error.
4201//
4202// See UntagResource for more information on using the UntagResource
4203// API call, and error handling.
4204//
4205// This method is useful when you want to inject custom logic or configuration
4206// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4207//
4208//
4209//    // Example sending a request using the UntagResourceRequest method.
4210//    req, resp := client.UntagResourceRequest(params)
4211//
4212//    err := req.Send()
4213//    if err == nil { // resp is now filled
4214//        fmt.Println(resp)
4215//    }
4216//
4217// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UntagResource
4218func (c *ECS) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
4219	op := &request.Operation{
4220		Name:       opUntagResource,
4221		HTTPMethod: "POST",
4222		HTTPPath:   "/",
4223	}
4224
4225	if input == nil {
4226		input = &UntagResourceInput{}
4227	}
4228
4229	output = &UntagResourceOutput{}
4230	req = c.newRequest(op, input, output)
4231	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4232	return
4233}
4234
4235// UntagResource API operation for Amazon EC2 Container Service.
4236//
4237// Deletes specified tags from a resource.
4238//
4239// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4240// with awserr.Error's Code and Message methods to get detailed information about
4241// the error.
4242//
4243// See the AWS API reference guide for Amazon EC2 Container Service's
4244// API operation UntagResource for usage and error information.
4245//
4246// Returned Error Codes:
4247//   * ErrCodeServerException "ServerException"
4248//   These errors are usually caused by a server issue.
4249//
4250//   * ErrCodeClientException "ClientException"
4251//   These errors are usually caused by a client action, such as using an action
4252//   or resource on behalf of a user that doesn't have permissions to use the
4253//   action or resource, or specifying an identifier that is not valid.
4254//
4255//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4256//   The specified cluster could not be found. You can view your available clusters
4257//   with ListClusters. Amazon ECS clusters are Region-specific.
4258//
4259//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4260//   The specified resource could not be found.
4261//
4262//   * ErrCodeInvalidParameterException "InvalidParameterException"
4263//   The specified parameter is invalid. Review the available parameters for the
4264//   API request.
4265//
4266// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UntagResource
4267func (c *ECS) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
4268	req, out := c.UntagResourceRequest(input)
4269	return out, req.Send()
4270}
4271
4272// UntagResourceWithContext is the same as UntagResource with the addition of
4273// the ability to pass a context and additional request options.
4274//
4275// See UntagResource for details on how to use this API operation.
4276//
4277// The context must be non-nil and will be used for request cancellation. If
4278// the context is nil a panic will occur. In the future the SDK may create
4279// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4280// for more information on using Contexts.
4281func (c *ECS) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
4282	req, out := c.UntagResourceRequest(input)
4283	req.SetContext(ctx)
4284	req.ApplyOptions(opts...)
4285	return out, req.Send()
4286}
4287
4288const opUpdateContainerAgent = "UpdateContainerAgent"
4289
4290// UpdateContainerAgentRequest generates a "aws/request.Request" representing the
4291// client's request for the UpdateContainerAgent operation. The "output" return
4292// value will be populated with the request's response once the request completes
4293// successfully.
4294//
4295// Use "Send" method on the returned Request to send the API call to the service.
4296// the "output" return value is not valid until after Send returns without error.
4297//
4298// See UpdateContainerAgent for more information on using the UpdateContainerAgent
4299// API call, and error handling.
4300//
4301// This method is useful when you want to inject custom logic or configuration
4302// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4303//
4304//
4305//    // Example sending a request using the UpdateContainerAgentRequest method.
4306//    req, resp := client.UpdateContainerAgentRequest(params)
4307//
4308//    err := req.Send()
4309//    if err == nil { // resp is now filled
4310//        fmt.Println(resp)
4311//    }
4312//
4313// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
4314func (c *ECS) UpdateContainerAgentRequest(input *UpdateContainerAgentInput) (req *request.Request, output *UpdateContainerAgentOutput) {
4315	op := &request.Operation{
4316		Name:       opUpdateContainerAgent,
4317		HTTPMethod: "POST",
4318		HTTPPath:   "/",
4319	}
4320
4321	if input == nil {
4322		input = &UpdateContainerAgentInput{}
4323	}
4324
4325	output = &UpdateContainerAgentOutput{}
4326	req = c.newRequest(op, input, output)
4327	return
4328}
4329
4330// UpdateContainerAgent API operation for Amazon EC2 Container Service.
4331//
4332// Updates the Amazon ECS container agent on a specified container instance.
4333// Updating the Amazon ECS container agent does not interrupt running tasks
4334// or services on the container instance. The process for updating the agent
4335// differs depending on whether your container instance was launched with the
4336// Amazon ECS-optimized AMI or another operating system.
4337//
4338// UpdateContainerAgent requires the Amazon ECS-optimized AMI or Amazon Linux
4339// with the ecs-init service installed and running. For help updating the Amazon
4340// ECS container agent on other operating systems, see Manually Updating the
4341// Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html#manually_update_agent)
4342// in the Amazon Elastic Container Service Developer Guide.
4343//
4344// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4345// with awserr.Error's Code and Message methods to get detailed information about
4346// the error.
4347//
4348// See the AWS API reference guide for Amazon EC2 Container Service's
4349// API operation UpdateContainerAgent for usage and error information.
4350//
4351// Returned Error Codes:
4352//   * ErrCodeServerException "ServerException"
4353//   These errors are usually caused by a server issue.
4354//
4355//   * ErrCodeClientException "ClientException"
4356//   These errors are usually caused by a client action, such as using an action
4357//   or resource on behalf of a user that doesn't have permissions to use the
4358//   action or resource, or specifying an identifier that is not valid.
4359//
4360//   * ErrCodeInvalidParameterException "InvalidParameterException"
4361//   The specified parameter is invalid. Review the available parameters for the
4362//   API request.
4363//
4364//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4365//   The specified cluster could not be found. You can view your available clusters
4366//   with ListClusters. Amazon ECS clusters are Region-specific.
4367//
4368//   * ErrCodeUpdateInProgressException "UpdateInProgressException"
4369//   There is already a current Amazon ECS container agent update in progress
4370//   on the specified container instance. If the container agent becomes disconnected
4371//   while it is in a transitional stage, such as PENDING or STAGING, the update
4372//   process can get stuck in that state. However, when the agent reconnects,
4373//   it resumes where it stopped previously.
4374//
4375//   * ErrCodeNoUpdateAvailableException "NoUpdateAvailableException"
4376//   There is no update available for this Amazon ECS container agent. This could
4377//   be because the agent is already running the latest version, or it is so old
4378//   that there is no update path to the current version.
4379//
4380//   * ErrCodeMissingVersionException "MissingVersionException"
4381//   Amazon ECS is unable to determine the current version of the Amazon ECS container
4382//   agent on the container instance and does not have enough information to proceed
4383//   with an update. This could be because the agent running on the container
4384//   instance is an older or custom version that does not use our version information.
4385//
4386// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
4387func (c *ECS) UpdateContainerAgent(input *UpdateContainerAgentInput) (*UpdateContainerAgentOutput, error) {
4388	req, out := c.UpdateContainerAgentRequest(input)
4389	return out, req.Send()
4390}
4391
4392// UpdateContainerAgentWithContext is the same as UpdateContainerAgent with the addition of
4393// the ability to pass a context and additional request options.
4394//
4395// See UpdateContainerAgent for details on how to use this API operation.
4396//
4397// The context must be non-nil and will be used for request cancellation. If
4398// the context is nil a panic will occur. In the future the SDK may create
4399// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4400// for more information on using Contexts.
4401func (c *ECS) UpdateContainerAgentWithContext(ctx aws.Context, input *UpdateContainerAgentInput, opts ...request.Option) (*UpdateContainerAgentOutput, error) {
4402	req, out := c.UpdateContainerAgentRequest(input)
4403	req.SetContext(ctx)
4404	req.ApplyOptions(opts...)
4405	return out, req.Send()
4406}
4407
4408const opUpdateContainerInstancesState = "UpdateContainerInstancesState"
4409
4410// UpdateContainerInstancesStateRequest generates a "aws/request.Request" representing the
4411// client's request for the UpdateContainerInstancesState operation. The "output" return
4412// value will be populated with the request's response once the request completes
4413// successfully.
4414//
4415// Use "Send" method on the returned Request to send the API call to the service.
4416// the "output" return value is not valid until after Send returns without error.
4417//
4418// See UpdateContainerInstancesState for more information on using the UpdateContainerInstancesState
4419// API call, and error handling.
4420//
4421// This method is useful when you want to inject custom logic or configuration
4422// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4423//
4424//
4425//    // Example sending a request using the UpdateContainerInstancesStateRequest method.
4426//    req, resp := client.UpdateContainerInstancesStateRequest(params)
4427//
4428//    err := req.Send()
4429//    if err == nil { // resp is now filled
4430//        fmt.Println(resp)
4431//    }
4432//
4433// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
4434func (c *ECS) UpdateContainerInstancesStateRequest(input *UpdateContainerInstancesStateInput) (req *request.Request, output *UpdateContainerInstancesStateOutput) {
4435	op := &request.Operation{
4436		Name:       opUpdateContainerInstancesState,
4437		HTTPMethod: "POST",
4438		HTTPPath:   "/",
4439	}
4440
4441	if input == nil {
4442		input = &UpdateContainerInstancesStateInput{}
4443	}
4444
4445	output = &UpdateContainerInstancesStateOutput{}
4446	req = c.newRequest(op, input, output)
4447	return
4448}
4449
4450// UpdateContainerInstancesState API operation for Amazon EC2 Container Service.
4451//
4452// Modifies the status of an Amazon ECS container instance.
4453//
4454// Once a container instance has reached an ACTIVE state, you can change the
4455// status of a container instance to DRAINING to manually remove an instance
4456// from a cluster, for example to perform system updates, update the Docker
4457// daemon, or scale down the cluster size.
4458//
4459// A container instance cannot be changed to DRAINING until it has reached an
4460// ACTIVE status. If the instance is in any other status, an error will be received.
4461//
4462// When you set a container instance to DRAINING, Amazon ECS prevents new tasks
4463// from being scheduled for placement on the container instance and replacement
4464// service tasks are started on other container instances in the cluster if
4465// the resources are available. Service tasks on the container instance that
4466// are in the PENDING state are stopped immediately.
4467//
4468// Service tasks on the container instance that are in the RUNNING state are
4469// stopped and replaced according to the service's deployment configuration
4470// parameters, minimumHealthyPercent and maximumPercent. You can change the
4471// deployment configuration of your service using UpdateService.
4472//
4473//    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
4474//    temporarily during task replacement. For example, desiredCount is four
4475//    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
4476//    before starting two new tasks. If the minimum is 100%, the service scheduler
4477//    can't remove existing tasks until the replacement tasks are considered
4478//    healthy. Tasks for services that do not use a load balancer are considered
4479//    healthy if they are in the RUNNING state. Tasks for services that use
4480//    a load balancer are considered healthy if they are in the RUNNING state
4481//    and the container instance they are hosted on is reported as healthy by
4482//    the load balancer.
4483//
4484//    * The maximumPercent parameter represents an upper limit on the number
4485//    of running tasks during task replacement, which enables you to define
4486//    the replacement batch size. For example, if desiredCount is four tasks,
4487//    a maximum of 200% starts four new tasks before stopping the four tasks
4488//    to be drained, provided that the cluster resources required to do this
4489//    are available. If the maximum is 100%, then replacement tasks can't start
4490//    until the draining tasks have stopped.
4491//
4492// Any PENDING or RUNNING tasks that do not belong to a service are not affected.
4493// You must wait for them to finish or stop them manually.
4494//
4495// A container instance has completed draining when it has no more RUNNING tasks.
4496// You can verify this using ListTasks.
4497//
4498// When a container instance has been drained, you can set a container instance
4499// to ACTIVE status and once it has reached that status the Amazon ECS scheduler
4500// can begin scheduling tasks on the instance again.
4501//
4502// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4503// with awserr.Error's Code and Message methods to get detailed information about
4504// the error.
4505//
4506// See the AWS API reference guide for Amazon EC2 Container Service's
4507// API operation UpdateContainerInstancesState for usage and error information.
4508//
4509// Returned Error Codes:
4510//   * ErrCodeServerException "ServerException"
4511//   These errors are usually caused by a server issue.
4512//
4513//   * ErrCodeClientException "ClientException"
4514//   These errors are usually caused by a client action, such as using an action
4515//   or resource on behalf of a user that doesn't have permissions to use the
4516//   action or resource, or specifying an identifier that is not valid.
4517//
4518//   * ErrCodeInvalidParameterException "InvalidParameterException"
4519//   The specified parameter is invalid. Review the available parameters for the
4520//   API request.
4521//
4522//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4523//   The specified cluster could not be found. You can view your available clusters
4524//   with ListClusters. Amazon ECS clusters are Region-specific.
4525//
4526// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
4527func (c *ECS) UpdateContainerInstancesState(input *UpdateContainerInstancesStateInput) (*UpdateContainerInstancesStateOutput, error) {
4528	req, out := c.UpdateContainerInstancesStateRequest(input)
4529	return out, req.Send()
4530}
4531
4532// UpdateContainerInstancesStateWithContext is the same as UpdateContainerInstancesState with the addition of
4533// the ability to pass a context and additional request options.
4534//
4535// See UpdateContainerInstancesState for details on how to use this API operation.
4536//
4537// The context must be non-nil and will be used for request cancellation. If
4538// the context is nil a panic will occur. In the future the SDK may create
4539// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4540// for more information on using Contexts.
4541func (c *ECS) UpdateContainerInstancesStateWithContext(ctx aws.Context, input *UpdateContainerInstancesStateInput, opts ...request.Option) (*UpdateContainerInstancesStateOutput, error) {
4542	req, out := c.UpdateContainerInstancesStateRequest(input)
4543	req.SetContext(ctx)
4544	req.ApplyOptions(opts...)
4545	return out, req.Send()
4546}
4547
4548const opUpdateService = "UpdateService"
4549
4550// UpdateServiceRequest generates a "aws/request.Request" representing the
4551// client's request for the UpdateService operation. The "output" return
4552// value will be populated with the request's response once the request completes
4553// successfully.
4554//
4555// Use "Send" method on the returned Request to send the API call to the service.
4556// the "output" return value is not valid until after Send returns without error.
4557//
4558// See UpdateService for more information on using the UpdateService
4559// API call, and error handling.
4560//
4561// This method is useful when you want to inject custom logic or configuration
4562// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4563//
4564//
4565//    // Example sending a request using the UpdateServiceRequest method.
4566//    req, resp := client.UpdateServiceRequest(params)
4567//
4568//    err := req.Send()
4569//    if err == nil { // resp is now filled
4570//        fmt.Println(resp)
4571//    }
4572//
4573// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
4574func (c *ECS) UpdateServiceRequest(input *UpdateServiceInput) (req *request.Request, output *UpdateServiceOutput) {
4575	op := &request.Operation{
4576		Name:       opUpdateService,
4577		HTTPMethod: "POST",
4578		HTTPPath:   "/",
4579	}
4580
4581	if input == nil {
4582		input = &UpdateServiceInput{}
4583	}
4584
4585	output = &UpdateServiceOutput{}
4586	req = c.newRequest(op, input, output)
4587	return
4588}
4589
4590// UpdateService API operation for Amazon EC2 Container Service.
4591//
4592// Modifies the parameters of a service.
4593//
4594// For services using the rolling update (ECS) deployment controller, the desired
4595// count, deployment configuration, network configuration, or task definition
4596// used can be updated.
4597//
4598// For services using the blue/green (CODE_DEPLOY) deployment controller, only
4599// the desired count, deployment configuration, and health check grace period
4600// can be updated using this API. If the network configuration, platform version,
4601// or task definition need to be updated, a new AWS CodeDeploy deployment should
4602// be created. For more information, see CreateDeployment (https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html)
4603// in the AWS CodeDeploy API Reference.
4604//
4605// For services using an external deployment controller, you can update only
4606// the desired count and health check grace period using this API. If the launch
4607// type, load balancer, network configuration, platform version, or task definition
4608// need to be updated, you should create a new task set. For more information,
4609// see CreateTaskSet.
4610//
4611// You can add to or subtract from the number of instantiations of a task definition
4612// in a service by specifying the cluster that the service is running in and
4613// a new desiredCount parameter.
4614//
4615// If you have updated the Docker image of your application, you can create
4616// a new task definition with that image and deploy it to your service. The
4617// service scheduler uses the minimum healthy percent and maximum percent parameters
4618// (in the service's deployment configuration) to determine the deployment strategy.
4619//
4620// If your updated Docker image uses the same tag as what is in the existing
4621// task definition for your service (for example, my_image:latest), you do not
4622// need to create a new revision of your task definition. You can update the
4623// service using the forceNewDeployment option. The new tasks launched by the
4624// deployment pull the current image/tag combination from your repository when
4625// they start.
4626//
4627// You can also update the deployment configuration of a service. When a deployment
4628// is triggered by updating the task definition of a service, the service scheduler
4629// uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent,
4630// to determine the deployment strategy.
4631//
4632//    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
4633//    temporarily during a deployment. For example, if desiredCount is four
4634//    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
4635//    before starting two new tasks. Tasks for services that do not use a load
4636//    balancer are considered healthy if they are in the RUNNING state. Tasks
4637//    for services that use a load balancer are considered healthy if they are
4638//    in the RUNNING state and the container instance they are hosted on is
4639//    reported as healthy by the load balancer.
4640//
4641//    * The maximumPercent parameter represents an upper limit on the number
4642//    of running tasks during a deployment, which enables you to define the
4643//    deployment batch size. For example, if desiredCount is four tasks, a maximum
4644//    of 200% starts four new tasks before stopping the four older tasks (provided
4645//    that the cluster resources required to do this are available).
4646//
4647// When UpdateService stops a task during a deployment, the equivalent of docker
4648// stop is issued to the containers running in the task. This results in a SIGTERM
4649// and a 30-second timeout, after which SIGKILL is sent and the containers are
4650// forcibly stopped. If the container handles the SIGTERM gracefully and exits
4651// within 30 seconds from receiving it, no SIGKILL is sent.
4652//
4653// When the service scheduler launches new tasks, it determines task placement
4654// in your cluster with the following logic:
4655//
4656//    * Determine which of the container instances in your cluster can support
4657//    your service's task definition (for example, they have the required CPU,
4658//    memory, ports, and container instance attributes).
4659//
4660//    * By default, the service scheduler attempts to balance tasks across Availability
4661//    Zones in this manner (although you can choose a different placement strategy):
4662//    Sort the valid container instances by the fewest number of running tasks
4663//    for this service in the same Availability Zone as the instance. For example,
4664//    if zone A has one running service task and zones B and C each have zero,
4665//    valid container instances in either zone B or C are considered optimal
4666//    for placement. Place the new service task on a valid container instance
4667//    in an optimal Availability Zone (based on the previous steps), favoring
4668//    container instances with the fewest number of running tasks for this service.
4669//
4670// When the service scheduler stops running tasks, it attempts to maintain balance
4671// across the Availability Zones in your cluster using the following logic:
4672//
4673//    * Sort the container instances by the largest number of running tasks
4674//    for this service in the same Availability Zone as the instance. For example,
4675//    if zone A has one running service task and zones B and C each have two,
4676//    container instances in either zone B or C are considered optimal for termination.
4677//
4678//    * Stop the task on a container instance in an optimal Availability Zone
4679//    (based on the previous steps), favoring container instances with the largest
4680//    number of running tasks for this service.
4681//
4682// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4683// with awserr.Error's Code and Message methods to get detailed information about
4684// the error.
4685//
4686// See the AWS API reference guide for Amazon EC2 Container Service's
4687// API operation UpdateService for usage and error information.
4688//
4689// Returned Error Codes:
4690//   * ErrCodeServerException "ServerException"
4691//   These errors are usually caused by a server issue.
4692//
4693//   * ErrCodeClientException "ClientException"
4694//   These errors are usually caused by a client action, such as using an action
4695//   or resource on behalf of a user that doesn't have permissions to use the
4696//   action or resource, or specifying an identifier that is not valid.
4697//
4698//   * ErrCodeInvalidParameterException "InvalidParameterException"
4699//   The specified parameter is invalid. Review the available parameters for the
4700//   API request.
4701//
4702//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4703//   The specified cluster could not be found. You can view your available clusters
4704//   with ListClusters. Amazon ECS clusters are Region-specific.
4705//
4706//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
4707//   The specified service could not be found. You can view your available services
4708//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
4709//
4710//   * ErrCodeServiceNotActiveException "ServiceNotActiveException"
4711//   The specified service is not active. You can't update a service that is inactive.
4712//   If you have previously deleted a service, you can re-create it with CreateService.
4713//
4714//   * ErrCodePlatformUnknownException "PlatformUnknownException"
4715//   The specified platform version does not exist.
4716//
4717//   * ErrCodePlatformTaskDefinitionIncompatibilityException "PlatformTaskDefinitionIncompatibilityException"
4718//   The specified platform version does not satisfy the task definition's required
4719//   capabilities.
4720//
4721//   * ErrCodeAccessDeniedException "AccessDeniedException"
4722//   You do not have authorization to perform the requested action.
4723//
4724// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
4725func (c *ECS) UpdateService(input *UpdateServiceInput) (*UpdateServiceOutput, error) {
4726	req, out := c.UpdateServiceRequest(input)
4727	return out, req.Send()
4728}
4729
4730// UpdateServiceWithContext is the same as UpdateService with the addition of
4731// the ability to pass a context and additional request options.
4732//
4733// See UpdateService for details on how to use this API operation.
4734//
4735// The context must be non-nil and will be used for request cancellation. If
4736// the context is nil a panic will occur. In the future the SDK may create
4737// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4738// for more information on using Contexts.
4739func (c *ECS) UpdateServiceWithContext(ctx aws.Context, input *UpdateServiceInput, opts ...request.Option) (*UpdateServiceOutput, error) {
4740	req, out := c.UpdateServiceRequest(input)
4741	req.SetContext(ctx)
4742	req.ApplyOptions(opts...)
4743	return out, req.Send()
4744}
4745
4746const opUpdateServicePrimaryTaskSet = "UpdateServicePrimaryTaskSet"
4747
4748// UpdateServicePrimaryTaskSetRequest generates a "aws/request.Request" representing the
4749// client's request for the UpdateServicePrimaryTaskSet operation. The "output" return
4750// value will be populated with the request's response once the request completes
4751// successfully.
4752//
4753// Use "Send" method on the returned Request to send the API call to the service.
4754// the "output" return value is not valid until after Send returns without error.
4755//
4756// See UpdateServicePrimaryTaskSet for more information on using the UpdateServicePrimaryTaskSet
4757// API call, and error handling.
4758//
4759// This method is useful when you want to inject custom logic or configuration
4760// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4761//
4762//
4763//    // Example sending a request using the UpdateServicePrimaryTaskSetRequest method.
4764//    req, resp := client.UpdateServicePrimaryTaskSetRequest(params)
4765//
4766//    err := req.Send()
4767//    if err == nil { // resp is now filled
4768//        fmt.Println(resp)
4769//    }
4770//
4771// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServicePrimaryTaskSet
4772func (c *ECS) UpdateServicePrimaryTaskSetRequest(input *UpdateServicePrimaryTaskSetInput) (req *request.Request, output *UpdateServicePrimaryTaskSetOutput) {
4773	op := &request.Operation{
4774		Name:       opUpdateServicePrimaryTaskSet,
4775		HTTPMethod: "POST",
4776		HTTPPath:   "/",
4777	}
4778
4779	if input == nil {
4780		input = &UpdateServicePrimaryTaskSetInput{}
4781	}
4782
4783	output = &UpdateServicePrimaryTaskSetOutput{}
4784	req = c.newRequest(op, input, output)
4785	return
4786}
4787
4788// UpdateServicePrimaryTaskSet API operation for Amazon EC2 Container Service.
4789//
4790// Modifies which task set in a service is the primary task set. Any parameters
4791// that are updated on the primary task set in a service will transition to
4792// the service. This is used when a service uses the EXTERNAL deployment controller
4793// type. For more information, see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
4794// in the Amazon Elastic Container Service Developer Guide.
4795//
4796// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4797// with awserr.Error's Code and Message methods to get detailed information about
4798// the error.
4799//
4800// See the AWS API reference guide for Amazon EC2 Container Service's
4801// API operation UpdateServicePrimaryTaskSet for usage and error information.
4802//
4803// Returned Error Codes:
4804//   * ErrCodeServerException "ServerException"
4805//   These errors are usually caused by a server issue.
4806//
4807//   * ErrCodeClientException "ClientException"
4808//   These errors are usually caused by a client action, such as using an action
4809//   or resource on behalf of a user that doesn't have permissions to use the
4810//   action or resource, or specifying an identifier that is not valid.
4811//
4812//   * ErrCodeInvalidParameterException "InvalidParameterException"
4813//   The specified parameter is invalid. Review the available parameters for the
4814//   API request.
4815//
4816//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4817//   The specified cluster could not be found. You can view your available clusters
4818//   with ListClusters. Amazon ECS clusters are Region-specific.
4819//
4820//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
4821//   The specified task is not supported in this Region.
4822//
4823//   * ErrCodeAccessDeniedException "AccessDeniedException"
4824//   You do not have authorization to perform the requested action.
4825//
4826//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
4827//   The specified service could not be found. You can view your available services
4828//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
4829//
4830//   * ErrCodeServiceNotActiveException "ServiceNotActiveException"
4831//   The specified service is not active. You can't update a service that is inactive.
4832//   If you have previously deleted a service, you can re-create it with CreateService.
4833//
4834//   * ErrCodeTaskSetNotFoundException "TaskSetNotFoundException"
4835//   The specified task set could not be found. You can view your available container
4836//   instances with DescribeTaskSets. Task sets are specific to each cluster,
4837//   service and Region.
4838//
4839//   * ErrCodeAccessDeniedException "AccessDeniedException"
4840//   You do not have authorization to perform the requested action.
4841//
4842// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServicePrimaryTaskSet
4843func (c *ECS) UpdateServicePrimaryTaskSet(input *UpdateServicePrimaryTaskSetInput) (*UpdateServicePrimaryTaskSetOutput, error) {
4844	req, out := c.UpdateServicePrimaryTaskSetRequest(input)
4845	return out, req.Send()
4846}
4847
4848// UpdateServicePrimaryTaskSetWithContext is the same as UpdateServicePrimaryTaskSet with the addition of
4849// the ability to pass a context and additional request options.
4850//
4851// See UpdateServicePrimaryTaskSet for details on how to use this API operation.
4852//
4853// The context must be non-nil and will be used for request cancellation. If
4854// the context is nil a panic will occur. In the future the SDK may create
4855// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4856// for more information on using Contexts.
4857func (c *ECS) UpdateServicePrimaryTaskSetWithContext(ctx aws.Context, input *UpdateServicePrimaryTaskSetInput, opts ...request.Option) (*UpdateServicePrimaryTaskSetOutput, error) {
4858	req, out := c.UpdateServicePrimaryTaskSetRequest(input)
4859	req.SetContext(ctx)
4860	req.ApplyOptions(opts...)
4861	return out, req.Send()
4862}
4863
4864const opUpdateTaskSet = "UpdateTaskSet"
4865
4866// UpdateTaskSetRequest generates a "aws/request.Request" representing the
4867// client's request for the UpdateTaskSet operation. The "output" return
4868// value will be populated with the request's response once the request completes
4869// successfully.
4870//
4871// Use "Send" method on the returned Request to send the API call to the service.
4872// the "output" return value is not valid until after Send returns without error.
4873//
4874// See UpdateTaskSet for more information on using the UpdateTaskSet
4875// API call, and error handling.
4876//
4877// This method is useful when you want to inject custom logic or configuration
4878// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4879//
4880//
4881//    // Example sending a request using the UpdateTaskSetRequest method.
4882//    req, resp := client.UpdateTaskSetRequest(params)
4883//
4884//    err := req.Send()
4885//    if err == nil { // resp is now filled
4886//        fmt.Println(resp)
4887//    }
4888//
4889// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskSet
4890func (c *ECS) UpdateTaskSetRequest(input *UpdateTaskSetInput) (req *request.Request, output *UpdateTaskSetOutput) {
4891	op := &request.Operation{
4892		Name:       opUpdateTaskSet,
4893		HTTPMethod: "POST",
4894		HTTPPath:   "/",
4895	}
4896
4897	if input == nil {
4898		input = &UpdateTaskSetInput{}
4899	}
4900
4901	output = &UpdateTaskSetOutput{}
4902	req = c.newRequest(op, input, output)
4903	return
4904}
4905
4906// UpdateTaskSet API operation for Amazon EC2 Container Service.
4907//
4908// Modifies a task set. This is used when a service uses the EXTERNAL deployment
4909// controller type. For more information, see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
4910// in the Amazon Elastic Container Service Developer Guide.
4911//
4912// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4913// with awserr.Error's Code and Message methods to get detailed information about
4914// the error.
4915//
4916// See the AWS API reference guide for Amazon EC2 Container Service's
4917// API operation UpdateTaskSet for usage and error information.
4918//
4919// Returned Error Codes:
4920//   * ErrCodeServerException "ServerException"
4921//   These errors are usually caused by a server issue.
4922//
4923//   * ErrCodeClientException "ClientException"
4924//   These errors are usually caused by a client action, such as using an action
4925//   or resource on behalf of a user that doesn't have permissions to use the
4926//   action or resource, or specifying an identifier that is not valid.
4927//
4928//   * ErrCodeInvalidParameterException "InvalidParameterException"
4929//   The specified parameter is invalid. Review the available parameters for the
4930//   API request.
4931//
4932//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
4933//   The specified cluster could not be found. You can view your available clusters
4934//   with ListClusters. Amazon ECS clusters are Region-specific.
4935//
4936//   * ErrCodeUnsupportedFeatureException "UnsupportedFeatureException"
4937//   The specified task is not supported in this Region.
4938//
4939//   * ErrCodeAccessDeniedException "AccessDeniedException"
4940//   You do not have authorization to perform the requested action.
4941//
4942//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
4943//   The specified service could not be found. You can view your available services
4944//   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
4945//
4946//   * ErrCodeServiceNotActiveException "ServiceNotActiveException"
4947//   The specified service is not active. You can't update a service that is inactive.
4948//   If you have previously deleted a service, you can re-create it with CreateService.
4949//
4950//   * ErrCodeTaskSetNotFoundException "TaskSetNotFoundException"
4951//   The specified task set could not be found. You can view your available container
4952//   instances with DescribeTaskSets. Task sets are specific to each cluster,
4953//   service and Region.
4954//
4955// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskSet
4956func (c *ECS) UpdateTaskSet(input *UpdateTaskSetInput) (*UpdateTaskSetOutput, error) {
4957	req, out := c.UpdateTaskSetRequest(input)
4958	return out, req.Send()
4959}
4960
4961// UpdateTaskSetWithContext is the same as UpdateTaskSet with the addition of
4962// the ability to pass a context and additional request options.
4963//
4964// See UpdateTaskSet for details on how to use this API operation.
4965//
4966// The context must be non-nil and will be used for request cancellation. If
4967// the context is nil a panic will occur. In the future the SDK may create
4968// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4969// for more information on using Contexts.
4970func (c *ECS) UpdateTaskSetWithContext(ctx aws.Context, input *UpdateTaskSetInput, opts ...request.Option) (*UpdateTaskSetOutput, error) {
4971	req, out := c.UpdateTaskSetRequest(input)
4972	req.SetContext(ctx)
4973	req.ApplyOptions(opts...)
4974	return out, req.Send()
4975}
4976
4977// An object representing a container instance or task attachment.
4978type Attachment struct {
4979	_ struct{} `type:"structure"`
4980
4981	// Details of the attachment. For elastic network interfaces, this includes
4982	// the network interface ID, the MAC address, the subnet ID, and the private
4983	// IPv4 address.
4984	Details []*KeyValuePair `locationName:"details" type:"list"`
4985
4986	// The unique identifier for the attachment.
4987	Id *string `locationName:"id" type:"string"`
4988
4989	// The status of the attachment. Valid values are PRECREATED, CREATED, ATTACHING,
4990	// ATTACHED, DETACHING, DETACHED, and DELETED.
4991	Status *string `locationName:"status" type:"string"`
4992
4993	// The type of the attachment, such as ElasticNetworkInterface.
4994	Type *string `locationName:"type" type:"string"`
4995}
4996
4997// String returns the string representation
4998func (s Attachment) String() string {
4999	return awsutil.Prettify(s)
5000}
5001
5002// GoString returns the string representation
5003func (s Attachment) GoString() string {
5004	return s.String()
5005}
5006
5007// SetDetails sets the Details field's value.
5008func (s *Attachment) SetDetails(v []*KeyValuePair) *Attachment {
5009	s.Details = v
5010	return s
5011}
5012
5013// SetId sets the Id field's value.
5014func (s *Attachment) SetId(v string) *Attachment {
5015	s.Id = &v
5016	return s
5017}
5018
5019// SetStatus sets the Status field's value.
5020func (s *Attachment) SetStatus(v string) *Attachment {
5021	s.Status = &v
5022	return s
5023}
5024
5025// SetType sets the Type field's value.
5026func (s *Attachment) SetType(v string) *Attachment {
5027	s.Type = &v
5028	return s
5029}
5030
5031// An object representing a change in state for a task attachment.
5032type AttachmentStateChange struct {
5033	_ struct{} `type:"structure"`
5034
5035	// The Amazon Resource Name (ARN) of the attachment.
5036	//
5037	// AttachmentArn is a required field
5038	AttachmentArn *string `locationName:"attachmentArn" type:"string" required:"true"`
5039
5040	// The status of the attachment.
5041	//
5042	// Status is a required field
5043	Status *string `locationName:"status" type:"string" required:"true"`
5044}
5045
5046// String returns the string representation
5047func (s AttachmentStateChange) String() string {
5048	return awsutil.Prettify(s)
5049}
5050
5051// GoString returns the string representation
5052func (s AttachmentStateChange) GoString() string {
5053	return s.String()
5054}
5055
5056// Validate inspects the fields of the type to determine if they are valid.
5057func (s *AttachmentStateChange) Validate() error {
5058	invalidParams := request.ErrInvalidParams{Context: "AttachmentStateChange"}
5059	if s.AttachmentArn == nil {
5060		invalidParams.Add(request.NewErrParamRequired("AttachmentArn"))
5061	}
5062	if s.Status == nil {
5063		invalidParams.Add(request.NewErrParamRequired("Status"))
5064	}
5065
5066	if invalidParams.Len() > 0 {
5067		return invalidParams
5068	}
5069	return nil
5070}
5071
5072// SetAttachmentArn sets the AttachmentArn field's value.
5073func (s *AttachmentStateChange) SetAttachmentArn(v string) *AttachmentStateChange {
5074	s.AttachmentArn = &v
5075	return s
5076}
5077
5078// SetStatus sets the Status field's value.
5079func (s *AttachmentStateChange) SetStatus(v string) *AttachmentStateChange {
5080	s.Status = &v
5081	return s
5082}
5083
5084// An attribute is a name-value pair associated with an Amazon ECS object. Attributes
5085// enable you to extend the Amazon ECS data model by adding custom metadata
5086// to your resources. For more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
5087// in the Amazon Elastic Container Service Developer Guide.
5088type Attribute struct {
5089	_ struct{} `type:"structure"`
5090
5091	// The name of the attribute. Up to 128 letters (uppercase and lowercase), numbers,
5092	// hyphens, underscores, and periods are allowed.
5093	//
5094	// Name is a required field
5095	Name *string `locationName:"name" type:"string" required:"true"`
5096
5097	// The ID of the target. You can specify the short form ID for a resource or
5098	// the full Amazon Resource Name (ARN).
5099	TargetId *string `locationName:"targetId" type:"string"`
5100
5101	// The type of the target with which to attach the attribute. This parameter
5102	// is required if you use the short form ID for a resource instead of the full
5103	// ARN.
5104	TargetType *string `locationName:"targetType" type:"string" enum:"TargetType"`
5105
5106	// The value of the attribute. Up to 128 letters (uppercase and lowercase),
5107	// numbers, hyphens, underscores, periods, at signs (@), forward slashes, colons,
5108	// and spaces are allowed.
5109	Value *string `locationName:"value" type:"string"`
5110}
5111
5112// String returns the string representation
5113func (s Attribute) String() string {
5114	return awsutil.Prettify(s)
5115}
5116
5117// GoString returns the string representation
5118func (s Attribute) GoString() string {
5119	return s.String()
5120}
5121
5122// Validate inspects the fields of the type to determine if they are valid.
5123func (s *Attribute) Validate() error {
5124	invalidParams := request.ErrInvalidParams{Context: "Attribute"}
5125	if s.Name == nil {
5126		invalidParams.Add(request.NewErrParamRequired("Name"))
5127	}
5128
5129	if invalidParams.Len() > 0 {
5130		return invalidParams
5131	}
5132	return nil
5133}
5134
5135// SetName sets the Name field's value.
5136func (s *Attribute) SetName(v string) *Attribute {
5137	s.Name = &v
5138	return s
5139}
5140
5141// SetTargetId sets the TargetId field's value.
5142func (s *Attribute) SetTargetId(v string) *Attribute {
5143	s.TargetId = &v
5144	return s
5145}
5146
5147// SetTargetType sets the TargetType field's value.
5148func (s *Attribute) SetTargetType(v string) *Attribute {
5149	s.TargetType = &v
5150	return s
5151}
5152
5153// SetValue sets the Value field's value.
5154func (s *Attribute) SetValue(v string) *Attribute {
5155	s.Value = &v
5156	return s
5157}
5158
5159// An object representing the networking details for a task or service.
5160type AwsVpcConfiguration struct {
5161	_ struct{} `type:"structure"`
5162
5163	// Whether the task's elastic network interface receives a public IP address.
5164	// The default value is DISABLED.
5165	AssignPublicIp *string `locationName:"assignPublicIp" type:"string" enum:"AssignPublicIp"`
5166
5167	// The security groups associated with the task or service. If you do not specify
5168	// a security group, the default security group for the VPC is used. There is
5169	// a limit of 5 security groups that can be specified per AwsVpcConfiguration.
5170	//
5171	// All specified security groups must be from the same VPC.
5172	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
5173
5174	// The subnets associated with the task or service. There is a limit of 16 subnets
5175	// that can be specified per AwsVpcConfiguration.
5176	//
5177	// All specified subnets must be from the same VPC.
5178	//
5179	// Subnets is a required field
5180	Subnets []*string `locationName:"subnets" type:"list" required:"true"`
5181}
5182
5183// String returns the string representation
5184func (s AwsVpcConfiguration) String() string {
5185	return awsutil.Prettify(s)
5186}
5187
5188// GoString returns the string representation
5189func (s AwsVpcConfiguration) GoString() string {
5190	return s.String()
5191}
5192
5193// Validate inspects the fields of the type to determine if they are valid.
5194func (s *AwsVpcConfiguration) Validate() error {
5195	invalidParams := request.ErrInvalidParams{Context: "AwsVpcConfiguration"}
5196	if s.Subnets == nil {
5197		invalidParams.Add(request.NewErrParamRequired("Subnets"))
5198	}
5199
5200	if invalidParams.Len() > 0 {
5201		return invalidParams
5202	}
5203	return nil
5204}
5205
5206// SetAssignPublicIp sets the AssignPublicIp field's value.
5207func (s *AwsVpcConfiguration) SetAssignPublicIp(v string) *AwsVpcConfiguration {
5208	s.AssignPublicIp = &v
5209	return s
5210}
5211
5212// SetSecurityGroups sets the SecurityGroups field's value.
5213func (s *AwsVpcConfiguration) SetSecurityGroups(v []*string) *AwsVpcConfiguration {
5214	s.SecurityGroups = v
5215	return s
5216}
5217
5218// SetSubnets sets the Subnets field's value.
5219func (s *AwsVpcConfiguration) SetSubnets(v []*string) *AwsVpcConfiguration {
5220	s.Subnets = v
5221	return s
5222}
5223
5224// A regional grouping of one or more container instances on which you can run
5225// task requests. Each account receives a default cluster the first time you
5226// use the Amazon ECS service, but you may also create other clusters. Clusters
5227// may contain more than one instance type simultaneously.
5228type Cluster struct {
5229	_ struct{} `type:"structure"`
5230
5231	// The number of services that are running on the cluster in an ACTIVE state.
5232	// You can view these services with ListServices.
5233	ActiveServicesCount *int64 `locationName:"activeServicesCount" type:"integer"`
5234
5235	// The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains
5236	// the arn:aws:ecs namespace, followed by the Region of the cluster, the AWS
5237	// account ID of the cluster owner, the cluster namespace, and then the cluster
5238	// name. For example, arn:aws:ecs:region:012345678910:cluster/test.
5239	ClusterArn *string `locationName:"clusterArn" type:"string"`
5240
5241	// A user-generated string that you use to identify your cluster.
5242	ClusterName *string `locationName:"clusterName" type:"string"`
5243
5244	// The number of tasks in the cluster that are in the PENDING state.
5245	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
5246
5247	// The number of container instances registered into the cluster. This includes
5248	// container instances in both ACTIVE and DRAINING status.
5249	RegisteredContainerInstancesCount *int64 `locationName:"registeredContainerInstancesCount" type:"integer"`
5250
5251	// The number of tasks in the cluster that are in the RUNNING state.
5252	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
5253
5254	// The settings for the cluster. This parameter indicates whether CloudWatch
5255	// Container Insights is enabled or disabled for a cluster.
5256	Settings []*ClusterSetting `locationName:"settings" type:"list"`
5257
5258	// Additional information about your clusters that are separated by launch type,
5259	// including:
5260	//
5261	//    * runningEC2TasksCount
5262	//
5263	//    * RunningFargateTasksCount
5264	//
5265	//    * pendingEC2TasksCount
5266	//
5267	//    * pendingFargateTasksCount
5268	//
5269	//    * activeEC2ServiceCount
5270	//
5271	//    * activeFargateServiceCount
5272	//
5273	//    * drainingEC2ServiceCount
5274	//
5275	//    * drainingFargateServiceCount
5276	Statistics []*KeyValuePair `locationName:"statistics" type:"list"`
5277
5278	// The status of the cluster. The valid values are ACTIVE or INACTIVE. ACTIVE
5279	// indicates that you can register container instances with the cluster and
5280	// the associated instances can accept tasks.
5281	Status *string `locationName:"status" type:"string"`
5282
5283	// The metadata that you apply to the cluster to help you categorize and organize
5284	// them. Each tag consists of a key and an optional value, both of which you
5285	// define. Tag keys can have a maximum character length of 128 characters, and
5286	// tag values can have a maximum length of 256 characters.
5287	Tags []*Tag `locationName:"tags" type:"list"`
5288}
5289
5290// String returns the string representation
5291func (s Cluster) String() string {
5292	return awsutil.Prettify(s)
5293}
5294
5295// GoString returns the string representation
5296func (s Cluster) GoString() string {
5297	return s.String()
5298}
5299
5300// SetActiveServicesCount sets the ActiveServicesCount field's value.
5301func (s *Cluster) SetActiveServicesCount(v int64) *Cluster {
5302	s.ActiveServicesCount = &v
5303	return s
5304}
5305
5306// SetClusterArn sets the ClusterArn field's value.
5307func (s *Cluster) SetClusterArn(v string) *Cluster {
5308	s.ClusterArn = &v
5309	return s
5310}
5311
5312// SetClusterName sets the ClusterName field's value.
5313func (s *Cluster) SetClusterName(v string) *Cluster {
5314	s.ClusterName = &v
5315	return s
5316}
5317
5318// SetPendingTasksCount sets the PendingTasksCount field's value.
5319func (s *Cluster) SetPendingTasksCount(v int64) *Cluster {
5320	s.PendingTasksCount = &v
5321	return s
5322}
5323
5324// SetRegisteredContainerInstancesCount sets the RegisteredContainerInstancesCount field's value.
5325func (s *Cluster) SetRegisteredContainerInstancesCount(v int64) *Cluster {
5326	s.RegisteredContainerInstancesCount = &v
5327	return s
5328}
5329
5330// SetRunningTasksCount sets the RunningTasksCount field's value.
5331func (s *Cluster) SetRunningTasksCount(v int64) *Cluster {
5332	s.RunningTasksCount = &v
5333	return s
5334}
5335
5336// SetSettings sets the Settings field's value.
5337func (s *Cluster) SetSettings(v []*ClusterSetting) *Cluster {
5338	s.Settings = v
5339	return s
5340}
5341
5342// SetStatistics sets the Statistics field's value.
5343func (s *Cluster) SetStatistics(v []*KeyValuePair) *Cluster {
5344	s.Statistics = v
5345	return s
5346}
5347
5348// SetStatus sets the Status field's value.
5349func (s *Cluster) SetStatus(v string) *Cluster {
5350	s.Status = &v
5351	return s
5352}
5353
5354// SetTags sets the Tags field's value.
5355func (s *Cluster) SetTags(v []*Tag) *Cluster {
5356	s.Tags = v
5357	return s
5358}
5359
5360// The settings to use when creating a cluster. This parameter is used to enable
5361// CloudWatch Container Insights for a cluster.
5362type ClusterSetting struct {
5363	_ struct{} `type:"structure"`
5364
5365	// The name of the cluster setting. The only supported value is containerInsights.
5366	Name *string `locationName:"name" type:"string" enum:"ClusterSettingName"`
5367
5368	// The value to set for the cluster setting. The supported values are enabled
5369	// and disabled. If enabled is specified, CloudWatch Container Insights will
5370	// be enabled for the cluster, otherwise it will be disabled unless the containerInsights
5371	// account setting is enabled. If a cluster value is specified, it will override
5372	// the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.
5373	Value *string `locationName:"value" type:"string"`
5374}
5375
5376// String returns the string representation
5377func (s ClusterSetting) String() string {
5378	return awsutil.Prettify(s)
5379}
5380
5381// GoString returns the string representation
5382func (s ClusterSetting) GoString() string {
5383	return s.String()
5384}
5385
5386// SetName sets the Name field's value.
5387func (s *ClusterSetting) SetName(v string) *ClusterSetting {
5388	s.Name = &v
5389	return s
5390}
5391
5392// SetValue sets the Value field's value.
5393func (s *ClusterSetting) SetValue(v string) *ClusterSetting {
5394	s.Value = &v
5395	return s
5396}
5397
5398// A Docker container that is part of a task.
5399type Container struct {
5400	_ struct{} `type:"structure"`
5401
5402	// The Amazon Resource Name (ARN) of the container.
5403	ContainerArn *string `locationName:"containerArn" type:"string"`
5404
5405	// The number of CPU units set for the container. The value will be 0 if no
5406	// value was specified in the container definition when the task definition
5407	// was registered.
5408	Cpu *string `locationName:"cpu" type:"string"`
5409
5410	// The exit code returned from the container.
5411	ExitCode *int64 `locationName:"exitCode" type:"integer"`
5412
5413	// The IDs of each GPU assigned to the container.
5414	GpuIds []*string `locationName:"gpuIds" type:"list"`
5415
5416	// The health status of the container. If health checks are not configured for
5417	// this container in its task definition, then it reports the health status
5418	// as UNKNOWN.
5419	HealthStatus *string `locationName:"healthStatus" type:"string" enum:"HealthStatus"`
5420
5421	// The last known status of the container.
5422	LastStatus *string `locationName:"lastStatus" type:"string"`
5423
5424	// The hard limit (in MiB) of memory set for the container.
5425	Memory *string `locationName:"memory" type:"string"`
5426
5427	// The soft limit (in MiB) of memory set for the container.
5428	MemoryReservation *string `locationName:"memoryReservation" type:"string"`
5429
5430	// The name of the container.
5431	Name *string `locationName:"name" type:"string"`
5432
5433	// The network bindings associated with the container.
5434	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
5435
5436	// The network interfaces associated with the container.
5437	NetworkInterfaces []*NetworkInterface `locationName:"networkInterfaces" type:"list"`
5438
5439	// A short (255 max characters) human-readable string to provide additional
5440	// details about a running or stopped container.
5441	Reason *string `locationName:"reason" type:"string"`
5442
5443	// The ARN of the task.
5444	TaskArn *string `locationName:"taskArn" type:"string"`
5445}
5446
5447// String returns the string representation
5448func (s Container) String() string {
5449	return awsutil.Prettify(s)
5450}
5451
5452// GoString returns the string representation
5453func (s Container) GoString() string {
5454	return s.String()
5455}
5456
5457// SetContainerArn sets the ContainerArn field's value.
5458func (s *Container) SetContainerArn(v string) *Container {
5459	s.ContainerArn = &v
5460	return s
5461}
5462
5463// SetCpu sets the Cpu field's value.
5464func (s *Container) SetCpu(v string) *Container {
5465	s.Cpu = &v
5466	return s
5467}
5468
5469// SetExitCode sets the ExitCode field's value.
5470func (s *Container) SetExitCode(v int64) *Container {
5471	s.ExitCode = &v
5472	return s
5473}
5474
5475// SetGpuIds sets the GpuIds field's value.
5476func (s *Container) SetGpuIds(v []*string) *Container {
5477	s.GpuIds = v
5478	return s
5479}
5480
5481// SetHealthStatus sets the HealthStatus field's value.
5482func (s *Container) SetHealthStatus(v string) *Container {
5483	s.HealthStatus = &v
5484	return s
5485}
5486
5487// SetLastStatus sets the LastStatus field's value.
5488func (s *Container) SetLastStatus(v string) *Container {
5489	s.LastStatus = &v
5490	return s
5491}
5492
5493// SetMemory sets the Memory field's value.
5494func (s *Container) SetMemory(v string) *Container {
5495	s.Memory = &v
5496	return s
5497}
5498
5499// SetMemoryReservation sets the MemoryReservation field's value.
5500func (s *Container) SetMemoryReservation(v string) *Container {
5501	s.MemoryReservation = &v
5502	return s
5503}
5504
5505// SetName sets the Name field's value.
5506func (s *Container) SetName(v string) *Container {
5507	s.Name = &v
5508	return s
5509}
5510
5511// SetNetworkBindings sets the NetworkBindings field's value.
5512func (s *Container) SetNetworkBindings(v []*NetworkBinding) *Container {
5513	s.NetworkBindings = v
5514	return s
5515}
5516
5517// SetNetworkInterfaces sets the NetworkInterfaces field's value.
5518func (s *Container) SetNetworkInterfaces(v []*NetworkInterface) *Container {
5519	s.NetworkInterfaces = v
5520	return s
5521}
5522
5523// SetReason sets the Reason field's value.
5524func (s *Container) SetReason(v string) *Container {
5525	s.Reason = &v
5526	return s
5527}
5528
5529// SetTaskArn sets the TaskArn field's value.
5530func (s *Container) SetTaskArn(v string) *Container {
5531	s.TaskArn = &v
5532	return s
5533}
5534
5535// Container definitions are used in task definitions to describe the different
5536// containers that are launched as part of a task.
5537type ContainerDefinition struct {
5538	_ struct{} `type:"structure"`
5539
5540	// The command that is passed to the container. This parameter maps to Cmd in
5541	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5542	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5543	// and the COMMAND parameter to docker run (https://docs.docker.com/engine/reference/run/).
5544	// For more information, see https://docs.docker.com/engine/reference/builder/#cmd
5545	// (https://docs.docker.com/engine/reference/builder/#cmd). If there are multiple
5546	// arguments, each argument should be a separated string in the array.
5547	Command []*string `locationName:"command" type:"list"`
5548
5549	// The number of cpu units reserved for the container. This parameter maps to
5550	// CpuShares in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5551	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5552	// and the --cpu-shares option to docker run (https://docs.docker.com/engine/reference/run/).
5553	//
5554	// This field is optional for tasks using the Fargate launch type, and the only
5555	// requirement is that the total amount of CPU reserved for all containers within
5556	// a task be lower than the task-level cpu value.
5557	//
5558	// You can determine the number of CPU units that are available per EC2 instance
5559	// type by multiplying the vCPUs listed for that instance type on the Amazon
5560	// EC2 Instances (http://aws.amazon.com/ec2/instance-types/) detail page by
5561	// 1,024.
5562	//
5563	// For example, if you run a single-container task on a single-core instance
5564	// type with 512 CPU units specified for that container, and that is the only
5565	// task running on the container instance, that container could use the full
5566	// 1,024 CPU unit share at any given time. However, if you launched another
5567	// copy of the same task on that container instance, each task would be guaranteed
5568	// a minimum of 512 CPU units when needed, and each container could float to
5569	// higher CPU usage if the other container was not using it, but if both tasks
5570	// were 100% active all of the time, they would be limited to 512 CPU units.
5571	//
5572	// Linux containers share unallocated CPU units with other containers on the
5573	// container instance with the same ratio as their allocated amount. For example,
5574	// if you run a single-container task on a single-core instance type with 512
5575	// CPU units specified for that container, and that is the only task running
5576	// on the container instance, that container could use the full 1,024 CPU unit
5577	// share at any given time. However, if you launched another copy of the same
5578	// task on that container instance, each task would be guaranteed a minimum
5579	// of 512 CPU units when needed, and each container could float to higher CPU
5580	// usage if the other container was not using it, but if both tasks were 100%
5581	// active all of the time, they would be limited to 512 CPU units.
5582	//
5583	// On Linux container instances, the Docker daemon on the container instance
5584	// uses the CPU value to calculate the relative CPU share ratios for running
5585	// containers. For more information, see CPU share constraint (https://docs.docker.com/engine/reference/run/#cpu-share-constraint)
5586	// in the Docker documentation. The minimum valid CPU share value that the Linux
5587	// kernel allows is 2. However, the CPU parameter is not required, and you can
5588	// use CPU values below 2 in your container definitions. For CPU values below
5589	// 2 (including null), the behavior varies based on your Amazon ECS container
5590	// agent version:
5591	//
5592	//    * Agent versions less than or equal to 1.1.0: Null and zero CPU values
5593	//    are passed to Docker as 0, which Docker then converts to 1,024 CPU shares.
5594	//    CPU values of 1 are passed to Docker as 1, which the Linux kernel converts
5595	//    to two CPU shares.
5596	//
5597	//    * Agent versions greater than or equal to 1.2.0: Null, zero, and CPU values
5598	//    of 1 are passed to Docker as 2.
5599	//
5600	// On Windows container instances, the CPU limit is enforced as an absolute
5601	// limit, or a quota. Windows containers only have access to the specified amount
5602	// of CPU that is described in the task definition.
5603	Cpu *int64 `locationName:"cpu" type:"integer"`
5604
5605	// The dependencies defined for container startup and shutdown. A container
5606	// can contain multiple dependencies. When a dependency is defined for container
5607	// startup, for container shutdown it is reversed.
5608	//
5609	// For tasks using the EC2 launch type, the container instances require at least
5610	// version 1.26.0 of the container agent to enable container dependencies. However,
5611	// we recommend using the latest container agent version. For information about
5612	// checking your agent version and updating to the latest version, see Updating
5613	// the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
5614	// in the Amazon Elastic Container Service Developer Guide. If you are using
5615	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
5616	// of the ecs-init package. If your container instances are launched from version
5617	// 20190301 or later, then they contain the required versions of the container
5618	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
5619	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
5620	// in the Amazon Elastic Container Service Developer Guide.
5621	//
5622	// This parameter is available for tasks using the Fargate launch type in the
5623	// Ohio (us-east-2) region only and the task or service requires platform version
5624	// 1.3.0 or later.
5625	DependsOn []*ContainerDependency `locationName:"dependsOn" type:"list"`
5626
5627	// When this parameter is true, networking is disabled within the container.
5628	// This parameter maps to NetworkDisabled in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5629	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/).
5630	//
5631	// This parameter is not supported for Windows containers.
5632	DisableNetworking *bool `locationName:"disableNetworking" type:"boolean"`
5633
5634	// A list of DNS search domains that are presented to the container. This parameter
5635	// maps to DnsSearch in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5636	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5637	// and the --dns-search option to docker run (https://docs.docker.com/engine/reference/run/).
5638	//
5639	// This parameter is not supported for Windows containers.
5640	DnsSearchDomains []*string `locationName:"dnsSearchDomains" type:"list"`
5641
5642	// A list of DNS servers that are presented to the container. This parameter
5643	// maps to Dns in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5644	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5645	// and the --dns option to docker run (https://docs.docker.com/engine/reference/run/).
5646	//
5647	// This parameter is not supported for Windows containers.
5648	DnsServers []*string `locationName:"dnsServers" type:"list"`
5649
5650	// A key/value map of labels to add to the container. This parameter maps to
5651	// Labels in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5652	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5653	// and the --label option to docker run (https://docs.docker.com/engine/reference/run/).
5654	// This parameter requires version 1.18 of the Docker Remote API or greater
5655	// on your container instance. To check the Docker Remote API version on your
5656	// container instance, log in to your container instance and run the following
5657	// command: sudo docker version --format '{{.Server.APIVersion}}'
5658	DockerLabels map[string]*string `locationName:"dockerLabels" type:"map"`
5659
5660	// A list of strings to provide custom labels for SELinux and AppArmor multi-level
5661	// security systems. This field is not valid for containers in tasks using the
5662	// Fargate launch type.
5663	//
5664	// This parameter maps to SecurityOpt in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5665	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5666	// and the --security-opt option to docker run (https://docs.docker.com/engine/reference/run/).
5667	//
5668	// The Amazon ECS container agent running on a container instance must register
5669	// with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment
5670	// variables before containers placed on that instance can use these security
5671	// options. For more information, see Amazon ECS Container Agent Configuration
5672	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
5673	// in the Amazon Elastic Container Service Developer Guide.
5674	//
5675	// This parameter is not supported for Windows containers.
5676	DockerSecurityOptions []*string `locationName:"dockerSecurityOptions" type:"list"`
5677
5678	//
5679	// Early versions of the Amazon ECS container agent do not properly handle entryPoint
5680	// parameters. If you have problems using entryPoint, update your container
5681	// agent or enter your commands and arguments as command array items instead.
5682	//
5683	// The entry point that is passed to the container. This parameter maps to Entrypoint
5684	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5685	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5686	// and the --entrypoint option to docker run (https://docs.docker.com/engine/reference/run/).
5687	// For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint
5688	// (https://docs.docker.com/engine/reference/builder/#entrypoint).
5689	EntryPoint []*string `locationName:"entryPoint" type:"list"`
5690
5691	// The environment variables to pass to a container. This parameter maps to
5692	// Env in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5693	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5694	// and the --env option to docker run (https://docs.docker.com/engine/reference/run/).
5695	//
5696	// We do not recommend using plaintext environment variables for sensitive information,
5697	// such as credential data.
5698	Environment []*KeyValuePair `locationName:"environment" type:"list"`
5699
5700	// If the essential parameter of a container is marked as true, and that container
5701	// fails or stops for any reason, all other containers that are part of the
5702	// task are stopped. If the essential parameter of a container is marked as
5703	// false, then its failure does not affect the rest of the containers in a task.
5704	// If this parameter is omitted, a container is assumed to be essential.
5705	//
5706	// All tasks must have at least one essential container. If you have an application
5707	// that is composed of multiple containers, you should group containers that
5708	// are used for a common purpose into components, and separate the different
5709	// components into multiple task definitions. For more information, see Application
5710	// Architecture (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html)
5711	// in the Amazon Elastic Container Service Developer Guide.
5712	Essential *bool `locationName:"essential" type:"boolean"`
5713
5714	// A list of hostnames and IP address mappings to append to the /etc/hosts file
5715	// on the container. This parameter maps to ExtraHosts in the Create a container
5716	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
5717	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
5718	// the --add-host option to docker run (https://docs.docker.com/engine/reference/run/).
5719	//
5720	// This parameter is not supported for Windows containers or tasks that use
5721	// the awsvpc network mode.
5722	ExtraHosts []*HostEntry `locationName:"extraHosts" type:"list"`
5723
5724	// The health check command and associated configuration parameters for the
5725	// container. This parameter maps to HealthCheck in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5726	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5727	// and the HEALTHCHECK parameter of docker run (https://docs.docker.com/engine/reference/run/).
5728	HealthCheck *HealthCheck `locationName:"healthCheck" type:"structure"`
5729
5730	// The hostname to use for your container. This parameter maps to Hostname in
5731	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5732	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5733	// and the --hostname option to docker run (https://docs.docker.com/engine/reference/run/).
5734	//
5735	// The hostname parameter is not supported if you are using the awsvpc network
5736	// mode.
5737	Hostname *string `locationName:"hostname" type:"string"`
5738
5739	// The image used to start a container. This string is passed directly to the
5740	// Docker daemon. Images in the Docker Hub registry are available by default.
5741	// Other repositories are specified with either repository-url/image:tag or
5742	// repository-url/image@digest . Up to 255 letters (uppercase and lowercase),
5743	// numbers, hyphens, underscores, colons, periods, forward slashes, and number
5744	// signs are allowed. This parameter maps to Image in the Create a container
5745	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
5746	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
5747	// the IMAGE parameter of docker run (https://docs.docker.com/engine/reference/run/).
5748	//
5749	//    * When a new task starts, the Amazon ECS container agent pulls the latest
5750	//    version of the specified image and tag for the container to use. However,
5751	//    subsequent updates to a repository image are not propagated to already
5752	//    running tasks.
5753	//
5754	//    * Images in Amazon ECR repositories can be specified by either using the
5755	//    full registry/repository:tag or registry/repository@digest. For example,
5756	//    012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest
5757	//    or 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE.
5758	//
5759	//    * Images in official repositories on Docker Hub use a single name (for
5760	//    example, ubuntu or mongo).
5761	//
5762	//    * Images in other repositories on Docker Hub are qualified with an organization
5763	//    name (for example, amazon/amazon-ecs-agent).
5764	//
5765	//    * Images in other online repositories are qualified further by a domain
5766	//    name (for example, quay.io/assemblyline/ubuntu).
5767	Image *string `locationName:"image" type:"string"`
5768
5769	// When this parameter is true, this allows you to deploy containerized applications
5770	// that require stdin or a tty to be allocated. This parameter maps to OpenStdin
5771	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5772	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5773	// and the --interactive option to docker run (https://docs.docker.com/engine/reference/run/).
5774	Interactive *bool `locationName:"interactive" type:"boolean"`
5775
5776	// The links parameter allows containers to communicate with each other without
5777	// the need for port mappings. This parameter is only supported if the network
5778	// mode of a task definition is bridge. The name:internalName construct is analogous
5779	// to name:alias in Docker links. Up to 255 letters (uppercase and lowercase),
5780	// numbers, and hyphens are allowed. For more information about linking Docker
5781	// containers, go to Legacy container links (https://docs.docker.com/network/links/)
5782	// in the Docker documentation. This parameter maps to Links in the Create a
5783	// container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5784	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5785	// and the --link option to docker run (https://docs.docker.com/engine/reference/run/).
5786	//
5787	// This parameter is not supported for Windows containers.
5788	//
5789	// Containers that are collocated on a single container instance may be able
5790	// to communicate with each other without requiring links or host port mappings.
5791	// Network isolation is achieved on the container instance using security groups
5792	// and VPC settings.
5793	Links []*string `locationName:"links" type:"list"`
5794
5795	// Linux-specific modifications that are applied to the container, such as Linux
5796	// kernel capabilities. For more information see KernelCapabilities.
5797	//
5798	// This parameter is not supported for Windows containers.
5799	LinuxParameters *LinuxParameters `locationName:"linuxParameters" type:"structure"`
5800
5801	// The log configuration specification for the container.
5802	//
5803	// For tasks using the Fargate launch type, the supported log drivers are awslogs
5804	// and splunk.
5805	//
5806	// For tasks using the EC2 launch type, the supported log drivers are awslogs,
5807	// syslog, gelf, fluentd, splunk, journald, and json-file.
5808	//
5809	// This parameter maps to LogConfig in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5810	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5811	// and the --log-driver option to docker run (https://docs.docker.com/engine/reference/run/).
5812	// By default, containers use the same logging driver that the Docker daemon
5813	// uses. However the container may use a different logging driver than the Docker
5814	// daemon by specifying a log driver with this parameter in the container definition.
5815	// To use a different logging driver for a container, the log system must be
5816	// configured properly on the container instance (or on a different log server
5817	// for remote logging options). For more information on the options for different
5818	// supported log drivers, see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
5819	// in the Docker documentation.
5820	//
5821	// Amazon ECS currently supports a subset of the logging drivers available to
5822	// the Docker daemon (shown in the LogConfiguration data type). Additional log
5823	// drivers may be available in future releases of the Amazon ECS container agent.
5824	//
5825	// This parameter requires version 1.18 of the Docker Remote API or greater
5826	// on your container instance. To check the Docker Remote API version on your
5827	// container instance, log in to your container instance and run the following
5828	// command: sudo docker version --format '{{.Server.APIVersion}}'
5829	//
5830	// The Amazon ECS container agent running on a container instance must register
5831	// the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS
5832	// environment variable before containers placed on that instance can use these
5833	// log configuration options. For more information, see Amazon ECS Container
5834	// Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
5835	// in the Amazon Elastic Container Service Developer Guide.
5836	LogConfiguration *LogConfiguration `locationName:"logConfiguration" type:"structure"`
5837
5838	// The amount (in MiB) of memory to present to the container. If your container
5839	// attempts to exceed the memory specified here, the container is killed. The
5840	// total amount of memory reserved for all containers within a task must be
5841	// lower than the task memory value, if one is specified. This parameter maps
5842	// to Memory in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5843	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5844	// and the --memory option to docker run (https://docs.docker.com/engine/reference/run/).
5845	//
5846	// If your containers are part of a task using the Fargate launch type, this
5847	// field is optional.
5848	//
5849	// For containers that are part of a task using the EC2 launch type, you must
5850	// specify a non-zero integer for one or both of memory or memoryReservation
5851	// in container definitions. If you specify both, memory must be greater than
5852	// memoryReservation. If you specify memoryReservation, then that value is subtracted
5853	// from the available memory resources for the container instance on which the
5854	// container is placed. Otherwise, the value of memory is used.
5855	//
5856	// The Docker daemon reserves a minimum of 4 MiB of memory for a container,
5857	// so you should not specify fewer than 4 MiB of memory for your containers.
5858	Memory *int64 `locationName:"memory" type:"integer"`
5859
5860	// The soft limit (in MiB) of memory to reserve for the container. When system
5861	// memory is under heavy contention, Docker attempts to keep the container memory
5862	// to this soft limit. However, your container can consume more memory when
5863	// it needs to, up to either the hard limit specified with the memory parameter
5864	// (if applicable), or all of the available memory on the container instance,
5865	// whichever comes first. This parameter maps to MemoryReservation in the Create
5866	// a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5867	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5868	// and the --memory-reservation option to docker run (https://docs.docker.com/engine/reference/run/).
5869	//
5870	// You must specify a non-zero integer for one or both of memory or memoryReservation
5871	// in container definitions. If you specify both, memory must be greater than
5872	// memoryReservation. If you specify memoryReservation, then that value is subtracted
5873	// from the available memory resources for the container instance on which the
5874	// container is placed. Otherwise, the value of memory is used.
5875	//
5876	// For example, if your container normally uses 128 MiB of memory, but occasionally
5877	// bursts to 256 MiB of memory for short periods of time, you can set a memoryReservation
5878	// of 128 MiB, and a memory hard limit of 300 MiB. This configuration would
5879	// allow the container to only reserve 128 MiB of memory from the remaining
5880	// resources on the container instance, but also allow the container to consume
5881	// more memory resources when needed.
5882	//
5883	// The Docker daemon reserves a minimum of 4 MiB of memory for a container,
5884	// so you should not specify fewer than 4 MiB of memory for your containers.
5885	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
5886
5887	// The mount points for data volumes in your container.
5888	//
5889	// This parameter maps to Volumes in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5890	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5891	// and the --volume option to docker run (https://docs.docker.com/engine/reference/run/).
5892	//
5893	// Windows containers can mount whole directories on the same drive as $env:ProgramData.
5894	// Windows containers cannot mount directories on a different drive, and mount
5895	// point cannot be across drives.
5896	MountPoints []*MountPoint `locationName:"mountPoints" type:"list"`
5897
5898	// The name of a container. If you are linking multiple containers together
5899	// in a task definition, the name of one container can be entered in the links
5900	// of another container to connect the containers. Up to 255 letters (uppercase
5901	// and lowercase), numbers, and hyphens are allowed. This parameter maps to
5902	// name in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5903	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5904	// and the --name option to docker run (https://docs.docker.com/engine/reference/run/).
5905	Name *string `locationName:"name" type:"string"`
5906
5907	// The list of port mappings for the container. Port mappings allow containers
5908	// to access ports on the host container instance to send or receive traffic.
5909	//
5910	// For task definitions that use the awsvpc network mode, you should only specify
5911	// the containerPort. The hostPort can be left blank or it must be the same
5912	// value as the containerPort.
5913	//
5914	// Port mappings on Windows use the NetNAT gateway address rather than localhost.
5915	// There is no loopback for port mappings on Windows, so you cannot access a
5916	// container's mapped port from the host itself.
5917	//
5918	// This parameter maps to PortBindings in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5919	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5920	// and the --publish option to docker run (https://docs.docker.com/engine/reference/run/).
5921	// If the network mode of a task definition is set to none, then you can't specify
5922	// port mappings. If the network mode of a task definition is set to host, then
5923	// host ports must either be undefined or they must match the container port
5924	// in the port mapping.
5925	//
5926	// After a task reaches the RUNNING status, manual and automatic host and container
5927	// port assignments are visible in the Network Bindings section of a container
5928	// description for a selected task in the Amazon ECS console. The assignments
5929	// are also visible in the networkBindings section DescribeTasks responses.
5930	PortMappings []*PortMapping `locationName:"portMappings" type:"list"`
5931
5932	// When this parameter is true, the container is given elevated privileges on
5933	// the host container instance (similar to the root user). This parameter maps
5934	// to Privileged in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5935	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5936	// and the --privileged option to docker run (https://docs.docker.com/engine/reference/run/).
5937	//
5938	// This parameter is not supported for Windows containers or tasks using the
5939	// Fargate launch type.
5940	Privileged *bool `locationName:"privileged" type:"boolean"`
5941
5942	// When this parameter is true, a TTY is allocated. This parameter maps to Tty
5943	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
5944	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
5945	// and the --tty option to docker run (https://docs.docker.com/engine/reference/run/).
5946	PseudoTerminal *bool `locationName:"pseudoTerminal" type:"boolean"`
5947
5948	// When this parameter is true, the container is given read-only access to its
5949	// root file system. This parameter maps to ReadonlyRootfs in the Create a container
5950	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
5951	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
5952	// the --read-only option to docker run (https://docs.docker.com/engine/reference/run/).
5953	//
5954	// This parameter is not supported for Windows containers.
5955	ReadonlyRootFilesystem *bool `locationName:"readonlyRootFilesystem" type:"boolean"`
5956
5957	// The private repository authentication credentials to use.
5958	RepositoryCredentials *RepositoryCredentials `locationName:"repositoryCredentials" type:"structure"`
5959
5960	// The type and amount of a resource to assign to a container. The only supported
5961	// resource is a GPU.
5962	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
5963
5964	// The secrets to pass to the container. For more information, see Specifying
5965	// Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
5966	// in the Amazon Elastic Container Service Developer Guide.
5967	Secrets []*Secret `locationName:"secrets" type:"list"`
5968
5969	// Time duration to wait before giving up on resolving dependencies for a container.
5970	// For example, you specify two containers in a task definition with containerA
5971	// having a dependency on containerB reaching a COMPLETE, SUCCESS, or HEALTHY
5972	// status. If a startTimeout value is specified for containerB and it does not
5973	// reach the desired status within that time then containerA will give up and
5974	// not start. This results in the task transitioning to a STOPPED state.
5975	//
5976	// For tasks using the EC2 launch type, the container instances require at least
5977	// version 1.26.0 of the container agent to enable a container start timeout
5978	// value. However, we recommend using the latest container agent version. For
5979	// information about checking your agent version and updating to the latest
5980	// version, see Updating the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
5981	// in the Amazon Elastic Container Service Developer Guide. If you are using
5982	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
5983	// of the ecs-init package. If your container instances are launched from version
5984	// 20190301 or later, then they contain the required versions of the container
5985	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
5986	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
5987	// in the Amazon Elastic Container Service Developer Guide.
5988	//
5989	// This parameter is available for tasks using the Fargate launch type in the
5990	// Ohio (us-east-2) region only and the task or service requires platform version
5991	// 1.3.0 or later.
5992	StartTimeout *int64 `locationName:"startTimeout" type:"integer"`
5993
5994	// Time duration to wait before the container is forcefully killed if it doesn't
5995	// exit normally on its own. For tasks using the Fargate launch type, the max
5996	// stopTimeout value is 2 minutes. This parameter is available for tasks using
5997	// the Fargate launch type in the Ohio (us-east-2) region only and the task
5998	// or service requires platform version 1.3.0 or later.
5999	//
6000	// For tasks using the EC2 launch type, the stop timeout value for the container
6001	// takes precedence over the ECS_CONTAINER_STOP_TIMEOUT container agent configuration
6002	// parameter, if used. Container instances require at least version 1.26.0 of
6003	// the container agent to enable a container stop timeout value. However, we
6004	// recommend using the latest container agent version. For information about
6005	// checking your agent version and updating to the latest version, see Updating
6006	// the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
6007	// in the Amazon Elastic Container Service Developer Guide. If you are using
6008	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
6009	// of the ecs-init package. If your container instances are launched from version
6010	// 20190301 or later, then they contain the required versions of the container
6011	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
6012	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
6013	// in the Amazon Elastic Container Service Developer Guide.
6014	StopTimeout *int64 `locationName:"stopTimeout" type:"integer"`
6015
6016	// A list of namespaced kernel parameters to set in the container. This parameter
6017	// maps to Sysctls in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6018	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6019	// and the --sysctl option to docker run (https://docs.docker.com/engine/reference/run/).
6020	//
6021	// It is not recommended that you specify network-related systemControls parameters
6022	// for multiple containers in a single task that also uses either the awsvpc
6023	// or host network modes. For tasks that use the awsvpc network mode, the container
6024	// that is started last determines which systemControls parameters take effect.
6025	// For tasks that use the host network mode, it changes the container instance's
6026	// namespaced kernel parameters as well as the containers.
6027	SystemControls []*SystemControl `locationName:"systemControls" type:"list"`
6028
6029	// A list of ulimits to set in the container. This parameter maps to Ulimits
6030	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6031	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6032	// and the --ulimit option to docker run (https://docs.docker.com/engine/reference/run/).
6033	// Valid naming values are displayed in the Ulimit data type. This parameter
6034	// requires version 1.18 of the Docker Remote API or greater on your container
6035	// instance. To check the Docker Remote API version on your container instance,
6036	// log in to your container instance and run the following command: sudo docker
6037	// version --format '{{.Server.APIVersion}}'
6038	//
6039	// This parameter is not supported for Windows containers.
6040	Ulimits []*Ulimit `locationName:"ulimits" type:"list"`
6041
6042	// The user name to use inside the container. This parameter maps to User in
6043	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6044	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6045	// and the --user option to docker run (https://docs.docker.com/engine/reference/run/).
6046	//
6047	// You can use the following formats. If specifying a UID or GID, you must specify
6048	// it as a positive integer.
6049	//
6050	//    * user
6051	//
6052	//    * user:group
6053	//
6054	//    * uid
6055	//
6056	//    * uid:gid
6057	//
6058	//    * user:gid
6059	//
6060	//    * uid:group
6061	//
6062	// This parameter is not supported for Windows containers.
6063	User *string `locationName:"user" type:"string"`
6064
6065	// Data volumes to mount from another container. This parameter maps to VolumesFrom
6066	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6067	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6068	// and the --volumes-from option to docker run (https://docs.docker.com/engine/reference/run/).
6069	VolumesFrom []*VolumeFrom `locationName:"volumesFrom" type:"list"`
6070
6071	// The working directory in which to run commands inside the container. This
6072	// parameter maps to WorkingDir in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
6073	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
6074	// and the --workdir option to docker run (https://docs.docker.com/engine/reference/run/).
6075	WorkingDirectory *string `locationName:"workingDirectory" type:"string"`
6076}
6077
6078// String returns the string representation
6079func (s ContainerDefinition) String() string {
6080	return awsutil.Prettify(s)
6081}
6082
6083// GoString returns the string representation
6084func (s ContainerDefinition) GoString() string {
6085	return s.String()
6086}
6087
6088// Validate inspects the fields of the type to determine if they are valid.
6089func (s *ContainerDefinition) Validate() error {
6090	invalidParams := request.ErrInvalidParams{Context: "ContainerDefinition"}
6091	if s.DependsOn != nil {
6092		for i, v := range s.DependsOn {
6093			if v == nil {
6094				continue
6095			}
6096			if err := v.Validate(); err != nil {
6097				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DependsOn", i), err.(request.ErrInvalidParams))
6098			}
6099		}
6100	}
6101	if s.ExtraHosts != nil {
6102		for i, v := range s.ExtraHosts {
6103			if v == nil {
6104				continue
6105			}
6106			if err := v.Validate(); err != nil {
6107				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExtraHosts", i), err.(request.ErrInvalidParams))
6108			}
6109		}
6110	}
6111	if s.HealthCheck != nil {
6112		if err := s.HealthCheck.Validate(); err != nil {
6113			invalidParams.AddNested("HealthCheck", err.(request.ErrInvalidParams))
6114		}
6115	}
6116	if s.LinuxParameters != nil {
6117		if err := s.LinuxParameters.Validate(); err != nil {
6118			invalidParams.AddNested("LinuxParameters", err.(request.ErrInvalidParams))
6119		}
6120	}
6121	if s.LogConfiguration != nil {
6122		if err := s.LogConfiguration.Validate(); err != nil {
6123			invalidParams.AddNested("LogConfiguration", err.(request.ErrInvalidParams))
6124		}
6125	}
6126	if s.RepositoryCredentials != nil {
6127		if err := s.RepositoryCredentials.Validate(); err != nil {
6128			invalidParams.AddNested("RepositoryCredentials", err.(request.ErrInvalidParams))
6129		}
6130	}
6131	if s.ResourceRequirements != nil {
6132		for i, v := range s.ResourceRequirements {
6133			if v == nil {
6134				continue
6135			}
6136			if err := v.Validate(); err != nil {
6137				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
6138			}
6139		}
6140	}
6141	if s.Secrets != nil {
6142		for i, v := range s.Secrets {
6143			if v == nil {
6144				continue
6145			}
6146			if err := v.Validate(); err != nil {
6147				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Secrets", i), err.(request.ErrInvalidParams))
6148			}
6149		}
6150	}
6151	if s.Ulimits != nil {
6152		for i, v := range s.Ulimits {
6153			if v == nil {
6154				continue
6155			}
6156			if err := v.Validate(); err != nil {
6157				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Ulimits", i), err.(request.ErrInvalidParams))
6158			}
6159		}
6160	}
6161
6162	if invalidParams.Len() > 0 {
6163		return invalidParams
6164	}
6165	return nil
6166}
6167
6168// SetCommand sets the Command field's value.
6169func (s *ContainerDefinition) SetCommand(v []*string) *ContainerDefinition {
6170	s.Command = v
6171	return s
6172}
6173
6174// SetCpu sets the Cpu field's value.
6175func (s *ContainerDefinition) SetCpu(v int64) *ContainerDefinition {
6176	s.Cpu = &v
6177	return s
6178}
6179
6180// SetDependsOn sets the DependsOn field's value.
6181func (s *ContainerDefinition) SetDependsOn(v []*ContainerDependency) *ContainerDefinition {
6182	s.DependsOn = v
6183	return s
6184}
6185
6186// SetDisableNetworking sets the DisableNetworking field's value.
6187func (s *ContainerDefinition) SetDisableNetworking(v bool) *ContainerDefinition {
6188	s.DisableNetworking = &v
6189	return s
6190}
6191
6192// SetDnsSearchDomains sets the DnsSearchDomains field's value.
6193func (s *ContainerDefinition) SetDnsSearchDomains(v []*string) *ContainerDefinition {
6194	s.DnsSearchDomains = v
6195	return s
6196}
6197
6198// SetDnsServers sets the DnsServers field's value.
6199func (s *ContainerDefinition) SetDnsServers(v []*string) *ContainerDefinition {
6200	s.DnsServers = v
6201	return s
6202}
6203
6204// SetDockerLabels sets the DockerLabels field's value.
6205func (s *ContainerDefinition) SetDockerLabels(v map[string]*string) *ContainerDefinition {
6206	s.DockerLabels = v
6207	return s
6208}
6209
6210// SetDockerSecurityOptions sets the DockerSecurityOptions field's value.
6211func (s *ContainerDefinition) SetDockerSecurityOptions(v []*string) *ContainerDefinition {
6212	s.DockerSecurityOptions = v
6213	return s
6214}
6215
6216// SetEntryPoint sets the EntryPoint field's value.
6217func (s *ContainerDefinition) SetEntryPoint(v []*string) *ContainerDefinition {
6218	s.EntryPoint = v
6219	return s
6220}
6221
6222// SetEnvironment sets the Environment field's value.
6223func (s *ContainerDefinition) SetEnvironment(v []*KeyValuePair) *ContainerDefinition {
6224	s.Environment = v
6225	return s
6226}
6227
6228// SetEssential sets the Essential field's value.
6229func (s *ContainerDefinition) SetEssential(v bool) *ContainerDefinition {
6230	s.Essential = &v
6231	return s
6232}
6233
6234// SetExtraHosts sets the ExtraHosts field's value.
6235func (s *ContainerDefinition) SetExtraHosts(v []*HostEntry) *ContainerDefinition {
6236	s.ExtraHosts = v
6237	return s
6238}
6239
6240// SetHealthCheck sets the HealthCheck field's value.
6241func (s *ContainerDefinition) SetHealthCheck(v *HealthCheck) *ContainerDefinition {
6242	s.HealthCheck = v
6243	return s
6244}
6245
6246// SetHostname sets the Hostname field's value.
6247func (s *ContainerDefinition) SetHostname(v string) *ContainerDefinition {
6248	s.Hostname = &v
6249	return s
6250}
6251
6252// SetImage sets the Image field's value.
6253func (s *ContainerDefinition) SetImage(v string) *ContainerDefinition {
6254	s.Image = &v
6255	return s
6256}
6257
6258// SetInteractive sets the Interactive field's value.
6259func (s *ContainerDefinition) SetInteractive(v bool) *ContainerDefinition {
6260	s.Interactive = &v
6261	return s
6262}
6263
6264// SetLinks sets the Links field's value.
6265func (s *ContainerDefinition) SetLinks(v []*string) *ContainerDefinition {
6266	s.Links = v
6267	return s
6268}
6269
6270// SetLinuxParameters sets the LinuxParameters field's value.
6271func (s *ContainerDefinition) SetLinuxParameters(v *LinuxParameters) *ContainerDefinition {
6272	s.LinuxParameters = v
6273	return s
6274}
6275
6276// SetLogConfiguration sets the LogConfiguration field's value.
6277func (s *ContainerDefinition) SetLogConfiguration(v *LogConfiguration) *ContainerDefinition {
6278	s.LogConfiguration = v
6279	return s
6280}
6281
6282// SetMemory sets the Memory field's value.
6283func (s *ContainerDefinition) SetMemory(v int64) *ContainerDefinition {
6284	s.Memory = &v
6285	return s
6286}
6287
6288// SetMemoryReservation sets the MemoryReservation field's value.
6289func (s *ContainerDefinition) SetMemoryReservation(v int64) *ContainerDefinition {
6290	s.MemoryReservation = &v
6291	return s
6292}
6293
6294// SetMountPoints sets the MountPoints field's value.
6295func (s *ContainerDefinition) SetMountPoints(v []*MountPoint) *ContainerDefinition {
6296	s.MountPoints = v
6297	return s
6298}
6299
6300// SetName sets the Name field's value.
6301func (s *ContainerDefinition) SetName(v string) *ContainerDefinition {
6302	s.Name = &v
6303	return s
6304}
6305
6306// SetPortMappings sets the PortMappings field's value.
6307func (s *ContainerDefinition) SetPortMappings(v []*PortMapping) *ContainerDefinition {
6308	s.PortMappings = v
6309	return s
6310}
6311
6312// SetPrivileged sets the Privileged field's value.
6313func (s *ContainerDefinition) SetPrivileged(v bool) *ContainerDefinition {
6314	s.Privileged = &v
6315	return s
6316}
6317
6318// SetPseudoTerminal sets the PseudoTerminal field's value.
6319func (s *ContainerDefinition) SetPseudoTerminal(v bool) *ContainerDefinition {
6320	s.PseudoTerminal = &v
6321	return s
6322}
6323
6324// SetReadonlyRootFilesystem sets the ReadonlyRootFilesystem field's value.
6325func (s *ContainerDefinition) SetReadonlyRootFilesystem(v bool) *ContainerDefinition {
6326	s.ReadonlyRootFilesystem = &v
6327	return s
6328}
6329
6330// SetRepositoryCredentials sets the RepositoryCredentials field's value.
6331func (s *ContainerDefinition) SetRepositoryCredentials(v *RepositoryCredentials) *ContainerDefinition {
6332	s.RepositoryCredentials = v
6333	return s
6334}
6335
6336// SetResourceRequirements sets the ResourceRequirements field's value.
6337func (s *ContainerDefinition) SetResourceRequirements(v []*ResourceRequirement) *ContainerDefinition {
6338	s.ResourceRequirements = v
6339	return s
6340}
6341
6342// SetSecrets sets the Secrets field's value.
6343func (s *ContainerDefinition) SetSecrets(v []*Secret) *ContainerDefinition {
6344	s.Secrets = v
6345	return s
6346}
6347
6348// SetStartTimeout sets the StartTimeout field's value.
6349func (s *ContainerDefinition) SetStartTimeout(v int64) *ContainerDefinition {
6350	s.StartTimeout = &v
6351	return s
6352}
6353
6354// SetStopTimeout sets the StopTimeout field's value.
6355func (s *ContainerDefinition) SetStopTimeout(v int64) *ContainerDefinition {
6356	s.StopTimeout = &v
6357	return s
6358}
6359
6360// SetSystemControls sets the SystemControls field's value.
6361func (s *ContainerDefinition) SetSystemControls(v []*SystemControl) *ContainerDefinition {
6362	s.SystemControls = v
6363	return s
6364}
6365
6366// SetUlimits sets the Ulimits field's value.
6367func (s *ContainerDefinition) SetUlimits(v []*Ulimit) *ContainerDefinition {
6368	s.Ulimits = v
6369	return s
6370}
6371
6372// SetUser sets the User field's value.
6373func (s *ContainerDefinition) SetUser(v string) *ContainerDefinition {
6374	s.User = &v
6375	return s
6376}
6377
6378// SetVolumesFrom sets the VolumesFrom field's value.
6379func (s *ContainerDefinition) SetVolumesFrom(v []*VolumeFrom) *ContainerDefinition {
6380	s.VolumesFrom = v
6381	return s
6382}
6383
6384// SetWorkingDirectory sets the WorkingDirectory field's value.
6385func (s *ContainerDefinition) SetWorkingDirectory(v string) *ContainerDefinition {
6386	s.WorkingDirectory = &v
6387	return s
6388}
6389
6390// The dependencies defined for container startup and shutdown. A container
6391// can contain multiple dependencies. When a dependency is defined for container
6392// startup, for container shutdown it is reversed.
6393//
6394// Your Amazon ECS container instances require at least version 1.26.0 of the
6395// container agent to enable container dependencies. However, we recommend using
6396// the latest container agent version. For information about checking your agent
6397// version and updating to the latest version, see Updating the Amazon ECS Container
6398// Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
6399// in the Amazon Elastic Container Service Developer Guide. If you are using
6400// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
6401// of the ecs-init package. If your container instances are launched from version
6402// 20190301 or later, then they contain the required versions of the container
6403// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
6404// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
6405// in the Amazon Elastic Container Service Developer Guide.
6406//
6407// If you are using tasks that use the Fargate launch type, container dependency
6408// parameters are not supported.
6409type ContainerDependency struct {
6410	_ struct{} `type:"structure"`
6411
6412	// The dependency condition of the container. The following are the available
6413	// conditions and their behavior:
6414	//
6415	//    * START - This condition emulates the behavior of links and volumes today.
6416	//    It validates that a dependent container is started before permitting other
6417	//    containers to start.
6418	//
6419	//    * COMPLETE - This condition validates that a dependent container runs
6420	//    to completion (exits) before permitting other containers to start. This
6421	//    can be useful for nonessential containers that run a script and then exit.
6422	//
6423	//    * SUCCESS - This condition is the same as COMPLETE, but it also requires
6424	//    that the container exits with a zero status.
6425	//
6426	//    * HEALTHY - This condition validates that the dependent container passes
6427	//    its Docker health check before permitting other containers to start. This
6428	//    requires that the dependent container has health checks configured. This
6429	//    condition is confirmed only at task startup.
6430	//
6431	// Condition is a required field
6432	Condition *string `locationName:"condition" type:"string" required:"true" enum:"ContainerCondition"`
6433
6434	// The name of a container.
6435	//
6436	// ContainerName is a required field
6437	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
6438}
6439
6440// String returns the string representation
6441func (s ContainerDependency) String() string {
6442	return awsutil.Prettify(s)
6443}
6444
6445// GoString returns the string representation
6446func (s ContainerDependency) GoString() string {
6447	return s.String()
6448}
6449
6450// Validate inspects the fields of the type to determine if they are valid.
6451func (s *ContainerDependency) Validate() error {
6452	invalidParams := request.ErrInvalidParams{Context: "ContainerDependency"}
6453	if s.Condition == nil {
6454		invalidParams.Add(request.NewErrParamRequired("Condition"))
6455	}
6456	if s.ContainerName == nil {
6457		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
6458	}
6459
6460	if invalidParams.Len() > 0 {
6461		return invalidParams
6462	}
6463	return nil
6464}
6465
6466// SetCondition sets the Condition field's value.
6467func (s *ContainerDependency) SetCondition(v string) *ContainerDependency {
6468	s.Condition = &v
6469	return s
6470}
6471
6472// SetContainerName sets the ContainerName field's value.
6473func (s *ContainerDependency) SetContainerName(v string) *ContainerDependency {
6474	s.ContainerName = &v
6475	return s
6476}
6477
6478// An EC2 instance that is running the Amazon ECS agent and has been registered
6479// with a cluster.
6480type ContainerInstance struct {
6481	_ struct{} `type:"structure"`
6482
6483	// This parameter returns true if the agent is connected to Amazon ECS. Registered
6484	// instances with an agent that may be unhealthy or stopped return false. Only
6485	// instances connected to an agent can accept placement requests.
6486	AgentConnected *bool `locationName:"agentConnected" type:"boolean"`
6487
6488	// The status of the most recent agent update. If an update has never been requested,
6489	// this value is NULL.
6490	AgentUpdateStatus *string `locationName:"agentUpdateStatus" type:"string" enum:"AgentUpdateStatus"`
6491
6492	// The resources attached to a container instance, such as elastic network interfaces.
6493	Attachments []*Attachment `locationName:"attachments" type:"list"`
6494
6495	// The attributes set for the container instance, either by the Amazon ECS container
6496	// agent at instance registration or manually with the PutAttributes operation.
6497	Attributes []*Attribute `locationName:"attributes" type:"list"`
6498
6499	// The Amazon Resource Name (ARN) of the container instance. The ARN contains
6500	// the arn:aws:ecs namespace, followed by the Region of the container instance,
6501	// the AWS account ID of the container instance owner, the container-instance
6502	// namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
6503	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
6504
6505	// The EC2 instance ID of the container instance.
6506	Ec2InstanceId *string `locationName:"ec2InstanceId" type:"string"`
6507
6508	// The number of tasks on the container instance that are in the PENDING status.
6509	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
6510
6511	// The Unix timestamp for when the container instance was registered.
6512	RegisteredAt *time.Time `locationName:"registeredAt" type:"timestamp"`
6513
6514	// For CPU and memory resource types, this parameter describes the amount of
6515	// each resource that was available on the container instance when the container
6516	// agent registered it with Amazon ECS. This value represents the total amount
6517	// of CPU and memory that can be allocated on this container instance to tasks.
6518	// For port resource types, this parameter describes the ports that were reserved
6519	// by the Amazon ECS container agent when it registered the container instance
6520	// with Amazon ECS.
6521	RegisteredResources []*Resource `locationName:"registeredResources" type:"list"`
6522
6523	// For CPU and memory resource types, this parameter describes the remaining
6524	// CPU and memory that has not already been allocated to tasks and is therefore
6525	// available for new tasks. For port resource types, this parameter describes
6526	// the ports that were reserved by the Amazon ECS container agent (at instance
6527	// registration time) and any task containers that have reserved port mappings
6528	// on the host (with the host or bridge network mode). Any port that is not
6529	// specified here is available for new tasks.
6530	RemainingResources []*Resource `locationName:"remainingResources" type:"list"`
6531
6532	// The number of tasks on the container instance that are in the RUNNING status.
6533	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
6534
6535	// The status of the container instance. The valid values are REGISTERING, REGISTRATION_FAILED,
6536	// ACTIVE, INACTIVE, DEREGISTERING, or DRAINING.
6537	//
6538	// If your account has opted in to the awsvpcTrunking account setting, then
6539	// any newly registered container instance will transition to a REGISTERING
6540	// status while the trunk elastic network interface is provisioned for the instance.
6541	// If the registration fails, the instance will transition to a REGISTRATION_FAILED
6542	// status. You can describe the container instance and see the reason for failure
6543	// in the statusReason parameter. Once the container instance is terminated,
6544	// the instance transitions to a DEREGISTERING status while the trunk elastic
6545	// network interface is deprovisioned. The instance then transitions to an INACTIVE
6546	// status.
6547	//
6548	// The ACTIVE status indicates that the container instance can accept tasks.
6549	// The DRAINING indicates that new tasks are not placed on the container instance
6550	// and any service tasks running on the container instance are removed if possible.
6551	// For more information, see Container Instance Draining (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-draining.html)
6552	// in the Amazon Elastic Container Service Developer Guide.
6553	Status *string `locationName:"status" type:"string"`
6554
6555	// The reason that the container instance reached its current status.
6556	StatusReason *string `locationName:"statusReason" type:"string"`
6557
6558	// The metadata that you apply to the container instance to help you categorize
6559	// and organize them. Each tag consists of a key and an optional value, both
6560	// of which you define. Tag keys can have a maximum character length of 128
6561	// characters, and tag values can have a maximum length of 256 characters.
6562	Tags []*Tag `locationName:"tags" type:"list"`
6563
6564	// The version counter for the container instance. Every time a container instance
6565	// experiences a change that triggers a CloudWatch event, the version counter
6566	// is incremented. If you are replicating your Amazon ECS container instance
6567	// state with CloudWatch Events, you can compare the version of a container
6568	// instance reported by the Amazon ECS APIs with the version reported in CloudWatch
6569	// Events for the container instance (inside the detail object) to verify that
6570	// the version in your event stream is current.
6571	Version *int64 `locationName:"version" type:"long"`
6572
6573	// The version information for the Amazon ECS container agent and Docker daemon
6574	// running on the container instance.
6575	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
6576}
6577
6578// String returns the string representation
6579func (s ContainerInstance) String() string {
6580	return awsutil.Prettify(s)
6581}
6582
6583// GoString returns the string representation
6584func (s ContainerInstance) GoString() string {
6585	return s.String()
6586}
6587
6588// SetAgentConnected sets the AgentConnected field's value.
6589func (s *ContainerInstance) SetAgentConnected(v bool) *ContainerInstance {
6590	s.AgentConnected = &v
6591	return s
6592}
6593
6594// SetAgentUpdateStatus sets the AgentUpdateStatus field's value.
6595func (s *ContainerInstance) SetAgentUpdateStatus(v string) *ContainerInstance {
6596	s.AgentUpdateStatus = &v
6597	return s
6598}
6599
6600// SetAttachments sets the Attachments field's value.
6601func (s *ContainerInstance) SetAttachments(v []*Attachment) *ContainerInstance {
6602	s.Attachments = v
6603	return s
6604}
6605
6606// SetAttributes sets the Attributes field's value.
6607func (s *ContainerInstance) SetAttributes(v []*Attribute) *ContainerInstance {
6608	s.Attributes = v
6609	return s
6610}
6611
6612// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
6613func (s *ContainerInstance) SetContainerInstanceArn(v string) *ContainerInstance {
6614	s.ContainerInstanceArn = &v
6615	return s
6616}
6617
6618// SetEc2InstanceId sets the Ec2InstanceId field's value.
6619func (s *ContainerInstance) SetEc2InstanceId(v string) *ContainerInstance {
6620	s.Ec2InstanceId = &v
6621	return s
6622}
6623
6624// SetPendingTasksCount sets the PendingTasksCount field's value.
6625func (s *ContainerInstance) SetPendingTasksCount(v int64) *ContainerInstance {
6626	s.PendingTasksCount = &v
6627	return s
6628}
6629
6630// SetRegisteredAt sets the RegisteredAt field's value.
6631func (s *ContainerInstance) SetRegisteredAt(v time.Time) *ContainerInstance {
6632	s.RegisteredAt = &v
6633	return s
6634}
6635
6636// SetRegisteredResources sets the RegisteredResources field's value.
6637func (s *ContainerInstance) SetRegisteredResources(v []*Resource) *ContainerInstance {
6638	s.RegisteredResources = v
6639	return s
6640}
6641
6642// SetRemainingResources sets the RemainingResources field's value.
6643func (s *ContainerInstance) SetRemainingResources(v []*Resource) *ContainerInstance {
6644	s.RemainingResources = v
6645	return s
6646}
6647
6648// SetRunningTasksCount sets the RunningTasksCount field's value.
6649func (s *ContainerInstance) SetRunningTasksCount(v int64) *ContainerInstance {
6650	s.RunningTasksCount = &v
6651	return s
6652}
6653
6654// SetStatus sets the Status field's value.
6655func (s *ContainerInstance) SetStatus(v string) *ContainerInstance {
6656	s.Status = &v
6657	return s
6658}
6659
6660// SetStatusReason sets the StatusReason field's value.
6661func (s *ContainerInstance) SetStatusReason(v string) *ContainerInstance {
6662	s.StatusReason = &v
6663	return s
6664}
6665
6666// SetTags sets the Tags field's value.
6667func (s *ContainerInstance) SetTags(v []*Tag) *ContainerInstance {
6668	s.Tags = v
6669	return s
6670}
6671
6672// SetVersion sets the Version field's value.
6673func (s *ContainerInstance) SetVersion(v int64) *ContainerInstance {
6674	s.Version = &v
6675	return s
6676}
6677
6678// SetVersionInfo sets the VersionInfo field's value.
6679func (s *ContainerInstance) SetVersionInfo(v *VersionInfo) *ContainerInstance {
6680	s.VersionInfo = v
6681	return s
6682}
6683
6684// The overrides that should be sent to a container. An empty container override
6685// can be passed in. An example of an empty container override would be {"containerOverrides":
6686// [ ] }. If a non-empty container override is specified, the name parameter
6687// must be included.
6688type ContainerOverride struct {
6689	_ struct{} `type:"structure"`
6690
6691	// The command to send to the container that overrides the default command from
6692	// the Docker image or the task definition. You must also specify a container
6693	// name.
6694	Command []*string `locationName:"command" type:"list"`
6695
6696	// The number of cpu units reserved for the container, instead of the default
6697	// value from the task definition. You must also specify a container name.
6698	Cpu *int64 `locationName:"cpu" type:"integer"`
6699
6700	// The environment variables to send to the container. You can add new environment
6701	// variables, which are added to the container at launch, or you can override
6702	// the existing environment variables from the Docker image or the task definition.
6703	// You must also specify a container name.
6704	Environment []*KeyValuePair `locationName:"environment" type:"list"`
6705
6706	// The hard limit (in MiB) of memory to present to the container, instead of
6707	// the default value from the task definition. If your container attempts to
6708	// exceed the memory specified here, the container is killed. You must also
6709	// specify a container name.
6710	Memory *int64 `locationName:"memory" type:"integer"`
6711
6712	// The soft limit (in MiB) of memory to reserve for the container, instead of
6713	// the default value from the task definition. You must also specify a container
6714	// name.
6715	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
6716
6717	// The name of the container that receives the override. This parameter is required
6718	// if any override is specified.
6719	Name *string `locationName:"name" type:"string"`
6720
6721	// The type and amount of a resource to assign to a container, instead of the
6722	// default value from the task definition. The only supported resource is a
6723	// GPU.
6724	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
6725}
6726
6727// String returns the string representation
6728func (s ContainerOverride) String() string {
6729	return awsutil.Prettify(s)
6730}
6731
6732// GoString returns the string representation
6733func (s ContainerOverride) GoString() string {
6734	return s.String()
6735}
6736
6737// Validate inspects the fields of the type to determine if they are valid.
6738func (s *ContainerOverride) Validate() error {
6739	invalidParams := request.ErrInvalidParams{Context: "ContainerOverride"}
6740	if s.ResourceRequirements != nil {
6741		for i, v := range s.ResourceRequirements {
6742			if v == nil {
6743				continue
6744			}
6745			if err := v.Validate(); err != nil {
6746				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
6747			}
6748		}
6749	}
6750
6751	if invalidParams.Len() > 0 {
6752		return invalidParams
6753	}
6754	return nil
6755}
6756
6757// SetCommand sets the Command field's value.
6758func (s *ContainerOverride) SetCommand(v []*string) *ContainerOverride {
6759	s.Command = v
6760	return s
6761}
6762
6763// SetCpu sets the Cpu field's value.
6764func (s *ContainerOverride) SetCpu(v int64) *ContainerOverride {
6765	s.Cpu = &v
6766	return s
6767}
6768
6769// SetEnvironment sets the Environment field's value.
6770func (s *ContainerOverride) SetEnvironment(v []*KeyValuePair) *ContainerOverride {
6771	s.Environment = v
6772	return s
6773}
6774
6775// SetMemory sets the Memory field's value.
6776func (s *ContainerOverride) SetMemory(v int64) *ContainerOverride {
6777	s.Memory = &v
6778	return s
6779}
6780
6781// SetMemoryReservation sets the MemoryReservation field's value.
6782func (s *ContainerOverride) SetMemoryReservation(v int64) *ContainerOverride {
6783	s.MemoryReservation = &v
6784	return s
6785}
6786
6787// SetName sets the Name field's value.
6788func (s *ContainerOverride) SetName(v string) *ContainerOverride {
6789	s.Name = &v
6790	return s
6791}
6792
6793// SetResourceRequirements sets the ResourceRequirements field's value.
6794func (s *ContainerOverride) SetResourceRequirements(v []*ResourceRequirement) *ContainerOverride {
6795	s.ResourceRequirements = v
6796	return s
6797}
6798
6799// An object representing a change in state for a container.
6800type ContainerStateChange struct {
6801	_ struct{} `type:"structure"`
6802
6803	// The name of the container.
6804	ContainerName *string `locationName:"containerName" type:"string"`
6805
6806	// The exit code for the container, if the state change is a result of the container
6807	// exiting.
6808	ExitCode *int64 `locationName:"exitCode" type:"integer"`
6809
6810	// Any network bindings associated with the container.
6811	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
6812
6813	// The reason for the state change.
6814	Reason *string `locationName:"reason" type:"string"`
6815
6816	// The status of the container.
6817	Status *string `locationName:"status" type:"string"`
6818}
6819
6820// String returns the string representation
6821func (s ContainerStateChange) String() string {
6822	return awsutil.Prettify(s)
6823}
6824
6825// GoString returns the string representation
6826func (s ContainerStateChange) GoString() string {
6827	return s.String()
6828}
6829
6830// SetContainerName sets the ContainerName field's value.
6831func (s *ContainerStateChange) SetContainerName(v string) *ContainerStateChange {
6832	s.ContainerName = &v
6833	return s
6834}
6835
6836// SetExitCode sets the ExitCode field's value.
6837func (s *ContainerStateChange) SetExitCode(v int64) *ContainerStateChange {
6838	s.ExitCode = &v
6839	return s
6840}
6841
6842// SetNetworkBindings sets the NetworkBindings field's value.
6843func (s *ContainerStateChange) SetNetworkBindings(v []*NetworkBinding) *ContainerStateChange {
6844	s.NetworkBindings = v
6845	return s
6846}
6847
6848// SetReason sets the Reason field's value.
6849func (s *ContainerStateChange) SetReason(v string) *ContainerStateChange {
6850	s.Reason = &v
6851	return s
6852}
6853
6854// SetStatus sets the Status field's value.
6855func (s *ContainerStateChange) SetStatus(v string) *ContainerStateChange {
6856	s.Status = &v
6857	return s
6858}
6859
6860type CreateClusterInput struct {
6861	_ struct{} `type:"structure"`
6862
6863	// The name of your cluster. If you do not specify a name for your cluster,
6864	// you create a cluster named default. Up to 255 letters (uppercase and lowercase),
6865	// numbers, and hyphens are allowed.
6866	ClusterName *string `locationName:"clusterName" type:"string"`
6867
6868	// The setting to use when creating a cluster. This parameter is used to enable
6869	// CloudWatch Container Insights for a cluster. If this value is specified,
6870	// it will override the containerInsights value set with PutAccountSetting or
6871	// PutAccountSettingDefault.
6872	Settings []*ClusterSetting `locationName:"settings" type:"list"`
6873
6874	// The metadata that you apply to the cluster to help you categorize and organize
6875	// them. Each tag consists of a key and an optional value, both of which you
6876	// define. Tag keys can have a maximum character length of 128 characters, and
6877	// tag values can have a maximum length of 256 characters.
6878	Tags []*Tag `locationName:"tags" type:"list"`
6879}
6880
6881// String returns the string representation
6882func (s CreateClusterInput) String() string {
6883	return awsutil.Prettify(s)
6884}
6885
6886// GoString returns the string representation
6887func (s CreateClusterInput) GoString() string {
6888	return s.String()
6889}
6890
6891// Validate inspects the fields of the type to determine if they are valid.
6892func (s *CreateClusterInput) Validate() error {
6893	invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
6894	if s.Tags != nil {
6895		for i, v := range s.Tags {
6896			if v == nil {
6897				continue
6898			}
6899			if err := v.Validate(); err != nil {
6900				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6901			}
6902		}
6903	}
6904
6905	if invalidParams.Len() > 0 {
6906		return invalidParams
6907	}
6908	return nil
6909}
6910
6911// SetClusterName sets the ClusterName field's value.
6912func (s *CreateClusterInput) SetClusterName(v string) *CreateClusterInput {
6913	s.ClusterName = &v
6914	return s
6915}
6916
6917// SetSettings sets the Settings field's value.
6918func (s *CreateClusterInput) SetSettings(v []*ClusterSetting) *CreateClusterInput {
6919	s.Settings = v
6920	return s
6921}
6922
6923// SetTags sets the Tags field's value.
6924func (s *CreateClusterInput) SetTags(v []*Tag) *CreateClusterInput {
6925	s.Tags = v
6926	return s
6927}
6928
6929type CreateClusterOutput struct {
6930	_ struct{} `type:"structure"`
6931
6932	// The full description of your new cluster.
6933	Cluster *Cluster `locationName:"cluster" type:"structure"`
6934}
6935
6936// String returns the string representation
6937func (s CreateClusterOutput) String() string {
6938	return awsutil.Prettify(s)
6939}
6940
6941// GoString returns the string representation
6942func (s CreateClusterOutput) GoString() string {
6943	return s.String()
6944}
6945
6946// SetCluster sets the Cluster field's value.
6947func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput {
6948	s.Cluster = v
6949	return s
6950}
6951
6952type CreateServiceInput struct {
6953	_ struct{} `type:"structure"`
6954
6955	// Unique, case-sensitive identifier that you provide to ensure the idempotency
6956	// of the request. Up to 32 ASCII characters are allowed.
6957	ClientToken *string `locationName:"clientToken" type:"string"`
6958
6959	// The short name or full Amazon Resource Name (ARN) of the cluster on which
6960	// to run your service. If you do not specify a cluster, the default cluster
6961	// is assumed.
6962	Cluster *string `locationName:"cluster" type:"string"`
6963
6964	// Optional deployment parameters that control how many tasks run during the
6965	// deployment and the ordering of stopping and starting tasks.
6966	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
6967
6968	// The deployment controller to use for the service.
6969	DeploymentController *DeploymentController `locationName:"deploymentController" type:"structure"`
6970
6971	// The number of instantiations of the specified task definition to place and
6972	// keep running on your cluster.
6973	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
6974
6975	// Specifies whether to enable Amazon ECS managed tags for the tasks within
6976	// the service. For more information, see Tagging Your Amazon ECS Resources
6977	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
6978	// in the Amazon Elastic Container Service Developer Guide.
6979	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
6980
6981	// The period of time, in seconds, that the Amazon ECS service scheduler should
6982	// ignore unhealthy Elastic Load Balancing target health checks after a task
6983	// has first started. This is only valid if your service is configured to use
6984	// a load balancer. If your service's tasks take a while to start and respond
6985	// to Elastic Load Balancing health checks, you can specify a health check grace
6986	// period of up to 2,147,483,647 seconds. During that time, the ECS service
6987	// scheduler ignores health check status. This grace period can prevent the
6988	// ECS service scheduler from marking tasks as unhealthy and stopping them before
6989	// they have time to come up.
6990	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
6991
6992	// The launch type on which to run your service. For more information, see Amazon
6993	// ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
6994	// in the Amazon Elastic Container Service Developer Guide.
6995	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
6996
6997	// A load balancer object representing the load balancer to use with your service.
6998	//
6999	// If the service is using the ECS deployment controller, you are limited to
7000	// one load balancer or target group.
7001	//
7002	// If the service is using the CODE_DEPLOY deployment controller, the service
7003	// is required to use either an Application Load Balancer or Network Load Balancer.
7004	// When creating an AWS CodeDeploy deployment group, you specify two target
7005	// groups (referred to as a targetGroupPair). During a deployment, AWS CodeDeploy
7006	// determines which task set in your service has the status PRIMARY and associates
7007	// one target group with it, and then associates the other target group with
7008	// the replacement task set. The load balancer can also have up to two listeners:
7009	// a required listener for production traffic and an optional listener that
7010	// allows you perform validation tests with Lambda functions before routing
7011	// production traffic to it.
7012	//
7013	// After you create a service using the ECS deployment controller, the load
7014	// balancer name or target group ARN, container name, and container port specified
7015	// in the service definition are immutable. If you are using the CODE_DEPLOY
7016	// deployment controller, these values can be changed when updating the service.
7017	//
7018	// For Classic Load Balancers, this object must contain the load balancer name,
7019	// the container name (as it appears in a container definition), and the container
7020	// port to access from the load balancer. When a task from this service is placed
7021	// on a container instance, the container instance is registered with the load
7022	// balancer specified here.
7023	//
7024	// For Application Load Balancers and Network Load Balancers, this object must
7025	// contain the load balancer target group ARN, the container name (as it appears
7026	// in a container definition), and the container port to access from the load
7027	// balancer. When a task from this service is placed on a container instance,
7028	// the container instance and port combination is registered as a target in
7029	// the target group specified here.
7030	//
7031	// Services with tasks that use the awsvpc network mode (for example, those
7032	// with the Fargate launch type) only support Application Load Balancers and
7033	// Network Load Balancers. Classic Load Balancers are not supported. Also, when
7034	// you create any target groups for these services, you must choose ip as the
7035	// target type, not instance, because tasks that use the awsvpc network mode
7036	// are associated with an elastic network interface, not an Amazon EC2 instance.
7037	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
7038
7039	// The network configuration for the service. This parameter is required for
7040	// task definitions that use the awsvpc network mode to receive their own elastic
7041	// network interface, and it is not supported for other network modes. For more
7042	// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
7043	// in the Amazon Elastic Container Service Developer Guide.
7044	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
7045
7046	// An array of placement constraint objects to use for tasks in your service.
7047	// You can specify a maximum of 10 constraints per task (this limit includes
7048	// constraints in the task definition and those specified at runtime).
7049	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
7050
7051	// The placement strategy objects to use for tasks in your service. You can
7052	// specify a maximum of five strategy rules per service.
7053	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
7054
7055	// The platform version that your tasks in the service are running on. A platform
7056	// version is specified only for tasks using the Fargate launch type. If one
7057	// isn't specified, the LATEST platform version is used by default. For more
7058	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
7059	// in the Amazon Elastic Container Service Developer Guide.
7060	PlatformVersion *string `locationName:"platformVersion" type:"string"`
7061
7062	// Specifies whether to propagate the tags from the task definition or the service
7063	// to the tasks in the service. If no value is specified, the tags are not propagated.
7064	// Tags can only be propagated to the tasks within the service during service
7065	// creation. To add tags to a task after service creation, use the TagResource
7066	// API action.
7067	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
7068
7069	// The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon
7070	// ECS to make calls to your load balancer on your behalf. This parameter is
7071	// only permitted if you are using a load balancer with your service and your
7072	// task definition does not use the awsvpc network mode. If you specify the
7073	// role parameter, you must also specify a load balancer object with the loadBalancers
7074	// parameter.
7075	//
7076	// If your account has already created the Amazon ECS service-linked role, that
7077	// role is used by default for your service unless you specify a role here.
7078	// The service-linked role is required if your task definition uses the awsvpc
7079	// network mode, in which case you should not specify a role here. For more
7080	// information, see Using Service-Linked Roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
7081	// in the Amazon Elastic Container Service Developer Guide.
7082	//
7083	// If your specified role has a path other than /, then you must either specify
7084	// the full role ARN (this is recommended) or prefix the role name with the
7085	// path. For example, if a role with the name bar has a path of /foo/ then you
7086	// would specify /foo/bar as the role name. For more information, see Friendly
7087	// Names and Paths (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names)
7088	// in the IAM User Guide.
7089	Role *string `locationName:"role" type:"string"`
7090
7091	// The scheduling strategy to use for the service. For more information, see
7092	// Services (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).
7093	//
7094	// There are two service scheduler strategies available:
7095	//
7096	//    * REPLICA-The replica scheduling strategy places and maintains the desired
7097	//    number of tasks across your cluster. By default, the service scheduler
7098	//    spreads tasks across Availability Zones. You can use task placement strategies
7099	//    and constraints to customize task placement decisions. This scheduler
7100	//    strategy is required if the service is using the CODE_DEPLOY or EXTERNAL
7101	//    deployment controller types.
7102	//
7103	//    * DAEMON-The daemon scheduling strategy deploys exactly one task on each
7104	//    active container instance that meets all of the task placement constraints
7105	//    that you specify in your cluster. When you're using this strategy, you
7106	//    don't need to specify a desired number of tasks, a task placement strategy,
7107	//    or use Service Auto Scaling policies. Tasks using the Fargate launch type
7108	//    or the CODE_DEPLOY or EXTERNAL deployment controller types don't support
7109	//    the DAEMON scheduling strategy.
7110	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
7111
7112	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
7113	// and hyphens are allowed. Service names must be unique within a cluster, but
7114	// you can have similarly named services in multiple clusters within a Region
7115	// or across multiple Regions.
7116	//
7117	// ServiceName is a required field
7118	ServiceName *string `locationName:"serviceName" type:"string" required:"true"`
7119
7120	// The details of the service discovery registries to assign to this service.
7121	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
7122	//
7123	// Service discovery is supported for Fargate tasks if you are using platform
7124	// version v1.1.0 or later. For more information, see AWS Fargate Platform Versions
7125	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).
7126	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
7127
7128	// The metadata that you apply to the service to help you categorize and organize
7129	// them. Each tag consists of a key and an optional value, both of which you
7130	// define. When a service is deleted, the tags are deleted as well. Tag keys
7131	// can have a maximum character length of 128 characters, and tag values can
7132	// have a maximum length of 256 characters.
7133	Tags []*Tag `locationName:"tags" type:"list"`
7134
7135	// The family and revision (family:revision) or full ARN of the task definition
7136	// to run in your service. If a revision is not specified, the latest ACTIVE
7137	// revision is used.
7138	//
7139	// A task definition must be specified if the service is using the ECS deployment
7140	// controller.
7141	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
7142}
7143
7144// String returns the string representation
7145func (s CreateServiceInput) String() string {
7146	return awsutil.Prettify(s)
7147}
7148
7149// GoString returns the string representation
7150func (s CreateServiceInput) GoString() string {
7151	return s.String()
7152}
7153
7154// Validate inspects the fields of the type to determine if they are valid.
7155func (s *CreateServiceInput) Validate() error {
7156	invalidParams := request.ErrInvalidParams{Context: "CreateServiceInput"}
7157	if s.ServiceName == nil {
7158		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
7159	}
7160	if s.DeploymentController != nil {
7161		if err := s.DeploymentController.Validate(); err != nil {
7162			invalidParams.AddNested("DeploymentController", err.(request.ErrInvalidParams))
7163		}
7164	}
7165	if s.NetworkConfiguration != nil {
7166		if err := s.NetworkConfiguration.Validate(); err != nil {
7167			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
7168		}
7169	}
7170	if s.Tags != nil {
7171		for i, v := range s.Tags {
7172			if v == nil {
7173				continue
7174			}
7175			if err := v.Validate(); err != nil {
7176				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7177			}
7178		}
7179	}
7180
7181	if invalidParams.Len() > 0 {
7182		return invalidParams
7183	}
7184	return nil
7185}
7186
7187// SetClientToken sets the ClientToken field's value.
7188func (s *CreateServiceInput) SetClientToken(v string) *CreateServiceInput {
7189	s.ClientToken = &v
7190	return s
7191}
7192
7193// SetCluster sets the Cluster field's value.
7194func (s *CreateServiceInput) SetCluster(v string) *CreateServiceInput {
7195	s.Cluster = &v
7196	return s
7197}
7198
7199// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
7200func (s *CreateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *CreateServiceInput {
7201	s.DeploymentConfiguration = v
7202	return s
7203}
7204
7205// SetDeploymentController sets the DeploymentController field's value.
7206func (s *CreateServiceInput) SetDeploymentController(v *DeploymentController) *CreateServiceInput {
7207	s.DeploymentController = v
7208	return s
7209}
7210
7211// SetDesiredCount sets the DesiredCount field's value.
7212func (s *CreateServiceInput) SetDesiredCount(v int64) *CreateServiceInput {
7213	s.DesiredCount = &v
7214	return s
7215}
7216
7217// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
7218func (s *CreateServiceInput) SetEnableECSManagedTags(v bool) *CreateServiceInput {
7219	s.EnableECSManagedTags = &v
7220	return s
7221}
7222
7223// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
7224func (s *CreateServiceInput) SetHealthCheckGracePeriodSeconds(v int64) *CreateServiceInput {
7225	s.HealthCheckGracePeriodSeconds = &v
7226	return s
7227}
7228
7229// SetLaunchType sets the LaunchType field's value.
7230func (s *CreateServiceInput) SetLaunchType(v string) *CreateServiceInput {
7231	s.LaunchType = &v
7232	return s
7233}
7234
7235// SetLoadBalancers sets the LoadBalancers field's value.
7236func (s *CreateServiceInput) SetLoadBalancers(v []*LoadBalancer) *CreateServiceInput {
7237	s.LoadBalancers = v
7238	return s
7239}
7240
7241// SetNetworkConfiguration sets the NetworkConfiguration field's value.
7242func (s *CreateServiceInput) SetNetworkConfiguration(v *NetworkConfiguration) *CreateServiceInput {
7243	s.NetworkConfiguration = v
7244	return s
7245}
7246
7247// SetPlacementConstraints sets the PlacementConstraints field's value.
7248func (s *CreateServiceInput) SetPlacementConstraints(v []*PlacementConstraint) *CreateServiceInput {
7249	s.PlacementConstraints = v
7250	return s
7251}
7252
7253// SetPlacementStrategy sets the PlacementStrategy field's value.
7254func (s *CreateServiceInput) SetPlacementStrategy(v []*PlacementStrategy) *CreateServiceInput {
7255	s.PlacementStrategy = v
7256	return s
7257}
7258
7259// SetPlatformVersion sets the PlatformVersion field's value.
7260func (s *CreateServiceInput) SetPlatformVersion(v string) *CreateServiceInput {
7261	s.PlatformVersion = &v
7262	return s
7263}
7264
7265// SetPropagateTags sets the PropagateTags field's value.
7266func (s *CreateServiceInput) SetPropagateTags(v string) *CreateServiceInput {
7267	s.PropagateTags = &v
7268	return s
7269}
7270
7271// SetRole sets the Role field's value.
7272func (s *CreateServiceInput) SetRole(v string) *CreateServiceInput {
7273	s.Role = &v
7274	return s
7275}
7276
7277// SetSchedulingStrategy sets the SchedulingStrategy field's value.
7278func (s *CreateServiceInput) SetSchedulingStrategy(v string) *CreateServiceInput {
7279	s.SchedulingStrategy = &v
7280	return s
7281}
7282
7283// SetServiceName sets the ServiceName field's value.
7284func (s *CreateServiceInput) SetServiceName(v string) *CreateServiceInput {
7285	s.ServiceName = &v
7286	return s
7287}
7288
7289// SetServiceRegistries sets the ServiceRegistries field's value.
7290func (s *CreateServiceInput) SetServiceRegistries(v []*ServiceRegistry) *CreateServiceInput {
7291	s.ServiceRegistries = v
7292	return s
7293}
7294
7295// SetTags sets the Tags field's value.
7296func (s *CreateServiceInput) SetTags(v []*Tag) *CreateServiceInput {
7297	s.Tags = v
7298	return s
7299}
7300
7301// SetTaskDefinition sets the TaskDefinition field's value.
7302func (s *CreateServiceInput) SetTaskDefinition(v string) *CreateServiceInput {
7303	s.TaskDefinition = &v
7304	return s
7305}
7306
7307type CreateServiceOutput struct {
7308	_ struct{} `type:"structure"`
7309
7310	// The full description of your service following the create call.
7311	//
7312	// If a service is using the ECS deployment controller, the deploymentController
7313	// and taskSets parameters will not be returned.
7314	//
7315	// If the service is using the CODE_DEPLOY deployment controller, the deploymentController,
7316	// taskSets and deployments parameters will be returned, however the deployments
7317	// parameter will be an empty list.
7318	Service *Service `locationName:"service" type:"structure"`
7319}
7320
7321// String returns the string representation
7322func (s CreateServiceOutput) String() string {
7323	return awsutil.Prettify(s)
7324}
7325
7326// GoString returns the string representation
7327func (s CreateServiceOutput) GoString() string {
7328	return s.String()
7329}
7330
7331// SetService sets the Service field's value.
7332func (s *CreateServiceOutput) SetService(v *Service) *CreateServiceOutput {
7333	s.Service = v
7334	return s
7335}
7336
7337type CreateTaskSetInput struct {
7338	_ struct{} `type:"structure"`
7339
7340	// Unique, case-sensitive identifier that you provide to ensure the idempotency
7341	// of the request. Up to 32 ASCII characters are allowed.
7342	ClientToken *string `locationName:"clientToken" type:"string"`
7343
7344	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
7345	// the service to create the task set in.
7346	//
7347	// Cluster is a required field
7348	Cluster *string `locationName:"cluster" type:"string" required:"true"`
7349
7350	// An optional non-unique tag that identifies this task set in external systems.
7351	// If the task set is associated with a service discovery registry, the tasks
7352	// in this task set will have the ECS_TASK_SET_EXTERNAL_ID AWS Cloud Map attribute
7353	// set to the provided value.
7354	ExternalId *string `locationName:"externalId" type:"string"`
7355
7356	// The launch type that new tasks in the task set will use. For more information,
7357	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
7358	// in the Amazon Elastic Container Service Developer Guide.
7359	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
7360
7361	// A load balancer object representing the load balancer to use with the task
7362	// set. The supported load balancer types are either an Application Load Balancer
7363	// or a Network Load Balancer.
7364	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
7365
7366	// An object representing the network configuration for a task or service.
7367	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
7368
7369	// The platform version that the tasks in the task set should use. A platform
7370	// version is specified only for tasks using the Fargate launch type. If one
7371	// isn't specified, the LATEST platform version is used by default.
7372	PlatformVersion *string `locationName:"platformVersion" type:"string"`
7373
7374	// A floating-point percentage of the desired number of tasks to place and keep
7375	// running in the task set.
7376	Scale *Scale `locationName:"scale" type:"structure"`
7377
7378	// The short name or full Amazon Resource Name (ARN) of the service to create
7379	// the task set in.
7380	//
7381	// Service is a required field
7382	Service *string `locationName:"service" type:"string" required:"true"`
7383
7384	// The details of the service discovery registries to assign to this task set.
7385	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
7386	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
7387
7388	// The task definition for the tasks in the task set to use.
7389	//
7390	// TaskDefinition is a required field
7391	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
7392}
7393
7394// String returns the string representation
7395func (s CreateTaskSetInput) String() string {
7396	return awsutil.Prettify(s)
7397}
7398
7399// GoString returns the string representation
7400func (s CreateTaskSetInput) GoString() string {
7401	return s.String()
7402}
7403
7404// Validate inspects the fields of the type to determine if they are valid.
7405func (s *CreateTaskSetInput) Validate() error {
7406	invalidParams := request.ErrInvalidParams{Context: "CreateTaskSetInput"}
7407	if s.Cluster == nil {
7408		invalidParams.Add(request.NewErrParamRequired("Cluster"))
7409	}
7410	if s.Service == nil {
7411		invalidParams.Add(request.NewErrParamRequired("Service"))
7412	}
7413	if s.TaskDefinition == nil {
7414		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
7415	}
7416	if s.NetworkConfiguration != nil {
7417		if err := s.NetworkConfiguration.Validate(); err != nil {
7418			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
7419		}
7420	}
7421
7422	if invalidParams.Len() > 0 {
7423		return invalidParams
7424	}
7425	return nil
7426}
7427
7428// SetClientToken sets the ClientToken field's value.
7429func (s *CreateTaskSetInput) SetClientToken(v string) *CreateTaskSetInput {
7430	s.ClientToken = &v
7431	return s
7432}
7433
7434// SetCluster sets the Cluster field's value.
7435func (s *CreateTaskSetInput) SetCluster(v string) *CreateTaskSetInput {
7436	s.Cluster = &v
7437	return s
7438}
7439
7440// SetExternalId sets the ExternalId field's value.
7441func (s *CreateTaskSetInput) SetExternalId(v string) *CreateTaskSetInput {
7442	s.ExternalId = &v
7443	return s
7444}
7445
7446// SetLaunchType sets the LaunchType field's value.
7447func (s *CreateTaskSetInput) SetLaunchType(v string) *CreateTaskSetInput {
7448	s.LaunchType = &v
7449	return s
7450}
7451
7452// SetLoadBalancers sets the LoadBalancers field's value.
7453func (s *CreateTaskSetInput) SetLoadBalancers(v []*LoadBalancer) *CreateTaskSetInput {
7454	s.LoadBalancers = v
7455	return s
7456}
7457
7458// SetNetworkConfiguration sets the NetworkConfiguration field's value.
7459func (s *CreateTaskSetInput) SetNetworkConfiguration(v *NetworkConfiguration) *CreateTaskSetInput {
7460	s.NetworkConfiguration = v
7461	return s
7462}
7463
7464// SetPlatformVersion sets the PlatformVersion field's value.
7465func (s *CreateTaskSetInput) SetPlatformVersion(v string) *CreateTaskSetInput {
7466	s.PlatformVersion = &v
7467	return s
7468}
7469
7470// SetScale sets the Scale field's value.
7471func (s *CreateTaskSetInput) SetScale(v *Scale) *CreateTaskSetInput {
7472	s.Scale = v
7473	return s
7474}
7475
7476// SetService sets the Service field's value.
7477func (s *CreateTaskSetInput) SetService(v string) *CreateTaskSetInput {
7478	s.Service = &v
7479	return s
7480}
7481
7482// SetServiceRegistries sets the ServiceRegistries field's value.
7483func (s *CreateTaskSetInput) SetServiceRegistries(v []*ServiceRegistry) *CreateTaskSetInput {
7484	s.ServiceRegistries = v
7485	return s
7486}
7487
7488// SetTaskDefinition sets the TaskDefinition field's value.
7489func (s *CreateTaskSetInput) SetTaskDefinition(v string) *CreateTaskSetInput {
7490	s.TaskDefinition = &v
7491	return s
7492}
7493
7494type CreateTaskSetOutput struct {
7495	_ struct{} `type:"structure"`
7496
7497	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
7498	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
7499	// desired number of tasks, how many tasks are running, and whether the task
7500	// set serves production traffic.
7501	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
7502}
7503
7504// String returns the string representation
7505func (s CreateTaskSetOutput) String() string {
7506	return awsutil.Prettify(s)
7507}
7508
7509// GoString returns the string representation
7510func (s CreateTaskSetOutput) GoString() string {
7511	return s.String()
7512}
7513
7514// SetTaskSet sets the TaskSet field's value.
7515func (s *CreateTaskSetOutput) SetTaskSet(v *TaskSet) *CreateTaskSetOutput {
7516	s.TaskSet = v
7517	return s
7518}
7519
7520type DeleteAccountSettingInput struct {
7521	_ struct{} `type:"structure"`
7522
7523	// The resource name for which to disable the account setting. If serviceLongArnFormat
7524	// is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat
7525	// is specified, the ARN and resource ID for your Amazon ECS tasks is affected.
7526	// If containerInstanceLongArnFormat is specified, the ARN and resource ID for
7527	// your Amazon ECS container instances is affected. If awsvpcTrunking is specified,
7528	// the ENI limit for your Amazon ECS container instances is affected.
7529	//
7530	// Name is a required field
7531	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
7532
7533	// The ARN of the principal, which can be an IAM user, IAM role, or the root
7534	// user. If you specify the root user, it disables the account setting for all
7535	// IAM users, IAM roles, and the root user of the account unless an IAM user
7536	// or role explicitly overrides these settings. If this field is omitted, the
7537	// setting is changed only for the authenticated user.
7538	PrincipalArn *string `locationName:"principalArn" type:"string"`
7539}
7540
7541// String returns the string representation
7542func (s DeleteAccountSettingInput) String() string {
7543	return awsutil.Prettify(s)
7544}
7545
7546// GoString returns the string representation
7547func (s DeleteAccountSettingInput) GoString() string {
7548	return s.String()
7549}
7550
7551// Validate inspects the fields of the type to determine if they are valid.
7552func (s *DeleteAccountSettingInput) Validate() error {
7553	invalidParams := request.ErrInvalidParams{Context: "DeleteAccountSettingInput"}
7554	if s.Name == nil {
7555		invalidParams.Add(request.NewErrParamRequired("Name"))
7556	}
7557
7558	if invalidParams.Len() > 0 {
7559		return invalidParams
7560	}
7561	return nil
7562}
7563
7564// SetName sets the Name field's value.
7565func (s *DeleteAccountSettingInput) SetName(v string) *DeleteAccountSettingInput {
7566	s.Name = &v
7567	return s
7568}
7569
7570// SetPrincipalArn sets the PrincipalArn field's value.
7571func (s *DeleteAccountSettingInput) SetPrincipalArn(v string) *DeleteAccountSettingInput {
7572	s.PrincipalArn = &v
7573	return s
7574}
7575
7576type DeleteAccountSettingOutput struct {
7577	_ struct{} `type:"structure"`
7578
7579	// The account setting for the specified principal ARN.
7580	Setting *Setting `locationName:"setting" type:"structure"`
7581}
7582
7583// String returns the string representation
7584func (s DeleteAccountSettingOutput) String() string {
7585	return awsutil.Prettify(s)
7586}
7587
7588// GoString returns the string representation
7589func (s DeleteAccountSettingOutput) GoString() string {
7590	return s.String()
7591}
7592
7593// SetSetting sets the Setting field's value.
7594func (s *DeleteAccountSettingOutput) SetSetting(v *Setting) *DeleteAccountSettingOutput {
7595	s.Setting = v
7596	return s
7597}
7598
7599type DeleteAttributesInput struct {
7600	_ struct{} `type:"structure"`
7601
7602	// The attributes to delete from your resource. You can specify up to 10 attributes
7603	// per request. For custom attributes, specify the attribute name and target
7604	// ID, but do not specify the value. If you specify the target ID using the
7605	// short form, you must also specify the target type.
7606	//
7607	// Attributes is a required field
7608	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
7609
7610	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
7611	// the resource to delete attributes. If you do not specify a cluster, the default
7612	// cluster is assumed.
7613	Cluster *string `locationName:"cluster" type:"string"`
7614}
7615
7616// String returns the string representation
7617func (s DeleteAttributesInput) String() string {
7618	return awsutil.Prettify(s)
7619}
7620
7621// GoString returns the string representation
7622func (s DeleteAttributesInput) GoString() string {
7623	return s.String()
7624}
7625
7626// Validate inspects the fields of the type to determine if they are valid.
7627func (s *DeleteAttributesInput) Validate() error {
7628	invalidParams := request.ErrInvalidParams{Context: "DeleteAttributesInput"}
7629	if s.Attributes == nil {
7630		invalidParams.Add(request.NewErrParamRequired("Attributes"))
7631	}
7632	if s.Attributes != nil {
7633		for i, v := range s.Attributes {
7634			if v == nil {
7635				continue
7636			}
7637			if err := v.Validate(); err != nil {
7638				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
7639			}
7640		}
7641	}
7642
7643	if invalidParams.Len() > 0 {
7644		return invalidParams
7645	}
7646	return nil
7647}
7648
7649// SetAttributes sets the Attributes field's value.
7650func (s *DeleteAttributesInput) SetAttributes(v []*Attribute) *DeleteAttributesInput {
7651	s.Attributes = v
7652	return s
7653}
7654
7655// SetCluster sets the Cluster field's value.
7656func (s *DeleteAttributesInput) SetCluster(v string) *DeleteAttributesInput {
7657	s.Cluster = &v
7658	return s
7659}
7660
7661type DeleteAttributesOutput struct {
7662	_ struct{} `type:"structure"`
7663
7664	// A list of attribute objects that were successfully deleted from your resource.
7665	Attributes []*Attribute `locationName:"attributes" type:"list"`
7666}
7667
7668// String returns the string representation
7669func (s DeleteAttributesOutput) String() string {
7670	return awsutil.Prettify(s)
7671}
7672
7673// GoString returns the string representation
7674func (s DeleteAttributesOutput) GoString() string {
7675	return s.String()
7676}
7677
7678// SetAttributes sets the Attributes field's value.
7679func (s *DeleteAttributesOutput) SetAttributes(v []*Attribute) *DeleteAttributesOutput {
7680	s.Attributes = v
7681	return s
7682}
7683
7684type DeleteClusterInput struct {
7685	_ struct{} `type:"structure"`
7686
7687	// The short name or full Amazon Resource Name (ARN) of the cluster to delete.
7688	//
7689	// Cluster is a required field
7690	Cluster *string `locationName:"cluster" type:"string" required:"true"`
7691}
7692
7693// String returns the string representation
7694func (s DeleteClusterInput) String() string {
7695	return awsutil.Prettify(s)
7696}
7697
7698// GoString returns the string representation
7699func (s DeleteClusterInput) GoString() string {
7700	return s.String()
7701}
7702
7703// Validate inspects the fields of the type to determine if they are valid.
7704func (s *DeleteClusterInput) Validate() error {
7705	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"}
7706	if s.Cluster == nil {
7707		invalidParams.Add(request.NewErrParamRequired("Cluster"))
7708	}
7709
7710	if invalidParams.Len() > 0 {
7711		return invalidParams
7712	}
7713	return nil
7714}
7715
7716// SetCluster sets the Cluster field's value.
7717func (s *DeleteClusterInput) SetCluster(v string) *DeleteClusterInput {
7718	s.Cluster = &v
7719	return s
7720}
7721
7722type DeleteClusterOutput struct {
7723	_ struct{} `type:"structure"`
7724
7725	// The full description of the deleted cluster.
7726	Cluster *Cluster `locationName:"cluster" type:"structure"`
7727}
7728
7729// String returns the string representation
7730func (s DeleteClusterOutput) String() string {
7731	return awsutil.Prettify(s)
7732}
7733
7734// GoString returns the string representation
7735func (s DeleteClusterOutput) GoString() string {
7736	return s.String()
7737}
7738
7739// SetCluster sets the Cluster field's value.
7740func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput {
7741	s.Cluster = v
7742	return s
7743}
7744
7745type DeleteServiceInput struct {
7746	_ struct{} `type:"structure"`
7747
7748	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
7749	// the service to delete. If you do not specify a cluster, the default cluster
7750	// is assumed.
7751	Cluster *string `locationName:"cluster" type:"string"`
7752
7753	// If true, allows you to delete a service even if it has not been scaled down
7754	// to zero tasks. It is only necessary to use this if the service is using the
7755	// REPLICA scheduling strategy.
7756	Force *bool `locationName:"force" type:"boolean"`
7757
7758	// The name of the service to delete.
7759	//
7760	// Service is a required field
7761	Service *string `locationName:"service" type:"string" required:"true"`
7762}
7763
7764// String returns the string representation
7765func (s DeleteServiceInput) String() string {
7766	return awsutil.Prettify(s)
7767}
7768
7769// GoString returns the string representation
7770func (s DeleteServiceInput) GoString() string {
7771	return s.String()
7772}
7773
7774// Validate inspects the fields of the type to determine if they are valid.
7775func (s *DeleteServiceInput) Validate() error {
7776	invalidParams := request.ErrInvalidParams{Context: "DeleteServiceInput"}
7777	if s.Service == nil {
7778		invalidParams.Add(request.NewErrParamRequired("Service"))
7779	}
7780
7781	if invalidParams.Len() > 0 {
7782		return invalidParams
7783	}
7784	return nil
7785}
7786
7787// SetCluster sets the Cluster field's value.
7788func (s *DeleteServiceInput) SetCluster(v string) *DeleteServiceInput {
7789	s.Cluster = &v
7790	return s
7791}
7792
7793// SetForce sets the Force field's value.
7794func (s *DeleteServiceInput) SetForce(v bool) *DeleteServiceInput {
7795	s.Force = &v
7796	return s
7797}
7798
7799// SetService sets the Service field's value.
7800func (s *DeleteServiceInput) SetService(v string) *DeleteServiceInput {
7801	s.Service = &v
7802	return s
7803}
7804
7805type DeleteServiceOutput struct {
7806	_ struct{} `type:"structure"`
7807
7808	// The full description of the deleted service.
7809	Service *Service `locationName:"service" type:"structure"`
7810}
7811
7812// String returns the string representation
7813func (s DeleteServiceOutput) String() string {
7814	return awsutil.Prettify(s)
7815}
7816
7817// GoString returns the string representation
7818func (s DeleteServiceOutput) GoString() string {
7819	return s.String()
7820}
7821
7822// SetService sets the Service field's value.
7823func (s *DeleteServiceOutput) SetService(v *Service) *DeleteServiceOutput {
7824	s.Service = v
7825	return s
7826}
7827
7828type DeleteTaskSetInput struct {
7829	_ struct{} `type:"structure"`
7830
7831	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
7832	// the service that the task set exists in to delete.
7833	//
7834	// Cluster is a required field
7835	Cluster *string `locationName:"cluster" type:"string" required:"true"`
7836
7837	// If true, this allows you to delete a task set even if it hasn't been scaled
7838	// down to zero.
7839	Force *bool `locationName:"force" type:"boolean"`
7840
7841	// The short name or full Amazon Resource Name (ARN) of the service that hosts
7842	// the task set to delete.
7843	//
7844	// Service is a required field
7845	Service *string `locationName:"service" type:"string" required:"true"`
7846
7847	// The task set ID or full Amazon Resource Name (ARN) of the task set to delete.
7848	//
7849	// TaskSet is a required field
7850	TaskSet *string `locationName:"taskSet" type:"string" required:"true"`
7851}
7852
7853// String returns the string representation
7854func (s DeleteTaskSetInput) String() string {
7855	return awsutil.Prettify(s)
7856}
7857
7858// GoString returns the string representation
7859func (s DeleteTaskSetInput) GoString() string {
7860	return s.String()
7861}
7862
7863// Validate inspects the fields of the type to determine if they are valid.
7864func (s *DeleteTaskSetInput) Validate() error {
7865	invalidParams := request.ErrInvalidParams{Context: "DeleteTaskSetInput"}
7866	if s.Cluster == nil {
7867		invalidParams.Add(request.NewErrParamRequired("Cluster"))
7868	}
7869	if s.Service == nil {
7870		invalidParams.Add(request.NewErrParamRequired("Service"))
7871	}
7872	if s.TaskSet == nil {
7873		invalidParams.Add(request.NewErrParamRequired("TaskSet"))
7874	}
7875
7876	if invalidParams.Len() > 0 {
7877		return invalidParams
7878	}
7879	return nil
7880}
7881
7882// SetCluster sets the Cluster field's value.
7883func (s *DeleteTaskSetInput) SetCluster(v string) *DeleteTaskSetInput {
7884	s.Cluster = &v
7885	return s
7886}
7887
7888// SetForce sets the Force field's value.
7889func (s *DeleteTaskSetInput) SetForce(v bool) *DeleteTaskSetInput {
7890	s.Force = &v
7891	return s
7892}
7893
7894// SetService sets the Service field's value.
7895func (s *DeleteTaskSetInput) SetService(v string) *DeleteTaskSetInput {
7896	s.Service = &v
7897	return s
7898}
7899
7900// SetTaskSet sets the TaskSet field's value.
7901func (s *DeleteTaskSetInput) SetTaskSet(v string) *DeleteTaskSetInput {
7902	s.TaskSet = &v
7903	return s
7904}
7905
7906type DeleteTaskSetOutput struct {
7907	_ struct{} `type:"structure"`
7908
7909	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
7910	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
7911	// desired number of tasks, how many tasks are running, and whether the task
7912	// set serves production traffic.
7913	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
7914}
7915
7916// String returns the string representation
7917func (s DeleteTaskSetOutput) String() string {
7918	return awsutil.Prettify(s)
7919}
7920
7921// GoString returns the string representation
7922func (s DeleteTaskSetOutput) GoString() string {
7923	return s.String()
7924}
7925
7926// SetTaskSet sets the TaskSet field's value.
7927func (s *DeleteTaskSetOutput) SetTaskSet(v *TaskSet) *DeleteTaskSetOutput {
7928	s.TaskSet = v
7929	return s
7930}
7931
7932// The details of an Amazon ECS service deployment. This is used only when a
7933// service uses the ECS deployment controller type.
7934type Deployment struct {
7935	_ struct{} `type:"structure"`
7936
7937	// The Unix timestamp for when the service deployment was created.
7938	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
7939
7940	// The most recent desired count of tasks that was specified for the service
7941	// to deploy or maintain.
7942	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
7943
7944	// The ID of the deployment.
7945	Id *string `locationName:"id" type:"string"`
7946
7947	// The launch type the tasks in the service are using. For more information,
7948	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
7949	// in the Amazon Elastic Container Service Developer Guide.
7950	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
7951
7952	// The VPC subnet and security group configuration for tasks that receive their
7953	// own elastic network interface by using the awsvpc networking mode.
7954	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
7955
7956	// The number of tasks in the deployment that are in the PENDING status.
7957	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
7958
7959	// The platform version on which your tasks in the service are running. A platform
7960	// version is only specified for tasks using the Fargate launch type. If one
7961	// is not specified, the LATEST platform version is used by default. For more
7962	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
7963	// in the Amazon Elastic Container Service Developer Guide.
7964	PlatformVersion *string `locationName:"platformVersion" type:"string"`
7965
7966	// The number of tasks in the deployment that are in the RUNNING status.
7967	RunningCount *int64 `locationName:"runningCount" type:"integer"`
7968
7969	// The status of the deployment. The following describes each state:
7970	//
7971	// PRIMARY
7972	//
7973	// The most recent deployment of a service.
7974	//
7975	// ACTIVE
7976	//
7977	// A service deployment that still has running tasks, but are in the process
7978	// of being replaced with a new PRIMARY deployment.
7979	//
7980	// INACTIVE
7981	//
7982	// A deployment that has been completely replaced.
7983	Status *string `locationName:"status" type:"string"`
7984
7985	// The most recent task definition that was specified for the tasks in the service
7986	// to use.
7987	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
7988
7989	// The Unix timestamp for when the service deployment was last updated.
7990	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
7991}
7992
7993// String returns the string representation
7994func (s Deployment) String() string {
7995	return awsutil.Prettify(s)
7996}
7997
7998// GoString returns the string representation
7999func (s Deployment) GoString() string {
8000	return s.String()
8001}
8002
8003// SetCreatedAt sets the CreatedAt field's value.
8004func (s *Deployment) SetCreatedAt(v time.Time) *Deployment {
8005	s.CreatedAt = &v
8006	return s
8007}
8008
8009// SetDesiredCount sets the DesiredCount field's value.
8010func (s *Deployment) SetDesiredCount(v int64) *Deployment {
8011	s.DesiredCount = &v
8012	return s
8013}
8014
8015// SetId sets the Id field's value.
8016func (s *Deployment) SetId(v string) *Deployment {
8017	s.Id = &v
8018	return s
8019}
8020
8021// SetLaunchType sets the LaunchType field's value.
8022func (s *Deployment) SetLaunchType(v string) *Deployment {
8023	s.LaunchType = &v
8024	return s
8025}
8026
8027// SetNetworkConfiguration sets the NetworkConfiguration field's value.
8028func (s *Deployment) SetNetworkConfiguration(v *NetworkConfiguration) *Deployment {
8029	s.NetworkConfiguration = v
8030	return s
8031}
8032
8033// SetPendingCount sets the PendingCount field's value.
8034func (s *Deployment) SetPendingCount(v int64) *Deployment {
8035	s.PendingCount = &v
8036	return s
8037}
8038
8039// SetPlatformVersion sets the PlatformVersion field's value.
8040func (s *Deployment) SetPlatformVersion(v string) *Deployment {
8041	s.PlatformVersion = &v
8042	return s
8043}
8044
8045// SetRunningCount sets the RunningCount field's value.
8046func (s *Deployment) SetRunningCount(v int64) *Deployment {
8047	s.RunningCount = &v
8048	return s
8049}
8050
8051// SetStatus sets the Status field's value.
8052func (s *Deployment) SetStatus(v string) *Deployment {
8053	s.Status = &v
8054	return s
8055}
8056
8057// SetTaskDefinition sets the TaskDefinition field's value.
8058func (s *Deployment) SetTaskDefinition(v string) *Deployment {
8059	s.TaskDefinition = &v
8060	return s
8061}
8062
8063// SetUpdatedAt sets the UpdatedAt field's value.
8064func (s *Deployment) SetUpdatedAt(v time.Time) *Deployment {
8065	s.UpdatedAt = &v
8066	return s
8067}
8068
8069// Optional deployment parameters that control how many tasks run during a deployment
8070// and the ordering of stopping and starting tasks.
8071type DeploymentConfiguration struct {
8072	_ struct{} `type:"structure"`
8073
8074	// If a service is using the rolling update (ECS) deployment type, the maximum
8075	// percent parameter represents an upper limit on the number of tasks in a service
8076	// that are allowed in the RUNNING or PENDING state during a deployment, as
8077	// a percentage of the desired number of tasks (rounded down to the nearest
8078	// integer), and while any container instances are in the DRAINING state if
8079	// the service contains tasks using the EC2 launch type. This parameter enables
8080	// you to define the deployment batch size. For example, if your service has
8081	// a desired number of four tasks and a maximum percent value of 200%, the scheduler
8082	// may start four new tasks before stopping the four older tasks (provided that
8083	// the cluster resources required to do this are available). The default value
8084	// for maximum percent is 200%.
8085	//
8086	// If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment
8087	// types and tasks that use the EC2 launch type, the maximum percent value is
8088	// set to the default value and is used to define the upper limit on the number
8089	// of the tasks in the service that remain in the RUNNING state while the container
8090	// instances are in the DRAINING state. If the tasks in the service use the
8091	// Fargate launch type, the maximum percent value is not used, although it is
8092	// returned when describing your service.
8093	MaximumPercent *int64 `locationName:"maximumPercent" type:"integer"`
8094
8095	// If a service is using the rolling update (ECS) deployment type, the minimum
8096	// healthy percent represents a lower limit on the number of tasks in a service
8097	// that must remain in the RUNNING state during a deployment, as a percentage
8098	// of the desired number of tasks (rounded up to the nearest integer), and while
8099	// any container instances are in the DRAINING state if the service contains
8100	// tasks using the EC2 launch type. This parameter enables you to deploy without
8101	// using additional cluster capacity. For example, if your service has a desired
8102	// number of four tasks and a minimum healthy percent of 50%, the scheduler
8103	// may stop two existing tasks to free up cluster capacity before starting two
8104	// new tasks. Tasks for services that do not use a load balancer are considered
8105	// healthy if they are in the RUNNING state; tasks for services that do use
8106	// a load balancer are considered healthy if they are in the RUNNING state and
8107	// they are reported as healthy by the load balancer. The default value for
8108	// minimum healthy percent is 100%.
8109	//
8110	// If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment
8111	// types and tasks that use the EC2 launch type, the minimum healthy percent
8112	// value is set to the default value and is used to define the lower limit on
8113	// the number of the tasks in the service that remain in the RUNNING state while
8114	// the container instances are in the DRAINING state. If the tasks in the service
8115	// use the Fargate launch type, the minimum healthy percent value is not used,
8116	// although it is returned when describing your service.
8117	MinimumHealthyPercent *int64 `locationName:"minimumHealthyPercent" type:"integer"`
8118}
8119
8120// String returns the string representation
8121func (s DeploymentConfiguration) String() string {
8122	return awsutil.Prettify(s)
8123}
8124
8125// GoString returns the string representation
8126func (s DeploymentConfiguration) GoString() string {
8127	return s.String()
8128}
8129
8130// SetMaximumPercent sets the MaximumPercent field's value.
8131func (s *DeploymentConfiguration) SetMaximumPercent(v int64) *DeploymentConfiguration {
8132	s.MaximumPercent = &v
8133	return s
8134}
8135
8136// SetMinimumHealthyPercent sets the MinimumHealthyPercent field's value.
8137func (s *DeploymentConfiguration) SetMinimumHealthyPercent(v int64) *DeploymentConfiguration {
8138	s.MinimumHealthyPercent = &v
8139	return s
8140}
8141
8142// The deployment controller to use for the service. For more information, see
8143// Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
8144// in the Amazon Elastic Container Service Developer Guide.
8145type DeploymentController struct {
8146	_ struct{} `type:"structure"`
8147
8148	// The deployment controller type to use.
8149	//
8150	// There are three deployment controller types available:
8151	//
8152	// ECS
8153	//
8154	// The rolling update (ECS) deployment type involves replacing the current running
8155	// version of the container with the latest version. The number of containers
8156	// Amazon ECS adds or removes from the service during a rolling update is controlled
8157	// by adjusting the minimum and maximum number of healthy tasks allowed during
8158	// a service deployment, as specified in the DeploymentConfiguration.
8159	//
8160	// CODE_DEPLOY
8161	//
8162	// The blue/green (CODE_DEPLOY) deployment type uses the blue/green deployment
8163	// model powered by AWS CodeDeploy, which allows you to verify a new deployment
8164	// of a service before sending production traffic to it.
8165	//
8166	// EXTERNAL
8167	//
8168	// The external (EXTERNAL) deployment type enables you to use any third-party
8169	// deployment controller for full control over the deployment process for an
8170	// Amazon ECS service.
8171	//
8172	// Type is a required field
8173	Type *string `locationName:"type" type:"string" required:"true" enum:"DeploymentControllerType"`
8174}
8175
8176// String returns the string representation
8177func (s DeploymentController) String() string {
8178	return awsutil.Prettify(s)
8179}
8180
8181// GoString returns the string representation
8182func (s DeploymentController) GoString() string {
8183	return s.String()
8184}
8185
8186// Validate inspects the fields of the type to determine if they are valid.
8187func (s *DeploymentController) Validate() error {
8188	invalidParams := request.ErrInvalidParams{Context: "DeploymentController"}
8189	if s.Type == nil {
8190		invalidParams.Add(request.NewErrParamRequired("Type"))
8191	}
8192
8193	if invalidParams.Len() > 0 {
8194		return invalidParams
8195	}
8196	return nil
8197}
8198
8199// SetType sets the Type field's value.
8200func (s *DeploymentController) SetType(v string) *DeploymentController {
8201	s.Type = &v
8202	return s
8203}
8204
8205type DeregisterContainerInstanceInput struct {
8206	_ struct{} `type:"structure"`
8207
8208	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
8209	// the container instance to deregister. If you do not specify a cluster, the
8210	// default cluster is assumed.
8211	Cluster *string `locationName:"cluster" type:"string"`
8212
8213	// The container instance ID or full ARN of the container instance to deregister.
8214	// The ARN contains the arn:aws:ecs namespace, followed by the Region of the
8215	// container instance, the AWS account ID of the container instance owner, the
8216	// container-instance namespace, and then the container instance ID. For example,
8217	// arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
8218	//
8219	// ContainerInstance is a required field
8220	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
8221
8222	// Forces the deregistration of the container instance. If you have tasks running
8223	// on the container instance when you deregister it with the force option, these
8224	// tasks remain running until you terminate the instance or the tasks stop through
8225	// some other means, but they are orphaned (no longer monitored or accounted
8226	// for by Amazon ECS). If an orphaned task on your container instance is part
8227	// of an Amazon ECS service, then the service scheduler starts another copy
8228	// of that task, on a different container instance if possible.
8229	//
8230	// Any containers in orphaned service tasks that are registered with a Classic
8231	// Load Balancer or an Application Load Balancer target group are deregistered.
8232	// They begin connection draining according to the settings on the load balancer
8233	// or target group.
8234	Force *bool `locationName:"force" type:"boolean"`
8235}
8236
8237// String returns the string representation
8238func (s DeregisterContainerInstanceInput) String() string {
8239	return awsutil.Prettify(s)
8240}
8241
8242// GoString returns the string representation
8243func (s DeregisterContainerInstanceInput) GoString() string {
8244	return s.String()
8245}
8246
8247// Validate inspects the fields of the type to determine if they are valid.
8248func (s *DeregisterContainerInstanceInput) Validate() error {
8249	invalidParams := request.ErrInvalidParams{Context: "DeregisterContainerInstanceInput"}
8250	if s.ContainerInstance == nil {
8251		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
8252	}
8253
8254	if invalidParams.Len() > 0 {
8255		return invalidParams
8256	}
8257	return nil
8258}
8259
8260// SetCluster sets the Cluster field's value.
8261func (s *DeregisterContainerInstanceInput) SetCluster(v string) *DeregisterContainerInstanceInput {
8262	s.Cluster = &v
8263	return s
8264}
8265
8266// SetContainerInstance sets the ContainerInstance field's value.
8267func (s *DeregisterContainerInstanceInput) SetContainerInstance(v string) *DeregisterContainerInstanceInput {
8268	s.ContainerInstance = &v
8269	return s
8270}
8271
8272// SetForce sets the Force field's value.
8273func (s *DeregisterContainerInstanceInput) SetForce(v bool) *DeregisterContainerInstanceInput {
8274	s.Force = &v
8275	return s
8276}
8277
8278type DeregisterContainerInstanceOutput struct {
8279	_ struct{} `type:"structure"`
8280
8281	// The container instance that was deregistered.
8282	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
8283}
8284
8285// String returns the string representation
8286func (s DeregisterContainerInstanceOutput) String() string {
8287	return awsutil.Prettify(s)
8288}
8289
8290// GoString returns the string representation
8291func (s DeregisterContainerInstanceOutput) GoString() string {
8292	return s.String()
8293}
8294
8295// SetContainerInstance sets the ContainerInstance field's value.
8296func (s *DeregisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *DeregisterContainerInstanceOutput {
8297	s.ContainerInstance = v
8298	return s
8299}
8300
8301type DeregisterTaskDefinitionInput struct {
8302	_ struct{} `type:"structure"`
8303
8304	// The family and revision (family:revision) or full Amazon Resource Name (ARN)
8305	// of the task definition to deregister. You must specify a revision.
8306	//
8307	// TaskDefinition is a required field
8308	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
8309}
8310
8311// String returns the string representation
8312func (s DeregisterTaskDefinitionInput) String() string {
8313	return awsutil.Prettify(s)
8314}
8315
8316// GoString returns the string representation
8317func (s DeregisterTaskDefinitionInput) GoString() string {
8318	return s.String()
8319}
8320
8321// Validate inspects the fields of the type to determine if they are valid.
8322func (s *DeregisterTaskDefinitionInput) Validate() error {
8323	invalidParams := request.ErrInvalidParams{Context: "DeregisterTaskDefinitionInput"}
8324	if s.TaskDefinition == nil {
8325		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
8326	}
8327
8328	if invalidParams.Len() > 0 {
8329		return invalidParams
8330	}
8331	return nil
8332}
8333
8334// SetTaskDefinition sets the TaskDefinition field's value.
8335func (s *DeregisterTaskDefinitionInput) SetTaskDefinition(v string) *DeregisterTaskDefinitionInput {
8336	s.TaskDefinition = &v
8337	return s
8338}
8339
8340type DeregisterTaskDefinitionOutput struct {
8341	_ struct{} `type:"structure"`
8342
8343	// The full description of the deregistered task.
8344	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
8345}
8346
8347// String returns the string representation
8348func (s DeregisterTaskDefinitionOutput) String() string {
8349	return awsutil.Prettify(s)
8350}
8351
8352// GoString returns the string representation
8353func (s DeregisterTaskDefinitionOutput) GoString() string {
8354	return s.String()
8355}
8356
8357// SetTaskDefinition sets the TaskDefinition field's value.
8358func (s *DeregisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DeregisterTaskDefinitionOutput {
8359	s.TaskDefinition = v
8360	return s
8361}
8362
8363type DescribeClustersInput struct {
8364	_ struct{} `type:"structure"`
8365
8366	// A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN)
8367	// entries. If you do not specify a cluster, the default cluster is assumed.
8368	Clusters []*string `locationName:"clusters" type:"list"`
8369
8370	// Additional information about your clusters to be separated by launch type,
8371	// including:
8372	//
8373	//    * runningEC2TasksCount
8374	//
8375	//    * runningFargateTasksCount
8376	//
8377	//    * pendingEC2TasksCount
8378	//
8379	//    * pendingFargateTasksCount
8380	//
8381	//    * activeEC2ServiceCount
8382	//
8383	//    * activeFargateServiceCount
8384	//
8385	//    * drainingEC2ServiceCount
8386	//
8387	//    * drainingFargateServiceCount
8388	Include []*string `locationName:"include" type:"list"`
8389}
8390
8391// String returns the string representation
8392func (s DescribeClustersInput) String() string {
8393	return awsutil.Prettify(s)
8394}
8395
8396// GoString returns the string representation
8397func (s DescribeClustersInput) GoString() string {
8398	return s.String()
8399}
8400
8401// SetClusters sets the Clusters field's value.
8402func (s *DescribeClustersInput) SetClusters(v []*string) *DescribeClustersInput {
8403	s.Clusters = v
8404	return s
8405}
8406
8407// SetInclude sets the Include field's value.
8408func (s *DescribeClustersInput) SetInclude(v []*string) *DescribeClustersInput {
8409	s.Include = v
8410	return s
8411}
8412
8413type DescribeClustersOutput struct {
8414	_ struct{} `type:"structure"`
8415
8416	// The list of clusters.
8417	Clusters []*Cluster `locationName:"clusters" type:"list"`
8418
8419	// Any failures associated with the call.
8420	Failures []*Failure `locationName:"failures" type:"list"`
8421}
8422
8423// String returns the string representation
8424func (s DescribeClustersOutput) String() string {
8425	return awsutil.Prettify(s)
8426}
8427
8428// GoString returns the string representation
8429func (s DescribeClustersOutput) GoString() string {
8430	return s.String()
8431}
8432
8433// SetClusters sets the Clusters field's value.
8434func (s *DescribeClustersOutput) SetClusters(v []*Cluster) *DescribeClustersOutput {
8435	s.Clusters = v
8436	return s
8437}
8438
8439// SetFailures sets the Failures field's value.
8440func (s *DescribeClustersOutput) SetFailures(v []*Failure) *DescribeClustersOutput {
8441	s.Failures = v
8442	return s
8443}
8444
8445type DescribeContainerInstancesInput struct {
8446	_ struct{} `type:"structure"`
8447
8448	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
8449	// the container instances to describe. If you do not specify a cluster, the
8450	// default cluster is assumed. This parameter is required if the container instance
8451	// or container instances you are describing were launched in any cluster other
8452	// than the default cluster.
8453	Cluster *string `locationName:"cluster" type:"string"`
8454
8455	// A list of up to 100 container instance IDs or full Amazon Resource Name (ARN)
8456	// entries.
8457	//
8458	// ContainerInstances is a required field
8459	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
8460
8461	// Specifies whether you want to see the resource tags for the container instance.
8462	// If TAGS is specified, the tags are included in the response. If this field
8463	// is omitted, tags are not included in the response.
8464	Include []*string `locationName:"include" type:"list"`
8465}
8466
8467// String returns the string representation
8468func (s DescribeContainerInstancesInput) String() string {
8469	return awsutil.Prettify(s)
8470}
8471
8472// GoString returns the string representation
8473func (s DescribeContainerInstancesInput) GoString() string {
8474	return s.String()
8475}
8476
8477// Validate inspects the fields of the type to determine if they are valid.
8478func (s *DescribeContainerInstancesInput) Validate() error {
8479	invalidParams := request.ErrInvalidParams{Context: "DescribeContainerInstancesInput"}
8480	if s.ContainerInstances == nil {
8481		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
8482	}
8483
8484	if invalidParams.Len() > 0 {
8485		return invalidParams
8486	}
8487	return nil
8488}
8489
8490// SetCluster sets the Cluster field's value.
8491func (s *DescribeContainerInstancesInput) SetCluster(v string) *DescribeContainerInstancesInput {
8492	s.Cluster = &v
8493	return s
8494}
8495
8496// SetContainerInstances sets the ContainerInstances field's value.
8497func (s *DescribeContainerInstancesInput) SetContainerInstances(v []*string) *DescribeContainerInstancesInput {
8498	s.ContainerInstances = v
8499	return s
8500}
8501
8502// SetInclude sets the Include field's value.
8503func (s *DescribeContainerInstancesInput) SetInclude(v []*string) *DescribeContainerInstancesInput {
8504	s.Include = v
8505	return s
8506}
8507
8508type DescribeContainerInstancesOutput struct {
8509	_ struct{} `type:"structure"`
8510
8511	// The list of container instances.
8512	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
8513
8514	// Any failures associated with the call.
8515	Failures []*Failure `locationName:"failures" type:"list"`
8516}
8517
8518// String returns the string representation
8519func (s DescribeContainerInstancesOutput) String() string {
8520	return awsutil.Prettify(s)
8521}
8522
8523// GoString returns the string representation
8524func (s DescribeContainerInstancesOutput) GoString() string {
8525	return s.String()
8526}
8527
8528// SetContainerInstances sets the ContainerInstances field's value.
8529func (s *DescribeContainerInstancesOutput) SetContainerInstances(v []*ContainerInstance) *DescribeContainerInstancesOutput {
8530	s.ContainerInstances = v
8531	return s
8532}
8533
8534// SetFailures sets the Failures field's value.
8535func (s *DescribeContainerInstancesOutput) SetFailures(v []*Failure) *DescribeContainerInstancesOutput {
8536	s.Failures = v
8537	return s
8538}
8539
8540type DescribeServicesInput struct {
8541	_ struct{} `type:"structure"`
8542
8543	// The short name or full Amazon Resource Name (ARN)the cluster that hosts the
8544	// service to describe. If you do not specify a cluster, the default cluster
8545	// is assumed. This parameter is required if the service or services you are
8546	// describing were launched in any cluster other than the default cluster.
8547	Cluster *string `locationName:"cluster" type:"string"`
8548
8549	// Specifies whether you want to see the resource tags for the service. If TAGS
8550	// is specified, the tags are included in the response. If this field is omitted,
8551	// tags are not included in the response.
8552	Include []*string `locationName:"include" type:"list"`
8553
8554	// A list of services to describe. You may specify up to 10 services to describe
8555	// in a single operation.
8556	//
8557	// Services is a required field
8558	Services []*string `locationName:"services" type:"list" required:"true"`
8559}
8560
8561// String returns the string representation
8562func (s DescribeServicesInput) String() string {
8563	return awsutil.Prettify(s)
8564}
8565
8566// GoString returns the string representation
8567func (s DescribeServicesInput) GoString() string {
8568	return s.String()
8569}
8570
8571// Validate inspects the fields of the type to determine if they are valid.
8572func (s *DescribeServicesInput) Validate() error {
8573	invalidParams := request.ErrInvalidParams{Context: "DescribeServicesInput"}
8574	if s.Services == nil {
8575		invalidParams.Add(request.NewErrParamRequired("Services"))
8576	}
8577
8578	if invalidParams.Len() > 0 {
8579		return invalidParams
8580	}
8581	return nil
8582}
8583
8584// SetCluster sets the Cluster field's value.
8585func (s *DescribeServicesInput) SetCluster(v string) *DescribeServicesInput {
8586	s.Cluster = &v
8587	return s
8588}
8589
8590// SetInclude sets the Include field's value.
8591func (s *DescribeServicesInput) SetInclude(v []*string) *DescribeServicesInput {
8592	s.Include = v
8593	return s
8594}
8595
8596// SetServices sets the Services field's value.
8597func (s *DescribeServicesInput) SetServices(v []*string) *DescribeServicesInput {
8598	s.Services = v
8599	return s
8600}
8601
8602type DescribeServicesOutput struct {
8603	_ struct{} `type:"structure"`
8604
8605	// Any failures associated with the call.
8606	Failures []*Failure `locationName:"failures" type:"list"`
8607
8608	// The list of services described.
8609	Services []*Service `locationName:"services" type:"list"`
8610}
8611
8612// String returns the string representation
8613func (s DescribeServicesOutput) String() string {
8614	return awsutil.Prettify(s)
8615}
8616
8617// GoString returns the string representation
8618func (s DescribeServicesOutput) GoString() string {
8619	return s.String()
8620}
8621
8622// SetFailures sets the Failures field's value.
8623func (s *DescribeServicesOutput) SetFailures(v []*Failure) *DescribeServicesOutput {
8624	s.Failures = v
8625	return s
8626}
8627
8628// SetServices sets the Services field's value.
8629func (s *DescribeServicesOutput) SetServices(v []*Service) *DescribeServicesOutput {
8630	s.Services = v
8631	return s
8632}
8633
8634type DescribeTaskDefinitionInput struct {
8635	_ struct{} `type:"structure"`
8636
8637	// Specifies whether to see the resource tags for the task definition. If TAGS
8638	// is specified, the tags are included in the response. If this field is omitted,
8639	// tags are not included in the response.
8640	Include []*string `locationName:"include" type:"list"`
8641
8642	// The family for the latest ACTIVE revision, family and revision (family:revision)
8643	// for a specific revision in the family, or full Amazon Resource Name (ARN)
8644	// of the task definition to describe.
8645	//
8646	// TaskDefinition is a required field
8647	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
8648}
8649
8650// String returns the string representation
8651func (s DescribeTaskDefinitionInput) String() string {
8652	return awsutil.Prettify(s)
8653}
8654
8655// GoString returns the string representation
8656func (s DescribeTaskDefinitionInput) GoString() string {
8657	return s.String()
8658}
8659
8660// Validate inspects the fields of the type to determine if they are valid.
8661func (s *DescribeTaskDefinitionInput) Validate() error {
8662	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskDefinitionInput"}
8663	if s.TaskDefinition == nil {
8664		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
8665	}
8666
8667	if invalidParams.Len() > 0 {
8668		return invalidParams
8669	}
8670	return nil
8671}
8672
8673// SetInclude sets the Include field's value.
8674func (s *DescribeTaskDefinitionInput) SetInclude(v []*string) *DescribeTaskDefinitionInput {
8675	s.Include = v
8676	return s
8677}
8678
8679// SetTaskDefinition sets the TaskDefinition field's value.
8680func (s *DescribeTaskDefinitionInput) SetTaskDefinition(v string) *DescribeTaskDefinitionInput {
8681	s.TaskDefinition = &v
8682	return s
8683}
8684
8685type DescribeTaskDefinitionOutput struct {
8686	_ struct{} `type:"structure"`
8687
8688	// The metadata that is applied to the task definition to help you categorize
8689	// and organize them. Each tag consists of a key and an optional value, both
8690	// of which you define. Tag keys can have a maximum character length of 128
8691	// characters, and tag values can have a maximum length of 256 characters.
8692	Tags []*Tag `locationName:"tags" type:"list"`
8693
8694	// The full task definition description.
8695	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
8696}
8697
8698// String returns the string representation
8699func (s DescribeTaskDefinitionOutput) String() string {
8700	return awsutil.Prettify(s)
8701}
8702
8703// GoString returns the string representation
8704func (s DescribeTaskDefinitionOutput) GoString() string {
8705	return s.String()
8706}
8707
8708// SetTags sets the Tags field's value.
8709func (s *DescribeTaskDefinitionOutput) SetTags(v []*Tag) *DescribeTaskDefinitionOutput {
8710	s.Tags = v
8711	return s
8712}
8713
8714// SetTaskDefinition sets the TaskDefinition field's value.
8715func (s *DescribeTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DescribeTaskDefinitionOutput {
8716	s.TaskDefinition = v
8717	return s
8718}
8719
8720type DescribeTaskSetsInput struct {
8721	_ struct{} `type:"structure"`
8722
8723	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
8724	// the service that the task sets exist in.
8725	//
8726	// Cluster is a required field
8727	Cluster *string `locationName:"cluster" type:"string" required:"true"`
8728
8729	// The short name or full Amazon Resource Name (ARN) of the service that the
8730	// task sets exist in.
8731	//
8732	// Service is a required field
8733	Service *string `locationName:"service" type:"string" required:"true"`
8734
8735	// The ID or full Amazon Resource Name (ARN) of task sets to describe.
8736	TaskSets []*string `locationName:"taskSets" type:"list"`
8737}
8738
8739// String returns the string representation
8740func (s DescribeTaskSetsInput) String() string {
8741	return awsutil.Prettify(s)
8742}
8743
8744// GoString returns the string representation
8745func (s DescribeTaskSetsInput) GoString() string {
8746	return s.String()
8747}
8748
8749// Validate inspects the fields of the type to determine if they are valid.
8750func (s *DescribeTaskSetsInput) Validate() error {
8751	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskSetsInput"}
8752	if s.Cluster == nil {
8753		invalidParams.Add(request.NewErrParamRequired("Cluster"))
8754	}
8755	if s.Service == nil {
8756		invalidParams.Add(request.NewErrParamRequired("Service"))
8757	}
8758
8759	if invalidParams.Len() > 0 {
8760		return invalidParams
8761	}
8762	return nil
8763}
8764
8765// SetCluster sets the Cluster field's value.
8766func (s *DescribeTaskSetsInput) SetCluster(v string) *DescribeTaskSetsInput {
8767	s.Cluster = &v
8768	return s
8769}
8770
8771// SetService sets the Service field's value.
8772func (s *DescribeTaskSetsInput) SetService(v string) *DescribeTaskSetsInput {
8773	s.Service = &v
8774	return s
8775}
8776
8777// SetTaskSets sets the TaskSets field's value.
8778func (s *DescribeTaskSetsInput) SetTaskSets(v []*string) *DescribeTaskSetsInput {
8779	s.TaskSets = v
8780	return s
8781}
8782
8783type DescribeTaskSetsOutput struct {
8784	_ struct{} `type:"structure"`
8785
8786	// Any failures associated with the call.
8787	Failures []*Failure `locationName:"failures" type:"list"`
8788
8789	// The list of task sets described.
8790	TaskSets []*TaskSet `locationName:"taskSets" type:"list"`
8791}
8792
8793// String returns the string representation
8794func (s DescribeTaskSetsOutput) String() string {
8795	return awsutil.Prettify(s)
8796}
8797
8798// GoString returns the string representation
8799func (s DescribeTaskSetsOutput) GoString() string {
8800	return s.String()
8801}
8802
8803// SetFailures sets the Failures field's value.
8804func (s *DescribeTaskSetsOutput) SetFailures(v []*Failure) *DescribeTaskSetsOutput {
8805	s.Failures = v
8806	return s
8807}
8808
8809// SetTaskSets sets the TaskSets field's value.
8810func (s *DescribeTaskSetsOutput) SetTaskSets(v []*TaskSet) *DescribeTaskSetsOutput {
8811	s.TaskSets = v
8812	return s
8813}
8814
8815type DescribeTasksInput struct {
8816	_ struct{} `type:"structure"`
8817
8818	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
8819	// the task or tasks to describe. If you do not specify a cluster, the default
8820	// cluster is assumed. This parameter is required if the task or tasks you are
8821	// describing were launched in any cluster other than the default cluster.
8822	Cluster *string `locationName:"cluster" type:"string"`
8823
8824	// Specifies whether you want to see the resource tags for the task. If TAGS
8825	// is specified, the tags are included in the response. If this field is omitted,
8826	// tags are not included in the response.
8827	Include []*string `locationName:"include" type:"list"`
8828
8829	// A list of up to 100 task IDs or full ARN entries.
8830	//
8831	// Tasks is a required field
8832	Tasks []*string `locationName:"tasks" type:"list" required:"true"`
8833}
8834
8835// String returns the string representation
8836func (s DescribeTasksInput) String() string {
8837	return awsutil.Prettify(s)
8838}
8839
8840// GoString returns the string representation
8841func (s DescribeTasksInput) GoString() string {
8842	return s.String()
8843}
8844
8845// Validate inspects the fields of the type to determine if they are valid.
8846func (s *DescribeTasksInput) Validate() error {
8847	invalidParams := request.ErrInvalidParams{Context: "DescribeTasksInput"}
8848	if s.Tasks == nil {
8849		invalidParams.Add(request.NewErrParamRequired("Tasks"))
8850	}
8851
8852	if invalidParams.Len() > 0 {
8853		return invalidParams
8854	}
8855	return nil
8856}
8857
8858// SetCluster sets the Cluster field's value.
8859func (s *DescribeTasksInput) SetCluster(v string) *DescribeTasksInput {
8860	s.Cluster = &v
8861	return s
8862}
8863
8864// SetInclude sets the Include field's value.
8865func (s *DescribeTasksInput) SetInclude(v []*string) *DescribeTasksInput {
8866	s.Include = v
8867	return s
8868}
8869
8870// SetTasks sets the Tasks field's value.
8871func (s *DescribeTasksInput) SetTasks(v []*string) *DescribeTasksInput {
8872	s.Tasks = v
8873	return s
8874}
8875
8876type DescribeTasksOutput struct {
8877	_ struct{} `type:"structure"`
8878
8879	// Any failures associated with the call.
8880	Failures []*Failure `locationName:"failures" type:"list"`
8881
8882	// The list of tasks.
8883	Tasks []*Task `locationName:"tasks" type:"list"`
8884}
8885
8886// String returns the string representation
8887func (s DescribeTasksOutput) String() string {
8888	return awsutil.Prettify(s)
8889}
8890
8891// GoString returns the string representation
8892func (s DescribeTasksOutput) GoString() string {
8893	return s.String()
8894}
8895
8896// SetFailures sets the Failures field's value.
8897func (s *DescribeTasksOutput) SetFailures(v []*Failure) *DescribeTasksOutput {
8898	s.Failures = v
8899	return s
8900}
8901
8902// SetTasks sets the Tasks field's value.
8903func (s *DescribeTasksOutput) SetTasks(v []*Task) *DescribeTasksOutput {
8904	s.Tasks = v
8905	return s
8906}
8907
8908// An object representing a container instance host device.
8909type Device struct {
8910	_ struct{} `type:"structure"`
8911
8912	// The path inside the container at which to expose the host device.
8913	ContainerPath *string `locationName:"containerPath" type:"string"`
8914
8915	// The path for the device on the host container instance.
8916	//
8917	// HostPath is a required field
8918	HostPath *string `locationName:"hostPath" type:"string" required:"true"`
8919
8920	// The explicit permissions to provide to the container for the device. By default,
8921	// the container has permissions for read, write, and mknod for the device.
8922	Permissions []*string `locationName:"permissions" type:"list"`
8923}
8924
8925// String returns the string representation
8926func (s Device) String() string {
8927	return awsutil.Prettify(s)
8928}
8929
8930// GoString returns the string representation
8931func (s Device) GoString() string {
8932	return s.String()
8933}
8934
8935// Validate inspects the fields of the type to determine if they are valid.
8936func (s *Device) Validate() error {
8937	invalidParams := request.ErrInvalidParams{Context: "Device"}
8938	if s.HostPath == nil {
8939		invalidParams.Add(request.NewErrParamRequired("HostPath"))
8940	}
8941
8942	if invalidParams.Len() > 0 {
8943		return invalidParams
8944	}
8945	return nil
8946}
8947
8948// SetContainerPath sets the ContainerPath field's value.
8949func (s *Device) SetContainerPath(v string) *Device {
8950	s.ContainerPath = &v
8951	return s
8952}
8953
8954// SetHostPath sets the HostPath field's value.
8955func (s *Device) SetHostPath(v string) *Device {
8956	s.HostPath = &v
8957	return s
8958}
8959
8960// SetPermissions sets the Permissions field's value.
8961func (s *Device) SetPermissions(v []*string) *Device {
8962	s.Permissions = v
8963	return s
8964}
8965
8966type DiscoverPollEndpointInput struct {
8967	_ struct{} `type:"structure"`
8968
8969	// The short name or full Amazon Resource Name (ARN) of the cluster to which
8970	// the container instance belongs.
8971	Cluster *string `locationName:"cluster" type:"string"`
8972
8973	// The container instance ID or full ARN of the container instance. The ARN
8974	// contains the arn:aws:ecs namespace, followed by the Region of the container
8975	// instance, the AWS account ID of the container instance owner, the container-instance
8976	// namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
8977	ContainerInstance *string `locationName:"containerInstance" type:"string"`
8978}
8979
8980// String returns the string representation
8981func (s DiscoverPollEndpointInput) String() string {
8982	return awsutil.Prettify(s)
8983}
8984
8985// GoString returns the string representation
8986func (s DiscoverPollEndpointInput) GoString() string {
8987	return s.String()
8988}
8989
8990// SetCluster sets the Cluster field's value.
8991func (s *DiscoverPollEndpointInput) SetCluster(v string) *DiscoverPollEndpointInput {
8992	s.Cluster = &v
8993	return s
8994}
8995
8996// SetContainerInstance sets the ContainerInstance field's value.
8997func (s *DiscoverPollEndpointInput) SetContainerInstance(v string) *DiscoverPollEndpointInput {
8998	s.ContainerInstance = &v
8999	return s
9000}
9001
9002type DiscoverPollEndpointOutput struct {
9003	_ struct{} `type:"structure"`
9004
9005	// The endpoint for the Amazon ECS agent to poll.
9006	Endpoint *string `locationName:"endpoint" type:"string"`
9007
9008	// The telemetry endpoint for the Amazon ECS agent.
9009	TelemetryEndpoint *string `locationName:"telemetryEndpoint" type:"string"`
9010}
9011
9012// String returns the string representation
9013func (s DiscoverPollEndpointOutput) String() string {
9014	return awsutil.Prettify(s)
9015}
9016
9017// GoString returns the string representation
9018func (s DiscoverPollEndpointOutput) GoString() string {
9019	return s.String()
9020}
9021
9022// SetEndpoint sets the Endpoint field's value.
9023func (s *DiscoverPollEndpointOutput) SetEndpoint(v string) *DiscoverPollEndpointOutput {
9024	s.Endpoint = &v
9025	return s
9026}
9027
9028// SetTelemetryEndpoint sets the TelemetryEndpoint field's value.
9029func (s *DiscoverPollEndpointOutput) SetTelemetryEndpoint(v string) *DiscoverPollEndpointOutput {
9030	s.TelemetryEndpoint = &v
9031	return s
9032}
9033
9034// This parameter is specified when you are using Docker volumes. Docker volumes
9035// are only supported when you are using the EC2 launch type. Windows containers
9036// only support the use of the local driver. To use bind mounts, specify a host
9037// instead.
9038type DockerVolumeConfiguration struct {
9039	_ struct{} `type:"structure"`
9040
9041	// If this value is true, the Docker volume is created if it does not already
9042	// exist.
9043	//
9044	// This field is only used if the scope is shared.
9045	Autoprovision *bool `locationName:"autoprovision" type:"boolean"`
9046
9047	// The Docker volume driver to use. The driver value must match the driver name
9048	// provided by Docker because it is used for task placement. If the driver was
9049	// installed using the Docker plugin CLI, use docker plugin ls to retrieve the
9050	// driver name from your container instance. If the driver was installed using
9051	// another method, use Docker plugin discovery to retrieve the driver name.
9052	// For more information, see Docker plugin discovery (https://docs.docker.com/engine/extend/plugin_api/#plugin-discovery).
9053	// This parameter maps to Driver in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
9054	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
9055	// and the xxdriver option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
9056	Driver *string `locationName:"driver" type:"string"`
9057
9058	// A map of Docker driver-specific options passed through. This parameter maps
9059	// to DriverOpts in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
9060	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
9061	// and the xxopt option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
9062	DriverOpts map[string]*string `locationName:"driverOpts" type:"map"`
9063
9064	// Custom metadata to add to your Docker volume. This parameter maps to Labels
9065	// in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
9066	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
9067	// and the xxlabel option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
9068	Labels map[string]*string `locationName:"labels" type:"map"`
9069
9070	// The scope for the Docker volume that determines its lifecycle. Docker volumes
9071	// that are scoped to a task are automatically provisioned when the task starts
9072	// and destroyed when the task stops. Docker volumes that are scoped as shared
9073	// persist after the task stops.
9074	Scope *string `locationName:"scope" type:"string" enum:"Scope"`
9075}
9076
9077// String returns the string representation
9078func (s DockerVolumeConfiguration) String() string {
9079	return awsutil.Prettify(s)
9080}
9081
9082// GoString returns the string representation
9083func (s DockerVolumeConfiguration) GoString() string {
9084	return s.String()
9085}
9086
9087// SetAutoprovision sets the Autoprovision field's value.
9088func (s *DockerVolumeConfiguration) SetAutoprovision(v bool) *DockerVolumeConfiguration {
9089	s.Autoprovision = &v
9090	return s
9091}
9092
9093// SetDriver sets the Driver field's value.
9094func (s *DockerVolumeConfiguration) SetDriver(v string) *DockerVolumeConfiguration {
9095	s.Driver = &v
9096	return s
9097}
9098
9099// SetDriverOpts sets the DriverOpts field's value.
9100func (s *DockerVolumeConfiguration) SetDriverOpts(v map[string]*string) *DockerVolumeConfiguration {
9101	s.DriverOpts = v
9102	return s
9103}
9104
9105// SetLabels sets the Labels field's value.
9106func (s *DockerVolumeConfiguration) SetLabels(v map[string]*string) *DockerVolumeConfiguration {
9107	s.Labels = v
9108	return s
9109}
9110
9111// SetScope sets the Scope field's value.
9112func (s *DockerVolumeConfiguration) SetScope(v string) *DockerVolumeConfiguration {
9113	s.Scope = &v
9114	return s
9115}
9116
9117// A failed resource.
9118type Failure struct {
9119	_ struct{} `type:"structure"`
9120
9121	// The Amazon Resource Name (ARN) of the failed resource.
9122	Arn *string `locationName:"arn" type:"string"`
9123
9124	// The reason for the failure.
9125	Reason *string `locationName:"reason" type:"string"`
9126}
9127
9128// String returns the string representation
9129func (s Failure) String() string {
9130	return awsutil.Prettify(s)
9131}
9132
9133// GoString returns the string representation
9134func (s Failure) GoString() string {
9135	return s.String()
9136}
9137
9138// SetArn sets the Arn field's value.
9139func (s *Failure) SetArn(v string) *Failure {
9140	s.Arn = &v
9141	return s
9142}
9143
9144// SetReason sets the Reason field's value.
9145func (s *Failure) SetReason(v string) *Failure {
9146	s.Reason = &v
9147	return s
9148}
9149
9150// An object representing a container health check. Health check parameters
9151// that are specified in a container definition override any Docker health checks
9152// that exist in the container image (such as those specified in a parent image
9153// or from the image's Dockerfile).
9154//
9155// The following are notes about container health check support:
9156//
9157//    * Container health checks require version 1.17.0 or greater of the Amazon
9158//    ECS container agent. For more information, see Updating the Amazon ECS
9159//    Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html).
9160//
9161//    * Container health checks are supported for Fargate tasks if you are using
9162//    platform version 1.1.0 or greater. For more information, see AWS Fargate
9163//    Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).
9164//
9165//    * Container health checks are not supported for tasks that are part of
9166//    a service that is configured to use a Classic Load Balancer.
9167type HealthCheck struct {
9168	_ struct{} `type:"structure"`
9169
9170	// A string array representing the command that the container runs to determine
9171	// if it is healthy. The string array must start with CMD to execute the command
9172	// arguments directly, or CMD-SHELL to run the command with the container's
9173	// default shell. For example:
9174	//
9175	// [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]
9176	//
9177	// An exit code of 0 indicates success, and non-zero exit code indicates failure.
9178	// For more information, see HealthCheck in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
9179	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/).
9180	//
9181	// Command is a required field
9182	Command []*string `locationName:"command" type:"list" required:"true"`
9183
9184	// The time period in seconds between each health check execution. You may specify
9185	// between 5 and 300 seconds. The default value is 30 seconds.
9186	Interval *int64 `locationName:"interval" type:"integer"`
9187
9188	// The number of times to retry a failed health check before the container is
9189	// considered unhealthy. You may specify between 1 and 10 retries. The default
9190	// value is 3.
9191	Retries *int64 `locationName:"retries" type:"integer"`
9192
9193	// The optional grace period within which to provide containers time to bootstrap
9194	// before failed health checks count towards the maximum number of retries.
9195	// You may specify between 0 and 300 seconds. The startPeriod is disabled by
9196	// default.
9197	//
9198	// If a health check succeeds within the startPeriod, then the container is
9199	// considered healthy and any subsequent failures count toward the maximum number
9200	// of retries.
9201	StartPeriod *int64 `locationName:"startPeriod" type:"integer"`
9202
9203	// The time period in seconds to wait for a health check to succeed before it
9204	// is considered a failure. You may specify between 2 and 60 seconds. The default
9205	// value is 5.
9206	Timeout *int64 `locationName:"timeout" type:"integer"`
9207}
9208
9209// String returns the string representation
9210func (s HealthCheck) String() string {
9211	return awsutil.Prettify(s)
9212}
9213
9214// GoString returns the string representation
9215func (s HealthCheck) GoString() string {
9216	return s.String()
9217}
9218
9219// Validate inspects the fields of the type to determine if they are valid.
9220func (s *HealthCheck) Validate() error {
9221	invalidParams := request.ErrInvalidParams{Context: "HealthCheck"}
9222	if s.Command == nil {
9223		invalidParams.Add(request.NewErrParamRequired("Command"))
9224	}
9225
9226	if invalidParams.Len() > 0 {
9227		return invalidParams
9228	}
9229	return nil
9230}
9231
9232// SetCommand sets the Command field's value.
9233func (s *HealthCheck) SetCommand(v []*string) *HealthCheck {
9234	s.Command = v
9235	return s
9236}
9237
9238// SetInterval sets the Interval field's value.
9239func (s *HealthCheck) SetInterval(v int64) *HealthCheck {
9240	s.Interval = &v
9241	return s
9242}
9243
9244// SetRetries sets the Retries field's value.
9245func (s *HealthCheck) SetRetries(v int64) *HealthCheck {
9246	s.Retries = &v
9247	return s
9248}
9249
9250// SetStartPeriod sets the StartPeriod field's value.
9251func (s *HealthCheck) SetStartPeriod(v int64) *HealthCheck {
9252	s.StartPeriod = &v
9253	return s
9254}
9255
9256// SetTimeout sets the Timeout field's value.
9257func (s *HealthCheck) SetTimeout(v int64) *HealthCheck {
9258	s.Timeout = &v
9259	return s
9260}
9261
9262// Hostnames and IP address entries that are added to the /etc/hosts file of
9263// a container via the extraHosts parameter of its ContainerDefinition.
9264type HostEntry struct {
9265	_ struct{} `type:"structure"`
9266
9267	// The hostname to use in the /etc/hosts entry.
9268	//
9269	// Hostname is a required field
9270	Hostname *string `locationName:"hostname" type:"string" required:"true"`
9271
9272	// The IP address to use in the /etc/hosts entry.
9273	//
9274	// IpAddress is a required field
9275	IpAddress *string `locationName:"ipAddress" type:"string" required:"true"`
9276}
9277
9278// String returns the string representation
9279func (s HostEntry) String() string {
9280	return awsutil.Prettify(s)
9281}
9282
9283// GoString returns the string representation
9284func (s HostEntry) GoString() string {
9285	return s.String()
9286}
9287
9288// Validate inspects the fields of the type to determine if they are valid.
9289func (s *HostEntry) Validate() error {
9290	invalidParams := request.ErrInvalidParams{Context: "HostEntry"}
9291	if s.Hostname == nil {
9292		invalidParams.Add(request.NewErrParamRequired("Hostname"))
9293	}
9294	if s.IpAddress == nil {
9295		invalidParams.Add(request.NewErrParamRequired("IpAddress"))
9296	}
9297
9298	if invalidParams.Len() > 0 {
9299		return invalidParams
9300	}
9301	return nil
9302}
9303
9304// SetHostname sets the Hostname field's value.
9305func (s *HostEntry) SetHostname(v string) *HostEntry {
9306	s.Hostname = &v
9307	return s
9308}
9309
9310// SetIpAddress sets the IpAddress field's value.
9311func (s *HostEntry) SetIpAddress(v string) *HostEntry {
9312	s.IpAddress = &v
9313	return s
9314}
9315
9316// Details on a container instance bind mount host volume.
9317type HostVolumeProperties struct {
9318	_ struct{} `type:"structure"`
9319
9320	// When the host parameter is used, specify a sourcePath to declare the path
9321	// on the host container instance that is presented to the container. If this
9322	// parameter is empty, then the Docker daemon has assigned a host path for you.
9323	// If the host parameter contains a sourcePath file location, then the data
9324	// volume persists at the specified location on the host container instance
9325	// until you delete it manually. If the sourcePath value does not exist on the
9326	// host container instance, the Docker daemon creates it. If the location does
9327	// exist, the contents of the source path folder are exported.
9328	//
9329	// If you are using the Fargate launch type, the sourcePath parameter is not
9330	// supported.
9331	SourcePath *string `locationName:"sourcePath" type:"string"`
9332}
9333
9334// String returns the string representation
9335func (s HostVolumeProperties) String() string {
9336	return awsutil.Prettify(s)
9337}
9338
9339// GoString returns the string representation
9340func (s HostVolumeProperties) GoString() string {
9341	return s.String()
9342}
9343
9344// SetSourcePath sets the SourcePath field's value.
9345func (s *HostVolumeProperties) SetSourcePath(v string) *HostVolumeProperties {
9346	s.SourcePath = &v
9347	return s
9348}
9349
9350// The Linux capabilities for the container that are added to or dropped from
9351// the default configuration provided by Docker. For more information on the
9352// default capabilities and the non-default available capabilities, see Runtime
9353// privilege and Linux capabilities (https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities)
9354// in the Docker run reference. For more detailed information on these Linux
9355// capabilities, see the capabilities(7) (http://man7.org/linux/man-pages/man7/capabilities.7.html)
9356// Linux manual page.
9357type KernelCapabilities struct {
9358	_ struct{} `type:"structure"`
9359
9360	// The Linux capabilities for the container that have been added to the default
9361	// configuration provided by Docker. This parameter maps to CapAdd in the Create
9362	// a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
9363	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
9364	// and the --cap-add option to docker run (https://docs.docker.com/engine/reference/run/).
9365	//
9366	// If you are using tasks that use the Fargate launch type, the add parameter
9367	// is not supported.
9368	//
9369	// Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" |
9370	// "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK"
9371	// | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE"
9372	// | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW"
9373	// | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT"
9374	// | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" |
9375	// "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" |
9376	// "WAKE_ALARM"
9377	Add []*string `locationName:"add" type:"list"`
9378
9379	// The Linux capabilities for the container that have been removed from the
9380	// default configuration provided by Docker. This parameter maps to CapDrop
9381	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
9382	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
9383	// and the --cap-drop option to docker run (https://docs.docker.com/engine/reference/run/).
9384	//
9385	// Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" |
9386	// "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK"
9387	// | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE"
9388	// | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW"
9389	// | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT"
9390	// | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" |
9391	// "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" |
9392	// "WAKE_ALARM"
9393	Drop []*string `locationName:"drop" type:"list"`
9394}
9395
9396// String returns the string representation
9397func (s KernelCapabilities) String() string {
9398	return awsutil.Prettify(s)
9399}
9400
9401// GoString returns the string representation
9402func (s KernelCapabilities) GoString() string {
9403	return s.String()
9404}
9405
9406// SetAdd sets the Add field's value.
9407func (s *KernelCapabilities) SetAdd(v []*string) *KernelCapabilities {
9408	s.Add = v
9409	return s
9410}
9411
9412// SetDrop sets the Drop field's value.
9413func (s *KernelCapabilities) SetDrop(v []*string) *KernelCapabilities {
9414	s.Drop = v
9415	return s
9416}
9417
9418// A key-value pair object.
9419type KeyValuePair struct {
9420	_ struct{} `type:"structure"`
9421
9422	// The name of the key-value pair. For environment variables, this is the name
9423	// of the environment variable.
9424	Name *string `locationName:"name" type:"string"`
9425
9426	// The value of the key-value pair. For environment variables, this is the value
9427	// of the environment variable.
9428	Value *string `locationName:"value" type:"string"`
9429}
9430
9431// String returns the string representation
9432func (s KeyValuePair) String() string {
9433	return awsutil.Prettify(s)
9434}
9435
9436// GoString returns the string representation
9437func (s KeyValuePair) GoString() string {
9438	return s.String()
9439}
9440
9441// SetName sets the Name field's value.
9442func (s *KeyValuePair) SetName(v string) *KeyValuePair {
9443	s.Name = &v
9444	return s
9445}
9446
9447// SetValue sets the Value field's value.
9448func (s *KeyValuePair) SetValue(v string) *KeyValuePair {
9449	s.Value = &v
9450	return s
9451}
9452
9453// Linux-specific options that are applied to the container, such as Linux KernelCapabilities.
9454type LinuxParameters struct {
9455	_ struct{} `type:"structure"`
9456
9457	// The Linux capabilities for the container that are added to or dropped from
9458	// the default configuration provided by Docker.
9459	//
9460	// If you are using tasks that use the Fargate launch type, capabilities is
9461	// supported but the add parameter is not supported.
9462	Capabilities *KernelCapabilities `locationName:"capabilities" type:"structure"`
9463
9464	// Any host devices to expose to the container. This parameter maps to Devices
9465	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
9466	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
9467	// and the --device option to docker run (https://docs.docker.com/engine/reference/run/).
9468	//
9469	// If you are using tasks that use the Fargate launch type, the devices parameter
9470	// is not supported.
9471	Devices []*Device `locationName:"devices" type:"list"`
9472
9473	// Run an init process inside the container that forwards signals and reaps
9474	// processes. This parameter maps to the --init option to docker run (https://docs.docker.com/engine/reference/run/).
9475	// This parameter requires version 1.25 of the Docker Remote API or greater
9476	// on your container instance. To check the Docker Remote API version on your
9477	// container instance, log in to your container instance and run the following
9478	// command: sudo docker version --format '{{.Server.APIVersion}}'
9479	InitProcessEnabled *bool `locationName:"initProcessEnabled" type:"boolean"`
9480
9481	// The value for the size (in MiB) of the /dev/shm volume. This parameter maps
9482	// to the --shm-size option to docker run (https://docs.docker.com/engine/reference/run/).
9483	//
9484	// If you are using tasks that use the Fargate launch type, the sharedMemorySize
9485	// parameter is not supported.
9486	SharedMemorySize *int64 `locationName:"sharedMemorySize" type:"integer"`
9487
9488	// The container path, mount options, and size (in MiB) of the tmpfs mount.
9489	// This parameter maps to the --tmpfs option to docker run (https://docs.docker.com/engine/reference/run/).
9490	//
9491	// If you are using tasks that use the Fargate launch type, the tmpfs parameter
9492	// is not supported.
9493	Tmpfs []*Tmpfs `locationName:"tmpfs" type:"list"`
9494}
9495
9496// String returns the string representation
9497func (s LinuxParameters) String() string {
9498	return awsutil.Prettify(s)
9499}
9500
9501// GoString returns the string representation
9502func (s LinuxParameters) GoString() string {
9503	return s.String()
9504}
9505
9506// Validate inspects the fields of the type to determine if they are valid.
9507func (s *LinuxParameters) Validate() error {
9508	invalidParams := request.ErrInvalidParams{Context: "LinuxParameters"}
9509	if s.Devices != nil {
9510		for i, v := range s.Devices {
9511			if v == nil {
9512				continue
9513			}
9514			if err := v.Validate(); err != nil {
9515				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Devices", i), err.(request.ErrInvalidParams))
9516			}
9517		}
9518	}
9519	if s.Tmpfs != nil {
9520		for i, v := range s.Tmpfs {
9521			if v == nil {
9522				continue
9523			}
9524			if err := v.Validate(); err != nil {
9525				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tmpfs", i), err.(request.ErrInvalidParams))
9526			}
9527		}
9528	}
9529
9530	if invalidParams.Len() > 0 {
9531		return invalidParams
9532	}
9533	return nil
9534}
9535
9536// SetCapabilities sets the Capabilities field's value.
9537func (s *LinuxParameters) SetCapabilities(v *KernelCapabilities) *LinuxParameters {
9538	s.Capabilities = v
9539	return s
9540}
9541
9542// SetDevices sets the Devices field's value.
9543func (s *LinuxParameters) SetDevices(v []*Device) *LinuxParameters {
9544	s.Devices = v
9545	return s
9546}
9547
9548// SetInitProcessEnabled sets the InitProcessEnabled field's value.
9549func (s *LinuxParameters) SetInitProcessEnabled(v bool) *LinuxParameters {
9550	s.InitProcessEnabled = &v
9551	return s
9552}
9553
9554// SetSharedMemorySize sets the SharedMemorySize field's value.
9555func (s *LinuxParameters) SetSharedMemorySize(v int64) *LinuxParameters {
9556	s.SharedMemorySize = &v
9557	return s
9558}
9559
9560// SetTmpfs sets the Tmpfs field's value.
9561func (s *LinuxParameters) SetTmpfs(v []*Tmpfs) *LinuxParameters {
9562	s.Tmpfs = v
9563	return s
9564}
9565
9566type ListAccountSettingsInput struct {
9567	_ struct{} `type:"structure"`
9568
9569	// Specifies whether to return the effective settings. If true, the account
9570	// settings for the root user or the default setting for the principalArn are
9571	// returned. If false, the account settings for the principalArn are returned
9572	// if they are set. Otherwise, no account settings are returned.
9573	EffectiveSettings *bool `locationName:"effectiveSettings" type:"boolean"`
9574
9575	// The maximum number of account setting results returned by ListAccountSettings
9576	// in paginated output. When this parameter is used, ListAccountSettings only
9577	// returns maxResults results in a single page along with a nextToken response
9578	// element. The remaining results of the initial request can be seen by sending
9579	// another ListAccountSettings request with the returned nextToken value. This
9580	// value can be between 1 and 10. If this parameter is not used, then ListAccountSettings
9581	// returns up to 10 results and a nextToken value if applicable.
9582	MaxResults *int64 `locationName:"maxResults" type:"integer"`
9583
9584	// The resource name you want to list the account settings for.
9585	Name *string `locationName:"name" type:"string" enum:"SettingName"`
9586
9587	// The nextToken value returned from a previous paginated ListAccountSettings
9588	// request where maxResults was used and the results exceeded the value of that
9589	// parameter. Pagination continues from the end of the previous results that
9590	// returned the nextToken value.
9591	//
9592	// This token should be treated as an opaque identifier that is only used to
9593	// retrieve the next items in a list and not for other programmatic purposes.
9594	NextToken *string `locationName:"nextToken" type:"string"`
9595
9596	// The ARN of the principal, which can be an IAM user, IAM role, or the root
9597	// user. If this field is omitted, the account settings are listed only for
9598	// the authenticated user.
9599	PrincipalArn *string `locationName:"principalArn" type:"string"`
9600
9601	// The value of the account settings with which to filter results. You must
9602	// also specify an account setting name to use this parameter.
9603	Value *string `locationName:"value" type:"string"`
9604}
9605
9606// String returns the string representation
9607func (s ListAccountSettingsInput) String() string {
9608	return awsutil.Prettify(s)
9609}
9610
9611// GoString returns the string representation
9612func (s ListAccountSettingsInput) GoString() string {
9613	return s.String()
9614}
9615
9616// SetEffectiveSettings sets the EffectiveSettings field's value.
9617func (s *ListAccountSettingsInput) SetEffectiveSettings(v bool) *ListAccountSettingsInput {
9618	s.EffectiveSettings = &v
9619	return s
9620}
9621
9622// SetMaxResults sets the MaxResults field's value.
9623func (s *ListAccountSettingsInput) SetMaxResults(v int64) *ListAccountSettingsInput {
9624	s.MaxResults = &v
9625	return s
9626}
9627
9628// SetName sets the Name field's value.
9629func (s *ListAccountSettingsInput) SetName(v string) *ListAccountSettingsInput {
9630	s.Name = &v
9631	return s
9632}
9633
9634// SetNextToken sets the NextToken field's value.
9635func (s *ListAccountSettingsInput) SetNextToken(v string) *ListAccountSettingsInput {
9636	s.NextToken = &v
9637	return s
9638}
9639
9640// SetPrincipalArn sets the PrincipalArn field's value.
9641func (s *ListAccountSettingsInput) SetPrincipalArn(v string) *ListAccountSettingsInput {
9642	s.PrincipalArn = &v
9643	return s
9644}
9645
9646// SetValue sets the Value field's value.
9647func (s *ListAccountSettingsInput) SetValue(v string) *ListAccountSettingsInput {
9648	s.Value = &v
9649	return s
9650}
9651
9652type ListAccountSettingsOutput struct {
9653	_ struct{} `type:"structure"`
9654
9655	// The nextToken value to include in a future ListAccountSettings request. When
9656	// the results of a ListAccountSettings request exceed maxResults, this value
9657	// can be used to retrieve the next page of results. This value is null when
9658	// there are no more results to return.
9659	NextToken *string `locationName:"nextToken" type:"string"`
9660
9661	// The account settings for the resource.
9662	Settings []*Setting `locationName:"settings" type:"list"`
9663}
9664
9665// String returns the string representation
9666func (s ListAccountSettingsOutput) String() string {
9667	return awsutil.Prettify(s)
9668}
9669
9670// GoString returns the string representation
9671func (s ListAccountSettingsOutput) GoString() string {
9672	return s.String()
9673}
9674
9675// SetNextToken sets the NextToken field's value.
9676func (s *ListAccountSettingsOutput) SetNextToken(v string) *ListAccountSettingsOutput {
9677	s.NextToken = &v
9678	return s
9679}
9680
9681// SetSettings sets the Settings field's value.
9682func (s *ListAccountSettingsOutput) SetSettings(v []*Setting) *ListAccountSettingsOutput {
9683	s.Settings = v
9684	return s
9685}
9686
9687type ListAttributesInput struct {
9688	_ struct{} `type:"structure"`
9689
9690	// The name of the attribute with which to filter the results.
9691	AttributeName *string `locationName:"attributeName" type:"string"`
9692
9693	// The value of the attribute with which to filter results. You must also specify
9694	// an attribute name to use this parameter.
9695	AttributeValue *string `locationName:"attributeValue" type:"string"`
9696
9697	// The short name or full Amazon Resource Name (ARN) of the cluster to list
9698	// attributes. If you do not specify a cluster, the default cluster is assumed.
9699	Cluster *string `locationName:"cluster" type:"string"`
9700
9701	// The maximum number of cluster results returned by ListAttributes in paginated
9702	// output. When this parameter is used, ListAttributes only returns maxResults
9703	// results in a single page along with a nextToken response element. The remaining
9704	// results of the initial request can be seen by sending another ListAttributes
9705	// request with the returned nextToken value. This value can be between 1 and
9706	// 100. If this parameter is not used, then ListAttributes returns up to 100
9707	// results and a nextToken value if applicable.
9708	MaxResults *int64 `locationName:"maxResults" type:"integer"`
9709
9710	// The nextToken value returned from a previous paginated ListAttributes request
9711	// where maxResults was used and the results exceeded the value of that parameter.
9712	// Pagination continues from the end of the previous results that returned the
9713	// nextToken value.
9714	//
9715	// This token should be treated as an opaque identifier that is only used to
9716	// retrieve the next items in a list and not for other programmatic purposes.
9717	NextToken *string `locationName:"nextToken" type:"string"`
9718
9719	// The type of the target with which to list attributes.
9720	//
9721	// TargetType is a required field
9722	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"TargetType"`
9723}
9724
9725// String returns the string representation
9726func (s ListAttributesInput) String() string {
9727	return awsutil.Prettify(s)
9728}
9729
9730// GoString returns the string representation
9731func (s ListAttributesInput) GoString() string {
9732	return s.String()
9733}
9734
9735// Validate inspects the fields of the type to determine if they are valid.
9736func (s *ListAttributesInput) Validate() error {
9737	invalidParams := request.ErrInvalidParams{Context: "ListAttributesInput"}
9738	if s.TargetType == nil {
9739		invalidParams.Add(request.NewErrParamRequired("TargetType"))
9740	}
9741
9742	if invalidParams.Len() > 0 {
9743		return invalidParams
9744	}
9745	return nil
9746}
9747
9748// SetAttributeName sets the AttributeName field's value.
9749func (s *ListAttributesInput) SetAttributeName(v string) *ListAttributesInput {
9750	s.AttributeName = &v
9751	return s
9752}
9753
9754// SetAttributeValue sets the AttributeValue field's value.
9755func (s *ListAttributesInput) SetAttributeValue(v string) *ListAttributesInput {
9756	s.AttributeValue = &v
9757	return s
9758}
9759
9760// SetCluster sets the Cluster field's value.
9761func (s *ListAttributesInput) SetCluster(v string) *ListAttributesInput {
9762	s.Cluster = &v
9763	return s
9764}
9765
9766// SetMaxResults sets the MaxResults field's value.
9767func (s *ListAttributesInput) SetMaxResults(v int64) *ListAttributesInput {
9768	s.MaxResults = &v
9769	return s
9770}
9771
9772// SetNextToken sets the NextToken field's value.
9773func (s *ListAttributesInput) SetNextToken(v string) *ListAttributesInput {
9774	s.NextToken = &v
9775	return s
9776}
9777
9778// SetTargetType sets the TargetType field's value.
9779func (s *ListAttributesInput) SetTargetType(v string) *ListAttributesInput {
9780	s.TargetType = &v
9781	return s
9782}
9783
9784type ListAttributesOutput struct {
9785	_ struct{} `type:"structure"`
9786
9787	// A list of attribute objects that meet the criteria of the request.
9788	Attributes []*Attribute `locationName:"attributes" type:"list"`
9789
9790	// The nextToken value to include in a future ListAttributes request. When the
9791	// results of a ListAttributes request exceed maxResults, this value can be
9792	// used to retrieve the next page of results. This value is null when there
9793	// are no more results to return.
9794	NextToken *string `locationName:"nextToken" type:"string"`
9795}
9796
9797// String returns the string representation
9798func (s ListAttributesOutput) String() string {
9799	return awsutil.Prettify(s)
9800}
9801
9802// GoString returns the string representation
9803func (s ListAttributesOutput) GoString() string {
9804	return s.String()
9805}
9806
9807// SetAttributes sets the Attributes field's value.
9808func (s *ListAttributesOutput) SetAttributes(v []*Attribute) *ListAttributesOutput {
9809	s.Attributes = v
9810	return s
9811}
9812
9813// SetNextToken sets the NextToken field's value.
9814func (s *ListAttributesOutput) SetNextToken(v string) *ListAttributesOutput {
9815	s.NextToken = &v
9816	return s
9817}
9818
9819type ListClustersInput struct {
9820	_ struct{} `type:"structure"`
9821
9822	// The maximum number of cluster results returned by ListClusters in paginated
9823	// output. When this parameter is used, ListClusters only returns maxResults
9824	// results in a single page along with a nextToken response element. The remaining
9825	// results of the initial request can be seen by sending another ListClusters
9826	// request with the returned nextToken value. This value can be between 1 and
9827	// 100. If this parameter is not used, then ListClusters returns up to 100 results
9828	// and a nextToken value if applicable.
9829	MaxResults *int64 `locationName:"maxResults" type:"integer"`
9830
9831	// The nextToken value returned from a previous paginated ListClusters request
9832	// where maxResults was used and the results exceeded the value of that parameter.
9833	// Pagination continues from the end of the previous results that returned the
9834	// nextToken value.
9835	//
9836	// This token should be treated as an opaque identifier that is only used to
9837	// retrieve the next items in a list and not for other programmatic purposes.
9838	NextToken *string `locationName:"nextToken" type:"string"`
9839}
9840
9841// String returns the string representation
9842func (s ListClustersInput) String() string {
9843	return awsutil.Prettify(s)
9844}
9845
9846// GoString returns the string representation
9847func (s ListClustersInput) GoString() string {
9848	return s.String()
9849}
9850
9851// SetMaxResults sets the MaxResults field's value.
9852func (s *ListClustersInput) SetMaxResults(v int64) *ListClustersInput {
9853	s.MaxResults = &v
9854	return s
9855}
9856
9857// SetNextToken sets the NextToken field's value.
9858func (s *ListClustersInput) SetNextToken(v string) *ListClustersInput {
9859	s.NextToken = &v
9860	return s
9861}
9862
9863type ListClustersOutput struct {
9864	_ struct{} `type:"structure"`
9865
9866	// The list of full Amazon Resource Name (ARN) entries for each cluster associated
9867	// with your account.
9868	ClusterArns []*string `locationName:"clusterArns" type:"list"`
9869
9870	// The nextToken value to include in a future ListClusters request. When the
9871	// results of a ListClusters request exceed maxResults, this value can be used
9872	// to retrieve the next page of results. This value is null when there are no
9873	// more results to return.
9874	NextToken *string `locationName:"nextToken" type:"string"`
9875}
9876
9877// String returns the string representation
9878func (s ListClustersOutput) String() string {
9879	return awsutil.Prettify(s)
9880}
9881
9882// GoString returns the string representation
9883func (s ListClustersOutput) GoString() string {
9884	return s.String()
9885}
9886
9887// SetClusterArns sets the ClusterArns field's value.
9888func (s *ListClustersOutput) SetClusterArns(v []*string) *ListClustersOutput {
9889	s.ClusterArns = v
9890	return s
9891}
9892
9893// SetNextToken sets the NextToken field's value.
9894func (s *ListClustersOutput) SetNextToken(v string) *ListClustersOutput {
9895	s.NextToken = &v
9896	return s
9897}
9898
9899type ListContainerInstancesInput struct {
9900	_ struct{} `type:"structure"`
9901
9902	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
9903	// the container instances to list. If you do not specify a cluster, the default
9904	// cluster is assumed.
9905	Cluster *string `locationName:"cluster" type:"string"`
9906
9907	// You can filter the results of a ListContainerInstances operation with cluster
9908	// query language statements. For more information, see Cluster Query Language
9909	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
9910	// in the Amazon Elastic Container Service Developer Guide.
9911	Filter *string `locationName:"filter" type:"string"`
9912
9913	// The maximum number of container instance results returned by ListContainerInstances
9914	// in paginated output. When this parameter is used, ListContainerInstances
9915	// only returns maxResults results in a single page along with a nextToken response
9916	// element. The remaining results of the initial request can be seen by sending
9917	// another ListContainerInstances request with the returned nextToken value.
9918	// This value can be between 1 and 100. If this parameter is not used, then
9919	// ListContainerInstances returns up to 100 results and a nextToken value if
9920	// applicable.
9921	MaxResults *int64 `locationName:"maxResults" type:"integer"`
9922
9923	// The nextToken value returned from a previous paginated ListContainerInstances
9924	// request where maxResults was used and the results exceeded the value of that
9925	// parameter. Pagination continues from the end of the previous results that
9926	// returned the nextToken value.
9927	//
9928	// This token should be treated as an opaque identifier that is only used to
9929	// retrieve the next items in a list and not for other programmatic purposes.
9930	NextToken *string `locationName:"nextToken" type:"string"`
9931
9932	// Filters the container instances by status. For example, if you specify the
9933	// DRAINING status, the results include only container instances that have been
9934	// set to DRAINING using UpdateContainerInstancesState. If you do not specify
9935	// this parameter, the default is to include container instances set to all
9936	// states other than INACTIVE.
9937	Status *string `locationName:"status" type:"string" enum:"ContainerInstanceStatus"`
9938}
9939
9940// String returns the string representation
9941func (s ListContainerInstancesInput) String() string {
9942	return awsutil.Prettify(s)
9943}
9944
9945// GoString returns the string representation
9946func (s ListContainerInstancesInput) GoString() string {
9947	return s.String()
9948}
9949
9950// SetCluster sets the Cluster field's value.
9951func (s *ListContainerInstancesInput) SetCluster(v string) *ListContainerInstancesInput {
9952	s.Cluster = &v
9953	return s
9954}
9955
9956// SetFilter sets the Filter field's value.
9957func (s *ListContainerInstancesInput) SetFilter(v string) *ListContainerInstancesInput {
9958	s.Filter = &v
9959	return s
9960}
9961
9962// SetMaxResults sets the MaxResults field's value.
9963func (s *ListContainerInstancesInput) SetMaxResults(v int64) *ListContainerInstancesInput {
9964	s.MaxResults = &v
9965	return s
9966}
9967
9968// SetNextToken sets the NextToken field's value.
9969func (s *ListContainerInstancesInput) SetNextToken(v string) *ListContainerInstancesInput {
9970	s.NextToken = &v
9971	return s
9972}
9973
9974// SetStatus sets the Status field's value.
9975func (s *ListContainerInstancesInput) SetStatus(v string) *ListContainerInstancesInput {
9976	s.Status = &v
9977	return s
9978}
9979
9980type ListContainerInstancesOutput struct {
9981	_ struct{} `type:"structure"`
9982
9983	// The list of container instances with full ARN entries for each container
9984	// instance associated with the specified cluster.
9985	ContainerInstanceArns []*string `locationName:"containerInstanceArns" type:"list"`
9986
9987	// The nextToken value to include in a future ListContainerInstances request.
9988	// When the results of a ListContainerInstances request exceed maxResults, this
9989	// value can be used to retrieve the next page of results. This value is null
9990	// when there are no more results to return.
9991	NextToken *string `locationName:"nextToken" type:"string"`
9992}
9993
9994// String returns the string representation
9995func (s ListContainerInstancesOutput) String() string {
9996	return awsutil.Prettify(s)
9997}
9998
9999// GoString returns the string representation
10000func (s ListContainerInstancesOutput) GoString() string {
10001	return s.String()
10002}
10003
10004// SetContainerInstanceArns sets the ContainerInstanceArns field's value.
10005func (s *ListContainerInstancesOutput) SetContainerInstanceArns(v []*string) *ListContainerInstancesOutput {
10006	s.ContainerInstanceArns = v
10007	return s
10008}
10009
10010// SetNextToken sets the NextToken field's value.
10011func (s *ListContainerInstancesOutput) SetNextToken(v string) *ListContainerInstancesOutput {
10012	s.NextToken = &v
10013	return s
10014}
10015
10016type ListServicesInput struct {
10017	_ struct{} `type:"structure"`
10018
10019	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10020	// the services to list. If you do not specify a cluster, the default cluster
10021	// is assumed.
10022	Cluster *string `locationName:"cluster" type:"string"`
10023
10024	// The launch type for the services to list.
10025	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
10026
10027	// The maximum number of service results returned by ListServices in paginated
10028	// output. When this parameter is used, ListServices only returns maxResults
10029	// results in a single page along with a nextToken response element. The remaining
10030	// results of the initial request can be seen by sending another ListServices
10031	// request with the returned nextToken value. This value can be between 1 and
10032	// 100. If this parameter is not used, then ListServices returns up to 10 results
10033	// and a nextToken value if applicable.
10034	MaxResults *int64 `locationName:"maxResults" type:"integer"`
10035
10036	// The nextToken value returned from a previous paginated ListServices request
10037	// where maxResults was used and the results exceeded the value of that parameter.
10038	// Pagination continues from the end of the previous results that returned the
10039	// nextToken value.
10040	//
10041	// This token should be treated as an opaque identifier that is only used to
10042	// retrieve the next items in a list and not for other programmatic purposes.
10043	NextToken *string `locationName:"nextToken" type:"string"`
10044
10045	// The scheduling strategy for services to list.
10046	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
10047}
10048
10049// String returns the string representation
10050func (s ListServicesInput) String() string {
10051	return awsutil.Prettify(s)
10052}
10053
10054// GoString returns the string representation
10055func (s ListServicesInput) GoString() string {
10056	return s.String()
10057}
10058
10059// SetCluster sets the Cluster field's value.
10060func (s *ListServicesInput) SetCluster(v string) *ListServicesInput {
10061	s.Cluster = &v
10062	return s
10063}
10064
10065// SetLaunchType sets the LaunchType field's value.
10066func (s *ListServicesInput) SetLaunchType(v string) *ListServicesInput {
10067	s.LaunchType = &v
10068	return s
10069}
10070
10071// SetMaxResults sets the MaxResults field's value.
10072func (s *ListServicesInput) SetMaxResults(v int64) *ListServicesInput {
10073	s.MaxResults = &v
10074	return s
10075}
10076
10077// SetNextToken sets the NextToken field's value.
10078func (s *ListServicesInput) SetNextToken(v string) *ListServicesInput {
10079	s.NextToken = &v
10080	return s
10081}
10082
10083// SetSchedulingStrategy sets the SchedulingStrategy field's value.
10084func (s *ListServicesInput) SetSchedulingStrategy(v string) *ListServicesInput {
10085	s.SchedulingStrategy = &v
10086	return s
10087}
10088
10089type ListServicesOutput struct {
10090	_ struct{} `type:"structure"`
10091
10092	// The nextToken value to include in a future ListServices request. When the
10093	// results of a ListServices request exceed maxResults, this value can be used
10094	// to retrieve the next page of results. This value is null when there are no
10095	// more results to return.
10096	NextToken *string `locationName:"nextToken" type:"string"`
10097
10098	// The list of full ARN entries for each service associated with the specified
10099	// cluster.
10100	ServiceArns []*string `locationName:"serviceArns" type:"list"`
10101}
10102
10103// String returns the string representation
10104func (s ListServicesOutput) String() string {
10105	return awsutil.Prettify(s)
10106}
10107
10108// GoString returns the string representation
10109func (s ListServicesOutput) GoString() string {
10110	return s.String()
10111}
10112
10113// SetNextToken sets the NextToken field's value.
10114func (s *ListServicesOutput) SetNextToken(v string) *ListServicesOutput {
10115	s.NextToken = &v
10116	return s
10117}
10118
10119// SetServiceArns sets the ServiceArns field's value.
10120func (s *ListServicesOutput) SetServiceArns(v []*string) *ListServicesOutput {
10121	s.ServiceArns = v
10122	return s
10123}
10124
10125type ListTagsForResourceInput struct {
10126	_ struct{} `type:"structure"`
10127
10128	// The Amazon Resource Name (ARN) that identifies the resource for which to
10129	// list the tags. Currently, the supported resources are Amazon ECS tasks, services,
10130	// task definitions, clusters, and container instances.
10131	//
10132	// ResourceArn is a required field
10133	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
10134}
10135
10136// String returns the string representation
10137func (s ListTagsForResourceInput) String() string {
10138	return awsutil.Prettify(s)
10139}
10140
10141// GoString returns the string representation
10142func (s ListTagsForResourceInput) GoString() string {
10143	return s.String()
10144}
10145
10146// Validate inspects the fields of the type to determine if they are valid.
10147func (s *ListTagsForResourceInput) Validate() error {
10148	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
10149	if s.ResourceArn == nil {
10150		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
10151	}
10152
10153	if invalidParams.Len() > 0 {
10154		return invalidParams
10155	}
10156	return nil
10157}
10158
10159// SetResourceArn sets the ResourceArn field's value.
10160func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
10161	s.ResourceArn = &v
10162	return s
10163}
10164
10165type ListTagsForResourceOutput struct {
10166	_ struct{} `type:"structure"`
10167
10168	// The tags for the resource.
10169	Tags []*Tag `locationName:"tags" type:"list"`
10170}
10171
10172// String returns the string representation
10173func (s ListTagsForResourceOutput) String() string {
10174	return awsutil.Prettify(s)
10175}
10176
10177// GoString returns the string representation
10178func (s ListTagsForResourceOutput) GoString() string {
10179	return s.String()
10180}
10181
10182// SetTags sets the Tags field's value.
10183func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
10184	s.Tags = v
10185	return s
10186}
10187
10188type ListTaskDefinitionFamiliesInput struct {
10189	_ struct{} `type:"structure"`
10190
10191	// The familyPrefix is a string that is used to filter the results of ListTaskDefinitionFamilies.
10192	// If you specify a familyPrefix, only task definition family names that begin
10193	// with the familyPrefix string are returned.
10194	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
10195
10196	// The maximum number of task definition family results returned by ListTaskDefinitionFamilies
10197	// in paginated output. When this parameter is used, ListTaskDefinitions only
10198	// returns maxResults results in a single page along with a nextToken response
10199	// element. The remaining results of the initial request can be seen by sending
10200	// another ListTaskDefinitionFamilies request with the returned nextToken value.
10201	// This value can be between 1 and 100. If this parameter is not used, then
10202	// ListTaskDefinitionFamilies returns up to 100 results and a nextToken value
10203	// if applicable.
10204	MaxResults *int64 `locationName:"maxResults" type:"integer"`
10205
10206	// The nextToken value returned from a previous paginated ListTaskDefinitionFamilies
10207	// request where maxResults was used and the results exceeded the value of that
10208	// parameter. Pagination continues from the end of the previous results that
10209	// returned the nextToken value.
10210	//
10211	// This token should be treated as an opaque identifier that is only used to
10212	// retrieve the next items in a list and not for other programmatic purposes.
10213	NextToken *string `locationName:"nextToken" type:"string"`
10214
10215	// The task definition family status with which to filter the ListTaskDefinitionFamilies
10216	// results. By default, both ACTIVE and INACTIVE task definition families are
10217	// listed. If this parameter is set to ACTIVE, only task definition families
10218	// that have an ACTIVE task definition revision are returned. If this parameter
10219	// is set to INACTIVE, only task definition families that do not have any ACTIVE
10220	// task definition revisions are returned. If you paginate the resulting output,
10221	// be sure to keep the status value constant in each subsequent request.
10222	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionFamilyStatus"`
10223}
10224
10225// String returns the string representation
10226func (s ListTaskDefinitionFamiliesInput) String() string {
10227	return awsutil.Prettify(s)
10228}
10229
10230// GoString returns the string representation
10231func (s ListTaskDefinitionFamiliesInput) GoString() string {
10232	return s.String()
10233}
10234
10235// SetFamilyPrefix sets the FamilyPrefix field's value.
10236func (s *ListTaskDefinitionFamiliesInput) SetFamilyPrefix(v string) *ListTaskDefinitionFamiliesInput {
10237	s.FamilyPrefix = &v
10238	return s
10239}
10240
10241// SetMaxResults sets the MaxResults field's value.
10242func (s *ListTaskDefinitionFamiliesInput) SetMaxResults(v int64) *ListTaskDefinitionFamiliesInput {
10243	s.MaxResults = &v
10244	return s
10245}
10246
10247// SetNextToken sets the NextToken field's value.
10248func (s *ListTaskDefinitionFamiliesInput) SetNextToken(v string) *ListTaskDefinitionFamiliesInput {
10249	s.NextToken = &v
10250	return s
10251}
10252
10253// SetStatus sets the Status field's value.
10254func (s *ListTaskDefinitionFamiliesInput) SetStatus(v string) *ListTaskDefinitionFamiliesInput {
10255	s.Status = &v
10256	return s
10257}
10258
10259type ListTaskDefinitionFamiliesOutput struct {
10260	_ struct{} `type:"structure"`
10261
10262	// The list of task definition family names that match the ListTaskDefinitionFamilies
10263	// request.
10264	Families []*string `locationName:"families" type:"list"`
10265
10266	// The nextToken value to include in a future ListTaskDefinitionFamilies request.
10267	// When the results of a ListTaskDefinitionFamilies request exceed maxResults,
10268	// this value can be used to retrieve the next page of results. This value is
10269	// null when there are no more results to return.
10270	NextToken *string `locationName:"nextToken" type:"string"`
10271}
10272
10273// String returns the string representation
10274func (s ListTaskDefinitionFamiliesOutput) String() string {
10275	return awsutil.Prettify(s)
10276}
10277
10278// GoString returns the string representation
10279func (s ListTaskDefinitionFamiliesOutput) GoString() string {
10280	return s.String()
10281}
10282
10283// SetFamilies sets the Families field's value.
10284func (s *ListTaskDefinitionFamiliesOutput) SetFamilies(v []*string) *ListTaskDefinitionFamiliesOutput {
10285	s.Families = v
10286	return s
10287}
10288
10289// SetNextToken sets the NextToken field's value.
10290func (s *ListTaskDefinitionFamiliesOutput) SetNextToken(v string) *ListTaskDefinitionFamiliesOutput {
10291	s.NextToken = &v
10292	return s
10293}
10294
10295type ListTaskDefinitionsInput struct {
10296	_ struct{} `type:"structure"`
10297
10298	// The full family name with which to filter the ListTaskDefinitions results.
10299	// Specifying a familyPrefix limits the listed task definitions to task definition
10300	// revisions that belong to that family.
10301	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
10302
10303	// The maximum number of task definition results returned by ListTaskDefinitions
10304	// in paginated output. When this parameter is used, ListTaskDefinitions only
10305	// returns maxResults results in a single page along with a nextToken response
10306	// element. The remaining results of the initial request can be seen by sending
10307	// another ListTaskDefinitions request with the returned nextToken value. This
10308	// value can be between 1 and 100. If this parameter is not used, then ListTaskDefinitions
10309	// returns up to 100 results and a nextToken value if applicable.
10310	MaxResults *int64 `locationName:"maxResults" type:"integer"`
10311
10312	// The nextToken value returned from a previous paginated ListTaskDefinitions
10313	// request where maxResults was used and the results exceeded the value of that
10314	// parameter. Pagination continues from the end of the previous results that
10315	// returned the nextToken value.
10316	//
10317	// This token should be treated as an opaque identifier that is only used to
10318	// retrieve the next items in a list and not for other programmatic purposes.
10319	NextToken *string `locationName:"nextToken" type:"string"`
10320
10321	// The order in which to sort the results. Valid values are ASC and DESC. By
10322	// default (ASC), task definitions are listed lexicographically by family name
10323	// and in ascending numerical order by revision so that the newest task definitions
10324	// in a family are listed last. Setting this parameter to DESC reverses the
10325	// sort order on family name and revision so that the newest task definitions
10326	// in a family are listed first.
10327	Sort *string `locationName:"sort" type:"string" enum:"SortOrder"`
10328
10329	// The task definition status with which to filter the ListTaskDefinitions results.
10330	// By default, only ACTIVE task definitions are listed. By setting this parameter
10331	// to INACTIVE, you can view task definitions that are INACTIVE as long as an
10332	// active task or service still references them. If you paginate the resulting
10333	// output, be sure to keep the status value constant in each subsequent request.
10334	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
10335}
10336
10337// String returns the string representation
10338func (s ListTaskDefinitionsInput) String() string {
10339	return awsutil.Prettify(s)
10340}
10341
10342// GoString returns the string representation
10343func (s ListTaskDefinitionsInput) GoString() string {
10344	return s.String()
10345}
10346
10347// SetFamilyPrefix sets the FamilyPrefix field's value.
10348func (s *ListTaskDefinitionsInput) SetFamilyPrefix(v string) *ListTaskDefinitionsInput {
10349	s.FamilyPrefix = &v
10350	return s
10351}
10352
10353// SetMaxResults sets the MaxResults field's value.
10354func (s *ListTaskDefinitionsInput) SetMaxResults(v int64) *ListTaskDefinitionsInput {
10355	s.MaxResults = &v
10356	return s
10357}
10358
10359// SetNextToken sets the NextToken field's value.
10360func (s *ListTaskDefinitionsInput) SetNextToken(v string) *ListTaskDefinitionsInput {
10361	s.NextToken = &v
10362	return s
10363}
10364
10365// SetSort sets the Sort field's value.
10366func (s *ListTaskDefinitionsInput) SetSort(v string) *ListTaskDefinitionsInput {
10367	s.Sort = &v
10368	return s
10369}
10370
10371// SetStatus sets the Status field's value.
10372func (s *ListTaskDefinitionsInput) SetStatus(v string) *ListTaskDefinitionsInput {
10373	s.Status = &v
10374	return s
10375}
10376
10377type ListTaskDefinitionsOutput struct {
10378	_ struct{} `type:"structure"`
10379
10380	// The nextToken value to include in a future ListTaskDefinitions request. When
10381	// the results of a ListTaskDefinitions request exceed maxResults, this value
10382	// can be used to retrieve the next page of results. This value is null when
10383	// there are no more results to return.
10384	NextToken *string `locationName:"nextToken" type:"string"`
10385
10386	// The list of task definition Amazon Resource Name (ARN) entries for the ListTaskDefinitions
10387	// request.
10388	TaskDefinitionArns []*string `locationName:"taskDefinitionArns" type:"list"`
10389}
10390
10391// String returns the string representation
10392func (s ListTaskDefinitionsOutput) String() string {
10393	return awsutil.Prettify(s)
10394}
10395
10396// GoString returns the string representation
10397func (s ListTaskDefinitionsOutput) GoString() string {
10398	return s.String()
10399}
10400
10401// SetNextToken sets the NextToken field's value.
10402func (s *ListTaskDefinitionsOutput) SetNextToken(v string) *ListTaskDefinitionsOutput {
10403	s.NextToken = &v
10404	return s
10405}
10406
10407// SetTaskDefinitionArns sets the TaskDefinitionArns field's value.
10408func (s *ListTaskDefinitionsOutput) SetTaskDefinitionArns(v []*string) *ListTaskDefinitionsOutput {
10409	s.TaskDefinitionArns = v
10410	return s
10411}
10412
10413type ListTasksInput struct {
10414	_ struct{} `type:"structure"`
10415
10416	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
10417	// the tasks to list. If you do not specify a cluster, the default cluster is
10418	// assumed.
10419	Cluster *string `locationName:"cluster" type:"string"`
10420
10421	// The container instance ID or full ARN of the container instance with which
10422	// to filter the ListTasks results. Specifying a containerInstance limits the
10423	// results to tasks that belong to that container instance.
10424	ContainerInstance *string `locationName:"containerInstance" type:"string"`
10425
10426	// The task desired status with which to filter the ListTasks results. Specifying
10427	// a desiredStatus of STOPPED limits the results to tasks that Amazon ECS has
10428	// set the desired status to STOPPED. This can be useful for debugging tasks
10429	// that are not starting properly or have died or finished. The default status
10430	// filter is RUNNING, which shows tasks that Amazon ECS has set the desired
10431	// status to RUNNING.
10432	//
10433	// Although you can filter results based on a desired status of PENDING, this
10434	// does not return any results. Amazon ECS never sets the desired status of
10435	// a task to that value (only a task's lastStatus may have a value of PENDING).
10436	DesiredStatus *string `locationName:"desiredStatus" type:"string" enum:"DesiredStatus"`
10437
10438	// The name of the family with which to filter the ListTasks results. Specifying
10439	// a family limits the results to tasks that belong to that family.
10440	Family *string `locationName:"family" type:"string"`
10441
10442	// The launch type for services to list.
10443	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
10444
10445	// The maximum number of task results returned by ListTasks in paginated output.
10446	// When this parameter is used, ListTasks only returns maxResults results in
10447	// a single page along with a nextToken response element. The remaining results
10448	// of the initial request can be seen by sending another ListTasks request with
10449	// the returned nextToken value. This value can be between 1 and 100. If this
10450	// parameter is not used, then ListTasks returns up to 100 results and a nextToken
10451	// value if applicable.
10452	MaxResults *int64 `locationName:"maxResults" type:"integer"`
10453
10454	// The nextToken value returned from a previous paginated ListTasks request
10455	// where maxResults was used and the results exceeded the value of that parameter.
10456	// Pagination continues from the end of the previous results that returned the
10457	// nextToken value.
10458	//
10459	// This token should be treated as an opaque identifier that is only used to
10460	// retrieve the next items in a list and not for other programmatic purposes.
10461	NextToken *string `locationName:"nextToken" type:"string"`
10462
10463	// The name of the service with which to filter the ListTasks results. Specifying
10464	// a serviceName limits the results to tasks that belong to that service.
10465	ServiceName *string `locationName:"serviceName" type:"string"`
10466
10467	// The startedBy value with which to filter the task results. Specifying a startedBy
10468	// value limits the results to tasks that were started with that value.
10469	StartedBy *string `locationName:"startedBy" type:"string"`
10470}
10471
10472// String returns the string representation
10473func (s ListTasksInput) String() string {
10474	return awsutil.Prettify(s)
10475}
10476
10477// GoString returns the string representation
10478func (s ListTasksInput) GoString() string {
10479	return s.String()
10480}
10481
10482// SetCluster sets the Cluster field's value.
10483func (s *ListTasksInput) SetCluster(v string) *ListTasksInput {
10484	s.Cluster = &v
10485	return s
10486}
10487
10488// SetContainerInstance sets the ContainerInstance field's value.
10489func (s *ListTasksInput) SetContainerInstance(v string) *ListTasksInput {
10490	s.ContainerInstance = &v
10491	return s
10492}
10493
10494// SetDesiredStatus sets the DesiredStatus field's value.
10495func (s *ListTasksInput) SetDesiredStatus(v string) *ListTasksInput {
10496	s.DesiredStatus = &v
10497	return s
10498}
10499
10500// SetFamily sets the Family field's value.
10501func (s *ListTasksInput) SetFamily(v string) *ListTasksInput {
10502	s.Family = &v
10503	return s
10504}
10505
10506// SetLaunchType sets the LaunchType field's value.
10507func (s *ListTasksInput) SetLaunchType(v string) *ListTasksInput {
10508	s.LaunchType = &v
10509	return s
10510}
10511
10512// SetMaxResults sets the MaxResults field's value.
10513func (s *ListTasksInput) SetMaxResults(v int64) *ListTasksInput {
10514	s.MaxResults = &v
10515	return s
10516}
10517
10518// SetNextToken sets the NextToken field's value.
10519func (s *ListTasksInput) SetNextToken(v string) *ListTasksInput {
10520	s.NextToken = &v
10521	return s
10522}
10523
10524// SetServiceName sets the ServiceName field's value.
10525func (s *ListTasksInput) SetServiceName(v string) *ListTasksInput {
10526	s.ServiceName = &v
10527	return s
10528}
10529
10530// SetStartedBy sets the StartedBy field's value.
10531func (s *ListTasksInput) SetStartedBy(v string) *ListTasksInput {
10532	s.StartedBy = &v
10533	return s
10534}
10535
10536type ListTasksOutput struct {
10537	_ struct{} `type:"structure"`
10538
10539	// The nextToken value to include in a future ListTasks request. When the results
10540	// of a ListTasks request exceed maxResults, this value can be used to retrieve
10541	// the next page of results. This value is null when there are no more results
10542	// to return.
10543	NextToken *string `locationName:"nextToken" type:"string"`
10544
10545	// The list of task ARN entries for the ListTasks request.
10546	TaskArns []*string `locationName:"taskArns" type:"list"`
10547}
10548
10549// String returns the string representation
10550func (s ListTasksOutput) String() string {
10551	return awsutil.Prettify(s)
10552}
10553
10554// GoString returns the string representation
10555func (s ListTasksOutput) GoString() string {
10556	return s.String()
10557}
10558
10559// SetNextToken sets the NextToken field's value.
10560func (s *ListTasksOutput) SetNextToken(v string) *ListTasksOutput {
10561	s.NextToken = &v
10562	return s
10563}
10564
10565// SetTaskArns sets the TaskArns field's value.
10566func (s *ListTasksOutput) SetTaskArns(v []*string) *ListTasksOutput {
10567	s.TaskArns = v
10568	return s
10569}
10570
10571// Details on a load balancer to be used with a service or task set.
10572//
10573// If the service is using the ECS deployment controller, you are limited to
10574// one load balancer or target group.
10575//
10576// If the service is using the CODE_DEPLOY deployment controller, the service
10577// is required to use either an Application Load Balancer or Network Load Balancer.
10578// When you are creating an AWS CodeDeploy deployment group, you specify two
10579// target groups (referred to as a targetGroupPair). Each target group binds
10580// to a separate task set in the deployment. The load balancer can also have
10581// up to two listeners, a required listener for production traffic and an optional
10582// listener that allows you to test new revisions of the service before routing
10583// production traffic to it.
10584//
10585// Services with tasks that use the awsvpc network mode (for example, those
10586// with the Fargate launch type) only support Application Load Balancers and
10587// Network Load Balancers. Classic Load Balancers are not supported. Also, when
10588// you create any target groups for these services, you must choose ip as the
10589// target type, not instance. Tasks that use the awsvpc network mode are associated
10590// with an elastic network interface, not an Amazon EC2 instance.
10591type LoadBalancer struct {
10592	_ struct{} `type:"structure"`
10593
10594	// The name of the container (as it appears in a container definition) to associate
10595	// with the load balancer.
10596	ContainerName *string `locationName:"containerName" type:"string"`
10597
10598	// The port on the container to associate with the load balancer. This port
10599	// must correspond to a containerPort in the service's task definition. Your
10600	// container instances must allow ingress traffic on the hostPort of the port
10601	// mapping.
10602	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
10603
10604	// The name of the load balancer to associate with the Amazon ECS service or
10605	// task set.
10606	//
10607	// A load balancer name is only specified when using a classic load balancer.
10608	// If you are using an application load balancer or a network load balancer
10609	// this should be omitted.
10610	LoadBalancerName *string `locationName:"loadBalancerName" type:"string"`
10611
10612	// The full Amazon Resource Name (ARN) of the Elastic Load Balancing target
10613	// group or groups associated with a service or task set.
10614	//
10615	// A target group ARN is only specified when using an application load balancer
10616	// or a network load balancer. If you are using a classic load balancer this
10617	// should be omitted.
10618	//
10619	// For services using the ECS deployment controller, you are limited to one
10620	// target group. For services using the CODE_DEPLOY deployment controller, you
10621	// are required to define two target groups for the load balancer.
10622	//
10623	// If your service's task definition uses the awsvpc network mode (which is
10624	// required for the Fargate launch type), you must choose ip as the target type,
10625	// not instance, because tasks that use the awsvpc network mode are associated
10626	// with an elastic network interface, not an Amazon EC2 instance.
10627	TargetGroupArn *string `locationName:"targetGroupArn" type:"string"`
10628}
10629
10630// String returns the string representation
10631func (s LoadBalancer) String() string {
10632	return awsutil.Prettify(s)
10633}
10634
10635// GoString returns the string representation
10636func (s LoadBalancer) GoString() string {
10637	return s.String()
10638}
10639
10640// SetContainerName sets the ContainerName field's value.
10641func (s *LoadBalancer) SetContainerName(v string) *LoadBalancer {
10642	s.ContainerName = &v
10643	return s
10644}
10645
10646// SetContainerPort sets the ContainerPort field's value.
10647func (s *LoadBalancer) SetContainerPort(v int64) *LoadBalancer {
10648	s.ContainerPort = &v
10649	return s
10650}
10651
10652// SetLoadBalancerName sets the LoadBalancerName field's value.
10653func (s *LoadBalancer) SetLoadBalancerName(v string) *LoadBalancer {
10654	s.LoadBalancerName = &v
10655	return s
10656}
10657
10658// SetTargetGroupArn sets the TargetGroupArn field's value.
10659func (s *LoadBalancer) SetTargetGroupArn(v string) *LoadBalancer {
10660	s.TargetGroupArn = &v
10661	return s
10662}
10663
10664// Log configuration options to send to a custom log driver for the container.
10665type LogConfiguration struct {
10666	_ struct{} `type:"structure"`
10667
10668	// The log driver to use for the container. The valid values listed for this
10669	// parameter are log drivers that the Amazon ECS container agent can communicate
10670	// with by default.
10671	//
10672	// For tasks using the Fargate launch type, the supported log drivers are awslogs
10673	// and splunk.
10674	//
10675	// For tasks using the EC2 launch type, the supported log drivers are awslogs,
10676	// syslog, gelf, fluentd, splunk, journald, and json-file.
10677	//
10678	// For more information about using the awslogs log driver, see Using the awslogs
10679	// Log Driver (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html)
10680	// in the Amazon Elastic Container Service Developer Guide.
10681	//
10682	// If you have a custom driver that is not listed above that you would like
10683	// to work with the Amazon ECS container agent, you can fork the Amazon ECS
10684	// container agent project that is available on GitHub (https://github.com/aws/amazon-ecs-agent)
10685	// and customize it to work with that driver. We encourage you to submit pull
10686	// requests for changes that you would like to have included. However, Amazon
10687	// Web Services does not currently support running modified copies of this software.
10688	//
10689	// This parameter requires version 1.18 of the Docker Remote API or greater
10690	// on your container instance. To check the Docker Remote API version on your
10691	// container instance, log in to your container instance and run the following
10692	// command: sudo docker version --format '{{.Server.APIVersion}}'
10693	//
10694	// LogDriver is a required field
10695	LogDriver *string `locationName:"logDriver" type:"string" required:"true" enum:"LogDriver"`
10696
10697	// The configuration options to send to the log driver. This parameter requires
10698	// version 1.19 of the Docker Remote API or greater on your container instance.
10699	// To check the Docker Remote API version on your container instance, log in
10700	// to your container instance and run the following command: sudo docker version
10701	// --format '{{.Server.APIVersion}}'
10702	Options map[string]*string `locationName:"options" type:"map"`
10703
10704	// The secrets to pass to the log configuration.
10705	SecretOptions []*Secret `locationName:"secretOptions" type:"list"`
10706}
10707
10708// String returns the string representation
10709func (s LogConfiguration) String() string {
10710	return awsutil.Prettify(s)
10711}
10712
10713// GoString returns the string representation
10714func (s LogConfiguration) GoString() string {
10715	return s.String()
10716}
10717
10718// Validate inspects the fields of the type to determine if they are valid.
10719func (s *LogConfiguration) Validate() error {
10720	invalidParams := request.ErrInvalidParams{Context: "LogConfiguration"}
10721	if s.LogDriver == nil {
10722		invalidParams.Add(request.NewErrParamRequired("LogDriver"))
10723	}
10724	if s.SecretOptions != nil {
10725		for i, v := range s.SecretOptions {
10726			if v == nil {
10727				continue
10728			}
10729			if err := v.Validate(); err != nil {
10730				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecretOptions", i), err.(request.ErrInvalidParams))
10731			}
10732		}
10733	}
10734
10735	if invalidParams.Len() > 0 {
10736		return invalidParams
10737	}
10738	return nil
10739}
10740
10741// SetLogDriver sets the LogDriver field's value.
10742func (s *LogConfiguration) SetLogDriver(v string) *LogConfiguration {
10743	s.LogDriver = &v
10744	return s
10745}
10746
10747// SetOptions sets the Options field's value.
10748func (s *LogConfiguration) SetOptions(v map[string]*string) *LogConfiguration {
10749	s.Options = v
10750	return s
10751}
10752
10753// SetSecretOptions sets the SecretOptions field's value.
10754func (s *LogConfiguration) SetSecretOptions(v []*Secret) *LogConfiguration {
10755	s.SecretOptions = v
10756	return s
10757}
10758
10759// Details on a volume mount point that is used in a container definition.
10760type MountPoint struct {
10761	_ struct{} `type:"structure"`
10762
10763	// The path on the container to mount the host volume at.
10764	ContainerPath *string `locationName:"containerPath" type:"string"`
10765
10766	// If this value is true, the container has read-only access to the volume.
10767	// If this value is false, then the container can write to the volume. The default
10768	// value is false.
10769	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
10770
10771	// The name of the volume to mount. Must be a volume name referenced in the
10772	// name parameter of task definition volume.
10773	SourceVolume *string `locationName:"sourceVolume" type:"string"`
10774}
10775
10776// String returns the string representation
10777func (s MountPoint) String() string {
10778	return awsutil.Prettify(s)
10779}
10780
10781// GoString returns the string representation
10782func (s MountPoint) GoString() string {
10783	return s.String()
10784}
10785
10786// SetContainerPath sets the ContainerPath field's value.
10787func (s *MountPoint) SetContainerPath(v string) *MountPoint {
10788	s.ContainerPath = &v
10789	return s
10790}
10791
10792// SetReadOnly sets the ReadOnly field's value.
10793func (s *MountPoint) SetReadOnly(v bool) *MountPoint {
10794	s.ReadOnly = &v
10795	return s
10796}
10797
10798// SetSourceVolume sets the SourceVolume field's value.
10799func (s *MountPoint) SetSourceVolume(v string) *MountPoint {
10800	s.SourceVolume = &v
10801	return s
10802}
10803
10804// Details on the network bindings between a container and its host container
10805// instance. After a task reaches the RUNNING status, manual and automatic host
10806// and container port assignments are visible in the networkBindings section
10807// of DescribeTasks API responses.
10808type NetworkBinding struct {
10809	_ struct{} `type:"structure"`
10810
10811	// The IP address that the container is bound to on the container instance.
10812	BindIP *string `locationName:"bindIP" type:"string"`
10813
10814	// The port number on the container that is used with the network binding.
10815	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
10816
10817	// The port number on the host that is used with the network binding.
10818	HostPort *int64 `locationName:"hostPort" type:"integer"`
10819
10820	// The protocol used for the network binding.
10821	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
10822}
10823
10824// String returns the string representation
10825func (s NetworkBinding) String() string {
10826	return awsutil.Prettify(s)
10827}
10828
10829// GoString returns the string representation
10830func (s NetworkBinding) GoString() string {
10831	return s.String()
10832}
10833
10834// SetBindIP sets the BindIP field's value.
10835func (s *NetworkBinding) SetBindIP(v string) *NetworkBinding {
10836	s.BindIP = &v
10837	return s
10838}
10839
10840// SetContainerPort sets the ContainerPort field's value.
10841func (s *NetworkBinding) SetContainerPort(v int64) *NetworkBinding {
10842	s.ContainerPort = &v
10843	return s
10844}
10845
10846// SetHostPort sets the HostPort field's value.
10847func (s *NetworkBinding) SetHostPort(v int64) *NetworkBinding {
10848	s.HostPort = &v
10849	return s
10850}
10851
10852// SetProtocol sets the Protocol field's value.
10853func (s *NetworkBinding) SetProtocol(v string) *NetworkBinding {
10854	s.Protocol = &v
10855	return s
10856}
10857
10858// An object representing the network configuration for a task or service.
10859type NetworkConfiguration struct {
10860	_ struct{} `type:"structure"`
10861
10862	// The VPC subnets and security groups associated with a task.
10863	//
10864	// All specified subnets and security groups must be from the same VPC.
10865	AwsvpcConfiguration *AwsVpcConfiguration `locationName:"awsvpcConfiguration" type:"structure"`
10866}
10867
10868// String returns the string representation
10869func (s NetworkConfiguration) String() string {
10870	return awsutil.Prettify(s)
10871}
10872
10873// GoString returns the string representation
10874func (s NetworkConfiguration) GoString() string {
10875	return s.String()
10876}
10877
10878// Validate inspects the fields of the type to determine if they are valid.
10879func (s *NetworkConfiguration) Validate() error {
10880	invalidParams := request.ErrInvalidParams{Context: "NetworkConfiguration"}
10881	if s.AwsvpcConfiguration != nil {
10882		if err := s.AwsvpcConfiguration.Validate(); err != nil {
10883			invalidParams.AddNested("AwsvpcConfiguration", err.(request.ErrInvalidParams))
10884		}
10885	}
10886
10887	if invalidParams.Len() > 0 {
10888		return invalidParams
10889	}
10890	return nil
10891}
10892
10893// SetAwsvpcConfiguration sets the AwsvpcConfiguration field's value.
10894func (s *NetworkConfiguration) SetAwsvpcConfiguration(v *AwsVpcConfiguration) *NetworkConfiguration {
10895	s.AwsvpcConfiguration = v
10896	return s
10897}
10898
10899// An object representing the elastic network interface for tasks that use the
10900// awsvpc network mode.
10901type NetworkInterface struct {
10902	_ struct{} `type:"structure"`
10903
10904	// The attachment ID for the network interface.
10905	AttachmentId *string `locationName:"attachmentId" type:"string"`
10906
10907	// The private IPv6 address for the network interface.
10908	Ipv6Address *string `locationName:"ipv6Address" type:"string"`
10909
10910	// The private IPv4 address for the network interface.
10911	PrivateIpv4Address *string `locationName:"privateIpv4Address" type:"string"`
10912}
10913
10914// String returns the string representation
10915func (s NetworkInterface) String() string {
10916	return awsutil.Prettify(s)
10917}
10918
10919// GoString returns the string representation
10920func (s NetworkInterface) GoString() string {
10921	return s.String()
10922}
10923
10924// SetAttachmentId sets the AttachmentId field's value.
10925func (s *NetworkInterface) SetAttachmentId(v string) *NetworkInterface {
10926	s.AttachmentId = &v
10927	return s
10928}
10929
10930// SetIpv6Address sets the Ipv6Address field's value.
10931func (s *NetworkInterface) SetIpv6Address(v string) *NetworkInterface {
10932	s.Ipv6Address = &v
10933	return s
10934}
10935
10936// SetPrivateIpv4Address sets the PrivateIpv4Address field's value.
10937func (s *NetworkInterface) SetPrivateIpv4Address(v string) *NetworkInterface {
10938	s.PrivateIpv4Address = &v
10939	return s
10940}
10941
10942// An object representing a constraint on task placement. For more information,
10943// see Task Placement Constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
10944// in the Amazon Elastic Container Service Developer Guide.
10945type PlacementConstraint struct {
10946	_ struct{} `type:"structure"`
10947
10948	// A cluster query language expression to apply to the constraint. You cannot
10949	// specify an expression if the constraint type is distinctInstance. For more
10950	// information, see Cluster Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
10951	// in the Amazon Elastic Container Service Developer Guide.
10952	Expression *string `locationName:"expression" type:"string"`
10953
10954	// The type of constraint. Use distinctInstance to ensure that each task in
10955	// a particular group is running on a different container instance. Use memberOf
10956	// to restrict the selection to a group of valid candidates. The value distinctInstance
10957	// is not supported in task definitions.
10958	Type *string `locationName:"type" type:"string" enum:"PlacementConstraintType"`
10959}
10960
10961// String returns the string representation
10962func (s PlacementConstraint) String() string {
10963	return awsutil.Prettify(s)
10964}
10965
10966// GoString returns the string representation
10967func (s PlacementConstraint) GoString() string {
10968	return s.String()
10969}
10970
10971// SetExpression sets the Expression field's value.
10972func (s *PlacementConstraint) SetExpression(v string) *PlacementConstraint {
10973	s.Expression = &v
10974	return s
10975}
10976
10977// SetType sets the Type field's value.
10978func (s *PlacementConstraint) SetType(v string) *PlacementConstraint {
10979	s.Type = &v
10980	return s
10981}
10982
10983// The task placement strategy for a task or service. For more information,
10984// see Task Placement Strategies (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html)
10985// in the Amazon Elastic Container Service Developer Guide.
10986type PlacementStrategy struct {
10987	_ struct{} `type:"structure"`
10988
10989	// The field to apply the placement strategy against. For the spread placement
10990	// strategy, valid values are instanceId (or host, which has the same effect),
10991	// or any platform or custom attribute that is applied to a container instance,
10992	// such as attribute:ecs.availability-zone. For the binpack placement strategy,
10993	// valid values are cpu and memory. For the random placement strategy, this
10994	// field is not used.
10995	Field *string `locationName:"field" type:"string"`
10996
10997	// The type of placement strategy. The random placement strategy randomly places
10998	// tasks on available candidates. The spread placement strategy spreads placement
10999	// across available candidates evenly based on the field parameter. The binpack
11000	// strategy places tasks on available candidates that have the least available
11001	// amount of the resource that is specified with the field parameter. For example,
11002	// if you binpack on memory, a task is placed on the instance with the least
11003	// amount of remaining memory (but still enough to run the task).
11004	Type *string `locationName:"type" type:"string" enum:"PlacementStrategyType"`
11005}
11006
11007// String returns the string representation
11008func (s PlacementStrategy) String() string {
11009	return awsutil.Prettify(s)
11010}
11011
11012// GoString returns the string representation
11013func (s PlacementStrategy) GoString() string {
11014	return s.String()
11015}
11016
11017// SetField sets the Field field's value.
11018func (s *PlacementStrategy) SetField(v string) *PlacementStrategy {
11019	s.Field = &v
11020	return s
11021}
11022
11023// SetType sets the Type field's value.
11024func (s *PlacementStrategy) SetType(v string) *PlacementStrategy {
11025	s.Type = &v
11026	return s
11027}
11028
11029// The devices that are available on the container instance. The only supported
11030// device type is a GPU.
11031type PlatformDevice struct {
11032	_ struct{} `type:"structure"`
11033
11034	// The ID for the GPU(s) on the container instance. The available GPU IDs can
11035	// also be obtained on the container instance in the /var/lib/ecs/gpu/nvidia_gpu_info.json
11036	// file.
11037	//
11038	// Id is a required field
11039	Id *string `locationName:"id" type:"string" required:"true"`
11040
11041	// The type of device that is available on the container instance. The only
11042	// supported value is GPU.
11043	//
11044	// Type is a required field
11045	Type *string `locationName:"type" type:"string" required:"true" enum:"PlatformDeviceType"`
11046}
11047
11048// String returns the string representation
11049func (s PlatformDevice) String() string {
11050	return awsutil.Prettify(s)
11051}
11052
11053// GoString returns the string representation
11054func (s PlatformDevice) GoString() string {
11055	return s.String()
11056}
11057
11058// Validate inspects the fields of the type to determine if they are valid.
11059func (s *PlatformDevice) Validate() error {
11060	invalidParams := request.ErrInvalidParams{Context: "PlatformDevice"}
11061	if s.Id == nil {
11062		invalidParams.Add(request.NewErrParamRequired("Id"))
11063	}
11064	if s.Type == nil {
11065		invalidParams.Add(request.NewErrParamRequired("Type"))
11066	}
11067
11068	if invalidParams.Len() > 0 {
11069		return invalidParams
11070	}
11071	return nil
11072}
11073
11074// SetId sets the Id field's value.
11075func (s *PlatformDevice) SetId(v string) *PlatformDevice {
11076	s.Id = &v
11077	return s
11078}
11079
11080// SetType sets the Type field's value.
11081func (s *PlatformDevice) SetType(v string) *PlatformDevice {
11082	s.Type = &v
11083	return s
11084}
11085
11086// Port mappings allow containers to access ports on the host container instance
11087// to send or receive traffic. Port mappings are specified as part of the container
11088// definition.
11089//
11090// If you are using containers in a task with the awsvpc or host network mode,
11091// exposed ports should be specified using containerPort. The hostPort can be
11092// left blank or it must be the same value as the containerPort.
11093//
11094// After a task reaches the RUNNING status, manual and automatic host and container
11095// port assignments are visible in the networkBindings section of DescribeTasks
11096// API responses.
11097type PortMapping struct {
11098	_ struct{} `type:"structure"`
11099
11100	// The port number on the container that is bound to the user-specified or automatically
11101	// assigned host port.
11102	//
11103	// If you are using containers in a task with the awsvpc or host network mode,
11104	// exposed ports should be specified using containerPort.
11105	//
11106	// If you are using containers in a task with the bridge network mode and you
11107	// specify a container port and not a host port, your container automatically
11108	// receives a host port in the ephemeral port range. For more information, see
11109	// hostPort. Port mappings that are automatically assigned in this way do not
11110	// count toward the 100 reserved ports limit of a container instance.
11111	//
11112	// You cannot expose the same container port for multiple protocols. An error
11113	// will be returned if this is attempted.
11114	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
11115
11116	// The port number on the container instance to reserve for your container.
11117	//
11118	// If you are using containers in a task with the awsvpc or host network mode,
11119	// the hostPort can either be left blank or set to the same value as the containerPort.
11120	//
11121	// If you are using containers in a task with the bridge network mode, you can
11122	// specify a non-reserved host port for your container port mapping, or you
11123	// can omit the hostPort (or set it to 0) while specifying a containerPort and
11124	// your container automatically receives a port in the ephemeral port range
11125	// for your container instance operating system and Docker version.
11126	//
11127	// The default ephemeral port range for Docker version 1.6.0 and later is listed
11128	// on the instance under /proc/sys/net/ipv4/ip_local_port_range. If this kernel
11129	// parameter is unavailable, the default ephemeral port range from 49153 through
11130	// 65535 is used. Do not attempt to specify a host port in the ephemeral port
11131	// range as these are reserved for automatic assignment. In general, ports below
11132	// 32768 are outside of the ephemeral port range.
11133	//
11134	// The default ephemeral port range from 49153 through 65535 is always used
11135	// for Docker versions before 1.6.0.
11136	//
11137	// The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376,
11138	// and the Amazon ECS container agent ports 51678-51680. Any host port that
11139	// was previously specified in a running task is also reserved while the task
11140	// is running (after a task stops, the host port is released). The current reserved
11141	// ports are displayed in the remainingResources of DescribeContainerInstances
11142	// output. A container instance can have up to 100 reserved ports at a time,
11143	// including the default reserved ports. Automatically assigned ports don't
11144	// count toward the 100 reserved ports limit.
11145	HostPort *int64 `locationName:"hostPort" type:"integer"`
11146
11147	// The protocol used for the port mapping. Valid values are tcp and udp. The
11148	// default is tcp.
11149	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
11150}
11151
11152// String returns the string representation
11153func (s PortMapping) String() string {
11154	return awsutil.Prettify(s)
11155}
11156
11157// GoString returns the string representation
11158func (s PortMapping) GoString() string {
11159	return s.String()
11160}
11161
11162// SetContainerPort sets the ContainerPort field's value.
11163func (s *PortMapping) SetContainerPort(v int64) *PortMapping {
11164	s.ContainerPort = &v
11165	return s
11166}
11167
11168// SetHostPort sets the HostPort field's value.
11169func (s *PortMapping) SetHostPort(v int64) *PortMapping {
11170	s.HostPort = &v
11171	return s
11172}
11173
11174// SetProtocol sets the Protocol field's value.
11175func (s *PortMapping) SetProtocol(v string) *PortMapping {
11176	s.Protocol = &v
11177	return s
11178}
11179
11180// The configuration details for the App Mesh proxy.
11181//
11182// For tasks using the EC2 launch type, the container instances require at least
11183// version 1.26.0 of the container agent and at least version 1.26.0-1 of the
11184// ecs-init package to enable a proxy configuration. If your container instances
11185// are launched from the Amazon ECS-optimized AMI version 20190301 or later,
11186// then they contain the required versions of the container agent and ecs-init.
11187// For more information, see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
11188// in the Amazon Elastic Container Service Developer Guide.
11189//
11190// For tasks using the Fargate launch type, the task or service requires platform
11191// version 1.3.0 or later.
11192type ProxyConfiguration struct {
11193	_ struct{} `type:"structure"`
11194
11195	// The name of the container that will serve as the App Mesh proxy.
11196	//
11197	// ContainerName is a required field
11198	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
11199
11200	// The set of network configuration parameters to provide the Container Network
11201	// Interface (CNI) plugin, specified as key-value pairs.
11202	//
11203	//    * IgnoredUID - (Required) The user ID (UID) of the proxy container as
11204	//    defined by the user parameter in a container definition. This is used
11205	//    to ensure the proxy ignores its own traffic. If IgnoredGID is specified,
11206	//    this field can be empty.
11207	//
11208	//    * IgnoredGID - (Required) The group ID (GID) of the proxy container as
11209	//    defined by the user parameter in a container definition. This is used
11210	//    to ensure the proxy ignores its own traffic. If IgnoredUID is specified,
11211	//    this field can be empty.
11212	//
11213	//    * AppPorts - (Required) The list of ports that the application uses. Network
11214	//    traffic to these ports is forwarded to the ProxyIngressPort and ProxyEgressPort.
11215	//
11216	//    * ProxyIngressPort - (Required) Specifies the port that incoming traffic
11217	//    to the AppPorts is directed to.
11218	//
11219	//    * ProxyEgressPort - (Required) Specifies the port that outgoing traffic
11220	//    from the AppPorts is directed to.
11221	//
11222	//    * EgressIgnoredPorts - (Required) The egress traffic going to the specified
11223	//    ports is ignored and not redirected to the ProxyEgressPort. It can be
11224	//    an empty list.
11225	//
11226	//    * EgressIgnoredIPs - (Required) The egress traffic going to the specified
11227	//    IP addresses is ignored and not redirected to the ProxyEgressPort. It
11228	//    can be an empty list.
11229	Properties []*KeyValuePair `locationName:"properties" type:"list"`
11230
11231	// The proxy type. The only supported value is APPMESH.
11232	Type *string `locationName:"type" type:"string" enum:"ProxyConfigurationType"`
11233}
11234
11235// String returns the string representation
11236func (s ProxyConfiguration) String() string {
11237	return awsutil.Prettify(s)
11238}
11239
11240// GoString returns the string representation
11241func (s ProxyConfiguration) GoString() string {
11242	return s.String()
11243}
11244
11245// Validate inspects the fields of the type to determine if they are valid.
11246func (s *ProxyConfiguration) Validate() error {
11247	invalidParams := request.ErrInvalidParams{Context: "ProxyConfiguration"}
11248	if s.ContainerName == nil {
11249		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
11250	}
11251
11252	if invalidParams.Len() > 0 {
11253		return invalidParams
11254	}
11255	return nil
11256}
11257
11258// SetContainerName sets the ContainerName field's value.
11259func (s *ProxyConfiguration) SetContainerName(v string) *ProxyConfiguration {
11260	s.ContainerName = &v
11261	return s
11262}
11263
11264// SetProperties sets the Properties field's value.
11265func (s *ProxyConfiguration) SetProperties(v []*KeyValuePair) *ProxyConfiguration {
11266	s.Properties = v
11267	return s
11268}
11269
11270// SetType sets the Type field's value.
11271func (s *ProxyConfiguration) SetType(v string) *ProxyConfiguration {
11272	s.Type = &v
11273	return s
11274}
11275
11276type PutAccountSettingDefaultInput struct {
11277	_ struct{} `type:"structure"`
11278
11279	// The resource name for which to modify the account setting. If serviceLongArnFormat
11280	// is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat
11281	// is specified, the ARN and resource ID for your Amazon ECS tasks is affected.
11282	// If containerInstanceLongArnFormat is specified, the ARN and resource ID for
11283	// your Amazon ECS container instances is affected. If awsvpcTrunking is specified,
11284	// the ENI limit for your Amazon ECS container instances is affected. If containerInsights
11285	// is specified, the default setting for CloudWatch Container Insights for your
11286	// clusters is affected.
11287	//
11288	// Name is a required field
11289	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
11290
11291	// The account setting value for the specified principal ARN. Accepted values
11292	// are enabled and disabled.
11293	//
11294	// Value is a required field
11295	Value *string `locationName:"value" type:"string" required:"true"`
11296}
11297
11298// String returns the string representation
11299func (s PutAccountSettingDefaultInput) String() string {
11300	return awsutil.Prettify(s)
11301}
11302
11303// GoString returns the string representation
11304func (s PutAccountSettingDefaultInput) GoString() string {
11305	return s.String()
11306}
11307
11308// Validate inspects the fields of the type to determine if they are valid.
11309func (s *PutAccountSettingDefaultInput) Validate() error {
11310	invalidParams := request.ErrInvalidParams{Context: "PutAccountSettingDefaultInput"}
11311	if s.Name == nil {
11312		invalidParams.Add(request.NewErrParamRequired("Name"))
11313	}
11314	if s.Value == nil {
11315		invalidParams.Add(request.NewErrParamRequired("Value"))
11316	}
11317
11318	if invalidParams.Len() > 0 {
11319		return invalidParams
11320	}
11321	return nil
11322}
11323
11324// SetName sets the Name field's value.
11325func (s *PutAccountSettingDefaultInput) SetName(v string) *PutAccountSettingDefaultInput {
11326	s.Name = &v
11327	return s
11328}
11329
11330// SetValue sets the Value field's value.
11331func (s *PutAccountSettingDefaultInput) SetValue(v string) *PutAccountSettingDefaultInput {
11332	s.Value = &v
11333	return s
11334}
11335
11336type PutAccountSettingDefaultOutput struct {
11337	_ struct{} `type:"structure"`
11338
11339	// The current account setting for a resource.
11340	Setting *Setting `locationName:"setting" type:"structure"`
11341}
11342
11343// String returns the string representation
11344func (s PutAccountSettingDefaultOutput) String() string {
11345	return awsutil.Prettify(s)
11346}
11347
11348// GoString returns the string representation
11349func (s PutAccountSettingDefaultOutput) GoString() string {
11350	return s.String()
11351}
11352
11353// SetSetting sets the Setting field's value.
11354func (s *PutAccountSettingDefaultOutput) SetSetting(v *Setting) *PutAccountSettingDefaultOutput {
11355	s.Setting = v
11356	return s
11357}
11358
11359type PutAccountSettingInput struct {
11360	_ struct{} `type:"structure"`
11361
11362	// The Amazon ECS resource name for which to modify the account setting. If
11363	// serviceLongArnFormat is specified, the ARN for your Amazon ECS services is
11364	// affected. If taskLongArnFormat is specified, the ARN and resource ID for
11365	// your Amazon ECS tasks is affected. If containerInstanceLongArnFormat is specified,
11366	// the ARN and resource ID for your Amazon ECS container instances is affected.
11367	// If awsvpcTrunking is specified, the elastic network interface (ENI) limit
11368	// for your Amazon ECS container instances is affected. If containerInsights
11369	// is specified, the default setting for CloudWatch Container Insights for your
11370	// clusters is affected.
11371	//
11372	// Name is a required field
11373	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
11374
11375	// The ARN of the principal, which can be an IAM user, IAM role, or the root
11376	// user. If you specify the root user, it modifies the account setting for all
11377	// IAM users, IAM roles, and the root user of the account unless an IAM user
11378	// or role explicitly overrides these settings. If this field is omitted, the
11379	// setting is changed only for the authenticated user.
11380	PrincipalArn *string `locationName:"principalArn" type:"string"`
11381
11382	// The account setting value for the specified principal ARN. Accepted values
11383	// are enabled and disabled.
11384	//
11385	// Value is a required field
11386	Value *string `locationName:"value" type:"string" required:"true"`
11387}
11388
11389// String returns the string representation
11390func (s PutAccountSettingInput) String() string {
11391	return awsutil.Prettify(s)
11392}
11393
11394// GoString returns the string representation
11395func (s PutAccountSettingInput) GoString() string {
11396	return s.String()
11397}
11398
11399// Validate inspects the fields of the type to determine if they are valid.
11400func (s *PutAccountSettingInput) Validate() error {
11401	invalidParams := request.ErrInvalidParams{Context: "PutAccountSettingInput"}
11402	if s.Name == nil {
11403		invalidParams.Add(request.NewErrParamRequired("Name"))
11404	}
11405	if s.Value == nil {
11406		invalidParams.Add(request.NewErrParamRequired("Value"))
11407	}
11408
11409	if invalidParams.Len() > 0 {
11410		return invalidParams
11411	}
11412	return nil
11413}
11414
11415// SetName sets the Name field's value.
11416func (s *PutAccountSettingInput) SetName(v string) *PutAccountSettingInput {
11417	s.Name = &v
11418	return s
11419}
11420
11421// SetPrincipalArn sets the PrincipalArn field's value.
11422func (s *PutAccountSettingInput) SetPrincipalArn(v string) *PutAccountSettingInput {
11423	s.PrincipalArn = &v
11424	return s
11425}
11426
11427// SetValue sets the Value field's value.
11428func (s *PutAccountSettingInput) SetValue(v string) *PutAccountSettingInput {
11429	s.Value = &v
11430	return s
11431}
11432
11433type PutAccountSettingOutput struct {
11434	_ struct{} `type:"structure"`
11435
11436	// The current account setting for a resource.
11437	Setting *Setting `locationName:"setting" type:"structure"`
11438}
11439
11440// String returns the string representation
11441func (s PutAccountSettingOutput) String() string {
11442	return awsutil.Prettify(s)
11443}
11444
11445// GoString returns the string representation
11446func (s PutAccountSettingOutput) GoString() string {
11447	return s.String()
11448}
11449
11450// SetSetting sets the Setting field's value.
11451func (s *PutAccountSettingOutput) SetSetting(v *Setting) *PutAccountSettingOutput {
11452	s.Setting = v
11453	return s
11454}
11455
11456type PutAttributesInput struct {
11457	_ struct{} `type:"structure"`
11458
11459	// The attributes to apply to your resource. You can specify up to 10 custom
11460	// attributes per resource. You can specify up to 10 attributes in a single
11461	// call.
11462	//
11463	// Attributes is a required field
11464	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
11465
11466	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
11467	// the resource to apply attributes. If you do not specify a cluster, the default
11468	// cluster is assumed.
11469	Cluster *string `locationName:"cluster" type:"string"`
11470}
11471
11472// String returns the string representation
11473func (s PutAttributesInput) String() string {
11474	return awsutil.Prettify(s)
11475}
11476
11477// GoString returns the string representation
11478func (s PutAttributesInput) GoString() string {
11479	return s.String()
11480}
11481
11482// Validate inspects the fields of the type to determine if they are valid.
11483func (s *PutAttributesInput) Validate() error {
11484	invalidParams := request.ErrInvalidParams{Context: "PutAttributesInput"}
11485	if s.Attributes == nil {
11486		invalidParams.Add(request.NewErrParamRequired("Attributes"))
11487	}
11488	if s.Attributes != nil {
11489		for i, v := range s.Attributes {
11490			if v == nil {
11491				continue
11492			}
11493			if err := v.Validate(); err != nil {
11494				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
11495			}
11496		}
11497	}
11498
11499	if invalidParams.Len() > 0 {
11500		return invalidParams
11501	}
11502	return nil
11503}
11504
11505// SetAttributes sets the Attributes field's value.
11506func (s *PutAttributesInput) SetAttributes(v []*Attribute) *PutAttributesInput {
11507	s.Attributes = v
11508	return s
11509}
11510
11511// SetCluster sets the Cluster field's value.
11512func (s *PutAttributesInput) SetCluster(v string) *PutAttributesInput {
11513	s.Cluster = &v
11514	return s
11515}
11516
11517type PutAttributesOutput struct {
11518	_ struct{} `type:"structure"`
11519
11520	// The attributes applied to your resource.
11521	Attributes []*Attribute `locationName:"attributes" type:"list"`
11522}
11523
11524// String returns the string representation
11525func (s PutAttributesOutput) String() string {
11526	return awsutil.Prettify(s)
11527}
11528
11529// GoString returns the string representation
11530func (s PutAttributesOutput) GoString() string {
11531	return s.String()
11532}
11533
11534// SetAttributes sets the Attributes field's value.
11535func (s *PutAttributesOutput) SetAttributes(v []*Attribute) *PutAttributesOutput {
11536	s.Attributes = v
11537	return s
11538}
11539
11540type RegisterContainerInstanceInput struct {
11541	_ struct{} `type:"structure"`
11542
11543	// The container instance attributes that this container instance supports.
11544	Attributes []*Attribute `locationName:"attributes" type:"list"`
11545
11546	// The short name or full Amazon Resource Name (ARN) of the cluster with which
11547	// to register your container instance. If you do not specify a cluster, the
11548	// default cluster is assumed.
11549	Cluster *string `locationName:"cluster" type:"string"`
11550
11551	// The ARN of the container instance (if it was previously registered).
11552	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
11553
11554	// The instance identity document for the EC2 instance to register. This document
11555	// can be found by running the following command from the instance: curl http://169.254.169.254/latest/dynamic/instance-identity/document/
11556	InstanceIdentityDocument *string `locationName:"instanceIdentityDocument" type:"string"`
11557
11558	// The instance identity document signature for the EC2 instance to register.
11559	// This signature can be found by running the following command from the instance:
11560	// curl http://169.254.169.254/latest/dynamic/instance-identity/signature/
11561	InstanceIdentityDocumentSignature *string `locationName:"instanceIdentityDocumentSignature" type:"string"`
11562
11563	// The devices that are available on the container instance. The only supported
11564	// device type is a GPU.
11565	PlatformDevices []*PlatformDevice `locationName:"platformDevices" type:"list"`
11566
11567	// The metadata that you apply to the container instance to help you categorize
11568	// and organize them. Each tag consists of a key and an optional value, both
11569	// of which you define. Tag keys can have a maximum character length of 128
11570	// characters, and tag values can have a maximum length of 256 characters.
11571	Tags []*Tag `locationName:"tags" type:"list"`
11572
11573	// The resources available on the instance.
11574	TotalResources []*Resource `locationName:"totalResources" type:"list"`
11575
11576	// The version information for the Amazon ECS container agent and Docker daemon
11577	// running on the container instance.
11578	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
11579}
11580
11581// String returns the string representation
11582func (s RegisterContainerInstanceInput) String() string {
11583	return awsutil.Prettify(s)
11584}
11585
11586// GoString returns the string representation
11587func (s RegisterContainerInstanceInput) GoString() string {
11588	return s.String()
11589}
11590
11591// Validate inspects the fields of the type to determine if they are valid.
11592func (s *RegisterContainerInstanceInput) Validate() error {
11593	invalidParams := request.ErrInvalidParams{Context: "RegisterContainerInstanceInput"}
11594	if s.Attributes != nil {
11595		for i, v := range s.Attributes {
11596			if v == nil {
11597				continue
11598			}
11599			if err := v.Validate(); err != nil {
11600				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
11601			}
11602		}
11603	}
11604	if s.PlatformDevices != nil {
11605		for i, v := range s.PlatformDevices {
11606			if v == nil {
11607				continue
11608			}
11609			if err := v.Validate(); err != nil {
11610				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlatformDevices", i), err.(request.ErrInvalidParams))
11611			}
11612		}
11613	}
11614	if s.Tags != nil {
11615		for i, v := range s.Tags {
11616			if v == nil {
11617				continue
11618			}
11619			if err := v.Validate(); err != nil {
11620				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
11621			}
11622		}
11623	}
11624
11625	if invalidParams.Len() > 0 {
11626		return invalidParams
11627	}
11628	return nil
11629}
11630
11631// SetAttributes sets the Attributes field's value.
11632func (s *RegisterContainerInstanceInput) SetAttributes(v []*Attribute) *RegisterContainerInstanceInput {
11633	s.Attributes = v
11634	return s
11635}
11636
11637// SetCluster sets the Cluster field's value.
11638func (s *RegisterContainerInstanceInput) SetCluster(v string) *RegisterContainerInstanceInput {
11639	s.Cluster = &v
11640	return s
11641}
11642
11643// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
11644func (s *RegisterContainerInstanceInput) SetContainerInstanceArn(v string) *RegisterContainerInstanceInput {
11645	s.ContainerInstanceArn = &v
11646	return s
11647}
11648
11649// SetInstanceIdentityDocument sets the InstanceIdentityDocument field's value.
11650func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocument(v string) *RegisterContainerInstanceInput {
11651	s.InstanceIdentityDocument = &v
11652	return s
11653}
11654
11655// SetInstanceIdentityDocumentSignature sets the InstanceIdentityDocumentSignature field's value.
11656func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocumentSignature(v string) *RegisterContainerInstanceInput {
11657	s.InstanceIdentityDocumentSignature = &v
11658	return s
11659}
11660
11661// SetPlatformDevices sets the PlatformDevices field's value.
11662func (s *RegisterContainerInstanceInput) SetPlatformDevices(v []*PlatformDevice) *RegisterContainerInstanceInput {
11663	s.PlatformDevices = v
11664	return s
11665}
11666
11667// SetTags sets the Tags field's value.
11668func (s *RegisterContainerInstanceInput) SetTags(v []*Tag) *RegisterContainerInstanceInput {
11669	s.Tags = v
11670	return s
11671}
11672
11673// SetTotalResources sets the TotalResources field's value.
11674func (s *RegisterContainerInstanceInput) SetTotalResources(v []*Resource) *RegisterContainerInstanceInput {
11675	s.TotalResources = v
11676	return s
11677}
11678
11679// SetVersionInfo sets the VersionInfo field's value.
11680func (s *RegisterContainerInstanceInput) SetVersionInfo(v *VersionInfo) *RegisterContainerInstanceInput {
11681	s.VersionInfo = v
11682	return s
11683}
11684
11685type RegisterContainerInstanceOutput struct {
11686	_ struct{} `type:"structure"`
11687
11688	// The container instance that was registered.
11689	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
11690}
11691
11692// String returns the string representation
11693func (s RegisterContainerInstanceOutput) String() string {
11694	return awsutil.Prettify(s)
11695}
11696
11697// GoString returns the string representation
11698func (s RegisterContainerInstanceOutput) GoString() string {
11699	return s.String()
11700}
11701
11702// SetContainerInstance sets the ContainerInstance field's value.
11703func (s *RegisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *RegisterContainerInstanceOutput {
11704	s.ContainerInstance = v
11705	return s
11706}
11707
11708type RegisterTaskDefinitionInput struct {
11709	_ struct{} `type:"structure"`
11710
11711	// A list of container definitions in JSON format that describe the different
11712	// containers that make up your task.
11713	//
11714	// ContainerDefinitions is a required field
11715	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list" required:"true"`
11716
11717	// The number of CPU units used by the task. It can be expressed as an integer
11718	// using CPU units, for example 1024, or as a string using vCPUs, for example
11719	// 1 vCPU or 1 vcpu, in a task definition. String values are converted to an
11720	// integer indicating the CPU units when the task definition is registered.
11721	//
11722	// Task-level CPU and memory parameters are ignored for Windows containers.
11723	// We recommend specifying container-level resources for Windows containers.
11724	//
11725	// If you are using the EC2 launch type, this field is optional. Supported values
11726	// are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).
11727	//
11728	// If you are using the Fargate launch type, this field is required and you
11729	// must use one of the following values, which determines your range of supported
11730	// values for the memory parameter:
11731	//
11732	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
11733	//    2048 (2 GB)
11734	//
11735	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
11736	//    (3 GB), 4096 (4 GB)
11737	//
11738	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
11739	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
11740	//
11741	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
11742	//    (16 GB) in increments of 1024 (1 GB)
11743	//
11744	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
11745	//    (30 GB) in increments of 1024 (1 GB)
11746	Cpu *string `locationName:"cpu" type:"string"`
11747
11748	// The Amazon Resource Name (ARN) of the task execution role that the Amazon
11749	// ECS container agent and the Docker daemon can assume.
11750	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
11751
11752	// You must specify a family for a task definition, which allows you to track
11753	// multiple versions of the same task definition. The family is used as a name
11754	// for your task definition. Up to 255 letters (uppercase and lowercase), numbers,
11755	// and hyphens are allowed.
11756	//
11757	// Family is a required field
11758	Family *string `locationName:"family" type:"string" required:"true"`
11759
11760	// The IPC resource namespace to use for the containers in the task. The valid
11761	// values are host, task, or none. If host is specified, then all containers
11762	// within the tasks that specified the host IPC mode on the same container instance
11763	// share the same IPC resources with the host Amazon EC2 instance. If task is
11764	// specified, all containers within the specified task share the same IPC resources.
11765	// If none is specified, then IPC resources within the containers of a task
11766	// are private and not shared with other containers in a task or on the container
11767	// instance. If no value is specified, then the IPC resource namespace sharing
11768	// depends on the Docker daemon setting on the container instance. For more
11769	// information, see IPC settings (https://docs.docker.com/engine/reference/run/#ipc-settings---ipc)
11770	// in the Docker run reference.
11771	//
11772	// If the host IPC mode is used, be aware that there is a heightened risk of
11773	// undesired IPC namespace expose. For more information, see Docker security
11774	// (https://docs.docker.com/engine/security/security/).
11775	//
11776	// If you are setting namespaced kernel parameters using systemControls for
11777	// the containers in the task, the following will apply to your IPC resource
11778	// namespace. For more information, see System Controls (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)
11779	// in the Amazon Elastic Container Service Developer Guide.
11780	//
11781	//    * For tasks that use the host IPC mode, IPC namespace related systemControls
11782	//    are not supported.
11783	//
11784	//    * For tasks that use the task IPC mode, IPC namespace related systemControls
11785	//    will apply to all containers within a task.
11786	//
11787	// This parameter is not supported for Windows containers or tasks using the
11788	// Fargate launch type.
11789	IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"`
11790
11791	// The amount of memory (in MiB) used by the task. It can be expressed as an
11792	// integer using MiB, for example 1024, or as a string using GB, for example
11793	// 1GB or 1 GB, in a task definition. String values are converted to an integer
11794	// indicating the MiB when the task definition is registered.
11795	//
11796	// Task-level CPU and memory parameters are ignored for Windows containers.
11797	// We recommend specifying container-level resources for Windows containers.
11798	//
11799	// If using the EC2 launch type, this field is optional.
11800	//
11801	// If using the Fargate launch type, this field is required and you must use
11802	// one of the following values, which determines your range of supported values
11803	// for the cpu parameter:
11804	//
11805	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
11806	//    vCPU)
11807	//
11808	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
11809	//    512 (.5 vCPU)
11810	//
11811	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
11812	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
11813	//
11814	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
11815	//    Available cpu values: 2048 (2 vCPU)
11816	//
11817	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
11818	//    Available cpu values: 4096 (4 vCPU)
11819	Memory *string `locationName:"memory" type:"string"`
11820
11821	// The Docker networking mode to use for the containers in the task. The valid
11822	// values are none, bridge, awsvpc, and host. The default Docker network mode
11823	// is bridge. If you are using the Fargate launch type, the awsvpc network mode
11824	// is required. If you are using the EC2 launch type, any network mode can be
11825	// used. If the network mode is set to none, you cannot specify port mappings
11826	// in your container definitions, and the tasks containers do not have external
11827	// connectivity. The host and awsvpc network modes offer the highest networking
11828	// performance for containers because they use the EC2 network stack instead
11829	// of the virtualized network stack provided by the bridge mode.
11830	//
11831	// With the host and awsvpc network modes, exposed container ports are mapped
11832	// directly to the corresponding host port (for the host network mode) or the
11833	// attached elastic network interface port (for the awsvpc network mode), so
11834	// you cannot take advantage of dynamic host port mappings.
11835	//
11836	// If the network mode is awsvpc, the task is allocated an elastic network interface,
11837	// and you must specify a NetworkConfiguration value when you create a service
11838	// or run a task with the task definition. For more information, see Task Networking
11839	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
11840	// in the Amazon Elastic Container Service Developer Guide.
11841	//
11842	// Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with
11843	// the ecs-init package, or AWS Fargate infrastructure support the awsvpc network
11844	// mode.
11845	//
11846	// If the network mode is host, you cannot run multiple instantiations of the
11847	// same task on a single container instance when port mappings are used.
11848	//
11849	// Docker for Windows uses different network modes than Docker for Linux. When
11850	// you register a task definition with Windows containers, you must not specify
11851	// a network mode. If you use the console to register a task definition with
11852	// Windows containers, you must choose the <default> network mode object.
11853	//
11854	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
11855	// in the Docker run reference.
11856	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
11857
11858	// The process namespace to use for the containers in the task. The valid values
11859	// are host or task. If host is specified, then all containers within the tasks
11860	// that specified the host PID mode on the same container instance share the
11861	// same IPC resources with the host Amazon EC2 instance. If task is specified,
11862	// all containers within the specified task share the same process namespace.
11863	// If no value is specified, the default is a private namespace. For more information,
11864	// see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid)
11865	// in the Docker run reference.
11866	//
11867	// If the host PID mode is used, be aware that there is a heightened risk of
11868	// undesired process namespace expose. For more information, see Docker security
11869	// (https://docs.docker.com/engine/security/security/).
11870	//
11871	// This parameter is not supported for Windows containers or tasks using the
11872	// Fargate launch type.
11873	PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"`
11874
11875	// An array of placement constraint objects to use for the task. You can specify
11876	// a maximum of 10 constraints per task (this limit includes constraints in
11877	// the task definition and those specified at runtime).
11878	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
11879
11880	// The configuration details for the App Mesh proxy.
11881	//
11882	// For tasks using the EC2 launch type, the container instances require at least
11883	// version 1.26.0 of the container agent and at least version 1.26.0-1 of the
11884	// ecs-init package to enable a proxy configuration. If your container instances
11885	// are launched from the Amazon ECS-optimized AMI version 20190301 or later,
11886	// then they contain the required versions of the container agent and ecs-init.
11887	// For more information, see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
11888	// in the Amazon Elastic Container Service Developer Guide.
11889	//
11890	// For tasks using the Fargate launch type, the task or service requires platform
11891	// version 1.3.0 or later.
11892	ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"`
11893
11894	// The launch type required by the task. If no value is specified, it defaults
11895	// to EC2.
11896	RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"`
11897
11898	// The metadata that you apply to the task definition to help you categorize
11899	// and organize them. Each tag consists of a key and an optional value, both
11900	// of which you define. Tag keys can have a maximum character length of 128
11901	// characters, and tag values can have a maximum length of 256 characters.
11902	Tags []*Tag `locationName:"tags" type:"list"`
11903
11904	// The short name or full Amazon Resource Name (ARN) of the IAM role that containers
11905	// in this task can assume. All containers in this task are granted the permissions
11906	// that are specified in this role. For more information, see IAM Roles for
11907	// Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
11908	// in the Amazon Elastic Container Service Developer Guide.
11909	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
11910
11911	// A list of volume definitions in JSON format that containers in your task
11912	// may use.
11913	Volumes []*Volume `locationName:"volumes" type:"list"`
11914}
11915
11916// String returns the string representation
11917func (s RegisterTaskDefinitionInput) String() string {
11918	return awsutil.Prettify(s)
11919}
11920
11921// GoString returns the string representation
11922func (s RegisterTaskDefinitionInput) GoString() string {
11923	return s.String()
11924}
11925
11926// Validate inspects the fields of the type to determine if they are valid.
11927func (s *RegisterTaskDefinitionInput) Validate() error {
11928	invalidParams := request.ErrInvalidParams{Context: "RegisterTaskDefinitionInput"}
11929	if s.ContainerDefinitions == nil {
11930		invalidParams.Add(request.NewErrParamRequired("ContainerDefinitions"))
11931	}
11932	if s.Family == nil {
11933		invalidParams.Add(request.NewErrParamRequired("Family"))
11934	}
11935	if s.ContainerDefinitions != nil {
11936		for i, v := range s.ContainerDefinitions {
11937			if v == nil {
11938				continue
11939			}
11940			if err := v.Validate(); err != nil {
11941				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContainerDefinitions", i), err.(request.ErrInvalidParams))
11942			}
11943		}
11944	}
11945	if s.ProxyConfiguration != nil {
11946		if err := s.ProxyConfiguration.Validate(); err != nil {
11947			invalidParams.AddNested("ProxyConfiguration", err.(request.ErrInvalidParams))
11948		}
11949	}
11950	if s.Tags != nil {
11951		for i, v := range s.Tags {
11952			if v == nil {
11953				continue
11954			}
11955			if err := v.Validate(); err != nil {
11956				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
11957			}
11958		}
11959	}
11960
11961	if invalidParams.Len() > 0 {
11962		return invalidParams
11963	}
11964	return nil
11965}
11966
11967// SetContainerDefinitions sets the ContainerDefinitions field's value.
11968func (s *RegisterTaskDefinitionInput) SetContainerDefinitions(v []*ContainerDefinition) *RegisterTaskDefinitionInput {
11969	s.ContainerDefinitions = v
11970	return s
11971}
11972
11973// SetCpu sets the Cpu field's value.
11974func (s *RegisterTaskDefinitionInput) SetCpu(v string) *RegisterTaskDefinitionInput {
11975	s.Cpu = &v
11976	return s
11977}
11978
11979// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
11980func (s *RegisterTaskDefinitionInput) SetExecutionRoleArn(v string) *RegisterTaskDefinitionInput {
11981	s.ExecutionRoleArn = &v
11982	return s
11983}
11984
11985// SetFamily sets the Family field's value.
11986func (s *RegisterTaskDefinitionInput) SetFamily(v string) *RegisterTaskDefinitionInput {
11987	s.Family = &v
11988	return s
11989}
11990
11991// SetIpcMode sets the IpcMode field's value.
11992func (s *RegisterTaskDefinitionInput) SetIpcMode(v string) *RegisterTaskDefinitionInput {
11993	s.IpcMode = &v
11994	return s
11995}
11996
11997// SetMemory sets the Memory field's value.
11998func (s *RegisterTaskDefinitionInput) SetMemory(v string) *RegisterTaskDefinitionInput {
11999	s.Memory = &v
12000	return s
12001}
12002
12003// SetNetworkMode sets the NetworkMode field's value.
12004func (s *RegisterTaskDefinitionInput) SetNetworkMode(v string) *RegisterTaskDefinitionInput {
12005	s.NetworkMode = &v
12006	return s
12007}
12008
12009// SetPidMode sets the PidMode field's value.
12010func (s *RegisterTaskDefinitionInput) SetPidMode(v string) *RegisterTaskDefinitionInput {
12011	s.PidMode = &v
12012	return s
12013}
12014
12015// SetPlacementConstraints sets the PlacementConstraints field's value.
12016func (s *RegisterTaskDefinitionInput) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *RegisterTaskDefinitionInput {
12017	s.PlacementConstraints = v
12018	return s
12019}
12020
12021// SetProxyConfiguration sets the ProxyConfiguration field's value.
12022func (s *RegisterTaskDefinitionInput) SetProxyConfiguration(v *ProxyConfiguration) *RegisterTaskDefinitionInput {
12023	s.ProxyConfiguration = v
12024	return s
12025}
12026
12027// SetRequiresCompatibilities sets the RequiresCompatibilities field's value.
12028func (s *RegisterTaskDefinitionInput) SetRequiresCompatibilities(v []*string) *RegisterTaskDefinitionInput {
12029	s.RequiresCompatibilities = v
12030	return s
12031}
12032
12033// SetTags sets the Tags field's value.
12034func (s *RegisterTaskDefinitionInput) SetTags(v []*Tag) *RegisterTaskDefinitionInput {
12035	s.Tags = v
12036	return s
12037}
12038
12039// SetTaskRoleArn sets the TaskRoleArn field's value.
12040func (s *RegisterTaskDefinitionInput) SetTaskRoleArn(v string) *RegisterTaskDefinitionInput {
12041	s.TaskRoleArn = &v
12042	return s
12043}
12044
12045// SetVolumes sets the Volumes field's value.
12046func (s *RegisterTaskDefinitionInput) SetVolumes(v []*Volume) *RegisterTaskDefinitionInput {
12047	s.Volumes = v
12048	return s
12049}
12050
12051type RegisterTaskDefinitionOutput struct {
12052	_ struct{} `type:"structure"`
12053
12054	// The list of tags associated with the task definition.
12055	Tags []*Tag `locationName:"tags" type:"list"`
12056
12057	// The full description of the registered task definition.
12058	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
12059}
12060
12061// String returns the string representation
12062func (s RegisterTaskDefinitionOutput) String() string {
12063	return awsutil.Prettify(s)
12064}
12065
12066// GoString returns the string representation
12067func (s RegisterTaskDefinitionOutput) GoString() string {
12068	return s.String()
12069}
12070
12071// SetTags sets the Tags field's value.
12072func (s *RegisterTaskDefinitionOutput) SetTags(v []*Tag) *RegisterTaskDefinitionOutput {
12073	s.Tags = v
12074	return s
12075}
12076
12077// SetTaskDefinition sets the TaskDefinition field's value.
12078func (s *RegisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *RegisterTaskDefinitionOutput {
12079	s.TaskDefinition = v
12080	return s
12081}
12082
12083// The repository credentials for private registry authentication.
12084type RepositoryCredentials struct {
12085	_ struct{} `type:"structure"`
12086
12087	// The Amazon Resource Name (ARN) of the secret containing the private repository
12088	// credentials.
12089	//
12090	// When you are using the Amazon ECS API, AWS CLI, or AWS SDK, if the secret
12091	// exists in the same Region as the task that you are launching then you can
12092	// use either the full ARN or the name of the secret. When you are using the
12093	// AWS Management Console, you must specify the full ARN of the secret.
12094	//
12095	// CredentialsParameter is a required field
12096	CredentialsParameter *string `locationName:"credentialsParameter" type:"string" required:"true"`
12097}
12098
12099// String returns the string representation
12100func (s RepositoryCredentials) String() string {
12101	return awsutil.Prettify(s)
12102}
12103
12104// GoString returns the string representation
12105func (s RepositoryCredentials) GoString() string {
12106	return s.String()
12107}
12108
12109// Validate inspects the fields of the type to determine if they are valid.
12110func (s *RepositoryCredentials) Validate() error {
12111	invalidParams := request.ErrInvalidParams{Context: "RepositoryCredentials"}
12112	if s.CredentialsParameter == nil {
12113		invalidParams.Add(request.NewErrParamRequired("CredentialsParameter"))
12114	}
12115
12116	if invalidParams.Len() > 0 {
12117		return invalidParams
12118	}
12119	return nil
12120}
12121
12122// SetCredentialsParameter sets the CredentialsParameter field's value.
12123func (s *RepositoryCredentials) SetCredentialsParameter(v string) *RepositoryCredentials {
12124	s.CredentialsParameter = &v
12125	return s
12126}
12127
12128// Describes the resources available for a container instance.
12129type Resource struct {
12130	_ struct{} `type:"structure"`
12131
12132	// When the doubleValue type is set, the value of the resource must be a double
12133	// precision floating-point type.
12134	DoubleValue *float64 `locationName:"doubleValue" type:"double"`
12135
12136	// When the integerValue type is set, the value of the resource must be an integer.
12137	IntegerValue *int64 `locationName:"integerValue" type:"integer"`
12138
12139	// When the longValue type is set, the value of the resource must be an extended
12140	// precision floating-point type.
12141	LongValue *int64 `locationName:"longValue" type:"long"`
12142
12143	// The name of the resource, such as CPU, MEMORY, PORTS, PORTS_UDP, or a user-defined
12144	// resource.
12145	Name *string `locationName:"name" type:"string"`
12146
12147	// When the stringSetValue type is set, the value of the resource must be a
12148	// string type.
12149	StringSetValue []*string `locationName:"stringSetValue" type:"list"`
12150
12151	// The type of the resource, such as INTEGER, DOUBLE, LONG, or STRINGSET.
12152	Type *string `locationName:"type" type:"string"`
12153}
12154
12155// String returns the string representation
12156func (s Resource) String() string {
12157	return awsutil.Prettify(s)
12158}
12159
12160// GoString returns the string representation
12161func (s Resource) GoString() string {
12162	return s.String()
12163}
12164
12165// SetDoubleValue sets the DoubleValue field's value.
12166func (s *Resource) SetDoubleValue(v float64) *Resource {
12167	s.DoubleValue = &v
12168	return s
12169}
12170
12171// SetIntegerValue sets the IntegerValue field's value.
12172func (s *Resource) SetIntegerValue(v int64) *Resource {
12173	s.IntegerValue = &v
12174	return s
12175}
12176
12177// SetLongValue sets the LongValue field's value.
12178func (s *Resource) SetLongValue(v int64) *Resource {
12179	s.LongValue = &v
12180	return s
12181}
12182
12183// SetName sets the Name field's value.
12184func (s *Resource) SetName(v string) *Resource {
12185	s.Name = &v
12186	return s
12187}
12188
12189// SetStringSetValue sets the StringSetValue field's value.
12190func (s *Resource) SetStringSetValue(v []*string) *Resource {
12191	s.StringSetValue = v
12192	return s
12193}
12194
12195// SetType sets the Type field's value.
12196func (s *Resource) SetType(v string) *Resource {
12197	s.Type = &v
12198	return s
12199}
12200
12201// The type and amount of a resource to assign to a container. The only supported
12202// resource is a GPU. For more information, see Working with GPUs on Amazon
12203// ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-gpu.html)
12204// in the Amazon Elastic Container Service Developer Guide
12205type ResourceRequirement struct {
12206	_ struct{} `type:"structure"`
12207
12208	// The type of resource to assign to a container. The only supported value is
12209	// GPU.
12210	//
12211	// Type is a required field
12212	Type *string `locationName:"type" type:"string" required:"true" enum:"ResourceType"`
12213
12214	// The number of physical GPUs the Amazon ECS container agent will reserve for
12215	// the container. The number of GPUs reserved for all containers in a task should
12216	// not exceed the number of available GPUs on the container instance the task
12217	// is launched on.
12218	//
12219	// Value is a required field
12220	Value *string `locationName:"value" type:"string" required:"true"`
12221}
12222
12223// String returns the string representation
12224func (s ResourceRequirement) String() string {
12225	return awsutil.Prettify(s)
12226}
12227
12228// GoString returns the string representation
12229func (s ResourceRequirement) GoString() string {
12230	return s.String()
12231}
12232
12233// Validate inspects the fields of the type to determine if they are valid.
12234func (s *ResourceRequirement) Validate() error {
12235	invalidParams := request.ErrInvalidParams{Context: "ResourceRequirement"}
12236	if s.Type == nil {
12237		invalidParams.Add(request.NewErrParamRequired("Type"))
12238	}
12239	if s.Value == nil {
12240		invalidParams.Add(request.NewErrParamRequired("Value"))
12241	}
12242
12243	if invalidParams.Len() > 0 {
12244		return invalidParams
12245	}
12246	return nil
12247}
12248
12249// SetType sets the Type field's value.
12250func (s *ResourceRequirement) SetType(v string) *ResourceRequirement {
12251	s.Type = &v
12252	return s
12253}
12254
12255// SetValue sets the Value field's value.
12256func (s *ResourceRequirement) SetValue(v string) *ResourceRequirement {
12257	s.Value = &v
12258	return s
12259}
12260
12261type RunTaskInput struct {
12262	_ struct{} `type:"structure"`
12263
12264	// The short name or full Amazon Resource Name (ARN) of the cluster on which
12265	// to run your task. If you do not specify a cluster, the default cluster is
12266	// assumed.
12267	Cluster *string `locationName:"cluster" type:"string"`
12268
12269	// The number of instantiations of the specified task to place on your cluster.
12270	// You can specify up to 10 tasks per call.
12271	Count *int64 `locationName:"count" type:"integer"`
12272
12273	// Specifies whether to enable Amazon ECS managed tags for the task. For more
12274	// information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
12275	// in the Amazon Elastic Container Service Developer Guide.
12276	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
12277
12278	// The name of the task group to associate with the task. The default value
12279	// is the family name of the task definition (for example, family:my-family-name).
12280	Group *string `locationName:"group" type:"string"`
12281
12282	// The launch type on which to run your task. For more information, see Amazon
12283	// ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
12284	// in the Amazon Elastic Container Service Developer Guide.
12285	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
12286
12287	// The network configuration for the task. This parameter is required for task
12288	// definitions that use the awsvpc network mode to receive their own elastic
12289	// network interface, and it is not supported for other network modes. For more
12290	// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
12291	// in the Amazon Elastic Container Service Developer Guide.
12292	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
12293
12294	// A list of container overrides in JSON format that specify the name of a container
12295	// in the specified task definition and the overrides it should receive. You
12296	// can override the default command for a container (that is specified in the
12297	// task definition or Docker image) with a command override. You can also override
12298	// existing environment variables (that are specified in the task definition
12299	// or Docker image) on a container or add new environment variables to it with
12300	// an environment override.
12301	//
12302	// A total of 8192 characters are allowed for overrides. This limit includes
12303	// the JSON formatting characters of the override structure.
12304	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
12305
12306	// An array of placement constraint objects to use for the task. You can specify
12307	// up to 10 constraints per task (including constraints in the task definition
12308	// and those specified at runtime).
12309	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
12310
12311	// The placement strategy objects to use for the task. You can specify a maximum
12312	// of five strategy rules per task.
12313	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
12314
12315	// The platform version the task should run. A platform version is only specified
12316	// for tasks using the Fargate launch type. If one is not specified, the LATEST
12317	// platform version is used by default. For more information, see AWS Fargate
12318	// Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
12319	// in the Amazon Elastic Container Service Developer Guide.
12320	PlatformVersion *string `locationName:"platformVersion" type:"string"`
12321
12322	// Specifies whether to propagate the tags from the task definition to the task.
12323	// If no value is specified, the tags are not propagated. Tags can only be propagated
12324	// to the task during task creation. To add tags to a task after task creation,
12325	// use the TagResource API action.
12326	//
12327	// An error will be received if you specify the SERVICE option when running
12328	// a task.
12329	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
12330
12331	// An optional tag specified when a task is started. For example, if you automatically
12332	// trigger a task to run a batch process job, you could apply a unique identifier
12333	// for that job to your task with the startedBy parameter. You can then identify
12334	// which tasks belong to that job by filtering the results of a ListTasks call
12335	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
12336	// hyphens, and underscores are allowed.
12337	//
12338	// If a task is started by an Amazon ECS service, then the startedBy parameter
12339	// contains the deployment ID of the service that starts it.
12340	StartedBy *string `locationName:"startedBy" type:"string"`
12341
12342	// The metadata that you apply to the task to help you categorize and organize
12343	// them. Each tag consists of a key and an optional value, both of which you
12344	// define. Tag keys can have a maximum character length of 128 characters, and
12345	// tag values can have a maximum length of 256 characters.
12346	Tags []*Tag `locationName:"tags" type:"list"`
12347
12348	// The family and revision (family:revision) or full ARN of the task definition
12349	// to run. If a revision is not specified, the latest ACTIVE revision is used.
12350	//
12351	// TaskDefinition is a required field
12352	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
12353}
12354
12355// String returns the string representation
12356func (s RunTaskInput) String() string {
12357	return awsutil.Prettify(s)
12358}
12359
12360// GoString returns the string representation
12361func (s RunTaskInput) GoString() string {
12362	return s.String()
12363}
12364
12365// Validate inspects the fields of the type to determine if they are valid.
12366func (s *RunTaskInput) Validate() error {
12367	invalidParams := request.ErrInvalidParams{Context: "RunTaskInput"}
12368	if s.TaskDefinition == nil {
12369		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
12370	}
12371	if s.NetworkConfiguration != nil {
12372		if err := s.NetworkConfiguration.Validate(); err != nil {
12373			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
12374		}
12375	}
12376	if s.Overrides != nil {
12377		if err := s.Overrides.Validate(); err != nil {
12378			invalidParams.AddNested("Overrides", err.(request.ErrInvalidParams))
12379		}
12380	}
12381	if s.Tags != nil {
12382		for i, v := range s.Tags {
12383			if v == nil {
12384				continue
12385			}
12386			if err := v.Validate(); err != nil {
12387				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
12388			}
12389		}
12390	}
12391
12392	if invalidParams.Len() > 0 {
12393		return invalidParams
12394	}
12395	return nil
12396}
12397
12398// SetCluster sets the Cluster field's value.
12399func (s *RunTaskInput) SetCluster(v string) *RunTaskInput {
12400	s.Cluster = &v
12401	return s
12402}
12403
12404// SetCount sets the Count field's value.
12405func (s *RunTaskInput) SetCount(v int64) *RunTaskInput {
12406	s.Count = &v
12407	return s
12408}
12409
12410// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
12411func (s *RunTaskInput) SetEnableECSManagedTags(v bool) *RunTaskInput {
12412	s.EnableECSManagedTags = &v
12413	return s
12414}
12415
12416// SetGroup sets the Group field's value.
12417func (s *RunTaskInput) SetGroup(v string) *RunTaskInput {
12418	s.Group = &v
12419	return s
12420}
12421
12422// SetLaunchType sets the LaunchType field's value.
12423func (s *RunTaskInput) SetLaunchType(v string) *RunTaskInput {
12424	s.LaunchType = &v
12425	return s
12426}
12427
12428// SetNetworkConfiguration sets the NetworkConfiguration field's value.
12429func (s *RunTaskInput) SetNetworkConfiguration(v *NetworkConfiguration) *RunTaskInput {
12430	s.NetworkConfiguration = v
12431	return s
12432}
12433
12434// SetOverrides sets the Overrides field's value.
12435func (s *RunTaskInput) SetOverrides(v *TaskOverride) *RunTaskInput {
12436	s.Overrides = v
12437	return s
12438}
12439
12440// SetPlacementConstraints sets the PlacementConstraints field's value.
12441func (s *RunTaskInput) SetPlacementConstraints(v []*PlacementConstraint) *RunTaskInput {
12442	s.PlacementConstraints = v
12443	return s
12444}
12445
12446// SetPlacementStrategy sets the PlacementStrategy field's value.
12447func (s *RunTaskInput) SetPlacementStrategy(v []*PlacementStrategy) *RunTaskInput {
12448	s.PlacementStrategy = v
12449	return s
12450}
12451
12452// SetPlatformVersion sets the PlatformVersion field's value.
12453func (s *RunTaskInput) SetPlatformVersion(v string) *RunTaskInput {
12454	s.PlatformVersion = &v
12455	return s
12456}
12457
12458// SetPropagateTags sets the PropagateTags field's value.
12459func (s *RunTaskInput) SetPropagateTags(v string) *RunTaskInput {
12460	s.PropagateTags = &v
12461	return s
12462}
12463
12464// SetStartedBy sets the StartedBy field's value.
12465func (s *RunTaskInput) SetStartedBy(v string) *RunTaskInput {
12466	s.StartedBy = &v
12467	return s
12468}
12469
12470// SetTags sets the Tags field's value.
12471func (s *RunTaskInput) SetTags(v []*Tag) *RunTaskInput {
12472	s.Tags = v
12473	return s
12474}
12475
12476// SetTaskDefinition sets the TaskDefinition field's value.
12477func (s *RunTaskInput) SetTaskDefinition(v string) *RunTaskInput {
12478	s.TaskDefinition = &v
12479	return s
12480}
12481
12482type RunTaskOutput struct {
12483	_ struct{} `type:"structure"`
12484
12485	// Any failures associated with the call.
12486	Failures []*Failure `locationName:"failures" type:"list"`
12487
12488	// A full description of the tasks that were run. The tasks that were successfully
12489	// placed on your cluster are described here.
12490	Tasks []*Task `locationName:"tasks" type:"list"`
12491}
12492
12493// String returns the string representation
12494func (s RunTaskOutput) String() string {
12495	return awsutil.Prettify(s)
12496}
12497
12498// GoString returns the string representation
12499func (s RunTaskOutput) GoString() string {
12500	return s.String()
12501}
12502
12503// SetFailures sets the Failures field's value.
12504func (s *RunTaskOutput) SetFailures(v []*Failure) *RunTaskOutput {
12505	s.Failures = v
12506	return s
12507}
12508
12509// SetTasks sets the Tasks field's value.
12510func (s *RunTaskOutput) SetTasks(v []*Task) *RunTaskOutput {
12511	s.Tasks = v
12512	return s
12513}
12514
12515// A floating-point percentage of the desired number of tasks to place and keep
12516// running in the task set.
12517type Scale struct {
12518	_ struct{} `type:"structure"`
12519
12520	// The unit of measure for the scale value.
12521	Unit *string `locationName:"unit" type:"string" enum:"ScaleUnit"`
12522
12523	// The value, specified as a percent total of a service's desiredCount, to scale
12524	// the task set. Accepted values are numbers between 0 and 100.
12525	Value *float64 `locationName:"value" type:"double"`
12526}
12527
12528// String returns the string representation
12529func (s Scale) String() string {
12530	return awsutil.Prettify(s)
12531}
12532
12533// GoString returns the string representation
12534func (s Scale) GoString() string {
12535	return s.String()
12536}
12537
12538// SetUnit sets the Unit field's value.
12539func (s *Scale) SetUnit(v string) *Scale {
12540	s.Unit = &v
12541	return s
12542}
12543
12544// SetValue sets the Value field's value.
12545func (s *Scale) SetValue(v float64) *Scale {
12546	s.Value = &v
12547	return s
12548}
12549
12550// An object representing the secret to expose to your container. Secrets can
12551// be exposed to a container in the following ways:
12552//
12553//    * To inject sensitive data into your containers as environment variables,
12554//    use the secrets container definition parameter.
12555//
12556//    * To reference sensitive information in the log configuration of a container,
12557//    use the secretOptions container definition parameter.
12558//
12559// For more information, see Specifying Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
12560// in the Amazon Elastic Container Service Developer Guide.
12561type Secret struct {
12562	_ struct{} `type:"structure"`
12563
12564	// The name of the secret.
12565	//
12566	// Name is a required field
12567	Name *string `locationName:"name" type:"string" required:"true"`
12568
12569	// The secret to expose to the container. The supported values are either the
12570	// full ARN of the AWS Secrets Manager secret or the full ARN of the parameter
12571	// in the AWS Systems Manager Parameter Store.
12572	//
12573	// If the AWS Systems Manager Parameter Store parameter exists in the same Region
12574	// as the task you are launching, then you can use either the full ARN or name
12575	// of the parameter. If the parameter exists in a different Region, then the
12576	// full ARN must be specified.
12577	//
12578	// ValueFrom is a required field
12579	ValueFrom *string `locationName:"valueFrom" type:"string" required:"true"`
12580}
12581
12582// String returns the string representation
12583func (s Secret) String() string {
12584	return awsutil.Prettify(s)
12585}
12586
12587// GoString returns the string representation
12588func (s Secret) GoString() string {
12589	return s.String()
12590}
12591
12592// Validate inspects the fields of the type to determine if they are valid.
12593func (s *Secret) Validate() error {
12594	invalidParams := request.ErrInvalidParams{Context: "Secret"}
12595	if s.Name == nil {
12596		invalidParams.Add(request.NewErrParamRequired("Name"))
12597	}
12598	if s.ValueFrom == nil {
12599		invalidParams.Add(request.NewErrParamRequired("ValueFrom"))
12600	}
12601
12602	if invalidParams.Len() > 0 {
12603		return invalidParams
12604	}
12605	return nil
12606}
12607
12608// SetName sets the Name field's value.
12609func (s *Secret) SetName(v string) *Secret {
12610	s.Name = &v
12611	return s
12612}
12613
12614// SetValueFrom sets the ValueFrom field's value.
12615func (s *Secret) SetValueFrom(v string) *Secret {
12616	s.ValueFrom = &v
12617	return s
12618}
12619
12620// Details on a service within a cluster
12621type Service struct {
12622	_ struct{} `type:"structure"`
12623
12624	// The Amazon Resource Name (ARN) of the cluster that hosts the service.
12625	ClusterArn *string `locationName:"clusterArn" type:"string"`
12626
12627	// The Unix timestamp for when the service was created.
12628	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
12629
12630	// The principal that created the service.
12631	CreatedBy *string `locationName:"createdBy" type:"string"`
12632
12633	// Optional deployment parameters that control how many tasks run during the
12634	// deployment and the ordering of stopping and starting tasks.
12635	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
12636
12637	// The deployment controller type the service is using.
12638	DeploymentController *DeploymentController `locationName:"deploymentController" type:"structure"`
12639
12640	// The current state of deployments for the service.
12641	Deployments []*Deployment `locationName:"deployments" type:"list"`
12642
12643	// The desired number of instantiations of the task definition to keep running
12644	// on the service. This value is specified when the service is created with
12645	// CreateService, and it can be modified with UpdateService.
12646	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
12647
12648	// Specifies whether to enable Amazon ECS managed tags for the tasks in the
12649	// service. For more information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
12650	// in the Amazon Elastic Container Service Developer Guide.
12651	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
12652
12653	// The event stream for your service. A maximum of 100 of the latest events
12654	// are displayed.
12655	Events []*ServiceEvent `locationName:"events" type:"list"`
12656
12657	// The period of time, in seconds, that the Amazon ECS service scheduler ignores
12658	// unhealthy Elastic Load Balancing target health checks after a task has first
12659	// started.
12660	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
12661
12662	// The launch type on which your service is running. If no value is specified,
12663	// it will default to EC2. Valid values include EC2 and FARGATE. For more information,
12664	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
12665	// in the Amazon Elastic Container Service Developer Guide.
12666	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
12667
12668	// A list of Elastic Load Balancing load balancer objects, containing the load
12669	// balancer name, the container name (as it appears in a container definition),
12670	// and the container port to access from the load balancer.
12671	//
12672	// Services with tasks that use the awsvpc network mode (for example, those
12673	// with the Fargate launch type) only support Application Load Balancers and
12674	// Network Load Balancers. Classic Load Balancers are not supported. Also, when
12675	// you create any target groups for these services, you must choose ip as the
12676	// target type, not instance. Tasks that use the awsvpc network mode are associated
12677	// with an elastic network interface, not an Amazon EC2 instance.
12678	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
12679
12680	// The VPC subnet and security group configuration for tasks that receive their
12681	// own elastic network interface by using the awsvpc networking mode.
12682	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
12683
12684	// The number of tasks in the cluster that are in the PENDING state.
12685	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
12686
12687	// The placement constraints for the tasks in the service.
12688	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
12689
12690	// The placement strategy that determines how tasks for the service are placed.
12691	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
12692
12693	// The platform version on which to run your service. A platform version is
12694	// only specified for tasks using the Fargate launch type. If one is not specified,
12695	// the LATEST platform version is used by default. For more information, see
12696	// AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
12697	// in the Amazon Elastic Container Service Developer Guide.
12698	PlatformVersion *string `locationName:"platformVersion" type:"string"`
12699
12700	// Specifies whether to propagate the tags from the task definition or the service
12701	// to the task. If no value is specified, the tags are not propagated.
12702	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
12703
12704	// The ARN of the IAM role associated with the service that allows the Amazon
12705	// ECS container agent to register container instances with an Elastic Load
12706	// Balancing load balancer.
12707	RoleArn *string `locationName:"roleArn" type:"string"`
12708
12709	// The number of tasks in the cluster that are in the RUNNING state.
12710	RunningCount *int64 `locationName:"runningCount" type:"integer"`
12711
12712	// The scheduling strategy to use for the service. For more information, see
12713	// Services (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).
12714	//
12715	// There are two service scheduler strategies available:
12716	//
12717	//    * REPLICA-The replica scheduling strategy places and maintains the desired
12718	//    number of tasks across your cluster. By default, the service scheduler
12719	//    spreads tasks across Availability Zones. You can use task placement strategies
12720	//    and constraints to customize task placement decisions.
12721	//
12722	//    * DAEMON-The daemon scheduling strategy deploys exactly one task on each
12723	//    container instance in your cluster. When you are using this strategy,
12724	//    do not specify a desired number of tasks or any task placement strategies.
12725	//    Fargate tasks do not support the DAEMON scheduling strategy.
12726	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
12727
12728	// The ARN that identifies the service. The ARN contains the arn:aws:ecs namespace,
12729	// followed by the Region of the service, the AWS account ID of the service
12730	// owner, the service namespace, and then the service name. For example, arn:aws:ecs:region:012345678910:service/my-service.
12731	ServiceArn *string `locationName:"serviceArn" type:"string"`
12732
12733	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
12734	// and hyphens are allowed. Service names must be unique within a cluster, but
12735	// you can have similarly named services in multiple clusters within a Region
12736	// or across multiple Regions.
12737	ServiceName *string `locationName:"serviceName" type:"string"`
12738
12739	// The details of the service discovery registries to assign to this service.
12740	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
12741	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
12742
12743	// The status of the service. The valid values are ACTIVE, DRAINING, or INACTIVE.
12744	Status *string `locationName:"status" type:"string"`
12745
12746	// The metadata that you apply to the service to help you categorize and organize
12747	// them. Each tag consists of a key and an optional value, both of which you
12748	// define. Tag keys can have a maximum character length of 128 characters, and
12749	// tag values can have a maximum length of 256 characters.
12750	Tags []*Tag `locationName:"tags" type:"list"`
12751
12752	// The task definition to use for tasks in the service. This value is specified
12753	// when the service is created with CreateService, and it can be modified with
12754	// UpdateService.
12755	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
12756
12757	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
12758	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
12759	// desired number of tasks, how many tasks are running, and whether the task
12760	// set serves production traffic.
12761	TaskSets []*TaskSet `locationName:"taskSets" type:"list"`
12762}
12763
12764// String returns the string representation
12765func (s Service) String() string {
12766	return awsutil.Prettify(s)
12767}
12768
12769// GoString returns the string representation
12770func (s Service) GoString() string {
12771	return s.String()
12772}
12773
12774// SetClusterArn sets the ClusterArn field's value.
12775func (s *Service) SetClusterArn(v string) *Service {
12776	s.ClusterArn = &v
12777	return s
12778}
12779
12780// SetCreatedAt sets the CreatedAt field's value.
12781func (s *Service) SetCreatedAt(v time.Time) *Service {
12782	s.CreatedAt = &v
12783	return s
12784}
12785
12786// SetCreatedBy sets the CreatedBy field's value.
12787func (s *Service) SetCreatedBy(v string) *Service {
12788	s.CreatedBy = &v
12789	return s
12790}
12791
12792// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
12793func (s *Service) SetDeploymentConfiguration(v *DeploymentConfiguration) *Service {
12794	s.DeploymentConfiguration = v
12795	return s
12796}
12797
12798// SetDeploymentController sets the DeploymentController field's value.
12799func (s *Service) SetDeploymentController(v *DeploymentController) *Service {
12800	s.DeploymentController = v
12801	return s
12802}
12803
12804// SetDeployments sets the Deployments field's value.
12805func (s *Service) SetDeployments(v []*Deployment) *Service {
12806	s.Deployments = v
12807	return s
12808}
12809
12810// SetDesiredCount sets the DesiredCount field's value.
12811func (s *Service) SetDesiredCount(v int64) *Service {
12812	s.DesiredCount = &v
12813	return s
12814}
12815
12816// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
12817func (s *Service) SetEnableECSManagedTags(v bool) *Service {
12818	s.EnableECSManagedTags = &v
12819	return s
12820}
12821
12822// SetEvents sets the Events field's value.
12823func (s *Service) SetEvents(v []*ServiceEvent) *Service {
12824	s.Events = v
12825	return s
12826}
12827
12828// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
12829func (s *Service) SetHealthCheckGracePeriodSeconds(v int64) *Service {
12830	s.HealthCheckGracePeriodSeconds = &v
12831	return s
12832}
12833
12834// SetLaunchType sets the LaunchType field's value.
12835func (s *Service) SetLaunchType(v string) *Service {
12836	s.LaunchType = &v
12837	return s
12838}
12839
12840// SetLoadBalancers sets the LoadBalancers field's value.
12841func (s *Service) SetLoadBalancers(v []*LoadBalancer) *Service {
12842	s.LoadBalancers = v
12843	return s
12844}
12845
12846// SetNetworkConfiguration sets the NetworkConfiguration field's value.
12847func (s *Service) SetNetworkConfiguration(v *NetworkConfiguration) *Service {
12848	s.NetworkConfiguration = v
12849	return s
12850}
12851
12852// SetPendingCount sets the PendingCount field's value.
12853func (s *Service) SetPendingCount(v int64) *Service {
12854	s.PendingCount = &v
12855	return s
12856}
12857
12858// SetPlacementConstraints sets the PlacementConstraints field's value.
12859func (s *Service) SetPlacementConstraints(v []*PlacementConstraint) *Service {
12860	s.PlacementConstraints = v
12861	return s
12862}
12863
12864// SetPlacementStrategy sets the PlacementStrategy field's value.
12865func (s *Service) SetPlacementStrategy(v []*PlacementStrategy) *Service {
12866	s.PlacementStrategy = v
12867	return s
12868}
12869
12870// SetPlatformVersion sets the PlatformVersion field's value.
12871func (s *Service) SetPlatformVersion(v string) *Service {
12872	s.PlatformVersion = &v
12873	return s
12874}
12875
12876// SetPropagateTags sets the PropagateTags field's value.
12877func (s *Service) SetPropagateTags(v string) *Service {
12878	s.PropagateTags = &v
12879	return s
12880}
12881
12882// SetRoleArn sets the RoleArn field's value.
12883func (s *Service) SetRoleArn(v string) *Service {
12884	s.RoleArn = &v
12885	return s
12886}
12887
12888// SetRunningCount sets the RunningCount field's value.
12889func (s *Service) SetRunningCount(v int64) *Service {
12890	s.RunningCount = &v
12891	return s
12892}
12893
12894// SetSchedulingStrategy sets the SchedulingStrategy field's value.
12895func (s *Service) SetSchedulingStrategy(v string) *Service {
12896	s.SchedulingStrategy = &v
12897	return s
12898}
12899
12900// SetServiceArn sets the ServiceArn field's value.
12901func (s *Service) SetServiceArn(v string) *Service {
12902	s.ServiceArn = &v
12903	return s
12904}
12905
12906// SetServiceName sets the ServiceName field's value.
12907func (s *Service) SetServiceName(v string) *Service {
12908	s.ServiceName = &v
12909	return s
12910}
12911
12912// SetServiceRegistries sets the ServiceRegistries field's value.
12913func (s *Service) SetServiceRegistries(v []*ServiceRegistry) *Service {
12914	s.ServiceRegistries = v
12915	return s
12916}
12917
12918// SetStatus sets the Status field's value.
12919func (s *Service) SetStatus(v string) *Service {
12920	s.Status = &v
12921	return s
12922}
12923
12924// SetTags sets the Tags field's value.
12925func (s *Service) SetTags(v []*Tag) *Service {
12926	s.Tags = v
12927	return s
12928}
12929
12930// SetTaskDefinition sets the TaskDefinition field's value.
12931func (s *Service) SetTaskDefinition(v string) *Service {
12932	s.TaskDefinition = &v
12933	return s
12934}
12935
12936// SetTaskSets sets the TaskSets field's value.
12937func (s *Service) SetTaskSets(v []*TaskSet) *Service {
12938	s.TaskSets = v
12939	return s
12940}
12941
12942// Details on an event associated with a service.
12943type ServiceEvent struct {
12944	_ struct{} `type:"structure"`
12945
12946	// The Unix timestamp for when the event was triggered.
12947	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
12948
12949	// The ID string of the event.
12950	Id *string `locationName:"id" type:"string"`
12951
12952	// The event message.
12953	Message *string `locationName:"message" type:"string"`
12954}
12955
12956// String returns the string representation
12957func (s ServiceEvent) String() string {
12958	return awsutil.Prettify(s)
12959}
12960
12961// GoString returns the string representation
12962func (s ServiceEvent) GoString() string {
12963	return s.String()
12964}
12965
12966// SetCreatedAt sets the CreatedAt field's value.
12967func (s *ServiceEvent) SetCreatedAt(v time.Time) *ServiceEvent {
12968	s.CreatedAt = &v
12969	return s
12970}
12971
12972// SetId sets the Id field's value.
12973func (s *ServiceEvent) SetId(v string) *ServiceEvent {
12974	s.Id = &v
12975	return s
12976}
12977
12978// SetMessage sets the Message field's value.
12979func (s *ServiceEvent) SetMessage(v string) *ServiceEvent {
12980	s.Message = &v
12981	return s
12982}
12983
12984// Details of the service registry.
12985type ServiceRegistry struct {
12986	_ struct{} `type:"structure"`
12987
12988	// The container name value, already specified in the task definition, to be
12989	// used for your service discovery service. If the task definition that your
12990	// service task specifies uses the bridge or host network mode, you must specify
12991	// a containerName and containerPort combination from the task definition. If
12992	// the task definition that your service task specifies uses the awsvpc network
12993	// mode and a type SRV DNS record is used, you must specify either a containerName
12994	// and containerPort combination or a port value, but not both.
12995	ContainerName *string `locationName:"containerName" type:"string"`
12996
12997	// The port value, already specified in the task definition, to be used for
12998	// your service discovery service. If the task definition your service task
12999	// specifies uses the bridge or host network mode, you must specify a containerName
13000	// and containerPort combination from the task definition. If the task definition
13001	// your service task specifies uses the awsvpc network mode and a type SRV DNS
13002	// record is used, you must specify either a containerName and containerPort
13003	// combination or a port value, but not both.
13004	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
13005
13006	// The port value used if your service discovery service specified an SRV record.
13007	// This field may be used if both the awsvpc network mode and SRV records are
13008	// used.
13009	Port *int64 `locationName:"port" type:"integer"`
13010
13011	// The Amazon Resource Name (ARN) of the service registry. The currently supported
13012	// service registry is AWS Cloud Map. For more information, see CreateService
13013	// (https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html).
13014	RegistryArn *string `locationName:"registryArn" type:"string"`
13015}
13016
13017// String returns the string representation
13018func (s ServiceRegistry) String() string {
13019	return awsutil.Prettify(s)
13020}
13021
13022// GoString returns the string representation
13023func (s ServiceRegistry) GoString() string {
13024	return s.String()
13025}
13026
13027// SetContainerName sets the ContainerName field's value.
13028func (s *ServiceRegistry) SetContainerName(v string) *ServiceRegistry {
13029	s.ContainerName = &v
13030	return s
13031}
13032
13033// SetContainerPort sets the ContainerPort field's value.
13034func (s *ServiceRegistry) SetContainerPort(v int64) *ServiceRegistry {
13035	s.ContainerPort = &v
13036	return s
13037}
13038
13039// SetPort sets the Port field's value.
13040func (s *ServiceRegistry) SetPort(v int64) *ServiceRegistry {
13041	s.Port = &v
13042	return s
13043}
13044
13045// SetRegistryArn sets the RegistryArn field's value.
13046func (s *ServiceRegistry) SetRegistryArn(v string) *ServiceRegistry {
13047	s.RegistryArn = &v
13048	return s
13049}
13050
13051// The current account setting for a resource.
13052type Setting struct {
13053	_ struct{} `type:"structure"`
13054
13055	// The Amazon ECS resource name.
13056	Name *string `locationName:"name" type:"string" enum:"SettingName"`
13057
13058	// The ARN of the principal, which can be an IAM user, IAM role, or the root
13059	// user. If this field is omitted, the authenticated user is assumed.
13060	PrincipalArn *string `locationName:"principalArn" type:"string"`
13061
13062	// Whether the account setting is enabled or disabled for the specified resource.
13063	Value *string `locationName:"value" type:"string"`
13064}
13065
13066// String returns the string representation
13067func (s Setting) String() string {
13068	return awsutil.Prettify(s)
13069}
13070
13071// GoString returns the string representation
13072func (s Setting) GoString() string {
13073	return s.String()
13074}
13075
13076// SetName sets the Name field's value.
13077func (s *Setting) SetName(v string) *Setting {
13078	s.Name = &v
13079	return s
13080}
13081
13082// SetPrincipalArn sets the PrincipalArn field's value.
13083func (s *Setting) SetPrincipalArn(v string) *Setting {
13084	s.PrincipalArn = &v
13085	return s
13086}
13087
13088// SetValue sets the Value field's value.
13089func (s *Setting) SetValue(v string) *Setting {
13090	s.Value = &v
13091	return s
13092}
13093
13094type StartTaskInput struct {
13095	_ struct{} `type:"structure"`
13096
13097	// The short name or full Amazon Resource Name (ARN) of the cluster on which
13098	// to start your task. If you do not specify a cluster, the default cluster
13099	// is assumed.
13100	Cluster *string `locationName:"cluster" type:"string"`
13101
13102	// The container instance IDs or full ARN entries for the container instances
13103	// on which you would like to place your task. You can specify up to 10 container
13104	// instances.
13105	//
13106	// ContainerInstances is a required field
13107	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
13108
13109	// Specifies whether to enable Amazon ECS managed tags for the task. For more
13110	// information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
13111	// in the Amazon Elastic Container Service Developer Guide.
13112	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
13113
13114	// The name of the task group to associate with the task. The default value
13115	// is the family name of the task definition (for example, family:my-family-name).
13116	Group *string `locationName:"group" type:"string"`
13117
13118	// The VPC subnet and security group configuration for tasks that receive their
13119	// own elastic network interface by using the awsvpc networking mode.
13120	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
13121
13122	// A list of container overrides in JSON format that specify the name of a container
13123	// in the specified task definition and the overrides it should receive. You
13124	// can override the default command for a container (that is specified in the
13125	// task definition or Docker image) with a command override. You can also override
13126	// existing environment variables (that are specified in the task definition
13127	// or Docker image) on a container or add new environment variables to it with
13128	// an environment override.
13129	//
13130	// A total of 8192 characters are allowed for overrides. This limit includes
13131	// the JSON formatting characters of the override structure.
13132	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
13133
13134	// Specifies whether to propagate the tags from the task definition or the service
13135	// to the task. If no value is specified, the tags are not propagated.
13136	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
13137
13138	// An optional tag specified when a task is started. For example, if you automatically
13139	// trigger a task to run a batch process job, you could apply a unique identifier
13140	// for that job to your task with the startedBy parameter. You can then identify
13141	// which tasks belong to that job by filtering the results of a ListTasks call
13142	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
13143	// hyphens, and underscores are allowed.
13144	//
13145	// If a task is started by an Amazon ECS service, then the startedBy parameter
13146	// contains the deployment ID of the service that starts it.
13147	StartedBy *string `locationName:"startedBy" type:"string"`
13148
13149	// The metadata that you apply to the task to help you categorize and organize
13150	// them. Each tag consists of a key and an optional value, both of which you
13151	// define. Tag keys can have a maximum character length of 128 characters, and
13152	// tag values can have a maximum length of 256 characters.
13153	Tags []*Tag `locationName:"tags" type:"list"`
13154
13155	// The family and revision (family:revision) or full ARN of the task definition
13156	// to start. If a revision is not specified, the latest ACTIVE revision is used.
13157	//
13158	// TaskDefinition is a required field
13159	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
13160}
13161
13162// String returns the string representation
13163func (s StartTaskInput) String() string {
13164	return awsutil.Prettify(s)
13165}
13166
13167// GoString returns the string representation
13168func (s StartTaskInput) GoString() string {
13169	return s.String()
13170}
13171
13172// Validate inspects the fields of the type to determine if they are valid.
13173func (s *StartTaskInput) Validate() error {
13174	invalidParams := request.ErrInvalidParams{Context: "StartTaskInput"}
13175	if s.ContainerInstances == nil {
13176		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
13177	}
13178	if s.TaskDefinition == nil {
13179		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
13180	}
13181	if s.NetworkConfiguration != nil {
13182		if err := s.NetworkConfiguration.Validate(); err != nil {
13183			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
13184		}
13185	}
13186	if s.Overrides != nil {
13187		if err := s.Overrides.Validate(); err != nil {
13188			invalidParams.AddNested("Overrides", err.(request.ErrInvalidParams))
13189		}
13190	}
13191	if s.Tags != nil {
13192		for i, v := range s.Tags {
13193			if v == nil {
13194				continue
13195			}
13196			if err := v.Validate(); err != nil {
13197				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
13198			}
13199		}
13200	}
13201
13202	if invalidParams.Len() > 0 {
13203		return invalidParams
13204	}
13205	return nil
13206}
13207
13208// SetCluster sets the Cluster field's value.
13209func (s *StartTaskInput) SetCluster(v string) *StartTaskInput {
13210	s.Cluster = &v
13211	return s
13212}
13213
13214// SetContainerInstances sets the ContainerInstances field's value.
13215func (s *StartTaskInput) SetContainerInstances(v []*string) *StartTaskInput {
13216	s.ContainerInstances = v
13217	return s
13218}
13219
13220// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
13221func (s *StartTaskInput) SetEnableECSManagedTags(v bool) *StartTaskInput {
13222	s.EnableECSManagedTags = &v
13223	return s
13224}
13225
13226// SetGroup sets the Group field's value.
13227func (s *StartTaskInput) SetGroup(v string) *StartTaskInput {
13228	s.Group = &v
13229	return s
13230}
13231
13232// SetNetworkConfiguration sets the NetworkConfiguration field's value.
13233func (s *StartTaskInput) SetNetworkConfiguration(v *NetworkConfiguration) *StartTaskInput {
13234	s.NetworkConfiguration = v
13235	return s
13236}
13237
13238// SetOverrides sets the Overrides field's value.
13239func (s *StartTaskInput) SetOverrides(v *TaskOverride) *StartTaskInput {
13240	s.Overrides = v
13241	return s
13242}
13243
13244// SetPropagateTags sets the PropagateTags field's value.
13245func (s *StartTaskInput) SetPropagateTags(v string) *StartTaskInput {
13246	s.PropagateTags = &v
13247	return s
13248}
13249
13250// SetStartedBy sets the StartedBy field's value.
13251func (s *StartTaskInput) SetStartedBy(v string) *StartTaskInput {
13252	s.StartedBy = &v
13253	return s
13254}
13255
13256// SetTags sets the Tags field's value.
13257func (s *StartTaskInput) SetTags(v []*Tag) *StartTaskInput {
13258	s.Tags = v
13259	return s
13260}
13261
13262// SetTaskDefinition sets the TaskDefinition field's value.
13263func (s *StartTaskInput) SetTaskDefinition(v string) *StartTaskInput {
13264	s.TaskDefinition = &v
13265	return s
13266}
13267
13268type StartTaskOutput struct {
13269	_ struct{} `type:"structure"`
13270
13271	// Any failures associated with the call.
13272	Failures []*Failure `locationName:"failures" type:"list"`
13273
13274	// A full description of the tasks that were started. Each task that was successfully
13275	// placed on your container instances is described.
13276	Tasks []*Task `locationName:"tasks" type:"list"`
13277}
13278
13279// String returns the string representation
13280func (s StartTaskOutput) String() string {
13281	return awsutil.Prettify(s)
13282}
13283
13284// GoString returns the string representation
13285func (s StartTaskOutput) GoString() string {
13286	return s.String()
13287}
13288
13289// SetFailures sets the Failures field's value.
13290func (s *StartTaskOutput) SetFailures(v []*Failure) *StartTaskOutput {
13291	s.Failures = v
13292	return s
13293}
13294
13295// SetTasks sets the Tasks field's value.
13296func (s *StartTaskOutput) SetTasks(v []*Task) *StartTaskOutput {
13297	s.Tasks = v
13298	return s
13299}
13300
13301type StopTaskInput struct {
13302	_ struct{} `type:"structure"`
13303
13304	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
13305	// the task to stop. If you do not specify a cluster, the default cluster is
13306	// assumed.
13307	Cluster *string `locationName:"cluster" type:"string"`
13308
13309	// An optional message specified when a task is stopped. For example, if you
13310	// are using a custom scheduler, you can use this parameter to specify the reason
13311	// for stopping the task here, and the message appears in subsequent DescribeTasks
13312	// API operations on this task. Up to 255 characters are allowed in this message.
13313	Reason *string `locationName:"reason" type:"string"`
13314
13315	// The task ID or full Amazon Resource Name (ARN) of the task to stop.
13316	//
13317	// Task is a required field
13318	Task *string `locationName:"task" type:"string" required:"true"`
13319}
13320
13321// String returns the string representation
13322func (s StopTaskInput) String() string {
13323	return awsutil.Prettify(s)
13324}
13325
13326// GoString returns the string representation
13327func (s StopTaskInput) GoString() string {
13328	return s.String()
13329}
13330
13331// Validate inspects the fields of the type to determine if they are valid.
13332func (s *StopTaskInput) Validate() error {
13333	invalidParams := request.ErrInvalidParams{Context: "StopTaskInput"}
13334	if s.Task == nil {
13335		invalidParams.Add(request.NewErrParamRequired("Task"))
13336	}
13337
13338	if invalidParams.Len() > 0 {
13339		return invalidParams
13340	}
13341	return nil
13342}
13343
13344// SetCluster sets the Cluster field's value.
13345func (s *StopTaskInput) SetCluster(v string) *StopTaskInput {
13346	s.Cluster = &v
13347	return s
13348}
13349
13350// SetReason sets the Reason field's value.
13351func (s *StopTaskInput) SetReason(v string) *StopTaskInput {
13352	s.Reason = &v
13353	return s
13354}
13355
13356// SetTask sets the Task field's value.
13357func (s *StopTaskInput) SetTask(v string) *StopTaskInput {
13358	s.Task = &v
13359	return s
13360}
13361
13362type StopTaskOutput struct {
13363	_ struct{} `type:"structure"`
13364
13365	// The task that was stopped.
13366	Task *Task `locationName:"task" type:"structure"`
13367}
13368
13369// String returns the string representation
13370func (s StopTaskOutput) String() string {
13371	return awsutil.Prettify(s)
13372}
13373
13374// GoString returns the string representation
13375func (s StopTaskOutput) GoString() string {
13376	return s.String()
13377}
13378
13379// SetTask sets the Task field's value.
13380func (s *StopTaskOutput) SetTask(v *Task) *StopTaskOutput {
13381	s.Task = v
13382	return s
13383}
13384
13385type SubmitAttachmentStateChangesInput struct {
13386	_ struct{} `type:"structure"`
13387
13388	// Any attachments associated with the state change request.
13389	//
13390	// Attachments is a required field
13391	Attachments []*AttachmentStateChange `locationName:"attachments" type:"list" required:"true"`
13392
13393	// The short name or full ARN of the cluster that hosts the container instance
13394	// the attachment belongs to.
13395	Cluster *string `locationName:"cluster" type:"string"`
13396}
13397
13398// String returns the string representation
13399func (s SubmitAttachmentStateChangesInput) String() string {
13400	return awsutil.Prettify(s)
13401}
13402
13403// GoString returns the string representation
13404func (s SubmitAttachmentStateChangesInput) GoString() string {
13405	return s.String()
13406}
13407
13408// Validate inspects the fields of the type to determine if they are valid.
13409func (s *SubmitAttachmentStateChangesInput) Validate() error {
13410	invalidParams := request.ErrInvalidParams{Context: "SubmitAttachmentStateChangesInput"}
13411	if s.Attachments == nil {
13412		invalidParams.Add(request.NewErrParamRequired("Attachments"))
13413	}
13414	if s.Attachments != nil {
13415		for i, v := range s.Attachments {
13416			if v == nil {
13417				continue
13418			}
13419			if err := v.Validate(); err != nil {
13420				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams))
13421			}
13422		}
13423	}
13424
13425	if invalidParams.Len() > 0 {
13426		return invalidParams
13427	}
13428	return nil
13429}
13430
13431// SetAttachments sets the Attachments field's value.
13432func (s *SubmitAttachmentStateChangesInput) SetAttachments(v []*AttachmentStateChange) *SubmitAttachmentStateChangesInput {
13433	s.Attachments = v
13434	return s
13435}
13436
13437// SetCluster sets the Cluster field's value.
13438func (s *SubmitAttachmentStateChangesInput) SetCluster(v string) *SubmitAttachmentStateChangesInput {
13439	s.Cluster = &v
13440	return s
13441}
13442
13443type SubmitAttachmentStateChangesOutput struct {
13444	_ struct{} `type:"structure"`
13445
13446	// Acknowledgement of the state change.
13447	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
13448}
13449
13450// String returns the string representation
13451func (s SubmitAttachmentStateChangesOutput) String() string {
13452	return awsutil.Prettify(s)
13453}
13454
13455// GoString returns the string representation
13456func (s SubmitAttachmentStateChangesOutput) GoString() string {
13457	return s.String()
13458}
13459
13460// SetAcknowledgment sets the Acknowledgment field's value.
13461func (s *SubmitAttachmentStateChangesOutput) SetAcknowledgment(v string) *SubmitAttachmentStateChangesOutput {
13462	s.Acknowledgment = &v
13463	return s
13464}
13465
13466type SubmitContainerStateChangeInput struct {
13467	_ struct{} `type:"structure"`
13468
13469	// The short name or full ARN of the cluster that hosts the container.
13470	Cluster *string `locationName:"cluster" type:"string"`
13471
13472	// The name of the container.
13473	ContainerName *string `locationName:"containerName" type:"string"`
13474
13475	// The exit code returned for the state change request.
13476	ExitCode *int64 `locationName:"exitCode" type:"integer"`
13477
13478	// The network bindings of the container.
13479	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
13480
13481	// The reason for the state change request.
13482	Reason *string `locationName:"reason" type:"string"`
13483
13484	// The status of the state change request.
13485	Status *string `locationName:"status" type:"string"`
13486
13487	// The task ID or full Amazon Resource Name (ARN) of the task that hosts the
13488	// container.
13489	Task *string `locationName:"task" type:"string"`
13490}
13491
13492// String returns the string representation
13493func (s SubmitContainerStateChangeInput) String() string {
13494	return awsutil.Prettify(s)
13495}
13496
13497// GoString returns the string representation
13498func (s SubmitContainerStateChangeInput) GoString() string {
13499	return s.String()
13500}
13501
13502// SetCluster sets the Cluster field's value.
13503func (s *SubmitContainerStateChangeInput) SetCluster(v string) *SubmitContainerStateChangeInput {
13504	s.Cluster = &v
13505	return s
13506}
13507
13508// SetContainerName sets the ContainerName field's value.
13509func (s *SubmitContainerStateChangeInput) SetContainerName(v string) *SubmitContainerStateChangeInput {
13510	s.ContainerName = &v
13511	return s
13512}
13513
13514// SetExitCode sets the ExitCode field's value.
13515func (s *SubmitContainerStateChangeInput) SetExitCode(v int64) *SubmitContainerStateChangeInput {
13516	s.ExitCode = &v
13517	return s
13518}
13519
13520// SetNetworkBindings sets the NetworkBindings field's value.
13521func (s *SubmitContainerStateChangeInput) SetNetworkBindings(v []*NetworkBinding) *SubmitContainerStateChangeInput {
13522	s.NetworkBindings = v
13523	return s
13524}
13525
13526// SetReason sets the Reason field's value.
13527func (s *SubmitContainerStateChangeInput) SetReason(v string) *SubmitContainerStateChangeInput {
13528	s.Reason = &v
13529	return s
13530}
13531
13532// SetStatus sets the Status field's value.
13533func (s *SubmitContainerStateChangeInput) SetStatus(v string) *SubmitContainerStateChangeInput {
13534	s.Status = &v
13535	return s
13536}
13537
13538// SetTask sets the Task field's value.
13539func (s *SubmitContainerStateChangeInput) SetTask(v string) *SubmitContainerStateChangeInput {
13540	s.Task = &v
13541	return s
13542}
13543
13544type SubmitContainerStateChangeOutput struct {
13545	_ struct{} `type:"structure"`
13546
13547	// Acknowledgement of the state change.
13548	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
13549}
13550
13551// String returns the string representation
13552func (s SubmitContainerStateChangeOutput) String() string {
13553	return awsutil.Prettify(s)
13554}
13555
13556// GoString returns the string representation
13557func (s SubmitContainerStateChangeOutput) GoString() string {
13558	return s.String()
13559}
13560
13561// SetAcknowledgment sets the Acknowledgment field's value.
13562func (s *SubmitContainerStateChangeOutput) SetAcknowledgment(v string) *SubmitContainerStateChangeOutput {
13563	s.Acknowledgment = &v
13564	return s
13565}
13566
13567type SubmitTaskStateChangeInput struct {
13568	_ struct{} `type:"structure"`
13569
13570	// Any attachments associated with the state change request.
13571	Attachments []*AttachmentStateChange `locationName:"attachments" type:"list"`
13572
13573	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
13574	// the task.
13575	Cluster *string `locationName:"cluster" type:"string"`
13576
13577	// Any containers associated with the state change request.
13578	Containers []*ContainerStateChange `locationName:"containers" type:"list"`
13579
13580	// The Unix timestamp for when the task execution stopped.
13581	ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"`
13582
13583	// The Unix timestamp for when the container image pull began.
13584	PullStartedAt *time.Time `locationName:"pullStartedAt" type:"timestamp"`
13585
13586	// The Unix timestamp for when the container image pull completed.
13587	PullStoppedAt *time.Time `locationName:"pullStoppedAt" type:"timestamp"`
13588
13589	// The reason for the state change request.
13590	Reason *string `locationName:"reason" type:"string"`
13591
13592	// The status of the state change request.
13593	Status *string `locationName:"status" type:"string"`
13594
13595	// The task ID or full ARN of the task in the state change request.
13596	Task *string `locationName:"task" type:"string"`
13597}
13598
13599// String returns the string representation
13600func (s SubmitTaskStateChangeInput) String() string {
13601	return awsutil.Prettify(s)
13602}
13603
13604// GoString returns the string representation
13605func (s SubmitTaskStateChangeInput) GoString() string {
13606	return s.String()
13607}
13608
13609// Validate inspects the fields of the type to determine if they are valid.
13610func (s *SubmitTaskStateChangeInput) Validate() error {
13611	invalidParams := request.ErrInvalidParams{Context: "SubmitTaskStateChangeInput"}
13612	if s.Attachments != nil {
13613		for i, v := range s.Attachments {
13614			if v == nil {
13615				continue
13616			}
13617			if err := v.Validate(); err != nil {
13618				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams))
13619			}
13620		}
13621	}
13622
13623	if invalidParams.Len() > 0 {
13624		return invalidParams
13625	}
13626	return nil
13627}
13628
13629// SetAttachments sets the Attachments field's value.
13630func (s *SubmitTaskStateChangeInput) SetAttachments(v []*AttachmentStateChange) *SubmitTaskStateChangeInput {
13631	s.Attachments = v
13632	return s
13633}
13634
13635// SetCluster sets the Cluster field's value.
13636func (s *SubmitTaskStateChangeInput) SetCluster(v string) *SubmitTaskStateChangeInput {
13637	s.Cluster = &v
13638	return s
13639}
13640
13641// SetContainers sets the Containers field's value.
13642func (s *SubmitTaskStateChangeInput) SetContainers(v []*ContainerStateChange) *SubmitTaskStateChangeInput {
13643	s.Containers = v
13644	return s
13645}
13646
13647// SetExecutionStoppedAt sets the ExecutionStoppedAt field's value.
13648func (s *SubmitTaskStateChangeInput) SetExecutionStoppedAt(v time.Time) *SubmitTaskStateChangeInput {
13649	s.ExecutionStoppedAt = &v
13650	return s
13651}
13652
13653// SetPullStartedAt sets the PullStartedAt field's value.
13654func (s *SubmitTaskStateChangeInput) SetPullStartedAt(v time.Time) *SubmitTaskStateChangeInput {
13655	s.PullStartedAt = &v
13656	return s
13657}
13658
13659// SetPullStoppedAt sets the PullStoppedAt field's value.
13660func (s *SubmitTaskStateChangeInput) SetPullStoppedAt(v time.Time) *SubmitTaskStateChangeInput {
13661	s.PullStoppedAt = &v
13662	return s
13663}
13664
13665// SetReason sets the Reason field's value.
13666func (s *SubmitTaskStateChangeInput) SetReason(v string) *SubmitTaskStateChangeInput {
13667	s.Reason = &v
13668	return s
13669}
13670
13671// SetStatus sets the Status field's value.
13672func (s *SubmitTaskStateChangeInput) SetStatus(v string) *SubmitTaskStateChangeInput {
13673	s.Status = &v
13674	return s
13675}
13676
13677// SetTask sets the Task field's value.
13678func (s *SubmitTaskStateChangeInput) SetTask(v string) *SubmitTaskStateChangeInput {
13679	s.Task = &v
13680	return s
13681}
13682
13683type SubmitTaskStateChangeOutput struct {
13684	_ struct{} `type:"structure"`
13685
13686	// Acknowledgement of the state change.
13687	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
13688}
13689
13690// String returns the string representation
13691func (s SubmitTaskStateChangeOutput) String() string {
13692	return awsutil.Prettify(s)
13693}
13694
13695// GoString returns the string representation
13696func (s SubmitTaskStateChangeOutput) GoString() string {
13697	return s.String()
13698}
13699
13700// SetAcknowledgment sets the Acknowledgment field's value.
13701func (s *SubmitTaskStateChangeOutput) SetAcknowledgment(v string) *SubmitTaskStateChangeOutput {
13702	s.Acknowledgment = &v
13703	return s
13704}
13705
13706// A list of namespaced kernel parameters to set in the container. This parameter
13707// maps to Sysctls in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
13708// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
13709// and the --sysctl option to docker run (https://docs.docker.com/engine/reference/run/).
13710//
13711// It is not recommended that you specify network-related systemControls parameters
13712// for multiple containers in a single task that also uses either the awsvpc
13713// or host network mode for the following reasons:
13714//
13715//    * For tasks that use the awsvpc network mode, if you set systemControls
13716//    for any container, it applies to all containers in the task. If you set
13717//    different systemControls for multiple containers in a single task, the
13718//    container that is started last determines which systemControls take effect.
13719//
13720//    * For tasks that use the host network mode, the systemControls parameter
13721//    applies to the container instance's kernel parameter as well as that of
13722//    all containers of any tasks running on that container instance.
13723type SystemControl struct {
13724	_ struct{} `type:"structure"`
13725
13726	// The namespaced kernel parameter for which to set a value.
13727	Namespace *string `locationName:"namespace" type:"string"`
13728
13729	// The value for the namespaced kernel parameter specified in namespace.
13730	Value *string `locationName:"value" type:"string"`
13731}
13732
13733// String returns the string representation
13734func (s SystemControl) String() string {
13735	return awsutil.Prettify(s)
13736}
13737
13738// GoString returns the string representation
13739func (s SystemControl) GoString() string {
13740	return s.String()
13741}
13742
13743// SetNamespace sets the Namespace field's value.
13744func (s *SystemControl) SetNamespace(v string) *SystemControl {
13745	s.Namespace = &v
13746	return s
13747}
13748
13749// SetValue sets the Value field's value.
13750func (s *SystemControl) SetValue(v string) *SystemControl {
13751	s.Value = &v
13752	return s
13753}
13754
13755// The metadata that you apply to a resource to help you categorize and organize
13756// them. Each tag consists of a key and an optional value, both of which you
13757// define. Tag keys can have a maximum character length of 128 characters, and
13758// tag values can have a maximum length of 256 characters.
13759type Tag struct {
13760	_ struct{} `type:"structure"`
13761
13762	// One part of a key-value pair that make up a tag. A key is a general label
13763	// that acts like a category for more specific tag values.
13764	Key *string `locationName:"key" min:"1" type:"string"`
13765
13766	// The optional part of a key-value pair that make up a tag. A value acts as
13767	// a descriptor within a tag category (key).
13768	Value *string `locationName:"value" type:"string"`
13769}
13770
13771// String returns the string representation
13772func (s Tag) String() string {
13773	return awsutil.Prettify(s)
13774}
13775
13776// GoString returns the string representation
13777func (s Tag) GoString() string {
13778	return s.String()
13779}
13780
13781// Validate inspects the fields of the type to determine if they are valid.
13782func (s *Tag) Validate() error {
13783	invalidParams := request.ErrInvalidParams{Context: "Tag"}
13784	if s.Key != nil && len(*s.Key) < 1 {
13785		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
13786	}
13787
13788	if invalidParams.Len() > 0 {
13789		return invalidParams
13790	}
13791	return nil
13792}
13793
13794// SetKey sets the Key field's value.
13795func (s *Tag) SetKey(v string) *Tag {
13796	s.Key = &v
13797	return s
13798}
13799
13800// SetValue sets the Value field's value.
13801func (s *Tag) SetValue(v string) *Tag {
13802	s.Value = &v
13803	return s
13804}
13805
13806type TagResourceInput struct {
13807	_ struct{} `type:"structure"`
13808
13809	// The Amazon Resource Name (ARN) of the resource to which to add tags. Currently,
13810	// the supported resources are Amazon ECS tasks, services, task definitions,
13811	// clusters, and container instances.
13812	//
13813	// ResourceArn is a required field
13814	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
13815
13816	// The tags to add to the resource. A tag is an array of key-value pairs. Tag
13817	// keys can have a maximum character length of 128 characters, and tag values
13818	// can have a maximum length of 256 characters.
13819	//
13820	// Tags is a required field
13821	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
13822}
13823
13824// String returns the string representation
13825func (s TagResourceInput) String() string {
13826	return awsutil.Prettify(s)
13827}
13828
13829// GoString returns the string representation
13830func (s TagResourceInput) GoString() string {
13831	return s.String()
13832}
13833
13834// Validate inspects the fields of the type to determine if they are valid.
13835func (s *TagResourceInput) Validate() error {
13836	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
13837	if s.ResourceArn == nil {
13838		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
13839	}
13840	if s.Tags == nil {
13841		invalidParams.Add(request.NewErrParamRequired("Tags"))
13842	}
13843	if s.Tags != nil {
13844		for i, v := range s.Tags {
13845			if v == nil {
13846				continue
13847			}
13848			if err := v.Validate(); err != nil {
13849				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
13850			}
13851		}
13852	}
13853
13854	if invalidParams.Len() > 0 {
13855		return invalidParams
13856	}
13857	return nil
13858}
13859
13860// SetResourceArn sets the ResourceArn field's value.
13861func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
13862	s.ResourceArn = &v
13863	return s
13864}
13865
13866// SetTags sets the Tags field's value.
13867func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
13868	s.Tags = v
13869	return s
13870}
13871
13872type TagResourceOutput struct {
13873	_ struct{} `type:"structure"`
13874}
13875
13876// String returns the string representation
13877func (s TagResourceOutput) String() string {
13878	return awsutil.Prettify(s)
13879}
13880
13881// GoString returns the string representation
13882func (s TagResourceOutput) GoString() string {
13883	return s.String()
13884}
13885
13886// Details on a task in a cluster.
13887type Task struct {
13888	_ struct{} `type:"structure"`
13889
13890	// The Elastic Network Adapter associated with the task if the task uses the
13891	// awsvpc network mode.
13892	Attachments []*Attachment `locationName:"attachments" type:"list"`
13893
13894	// The ARN of the cluster that hosts the task.
13895	ClusterArn *string `locationName:"clusterArn" type:"string"`
13896
13897	// The connectivity status of a task.
13898	Connectivity *string `locationName:"connectivity" type:"string" enum:"Connectivity"`
13899
13900	// The Unix timestamp for when the task last went into CONNECTED status.
13901	ConnectivityAt *time.Time `locationName:"connectivityAt" type:"timestamp"`
13902
13903	// The ARN of the container instances that host the task.
13904	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
13905
13906	// The containers associated with the task.
13907	Containers []*Container `locationName:"containers" type:"list"`
13908
13909	// The number of CPU units used by the task as expressed in a task definition.
13910	// It can be expressed as an integer using CPU units, for example 1024. It can
13911	// also be expressed as a string using vCPUs, for example 1 vCPU or 1 vcpu.
13912	// String values are converted to an integer indicating the CPU units when the
13913	// task definition is registered.
13914	//
13915	// If you are using the EC2 launch type, this field is optional. Supported values
13916	// are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).
13917	//
13918	// If you are using the Fargate launch type, this field is required and you
13919	// must use one of the following values, which determines your range of supported
13920	// values for the memory parameter:
13921	//
13922	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
13923	//    2048 (2 GB)
13924	//
13925	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
13926	//    (3 GB), 4096 (4 GB)
13927	//
13928	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
13929	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
13930	//
13931	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
13932	//    (16 GB) in increments of 1024 (1 GB)
13933	//
13934	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
13935	//    (30 GB) in increments of 1024 (1 GB)
13936	Cpu *string `locationName:"cpu" type:"string"`
13937
13938	// The Unix timestamp for when the task was created (the task entered the PENDING
13939	// state).
13940	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
13941
13942	// The desired status of the task. For more information, see Task Lifecycle
13943	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html).
13944	DesiredStatus *string `locationName:"desiredStatus" type:"string"`
13945
13946	// The Unix timestamp for when the task execution stopped.
13947	ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"`
13948
13949	// The name of the task group associated with the task.
13950	Group *string `locationName:"group" type:"string"`
13951
13952	// The health status for the task, which is determined by the health of the
13953	// essential containers in the task. If all essential containers in the task
13954	// are reporting as HEALTHY, then the task status also reports as HEALTHY. If
13955	// any essential containers in the task are reporting as UNHEALTHY or UNKNOWN,
13956	// then the task status also reports as UNHEALTHY or UNKNOWN, accordingly.
13957	//
13958	// The Amazon ECS container agent does not monitor or report on Docker health
13959	// checks that are embedded in a container image (such as those specified in
13960	// a parent image or from the image's Dockerfile) and not specified in the container
13961	// definition. Health check parameters that are specified in a container definition
13962	// override any Docker health checks that exist in the container image.
13963	HealthStatus *string `locationName:"healthStatus" type:"string" enum:"HealthStatus"`
13964
13965	// The last known status of the task. For more information, see Task Lifecycle
13966	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html).
13967	LastStatus *string `locationName:"lastStatus" type:"string"`
13968
13969	// The launch type on which your task is running. For more information, see
13970	// Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
13971	// in the Amazon Elastic Container Service Developer Guide.
13972	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
13973
13974	// The amount of memory (in MiB) used by the task as expressed in a task definition.
13975	// It can be expressed as an integer using MiB, for example 1024. It can also
13976	// be expressed as a string using GB, for example 1GB or 1 GB. String values
13977	// are converted to an integer indicating the MiB when the task definition is
13978	// registered.
13979	//
13980	// If you are using the EC2 launch type, this field is optional.
13981	//
13982	// If you are using the Fargate launch type, this field is required and you
13983	// must use one of the following values, which determines your range of supported
13984	// values for the cpu parameter:
13985	//
13986	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
13987	//    vCPU)
13988	//
13989	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
13990	//    512 (.5 vCPU)
13991	//
13992	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
13993	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
13994	//
13995	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
13996	//    Available cpu values: 2048 (2 vCPU)
13997	//
13998	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
13999	//    Available cpu values: 4096 (4 vCPU)
14000	Memory *string `locationName:"memory" type:"string"`
14001
14002	// One or more container overrides.
14003	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
14004
14005	// The platform version on which your task is running. A platform version is
14006	// only specified for tasks using the Fargate launch type. If one is not specified,
14007	// the LATEST platform version is used by default. For more information, see
14008	// AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
14009	// in the Amazon Elastic Container Service Developer Guide.
14010	PlatformVersion *string `locationName:"platformVersion" type:"string"`
14011
14012	// The Unix timestamp for when the container image pull began.
14013	PullStartedAt *time.Time `locationName:"pullStartedAt" type:"timestamp"`
14014
14015	// The Unix timestamp for when the container image pull completed.
14016	PullStoppedAt *time.Time `locationName:"pullStoppedAt" type:"timestamp"`
14017
14018	// The Unix timestamp for when the task started (the task transitioned from
14019	// the PENDING state to the RUNNING state).
14020	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
14021
14022	// The tag specified when a task is started. If the task is started by an Amazon
14023	// ECS service, then the startedBy parameter contains the deployment ID of the
14024	// service that starts it.
14025	StartedBy *string `locationName:"startedBy" type:"string"`
14026
14027	// The stop code indicating why a task was stopped. The stoppedReason may contain
14028	// additional details.
14029	StopCode *string `locationName:"stopCode" type:"string" enum:"TaskStopCode"`
14030
14031	// The Unix timestamp for when the task was stopped (the task transitioned from
14032	// the RUNNING state to the STOPPED state).
14033	StoppedAt *time.Time `locationName:"stoppedAt" type:"timestamp"`
14034
14035	// The reason that the task was stopped.
14036	StoppedReason *string `locationName:"stoppedReason" type:"string"`
14037
14038	// The Unix timestamp for when the task stops (transitions from the RUNNING
14039	// state to STOPPED).
14040	StoppingAt *time.Time `locationName:"stoppingAt" type:"timestamp"`
14041
14042	// The metadata that you apply to the task to help you categorize and organize
14043	// them. Each tag consists of a key and an optional value, both of which you
14044	// define. Tag keys can have a maximum character length of 128 characters, and
14045	// tag values can have a maximum length of 256 characters.
14046	Tags []*Tag `locationName:"tags" type:"list"`
14047
14048	// The Amazon Resource Name (ARN) of the task.
14049	TaskArn *string `locationName:"taskArn" type:"string"`
14050
14051	// The ARN of the task definition that creates the task.
14052	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
14053
14054	// The version counter for the task. Every time a task experiences a change
14055	// that triggers a CloudWatch event, the version counter is incremented. If
14056	// you are replicating your Amazon ECS task state with CloudWatch Events, you
14057	// can compare the version of a task reported by the Amazon ECS API actionss
14058	// with the version reported in CloudWatch Events for the task (inside the detail
14059	// object) to verify that the version in your event stream is current.
14060	Version *int64 `locationName:"version" type:"long"`
14061}
14062
14063// String returns the string representation
14064func (s Task) String() string {
14065	return awsutil.Prettify(s)
14066}
14067
14068// GoString returns the string representation
14069func (s Task) GoString() string {
14070	return s.String()
14071}
14072
14073// SetAttachments sets the Attachments field's value.
14074func (s *Task) SetAttachments(v []*Attachment) *Task {
14075	s.Attachments = v
14076	return s
14077}
14078
14079// SetClusterArn sets the ClusterArn field's value.
14080func (s *Task) SetClusterArn(v string) *Task {
14081	s.ClusterArn = &v
14082	return s
14083}
14084
14085// SetConnectivity sets the Connectivity field's value.
14086func (s *Task) SetConnectivity(v string) *Task {
14087	s.Connectivity = &v
14088	return s
14089}
14090
14091// SetConnectivityAt sets the ConnectivityAt field's value.
14092func (s *Task) SetConnectivityAt(v time.Time) *Task {
14093	s.ConnectivityAt = &v
14094	return s
14095}
14096
14097// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
14098func (s *Task) SetContainerInstanceArn(v string) *Task {
14099	s.ContainerInstanceArn = &v
14100	return s
14101}
14102
14103// SetContainers sets the Containers field's value.
14104func (s *Task) SetContainers(v []*Container) *Task {
14105	s.Containers = v
14106	return s
14107}
14108
14109// SetCpu sets the Cpu field's value.
14110func (s *Task) SetCpu(v string) *Task {
14111	s.Cpu = &v
14112	return s
14113}
14114
14115// SetCreatedAt sets the CreatedAt field's value.
14116func (s *Task) SetCreatedAt(v time.Time) *Task {
14117	s.CreatedAt = &v
14118	return s
14119}
14120
14121// SetDesiredStatus sets the DesiredStatus field's value.
14122func (s *Task) SetDesiredStatus(v string) *Task {
14123	s.DesiredStatus = &v
14124	return s
14125}
14126
14127// SetExecutionStoppedAt sets the ExecutionStoppedAt field's value.
14128func (s *Task) SetExecutionStoppedAt(v time.Time) *Task {
14129	s.ExecutionStoppedAt = &v
14130	return s
14131}
14132
14133// SetGroup sets the Group field's value.
14134func (s *Task) SetGroup(v string) *Task {
14135	s.Group = &v
14136	return s
14137}
14138
14139// SetHealthStatus sets the HealthStatus field's value.
14140func (s *Task) SetHealthStatus(v string) *Task {
14141	s.HealthStatus = &v
14142	return s
14143}
14144
14145// SetLastStatus sets the LastStatus field's value.
14146func (s *Task) SetLastStatus(v string) *Task {
14147	s.LastStatus = &v
14148	return s
14149}
14150
14151// SetLaunchType sets the LaunchType field's value.
14152func (s *Task) SetLaunchType(v string) *Task {
14153	s.LaunchType = &v
14154	return s
14155}
14156
14157// SetMemory sets the Memory field's value.
14158func (s *Task) SetMemory(v string) *Task {
14159	s.Memory = &v
14160	return s
14161}
14162
14163// SetOverrides sets the Overrides field's value.
14164func (s *Task) SetOverrides(v *TaskOverride) *Task {
14165	s.Overrides = v
14166	return s
14167}
14168
14169// SetPlatformVersion sets the PlatformVersion field's value.
14170func (s *Task) SetPlatformVersion(v string) *Task {
14171	s.PlatformVersion = &v
14172	return s
14173}
14174
14175// SetPullStartedAt sets the PullStartedAt field's value.
14176func (s *Task) SetPullStartedAt(v time.Time) *Task {
14177	s.PullStartedAt = &v
14178	return s
14179}
14180
14181// SetPullStoppedAt sets the PullStoppedAt field's value.
14182func (s *Task) SetPullStoppedAt(v time.Time) *Task {
14183	s.PullStoppedAt = &v
14184	return s
14185}
14186
14187// SetStartedAt sets the StartedAt field's value.
14188func (s *Task) SetStartedAt(v time.Time) *Task {
14189	s.StartedAt = &v
14190	return s
14191}
14192
14193// SetStartedBy sets the StartedBy field's value.
14194func (s *Task) SetStartedBy(v string) *Task {
14195	s.StartedBy = &v
14196	return s
14197}
14198
14199// SetStopCode sets the StopCode field's value.
14200func (s *Task) SetStopCode(v string) *Task {
14201	s.StopCode = &v
14202	return s
14203}
14204
14205// SetStoppedAt sets the StoppedAt field's value.
14206func (s *Task) SetStoppedAt(v time.Time) *Task {
14207	s.StoppedAt = &v
14208	return s
14209}
14210
14211// SetStoppedReason sets the StoppedReason field's value.
14212func (s *Task) SetStoppedReason(v string) *Task {
14213	s.StoppedReason = &v
14214	return s
14215}
14216
14217// SetStoppingAt sets the StoppingAt field's value.
14218func (s *Task) SetStoppingAt(v time.Time) *Task {
14219	s.StoppingAt = &v
14220	return s
14221}
14222
14223// SetTags sets the Tags field's value.
14224func (s *Task) SetTags(v []*Tag) *Task {
14225	s.Tags = v
14226	return s
14227}
14228
14229// SetTaskArn sets the TaskArn field's value.
14230func (s *Task) SetTaskArn(v string) *Task {
14231	s.TaskArn = &v
14232	return s
14233}
14234
14235// SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
14236func (s *Task) SetTaskDefinitionArn(v string) *Task {
14237	s.TaskDefinitionArn = &v
14238	return s
14239}
14240
14241// SetVersion sets the Version field's value.
14242func (s *Task) SetVersion(v int64) *Task {
14243	s.Version = &v
14244	return s
14245}
14246
14247// The details of a task definition which describes the container and volume
14248// definitions of an Amazon Elastic Container Service task. You can specify
14249// which Docker images to use, the required resources, and other configurations
14250// related to launching the task definition through an Amazon ECS service or
14251// task.
14252type TaskDefinition struct {
14253	_ struct{} `type:"structure"`
14254
14255	// The launch type to use with your task. For more information, see Amazon ECS
14256	// Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
14257	// in the Amazon Elastic Container Service Developer Guide.
14258	Compatibilities []*string `locationName:"compatibilities" type:"list"`
14259
14260	// A list of container definitions in JSON format that describe the different
14261	// containers that make up your task. For more information about container definition
14262	// parameters and defaults, see Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
14263	// in the Amazon Elastic Container Service Developer Guide.
14264	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list"`
14265
14266	// The number of cpu units used by the task. If you are using the EC2 launch
14267	// type, this field is optional and any value can be used. If you are using
14268	// the Fargate launch type, this field is required and you must use one of the
14269	// following values, which determines your range of valid values for the memory
14270	// parameter:
14271	//
14272	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
14273	//    2048 (2 GB)
14274	//
14275	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
14276	//    (3 GB), 4096 (4 GB)
14277	//
14278	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
14279	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
14280	//
14281	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
14282	//    (16 GB) in increments of 1024 (1 GB)
14283	//
14284	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
14285	//    (30 GB) in increments of 1024 (1 GB)
14286	Cpu *string `locationName:"cpu" type:"string"`
14287
14288	// The Amazon Resource Name (ARN) of the task execution role that containers
14289	// in this task can assume. All containers in this task are granted the permissions
14290	// that are specified in this role.
14291	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
14292
14293	// The name of a family that this task definition is registered to. A family
14294	// groups multiple versions of a task definition. Amazon ECS gives the first
14295	// task definition that you registered to a family a revision number of 1. Amazon
14296	// ECS gives sequential revision numbers to each task definition that you add.
14297	Family *string `locationName:"family" type:"string"`
14298
14299	// The IPC resource namespace to use for the containers in the task. The valid
14300	// values are host, task, or none. If host is specified, then all containers
14301	// within the tasks that specified the host IPC mode on the same container instance
14302	// share the same IPC resources with the host Amazon EC2 instance. If task is
14303	// specified, all containers within the specified task share the same IPC resources.
14304	// If none is specified, then IPC resources within the containers of a task
14305	// are private and not shared with other containers in a task or on the container
14306	// instance. If no value is specified, then the IPC resource namespace sharing
14307	// depends on the Docker daemon setting on the container instance. For more
14308	// information, see IPC settings (https://docs.docker.com/engine/reference/run/#ipc-settings---ipc)
14309	// in the Docker run reference.
14310	//
14311	// If the host IPC mode is used, be aware that there is a heightened risk of
14312	// undesired IPC namespace expose. For more information, see Docker security
14313	// (https://docs.docker.com/engine/security/security/).
14314	//
14315	// If you are setting namespaced kernel parameters using systemControls for
14316	// the containers in the task, the following will apply to your IPC resource
14317	// namespace. For more information, see System Controls (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)
14318	// in the Amazon Elastic Container Service Developer Guide.
14319	//
14320	//    * For tasks that use the host IPC mode, IPC namespace related systemControls
14321	//    are not supported.
14322	//
14323	//    * For tasks that use the task IPC mode, IPC namespace related systemControls
14324	//    will apply to all containers within a task.
14325	//
14326	// This parameter is not supported for Windows containers or tasks using the
14327	// Fargate launch type.
14328	IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"`
14329
14330	// The amount (in MiB) of memory used by the task. If using the EC2 launch type,
14331	// this field is optional and any value can be used. If using the Fargate launch
14332	// type, this field is required and you must use one of the following values,
14333	// which determines your range of valid values for the cpu parameter:
14334	//
14335	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
14336	//    vCPU)
14337	//
14338	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
14339	//    512 (.5 vCPU)
14340	//
14341	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
14342	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
14343	//
14344	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
14345	//    Available cpu values: 2048 (2 vCPU)
14346	//
14347	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
14348	//    Available cpu values: 4096 (4 vCPU)
14349	Memory *string `locationName:"memory" type:"string"`
14350
14351	// The Docker networking mode to use for the containers in the task. The valid
14352	// values are none, bridge, awsvpc, and host. The default Docker network mode
14353	// is bridge. If you are using the Fargate launch type, the awsvpc network mode
14354	// is required. If you are using the EC2 launch type, any network mode can be
14355	// used. If the network mode is set to none, you cannot specify port mappings
14356	// in your container definitions, and the tasks containers do not have external
14357	// connectivity. The host and awsvpc network modes offer the highest networking
14358	// performance for containers because they use the EC2 network stack instead
14359	// of the virtualized network stack provided by the bridge mode.
14360	//
14361	// With the host and awsvpc network modes, exposed container ports are mapped
14362	// directly to the corresponding host port (for the host network mode) or the
14363	// attached elastic network interface port (for the awsvpc network mode), so
14364	// you cannot take advantage of dynamic host port mappings.
14365	//
14366	// If the network mode is awsvpc, the task is allocated an elastic network interface,
14367	// and you must specify a NetworkConfiguration value when you create a service
14368	// or run a task with the task definition. For more information, see Task Networking
14369	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
14370	// in the Amazon Elastic Container Service Developer Guide.
14371	//
14372	// Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with
14373	// the ecs-init package, or AWS Fargate infrastructure support the awsvpc network
14374	// mode.
14375	//
14376	// If the network mode is host, you cannot run multiple instantiations of the
14377	// same task on a single container instance when port mappings are used.
14378	//
14379	// Docker for Windows uses different network modes than Docker for Linux. When
14380	// you register a task definition with Windows containers, you must not specify
14381	// a network mode. If you use the console to register a task definition with
14382	// Windows containers, you must choose the <default> network mode object.
14383	//
14384	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
14385	// in the Docker run reference.
14386	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
14387
14388	// The process namespace to use for the containers in the task. The valid values
14389	// are host or task. If host is specified, then all containers within the tasks
14390	// that specified the host PID mode on the same container instance share the
14391	// same IPC resources with the host Amazon EC2 instance. If task is specified,
14392	// all containers within the specified task share the same process namespace.
14393	// If no value is specified, the default is a private namespace. For more information,
14394	// see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid)
14395	// in the Docker run reference.
14396	//
14397	// If the host PID mode is used, be aware that there is a heightened risk of
14398	// undesired process namespace expose. For more information, see Docker security
14399	// (https://docs.docker.com/engine/security/security/).
14400	//
14401	// This parameter is not supported for Windows containers or tasks using the
14402	// Fargate launch type.
14403	PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"`
14404
14405	// An array of placement constraint objects to use for tasks. This field is
14406	// not valid if you are using the Fargate launch type for your task.
14407	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
14408
14409	// The configuration details for the App Mesh proxy.
14410	//
14411	// Your Amazon ECS container instances require at least version 1.26.0 of the
14412	// container agent and at least version 1.26.0-1 of the ecs-init package to
14413	// enable a proxy configuration. If your container instances are launched from
14414	// the Amazon ECS-optimized AMI version 20190301 or later, then they contain
14415	// the required versions of the container agent and ecs-init. For more information,
14416	// see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
14417	// in the Amazon Elastic Container Service Developer Guide.
14418	ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"`
14419
14420	// The container instance attributes required by your task. This field is not
14421	// valid if you are using the Fargate launch type for your task.
14422	RequiresAttributes []*Attribute `locationName:"requiresAttributes" type:"list"`
14423
14424	// The launch type the task requires. If no value is specified, it will default
14425	// to EC2. Valid values include EC2 and FARGATE.
14426	RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"`
14427
14428	// The revision of the task in a particular family. The revision is a version
14429	// number of a task definition in a family. When you register a task definition
14430	// for the first time, the revision is 1. Each time that you register a new
14431	// revision of a task definition in the same family, the revision value always
14432	// increases by one, even if you have deregistered previous revisions in this
14433	// family.
14434	Revision *int64 `locationName:"revision" type:"integer"`
14435
14436	// The status of the task definition.
14437	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
14438
14439	// The full Amazon Resource Name (ARN) of the task definition.
14440	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
14441
14442	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
14443	// role that grants containers in the task permission to call AWS APIs on your
14444	// behalf. For more information, see Amazon ECS Task Role (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_IAM_role.html)
14445	// in the Amazon Elastic Container Service Developer Guide.
14446	//
14447	// IAM roles for tasks on Windows require that the -EnableTaskIAMRole option
14448	// is set when you launch the Amazon ECS-optimized Windows AMI. Your containers
14449	// must also run some configuration code in order to take advantage of the feature.
14450	// For more information, see Windows IAM Roles for Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html)
14451	// in the Amazon Elastic Container Service Developer Guide.
14452	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
14453
14454	// The list of volume definitions for the task.
14455	//
14456	// If your tasks are using the Fargate launch type, the host and sourcePath
14457	// parameters are not supported.
14458	//
14459	// For more information about volume definition parameters and defaults, see
14460	// Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html)
14461	// in the Amazon Elastic Container Service Developer Guide.
14462	Volumes []*Volume `locationName:"volumes" type:"list"`
14463}
14464
14465// String returns the string representation
14466func (s TaskDefinition) String() string {
14467	return awsutil.Prettify(s)
14468}
14469
14470// GoString returns the string representation
14471func (s TaskDefinition) GoString() string {
14472	return s.String()
14473}
14474
14475// SetCompatibilities sets the Compatibilities field's value.
14476func (s *TaskDefinition) SetCompatibilities(v []*string) *TaskDefinition {
14477	s.Compatibilities = v
14478	return s
14479}
14480
14481// SetContainerDefinitions sets the ContainerDefinitions field's value.
14482func (s *TaskDefinition) SetContainerDefinitions(v []*ContainerDefinition) *TaskDefinition {
14483	s.ContainerDefinitions = v
14484	return s
14485}
14486
14487// SetCpu sets the Cpu field's value.
14488func (s *TaskDefinition) SetCpu(v string) *TaskDefinition {
14489	s.Cpu = &v
14490	return s
14491}
14492
14493// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
14494func (s *TaskDefinition) SetExecutionRoleArn(v string) *TaskDefinition {
14495	s.ExecutionRoleArn = &v
14496	return s
14497}
14498
14499// SetFamily sets the Family field's value.
14500func (s *TaskDefinition) SetFamily(v string) *TaskDefinition {
14501	s.Family = &v
14502	return s
14503}
14504
14505// SetIpcMode sets the IpcMode field's value.
14506func (s *TaskDefinition) SetIpcMode(v string) *TaskDefinition {
14507	s.IpcMode = &v
14508	return s
14509}
14510
14511// SetMemory sets the Memory field's value.
14512func (s *TaskDefinition) SetMemory(v string) *TaskDefinition {
14513	s.Memory = &v
14514	return s
14515}
14516
14517// SetNetworkMode sets the NetworkMode field's value.
14518func (s *TaskDefinition) SetNetworkMode(v string) *TaskDefinition {
14519	s.NetworkMode = &v
14520	return s
14521}
14522
14523// SetPidMode sets the PidMode field's value.
14524func (s *TaskDefinition) SetPidMode(v string) *TaskDefinition {
14525	s.PidMode = &v
14526	return s
14527}
14528
14529// SetPlacementConstraints sets the PlacementConstraints field's value.
14530func (s *TaskDefinition) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *TaskDefinition {
14531	s.PlacementConstraints = v
14532	return s
14533}
14534
14535// SetProxyConfiguration sets the ProxyConfiguration field's value.
14536func (s *TaskDefinition) SetProxyConfiguration(v *ProxyConfiguration) *TaskDefinition {
14537	s.ProxyConfiguration = v
14538	return s
14539}
14540
14541// SetRequiresAttributes sets the RequiresAttributes field's value.
14542func (s *TaskDefinition) SetRequiresAttributes(v []*Attribute) *TaskDefinition {
14543	s.RequiresAttributes = v
14544	return s
14545}
14546
14547// SetRequiresCompatibilities sets the RequiresCompatibilities field's value.
14548func (s *TaskDefinition) SetRequiresCompatibilities(v []*string) *TaskDefinition {
14549	s.RequiresCompatibilities = v
14550	return s
14551}
14552
14553// SetRevision sets the Revision field's value.
14554func (s *TaskDefinition) SetRevision(v int64) *TaskDefinition {
14555	s.Revision = &v
14556	return s
14557}
14558
14559// SetStatus sets the Status field's value.
14560func (s *TaskDefinition) SetStatus(v string) *TaskDefinition {
14561	s.Status = &v
14562	return s
14563}
14564
14565// SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
14566func (s *TaskDefinition) SetTaskDefinitionArn(v string) *TaskDefinition {
14567	s.TaskDefinitionArn = &v
14568	return s
14569}
14570
14571// SetTaskRoleArn sets the TaskRoleArn field's value.
14572func (s *TaskDefinition) SetTaskRoleArn(v string) *TaskDefinition {
14573	s.TaskRoleArn = &v
14574	return s
14575}
14576
14577// SetVolumes sets the Volumes field's value.
14578func (s *TaskDefinition) SetVolumes(v []*Volume) *TaskDefinition {
14579	s.Volumes = v
14580	return s
14581}
14582
14583// An object representing a constraint on task placement in the task definition.
14584//
14585// If you are using the Fargate launch type, task placement constraints are
14586// not supported.
14587//
14588// For more information, see Task Placement Constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
14589// in the Amazon Elastic Container Service Developer Guide.
14590type TaskDefinitionPlacementConstraint struct {
14591	_ struct{} `type:"structure"`
14592
14593	// A cluster query language expression to apply to the constraint. For more
14594	// information, see Cluster Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
14595	// in the Amazon Elastic Container Service Developer Guide.
14596	Expression *string `locationName:"expression" type:"string"`
14597
14598	// The type of constraint. The DistinctInstance constraint ensures that each
14599	// task in a particular group is running on a different container instance.
14600	// The MemberOf constraint restricts selection to be from a group of valid candidates.
14601	Type *string `locationName:"type" type:"string" enum:"TaskDefinitionPlacementConstraintType"`
14602}
14603
14604// String returns the string representation
14605func (s TaskDefinitionPlacementConstraint) String() string {
14606	return awsutil.Prettify(s)
14607}
14608
14609// GoString returns the string representation
14610func (s TaskDefinitionPlacementConstraint) GoString() string {
14611	return s.String()
14612}
14613
14614// SetExpression sets the Expression field's value.
14615func (s *TaskDefinitionPlacementConstraint) SetExpression(v string) *TaskDefinitionPlacementConstraint {
14616	s.Expression = &v
14617	return s
14618}
14619
14620// SetType sets the Type field's value.
14621func (s *TaskDefinitionPlacementConstraint) SetType(v string) *TaskDefinitionPlacementConstraint {
14622	s.Type = &v
14623	return s
14624}
14625
14626// The overrides associated with a task.
14627type TaskOverride struct {
14628	_ struct{} `type:"structure"`
14629
14630	// One or more container overrides sent to a task.
14631	ContainerOverrides []*ContainerOverride `locationName:"containerOverrides" type:"list"`
14632
14633	// The Amazon Resource Name (ARN) of the task execution role that the Amazon
14634	// ECS container agent and the Docker daemon can assume.
14635	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
14636
14637	// The Amazon Resource Name (ARN) of the IAM role that containers in this task
14638	// can assume. All containers in this task are granted the permissions that
14639	// are specified in this role.
14640	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
14641}
14642
14643// String returns the string representation
14644func (s TaskOverride) String() string {
14645	return awsutil.Prettify(s)
14646}
14647
14648// GoString returns the string representation
14649func (s TaskOverride) GoString() string {
14650	return s.String()
14651}
14652
14653// Validate inspects the fields of the type to determine if they are valid.
14654func (s *TaskOverride) Validate() error {
14655	invalidParams := request.ErrInvalidParams{Context: "TaskOverride"}
14656	if s.ContainerOverrides != nil {
14657		for i, v := range s.ContainerOverrides {
14658			if v == nil {
14659				continue
14660			}
14661			if err := v.Validate(); err != nil {
14662				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContainerOverrides", i), err.(request.ErrInvalidParams))
14663			}
14664		}
14665	}
14666
14667	if invalidParams.Len() > 0 {
14668		return invalidParams
14669	}
14670	return nil
14671}
14672
14673// SetContainerOverrides sets the ContainerOverrides field's value.
14674func (s *TaskOverride) SetContainerOverrides(v []*ContainerOverride) *TaskOverride {
14675	s.ContainerOverrides = v
14676	return s
14677}
14678
14679// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
14680func (s *TaskOverride) SetExecutionRoleArn(v string) *TaskOverride {
14681	s.ExecutionRoleArn = &v
14682	return s
14683}
14684
14685// SetTaskRoleArn sets the TaskRoleArn field's value.
14686func (s *TaskOverride) SetTaskRoleArn(v string) *TaskOverride {
14687	s.TaskRoleArn = &v
14688	return s
14689}
14690
14691// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
14692// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
14693// desired number of tasks, how many tasks are running, and whether the task
14694// set serves production traffic.
14695type TaskSet struct {
14696	_ struct{} `type:"structure"`
14697
14698	// The Amazon Resource Name (ARN) of the cluster that the service that hosts
14699	// the task set exists in.
14700	ClusterArn *string `locationName:"clusterArn" type:"string"`
14701
14702	// The computed desired count for the task set. This is calculated by multiplying
14703	// the service's desiredCount by the task set's scale percentage. The result
14704	// is always rounded up. For example, if the computed desired count is 1.2,
14705	// it rounds up to 2 tasks.
14706	ComputedDesiredCount *int64 `locationName:"computedDesiredCount" type:"integer"`
14707
14708	// The Unix timestamp for when the task set was created.
14709	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
14710
14711	// The external ID associated with the task set.
14712	//
14713	// If a task set is created by an AWS CodeDeploy deployment, the externalId
14714	// parameter contains the AWS CodeDeploy deployment ID.
14715	//
14716	// If a task set is created for an external deployment and is associated with
14717	// a service discovery registry, the externalId parameter contains the ECS_TASK_SET_EXTERNAL_ID
14718	// AWS Cloud Map attribute.
14719	ExternalId *string `locationName:"externalId" type:"string"`
14720
14721	// The ID of the task set.
14722	Id *string `locationName:"id" type:"string"`
14723
14724	// The launch type the tasks in the task set are using. For more information,
14725	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
14726	// in the Amazon Elastic Container Service Developer Guide.
14727	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
14728
14729	// Details on a load balancer that is used with a task set.
14730	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
14731
14732	// The network configuration for the task set.
14733	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
14734
14735	// The number of tasks in the task set that are in the PENDING status during
14736	// a deployment. A task in the PENDING state is preparing to enter the RUNNING
14737	// state. A task set enters the PENDING status when it launches for the first
14738	// time or when it is restarted after being in the STOPPED state.
14739	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
14740
14741	// The platform version on which the tasks in the task set are running. A platform
14742	// version is only specified for tasks using the Fargate launch type. If one
14743	// is not specified, the LATEST platform version is used by default. For more
14744	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
14745	// in the Amazon Elastic Container Service Developer Guide.
14746	PlatformVersion *string `locationName:"platformVersion" type:"string"`
14747
14748	// The number of tasks in the task set that are in the RUNNING status during
14749	// a deployment. A task in the RUNNING state is running and ready for use.
14750	RunningCount *int64 `locationName:"runningCount" type:"integer"`
14751
14752	// A floating-point percentage of the desired number of tasks to place and keep
14753	// running in the task set.
14754	Scale *Scale `locationName:"scale" type:"structure"`
14755
14756	// The Amazon Resource Name (ARN) of the service the task set exists in.
14757	ServiceArn *string `locationName:"serviceArn" type:"string"`
14758
14759	// The details of the service discovery registries to assign to this task set.
14760	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
14761	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
14762
14763	// The stability status, which indicates whether the task set has reached a
14764	// steady state. If the following conditions are met, the task set will be in
14765	// STEADY_STATE:
14766	//
14767	//    * The task runningCount is equal to the computedDesiredCount.
14768	//
14769	//    * The pendingCount is 0.
14770	//
14771	//    * There are no tasks running on container instances in the DRAINING status.
14772	//
14773	//    * All tasks are reporting a healthy status from the load balancers, service
14774	//    discovery, and container health checks. If a healthCheckGracePeriodSeconds
14775	//    value was set when the service was created, you may see a STEADY_STATE
14776	//    reached since unhealthy Elastic Load Balancing target health checks will
14777	//    be ignored until it expires.
14778	//
14779	// If any of those conditions are not met, the stability status returns STABILIZING.
14780	StabilityStatus *string `locationName:"stabilityStatus" type:"string" enum:"StabilityStatus"`
14781
14782	// The Unix timestamp for when the task set stability status was retrieved.
14783	StabilityStatusAt *time.Time `locationName:"stabilityStatusAt" type:"timestamp"`
14784
14785	// The tag specified when a task set is started. If the task set is created
14786	// by an AWS CodeDeploy deployment, the startedBy parameter is CODE_DEPLOY.
14787	// For a task set created for an external deployment, the startedBy field isn't
14788	// used.
14789	StartedBy *string `locationName:"startedBy" type:"string"`
14790
14791	// The status of the task set. The following describes each state:
14792	//
14793	// PRIMARY
14794	//
14795	// The task set is serving production traffic.
14796	//
14797	// ACTIVE
14798	//
14799	// The task set is not serving production traffic.
14800	//
14801	// DRAINING
14802	//
14803	// The tasks in the task set are being stopped and their corresponding targets
14804	// are being deregistered from their target group.
14805	Status *string `locationName:"status" type:"string"`
14806
14807	// The task definition the task set is using.
14808	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
14809
14810	// The Amazon Resource Name (ARN) of the task set.
14811	TaskSetArn *string `locationName:"taskSetArn" type:"string"`
14812
14813	// The Unix timestamp for when the task set was last updated.
14814	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
14815}
14816
14817// String returns the string representation
14818func (s TaskSet) String() string {
14819	return awsutil.Prettify(s)
14820}
14821
14822// GoString returns the string representation
14823func (s TaskSet) GoString() string {
14824	return s.String()
14825}
14826
14827// SetClusterArn sets the ClusterArn field's value.
14828func (s *TaskSet) SetClusterArn(v string) *TaskSet {
14829	s.ClusterArn = &v
14830	return s
14831}
14832
14833// SetComputedDesiredCount sets the ComputedDesiredCount field's value.
14834func (s *TaskSet) SetComputedDesiredCount(v int64) *TaskSet {
14835	s.ComputedDesiredCount = &v
14836	return s
14837}
14838
14839// SetCreatedAt sets the CreatedAt field's value.
14840func (s *TaskSet) SetCreatedAt(v time.Time) *TaskSet {
14841	s.CreatedAt = &v
14842	return s
14843}
14844
14845// SetExternalId sets the ExternalId field's value.
14846func (s *TaskSet) SetExternalId(v string) *TaskSet {
14847	s.ExternalId = &v
14848	return s
14849}
14850
14851// SetId sets the Id field's value.
14852func (s *TaskSet) SetId(v string) *TaskSet {
14853	s.Id = &v
14854	return s
14855}
14856
14857// SetLaunchType sets the LaunchType field's value.
14858func (s *TaskSet) SetLaunchType(v string) *TaskSet {
14859	s.LaunchType = &v
14860	return s
14861}
14862
14863// SetLoadBalancers sets the LoadBalancers field's value.
14864func (s *TaskSet) SetLoadBalancers(v []*LoadBalancer) *TaskSet {
14865	s.LoadBalancers = v
14866	return s
14867}
14868
14869// SetNetworkConfiguration sets the NetworkConfiguration field's value.
14870func (s *TaskSet) SetNetworkConfiguration(v *NetworkConfiguration) *TaskSet {
14871	s.NetworkConfiguration = v
14872	return s
14873}
14874
14875// SetPendingCount sets the PendingCount field's value.
14876func (s *TaskSet) SetPendingCount(v int64) *TaskSet {
14877	s.PendingCount = &v
14878	return s
14879}
14880
14881// SetPlatformVersion sets the PlatformVersion field's value.
14882func (s *TaskSet) SetPlatformVersion(v string) *TaskSet {
14883	s.PlatformVersion = &v
14884	return s
14885}
14886
14887// SetRunningCount sets the RunningCount field's value.
14888func (s *TaskSet) SetRunningCount(v int64) *TaskSet {
14889	s.RunningCount = &v
14890	return s
14891}
14892
14893// SetScale sets the Scale field's value.
14894func (s *TaskSet) SetScale(v *Scale) *TaskSet {
14895	s.Scale = v
14896	return s
14897}
14898
14899// SetServiceArn sets the ServiceArn field's value.
14900func (s *TaskSet) SetServiceArn(v string) *TaskSet {
14901	s.ServiceArn = &v
14902	return s
14903}
14904
14905// SetServiceRegistries sets the ServiceRegistries field's value.
14906func (s *TaskSet) SetServiceRegistries(v []*ServiceRegistry) *TaskSet {
14907	s.ServiceRegistries = v
14908	return s
14909}
14910
14911// SetStabilityStatus sets the StabilityStatus field's value.
14912func (s *TaskSet) SetStabilityStatus(v string) *TaskSet {
14913	s.StabilityStatus = &v
14914	return s
14915}
14916
14917// SetStabilityStatusAt sets the StabilityStatusAt field's value.
14918func (s *TaskSet) SetStabilityStatusAt(v time.Time) *TaskSet {
14919	s.StabilityStatusAt = &v
14920	return s
14921}
14922
14923// SetStartedBy sets the StartedBy field's value.
14924func (s *TaskSet) SetStartedBy(v string) *TaskSet {
14925	s.StartedBy = &v
14926	return s
14927}
14928
14929// SetStatus sets the Status field's value.
14930func (s *TaskSet) SetStatus(v string) *TaskSet {
14931	s.Status = &v
14932	return s
14933}
14934
14935// SetTaskDefinition sets the TaskDefinition field's value.
14936func (s *TaskSet) SetTaskDefinition(v string) *TaskSet {
14937	s.TaskDefinition = &v
14938	return s
14939}
14940
14941// SetTaskSetArn sets the TaskSetArn field's value.
14942func (s *TaskSet) SetTaskSetArn(v string) *TaskSet {
14943	s.TaskSetArn = &v
14944	return s
14945}
14946
14947// SetUpdatedAt sets the UpdatedAt field's value.
14948func (s *TaskSet) SetUpdatedAt(v time.Time) *TaskSet {
14949	s.UpdatedAt = &v
14950	return s
14951}
14952
14953// The container path, mount options, and size of the tmpfs mount.
14954type Tmpfs struct {
14955	_ struct{} `type:"structure"`
14956
14957	// The absolute file path where the tmpfs volume is to be mounted.
14958	//
14959	// ContainerPath is a required field
14960	ContainerPath *string `locationName:"containerPath" type:"string" required:"true"`
14961
14962	// The list of tmpfs volume mount options.
14963	//
14964	// Valid values: "defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev"
14965	// | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" |
14966	// "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind"
14967	// | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared"
14968	// | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime"
14969	// | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"
14970	MountOptions []*string `locationName:"mountOptions" type:"list"`
14971
14972	// The size (in MiB) of the tmpfs volume.
14973	//
14974	// Size is a required field
14975	Size *int64 `locationName:"size" type:"integer" required:"true"`
14976}
14977
14978// String returns the string representation
14979func (s Tmpfs) String() string {
14980	return awsutil.Prettify(s)
14981}
14982
14983// GoString returns the string representation
14984func (s Tmpfs) GoString() string {
14985	return s.String()
14986}
14987
14988// Validate inspects the fields of the type to determine if they are valid.
14989func (s *Tmpfs) Validate() error {
14990	invalidParams := request.ErrInvalidParams{Context: "Tmpfs"}
14991	if s.ContainerPath == nil {
14992		invalidParams.Add(request.NewErrParamRequired("ContainerPath"))
14993	}
14994	if s.Size == nil {
14995		invalidParams.Add(request.NewErrParamRequired("Size"))
14996	}
14997
14998	if invalidParams.Len() > 0 {
14999		return invalidParams
15000	}
15001	return nil
15002}
15003
15004// SetContainerPath sets the ContainerPath field's value.
15005func (s *Tmpfs) SetContainerPath(v string) *Tmpfs {
15006	s.ContainerPath = &v
15007	return s
15008}
15009
15010// SetMountOptions sets the MountOptions field's value.
15011func (s *Tmpfs) SetMountOptions(v []*string) *Tmpfs {
15012	s.MountOptions = v
15013	return s
15014}
15015
15016// SetSize sets the Size field's value.
15017func (s *Tmpfs) SetSize(v int64) *Tmpfs {
15018	s.Size = &v
15019	return s
15020}
15021
15022// The ulimit settings to pass to the container.
15023type Ulimit struct {
15024	_ struct{} `type:"structure"`
15025
15026	// The hard limit for the ulimit type.
15027	//
15028	// HardLimit is a required field
15029	HardLimit *int64 `locationName:"hardLimit" type:"integer" required:"true"`
15030
15031	// The type of the ulimit.
15032	//
15033	// Name is a required field
15034	Name *string `locationName:"name" type:"string" required:"true" enum:"UlimitName"`
15035
15036	// The soft limit for the ulimit type.
15037	//
15038	// SoftLimit is a required field
15039	SoftLimit *int64 `locationName:"softLimit" type:"integer" required:"true"`
15040}
15041
15042// String returns the string representation
15043func (s Ulimit) String() string {
15044	return awsutil.Prettify(s)
15045}
15046
15047// GoString returns the string representation
15048func (s Ulimit) GoString() string {
15049	return s.String()
15050}
15051
15052// Validate inspects the fields of the type to determine if they are valid.
15053func (s *Ulimit) Validate() error {
15054	invalidParams := request.ErrInvalidParams{Context: "Ulimit"}
15055	if s.HardLimit == nil {
15056		invalidParams.Add(request.NewErrParamRequired("HardLimit"))
15057	}
15058	if s.Name == nil {
15059		invalidParams.Add(request.NewErrParamRequired("Name"))
15060	}
15061	if s.SoftLimit == nil {
15062		invalidParams.Add(request.NewErrParamRequired("SoftLimit"))
15063	}
15064
15065	if invalidParams.Len() > 0 {
15066		return invalidParams
15067	}
15068	return nil
15069}
15070
15071// SetHardLimit sets the HardLimit field's value.
15072func (s *Ulimit) SetHardLimit(v int64) *Ulimit {
15073	s.HardLimit = &v
15074	return s
15075}
15076
15077// SetName sets the Name field's value.
15078func (s *Ulimit) SetName(v string) *Ulimit {
15079	s.Name = &v
15080	return s
15081}
15082
15083// SetSoftLimit sets the SoftLimit field's value.
15084func (s *Ulimit) SetSoftLimit(v int64) *Ulimit {
15085	s.SoftLimit = &v
15086	return s
15087}
15088
15089type UntagResourceInput struct {
15090	_ struct{} `type:"structure"`
15091
15092	// The Amazon Resource Name (ARN) of the resource from which to delete tags.
15093	// Currently, the supported resources are Amazon ECS tasks, services, task definitions,
15094	// clusters, and container instances.
15095	//
15096	// ResourceArn is a required field
15097	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
15098
15099	// The keys of the tags to be removed.
15100	//
15101	// TagKeys is a required field
15102	TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
15103}
15104
15105// String returns the string representation
15106func (s UntagResourceInput) String() string {
15107	return awsutil.Prettify(s)
15108}
15109
15110// GoString returns the string representation
15111func (s UntagResourceInput) GoString() string {
15112	return s.String()
15113}
15114
15115// Validate inspects the fields of the type to determine if they are valid.
15116func (s *UntagResourceInput) Validate() error {
15117	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
15118	if s.ResourceArn == nil {
15119		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
15120	}
15121	if s.TagKeys == nil {
15122		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
15123	}
15124
15125	if invalidParams.Len() > 0 {
15126		return invalidParams
15127	}
15128	return nil
15129}
15130
15131// SetResourceArn sets the ResourceArn field's value.
15132func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
15133	s.ResourceArn = &v
15134	return s
15135}
15136
15137// SetTagKeys sets the TagKeys field's value.
15138func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
15139	s.TagKeys = v
15140	return s
15141}
15142
15143type UntagResourceOutput struct {
15144	_ struct{} `type:"structure"`
15145}
15146
15147// String returns the string representation
15148func (s UntagResourceOutput) String() string {
15149	return awsutil.Prettify(s)
15150}
15151
15152// GoString returns the string representation
15153func (s UntagResourceOutput) GoString() string {
15154	return s.String()
15155}
15156
15157type UpdateContainerAgentInput struct {
15158	_ struct{} `type:"structure"`
15159
15160	// The short name or full Amazon Resource Name (ARN) of the cluster that your
15161	// container instance is running on. If you do not specify a cluster, the default
15162	// cluster is assumed.
15163	Cluster *string `locationName:"cluster" type:"string"`
15164
15165	// The container instance ID or full ARN entries for the container instance
15166	// on which you would like to update the Amazon ECS container agent.
15167	//
15168	// ContainerInstance is a required field
15169	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
15170}
15171
15172// String returns the string representation
15173func (s UpdateContainerAgentInput) String() string {
15174	return awsutil.Prettify(s)
15175}
15176
15177// GoString returns the string representation
15178func (s UpdateContainerAgentInput) GoString() string {
15179	return s.String()
15180}
15181
15182// Validate inspects the fields of the type to determine if they are valid.
15183func (s *UpdateContainerAgentInput) Validate() error {
15184	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerAgentInput"}
15185	if s.ContainerInstance == nil {
15186		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
15187	}
15188
15189	if invalidParams.Len() > 0 {
15190		return invalidParams
15191	}
15192	return nil
15193}
15194
15195// SetCluster sets the Cluster field's value.
15196func (s *UpdateContainerAgentInput) SetCluster(v string) *UpdateContainerAgentInput {
15197	s.Cluster = &v
15198	return s
15199}
15200
15201// SetContainerInstance sets the ContainerInstance field's value.
15202func (s *UpdateContainerAgentInput) SetContainerInstance(v string) *UpdateContainerAgentInput {
15203	s.ContainerInstance = &v
15204	return s
15205}
15206
15207type UpdateContainerAgentOutput struct {
15208	_ struct{} `type:"structure"`
15209
15210	// The container instance for which the container agent was updated.
15211	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
15212}
15213
15214// String returns the string representation
15215func (s UpdateContainerAgentOutput) String() string {
15216	return awsutil.Prettify(s)
15217}
15218
15219// GoString returns the string representation
15220func (s UpdateContainerAgentOutput) GoString() string {
15221	return s.String()
15222}
15223
15224// SetContainerInstance sets the ContainerInstance field's value.
15225func (s *UpdateContainerAgentOutput) SetContainerInstance(v *ContainerInstance) *UpdateContainerAgentOutput {
15226	s.ContainerInstance = v
15227	return s
15228}
15229
15230type UpdateContainerInstancesStateInput struct {
15231	_ struct{} `type:"structure"`
15232
15233	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
15234	// the container instance to update. If you do not specify a cluster, the default
15235	// cluster is assumed.
15236	Cluster *string `locationName:"cluster" type:"string"`
15237
15238	// A list of container instance IDs or full ARN entries.
15239	//
15240	// ContainerInstances is a required field
15241	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
15242
15243	// The container instance state with which to update the container instance.
15244	// The only valid values for this action are ACTIVE and DRAINING. A container
15245	// instance can only be updated to DRAINING status once it has reached an ACTIVE
15246	// state. If a container instance is in REGISTERING, DEREGISTERING, or REGISTRATION_FAILED
15247	// state you can describe the container instance but will be unable to update
15248	// the container instance state.
15249	//
15250	// Status is a required field
15251	Status *string `locationName:"status" type:"string" required:"true" enum:"ContainerInstanceStatus"`
15252}
15253
15254// String returns the string representation
15255func (s UpdateContainerInstancesStateInput) String() string {
15256	return awsutil.Prettify(s)
15257}
15258
15259// GoString returns the string representation
15260func (s UpdateContainerInstancesStateInput) GoString() string {
15261	return s.String()
15262}
15263
15264// Validate inspects the fields of the type to determine if they are valid.
15265func (s *UpdateContainerInstancesStateInput) Validate() error {
15266	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerInstancesStateInput"}
15267	if s.ContainerInstances == nil {
15268		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
15269	}
15270	if s.Status == nil {
15271		invalidParams.Add(request.NewErrParamRequired("Status"))
15272	}
15273
15274	if invalidParams.Len() > 0 {
15275		return invalidParams
15276	}
15277	return nil
15278}
15279
15280// SetCluster sets the Cluster field's value.
15281func (s *UpdateContainerInstancesStateInput) SetCluster(v string) *UpdateContainerInstancesStateInput {
15282	s.Cluster = &v
15283	return s
15284}
15285
15286// SetContainerInstances sets the ContainerInstances field's value.
15287func (s *UpdateContainerInstancesStateInput) SetContainerInstances(v []*string) *UpdateContainerInstancesStateInput {
15288	s.ContainerInstances = v
15289	return s
15290}
15291
15292// SetStatus sets the Status field's value.
15293func (s *UpdateContainerInstancesStateInput) SetStatus(v string) *UpdateContainerInstancesStateInput {
15294	s.Status = &v
15295	return s
15296}
15297
15298type UpdateContainerInstancesStateOutput struct {
15299	_ struct{} `type:"structure"`
15300
15301	// The list of container instances.
15302	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
15303
15304	// Any failures associated with the call.
15305	Failures []*Failure `locationName:"failures" type:"list"`
15306}
15307
15308// String returns the string representation
15309func (s UpdateContainerInstancesStateOutput) String() string {
15310	return awsutil.Prettify(s)
15311}
15312
15313// GoString returns the string representation
15314func (s UpdateContainerInstancesStateOutput) GoString() string {
15315	return s.String()
15316}
15317
15318// SetContainerInstances sets the ContainerInstances field's value.
15319func (s *UpdateContainerInstancesStateOutput) SetContainerInstances(v []*ContainerInstance) *UpdateContainerInstancesStateOutput {
15320	s.ContainerInstances = v
15321	return s
15322}
15323
15324// SetFailures sets the Failures field's value.
15325func (s *UpdateContainerInstancesStateOutput) SetFailures(v []*Failure) *UpdateContainerInstancesStateOutput {
15326	s.Failures = v
15327	return s
15328}
15329
15330type UpdateServiceInput struct {
15331	_ struct{} `type:"structure"`
15332
15333	// The short name or full Amazon Resource Name (ARN) of the cluster that your
15334	// service is running on. If you do not specify a cluster, the default cluster
15335	// is assumed.
15336	Cluster *string `locationName:"cluster" type:"string"`
15337
15338	// Optional deployment parameters that control how many tasks run during the
15339	// deployment and the ordering of stopping and starting tasks.
15340	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
15341
15342	// The number of instantiations of the task to place and keep running in your
15343	// service.
15344	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
15345
15346	// Whether to force a new deployment of the service. Deployments are not forced
15347	// by default. You can use this option to trigger a new deployment with no service
15348	// definition changes. For example, you can update a service's tasks to use
15349	// a newer Docker image with the same image/tag combination (my_image:latest)
15350	// or to roll Fargate tasks onto a newer platform version.
15351	ForceNewDeployment *bool `locationName:"forceNewDeployment" type:"boolean"`
15352
15353	// The period of time, in seconds, that the Amazon ECS service scheduler should
15354	// ignore unhealthy Elastic Load Balancing target health checks after a task
15355	// has first started. This is only valid if your service is configured to use
15356	// a load balancer. If your service's tasks take a while to start and respond
15357	// to Elastic Load Balancing health checks, you can specify a health check grace
15358	// period of up to 1,800 seconds. During that time, the ECS service scheduler
15359	// ignores the Elastic Load Balancing health check status. This grace period
15360	// can prevent the ECS service scheduler from marking tasks as unhealthy and
15361	// stopping them before they have time to come up.
15362	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
15363
15364	// The network configuration for the service. This parameter is required for
15365	// task definitions that use the awsvpc network mode to receive their own elastic
15366	// network interface, and it is not supported for other network modes. For more
15367	// information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
15368	// in the Amazon Elastic Container Service Developer Guide.
15369	//
15370	// Updating a service to add a subnet to a list of existing subnets does not
15371	// trigger a service deployment. For example, if your network configuration
15372	// change is to keep the existing subnets and simply add another subnet to the
15373	// network configuration, this does not trigger a new service deployment.
15374	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
15375
15376	// The platform version on which your tasks in the service are running. A platform
15377	// version is only specified for tasks using the Fargate launch type. If one
15378	// is not specified, the LATEST platform version is used by default. For more
15379	// information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
15380	// in the Amazon Elastic Container Service Developer Guide.
15381	PlatformVersion *string `locationName:"platformVersion" type:"string"`
15382
15383	// The name of the service to update.
15384	//
15385	// Service is a required field
15386	Service *string `locationName:"service" type:"string" required:"true"`
15387
15388	// The family and revision (family:revision) or full ARN of the task definition
15389	// to run in your service. If a revision is not specified, the latest ACTIVE
15390	// revision is used. If you modify the task definition with UpdateService, Amazon
15391	// ECS spawns a task with the new version of the task definition and then stops
15392	// an old task after the new version is running.
15393	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
15394}
15395
15396// String returns the string representation
15397func (s UpdateServiceInput) String() string {
15398	return awsutil.Prettify(s)
15399}
15400
15401// GoString returns the string representation
15402func (s UpdateServiceInput) GoString() string {
15403	return s.String()
15404}
15405
15406// Validate inspects the fields of the type to determine if they are valid.
15407func (s *UpdateServiceInput) Validate() error {
15408	invalidParams := request.ErrInvalidParams{Context: "UpdateServiceInput"}
15409	if s.Service == nil {
15410		invalidParams.Add(request.NewErrParamRequired("Service"))
15411	}
15412	if s.NetworkConfiguration != nil {
15413		if err := s.NetworkConfiguration.Validate(); err != nil {
15414			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
15415		}
15416	}
15417
15418	if invalidParams.Len() > 0 {
15419		return invalidParams
15420	}
15421	return nil
15422}
15423
15424// SetCluster sets the Cluster field's value.
15425func (s *UpdateServiceInput) SetCluster(v string) *UpdateServiceInput {
15426	s.Cluster = &v
15427	return s
15428}
15429
15430// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
15431func (s *UpdateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *UpdateServiceInput {
15432	s.DeploymentConfiguration = v
15433	return s
15434}
15435
15436// SetDesiredCount sets the DesiredCount field's value.
15437func (s *UpdateServiceInput) SetDesiredCount(v int64) *UpdateServiceInput {
15438	s.DesiredCount = &v
15439	return s
15440}
15441
15442// SetForceNewDeployment sets the ForceNewDeployment field's value.
15443func (s *UpdateServiceInput) SetForceNewDeployment(v bool) *UpdateServiceInput {
15444	s.ForceNewDeployment = &v
15445	return s
15446}
15447
15448// SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
15449func (s *UpdateServiceInput) SetHealthCheckGracePeriodSeconds(v int64) *UpdateServiceInput {
15450	s.HealthCheckGracePeriodSeconds = &v
15451	return s
15452}
15453
15454// SetNetworkConfiguration sets the NetworkConfiguration field's value.
15455func (s *UpdateServiceInput) SetNetworkConfiguration(v *NetworkConfiguration) *UpdateServiceInput {
15456	s.NetworkConfiguration = v
15457	return s
15458}
15459
15460// SetPlatformVersion sets the PlatformVersion field's value.
15461func (s *UpdateServiceInput) SetPlatformVersion(v string) *UpdateServiceInput {
15462	s.PlatformVersion = &v
15463	return s
15464}
15465
15466// SetService sets the Service field's value.
15467func (s *UpdateServiceInput) SetService(v string) *UpdateServiceInput {
15468	s.Service = &v
15469	return s
15470}
15471
15472// SetTaskDefinition sets the TaskDefinition field's value.
15473func (s *UpdateServiceInput) SetTaskDefinition(v string) *UpdateServiceInput {
15474	s.TaskDefinition = &v
15475	return s
15476}
15477
15478type UpdateServiceOutput struct {
15479	_ struct{} `type:"structure"`
15480
15481	// The full description of your service following the update call.
15482	Service *Service `locationName:"service" type:"structure"`
15483}
15484
15485// String returns the string representation
15486func (s UpdateServiceOutput) String() string {
15487	return awsutil.Prettify(s)
15488}
15489
15490// GoString returns the string representation
15491func (s UpdateServiceOutput) GoString() string {
15492	return s.String()
15493}
15494
15495// SetService sets the Service field's value.
15496func (s *UpdateServiceOutput) SetService(v *Service) *UpdateServiceOutput {
15497	s.Service = v
15498	return s
15499}
15500
15501type UpdateServicePrimaryTaskSetInput struct {
15502	_ struct{} `type:"structure"`
15503
15504	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
15505	// the service that the task set exists in.
15506	//
15507	// Cluster is a required field
15508	Cluster *string `locationName:"cluster" type:"string" required:"true"`
15509
15510	// The short name or full Amazon Resource Name (ARN) of the task set to set
15511	// as the primary task set in the deployment.
15512	//
15513	// PrimaryTaskSet is a required field
15514	PrimaryTaskSet *string `locationName:"primaryTaskSet" type:"string" required:"true"`
15515
15516	// The short name or full Amazon Resource Name (ARN) of the service that the
15517	// task set exists in.
15518	//
15519	// Service is a required field
15520	Service *string `locationName:"service" type:"string" required:"true"`
15521}
15522
15523// String returns the string representation
15524func (s UpdateServicePrimaryTaskSetInput) String() string {
15525	return awsutil.Prettify(s)
15526}
15527
15528// GoString returns the string representation
15529func (s UpdateServicePrimaryTaskSetInput) GoString() string {
15530	return s.String()
15531}
15532
15533// Validate inspects the fields of the type to determine if they are valid.
15534func (s *UpdateServicePrimaryTaskSetInput) Validate() error {
15535	invalidParams := request.ErrInvalidParams{Context: "UpdateServicePrimaryTaskSetInput"}
15536	if s.Cluster == nil {
15537		invalidParams.Add(request.NewErrParamRequired("Cluster"))
15538	}
15539	if s.PrimaryTaskSet == nil {
15540		invalidParams.Add(request.NewErrParamRequired("PrimaryTaskSet"))
15541	}
15542	if s.Service == nil {
15543		invalidParams.Add(request.NewErrParamRequired("Service"))
15544	}
15545
15546	if invalidParams.Len() > 0 {
15547		return invalidParams
15548	}
15549	return nil
15550}
15551
15552// SetCluster sets the Cluster field's value.
15553func (s *UpdateServicePrimaryTaskSetInput) SetCluster(v string) *UpdateServicePrimaryTaskSetInput {
15554	s.Cluster = &v
15555	return s
15556}
15557
15558// SetPrimaryTaskSet sets the PrimaryTaskSet field's value.
15559func (s *UpdateServicePrimaryTaskSetInput) SetPrimaryTaskSet(v string) *UpdateServicePrimaryTaskSetInput {
15560	s.PrimaryTaskSet = &v
15561	return s
15562}
15563
15564// SetService sets the Service field's value.
15565func (s *UpdateServicePrimaryTaskSetInput) SetService(v string) *UpdateServicePrimaryTaskSetInput {
15566	s.Service = &v
15567	return s
15568}
15569
15570type UpdateServicePrimaryTaskSetOutput struct {
15571	_ struct{} `type:"structure"`
15572
15573	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
15574	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
15575	// desired number of tasks, how many tasks are running, and whether the task
15576	// set serves production traffic.
15577	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
15578}
15579
15580// String returns the string representation
15581func (s UpdateServicePrimaryTaskSetOutput) String() string {
15582	return awsutil.Prettify(s)
15583}
15584
15585// GoString returns the string representation
15586func (s UpdateServicePrimaryTaskSetOutput) GoString() string {
15587	return s.String()
15588}
15589
15590// SetTaskSet sets the TaskSet field's value.
15591func (s *UpdateServicePrimaryTaskSetOutput) SetTaskSet(v *TaskSet) *UpdateServicePrimaryTaskSetOutput {
15592	s.TaskSet = v
15593	return s
15594}
15595
15596type UpdateTaskSetInput struct {
15597	_ struct{} `type:"structure"`
15598
15599	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
15600	// the service that the task set exists in.
15601	//
15602	// Cluster is a required field
15603	Cluster *string `locationName:"cluster" type:"string" required:"true"`
15604
15605	// A floating-point percentage of the desired number of tasks to place and keep
15606	// running in the task set.
15607	//
15608	// Scale is a required field
15609	Scale *Scale `locationName:"scale" type:"structure" required:"true"`
15610
15611	// The short name or full Amazon Resource Name (ARN) of the service that the
15612	// task set exists in.
15613	//
15614	// Service is a required field
15615	Service *string `locationName:"service" type:"string" required:"true"`
15616
15617	// The short name or full Amazon Resource Name (ARN) of the task set to update.
15618	//
15619	// TaskSet is a required field
15620	TaskSet *string `locationName:"taskSet" type:"string" required:"true"`
15621}
15622
15623// String returns the string representation
15624func (s UpdateTaskSetInput) String() string {
15625	return awsutil.Prettify(s)
15626}
15627
15628// GoString returns the string representation
15629func (s UpdateTaskSetInput) GoString() string {
15630	return s.String()
15631}
15632
15633// Validate inspects the fields of the type to determine if they are valid.
15634func (s *UpdateTaskSetInput) Validate() error {
15635	invalidParams := request.ErrInvalidParams{Context: "UpdateTaskSetInput"}
15636	if s.Cluster == nil {
15637		invalidParams.Add(request.NewErrParamRequired("Cluster"))
15638	}
15639	if s.Scale == nil {
15640		invalidParams.Add(request.NewErrParamRequired("Scale"))
15641	}
15642	if s.Service == nil {
15643		invalidParams.Add(request.NewErrParamRequired("Service"))
15644	}
15645	if s.TaskSet == nil {
15646		invalidParams.Add(request.NewErrParamRequired("TaskSet"))
15647	}
15648
15649	if invalidParams.Len() > 0 {
15650		return invalidParams
15651	}
15652	return nil
15653}
15654
15655// SetCluster sets the Cluster field's value.
15656func (s *UpdateTaskSetInput) SetCluster(v string) *UpdateTaskSetInput {
15657	s.Cluster = &v
15658	return s
15659}
15660
15661// SetScale sets the Scale field's value.
15662func (s *UpdateTaskSetInput) SetScale(v *Scale) *UpdateTaskSetInput {
15663	s.Scale = v
15664	return s
15665}
15666
15667// SetService sets the Service field's value.
15668func (s *UpdateTaskSetInput) SetService(v string) *UpdateTaskSetInput {
15669	s.Service = &v
15670	return s
15671}
15672
15673// SetTaskSet sets the TaskSet field's value.
15674func (s *UpdateTaskSetInput) SetTaskSet(v string) *UpdateTaskSetInput {
15675	s.TaskSet = &v
15676	return s
15677}
15678
15679type UpdateTaskSetOutput struct {
15680	_ struct{} `type:"structure"`
15681
15682	// Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or
15683	// an EXTERNAL deployment. An Amazon ECS task set includes details such as the
15684	// desired number of tasks, how many tasks are running, and whether the task
15685	// set serves production traffic.
15686	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
15687}
15688
15689// String returns the string representation
15690func (s UpdateTaskSetOutput) String() string {
15691	return awsutil.Prettify(s)
15692}
15693
15694// GoString returns the string representation
15695func (s UpdateTaskSetOutput) GoString() string {
15696	return s.String()
15697}
15698
15699// SetTaskSet sets the TaskSet field's value.
15700func (s *UpdateTaskSetOutput) SetTaskSet(v *TaskSet) *UpdateTaskSetOutput {
15701	s.TaskSet = v
15702	return s
15703}
15704
15705// The Docker and Amazon ECS container agent version information about a container
15706// instance.
15707type VersionInfo struct {
15708	_ struct{} `type:"structure"`
15709
15710	// The Git commit hash for the Amazon ECS container agent build on the amazon-ecs-agent
15711	// (https://github.com/aws/amazon-ecs-agent/commits/master) GitHub repository.
15712	AgentHash *string `locationName:"agentHash" type:"string"`
15713
15714	// The version number of the Amazon ECS container agent.
15715	AgentVersion *string `locationName:"agentVersion" type:"string"`
15716
15717	// The Docker version running on the container instance.
15718	DockerVersion *string `locationName:"dockerVersion" type:"string"`
15719}
15720
15721// String returns the string representation
15722func (s VersionInfo) String() string {
15723	return awsutil.Prettify(s)
15724}
15725
15726// GoString returns the string representation
15727func (s VersionInfo) GoString() string {
15728	return s.String()
15729}
15730
15731// SetAgentHash sets the AgentHash field's value.
15732func (s *VersionInfo) SetAgentHash(v string) *VersionInfo {
15733	s.AgentHash = &v
15734	return s
15735}
15736
15737// SetAgentVersion sets the AgentVersion field's value.
15738func (s *VersionInfo) SetAgentVersion(v string) *VersionInfo {
15739	s.AgentVersion = &v
15740	return s
15741}
15742
15743// SetDockerVersion sets the DockerVersion field's value.
15744func (s *VersionInfo) SetDockerVersion(v string) *VersionInfo {
15745	s.DockerVersion = &v
15746	return s
15747}
15748
15749// A data volume used in a task definition. For tasks that use a Docker volume,
15750// specify a DockerVolumeConfiguration. For tasks that use a bind mount host
15751// volume, specify a host and optional sourcePath. For more information, see
15752// Using Data Volumes in Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html).
15753type Volume struct {
15754	_ struct{} `type:"structure"`
15755
15756	// This parameter is specified when you are using Docker volumes. Docker volumes
15757	// are only supported when you are using the EC2 launch type. Windows containers
15758	// only support the use of the local driver. To use bind mounts, specify a host
15759	// instead.
15760	DockerVolumeConfiguration *DockerVolumeConfiguration `locationName:"dockerVolumeConfiguration" type:"structure"`
15761
15762	// This parameter is specified when you are using bind mount host volumes. Bind
15763	// mount host volumes are supported when you are using either the EC2 or Fargate
15764	// launch types. The contents of the host parameter determine whether your bind
15765	// mount host volume persists on the host container instance and where it is
15766	// stored. If the host parameter is empty, then the Docker daemon assigns a
15767	// host path for your data volume. However, the data is not guaranteed to persist
15768	// after the containers associated with it stop running.
15769	//
15770	// Windows containers can mount whole directories on the same drive as $env:ProgramData.
15771	// Windows containers cannot mount directories on a different drive, and mount
15772	// point cannot be across drives. For example, you can mount C:\my\path:C:\my\path
15773	// and D:\:D:\, but not D:\my\path:C:\my\path or D:\:C:\my\path.
15774	Host *HostVolumeProperties `locationName:"host" type:"structure"`
15775
15776	// The name of the volume. Up to 255 letters (uppercase and lowercase), numbers,
15777	// and hyphens are allowed. This name is referenced in the sourceVolume parameter
15778	// of container definition mountPoints.
15779	Name *string `locationName:"name" type:"string"`
15780}
15781
15782// String returns the string representation
15783func (s Volume) String() string {
15784	return awsutil.Prettify(s)
15785}
15786
15787// GoString returns the string representation
15788func (s Volume) GoString() string {
15789	return s.String()
15790}
15791
15792// SetDockerVolumeConfiguration sets the DockerVolumeConfiguration field's value.
15793func (s *Volume) SetDockerVolumeConfiguration(v *DockerVolumeConfiguration) *Volume {
15794	s.DockerVolumeConfiguration = v
15795	return s
15796}
15797
15798// SetHost sets the Host field's value.
15799func (s *Volume) SetHost(v *HostVolumeProperties) *Volume {
15800	s.Host = v
15801	return s
15802}
15803
15804// SetName sets the Name field's value.
15805func (s *Volume) SetName(v string) *Volume {
15806	s.Name = &v
15807	return s
15808}
15809
15810// Details on a data volume from another container in the same task definition.
15811type VolumeFrom struct {
15812	_ struct{} `type:"structure"`
15813
15814	// If this value is true, the container has read-only access to the volume.
15815	// If this value is false, then the container can write to the volume. The default
15816	// value is false.
15817	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
15818
15819	// The name of another container within the same task definition from which
15820	// to mount volumes.
15821	SourceContainer *string `locationName:"sourceContainer" type:"string"`
15822}
15823
15824// String returns the string representation
15825func (s VolumeFrom) String() string {
15826	return awsutil.Prettify(s)
15827}
15828
15829// GoString returns the string representation
15830func (s VolumeFrom) GoString() string {
15831	return s.String()
15832}
15833
15834// SetReadOnly sets the ReadOnly field's value.
15835func (s *VolumeFrom) SetReadOnly(v bool) *VolumeFrom {
15836	s.ReadOnly = &v
15837	return s
15838}
15839
15840// SetSourceContainer sets the SourceContainer field's value.
15841func (s *VolumeFrom) SetSourceContainer(v string) *VolumeFrom {
15842	s.SourceContainer = &v
15843	return s
15844}
15845
15846const (
15847	// AgentUpdateStatusPending is a AgentUpdateStatus enum value
15848	AgentUpdateStatusPending = "PENDING"
15849
15850	// AgentUpdateStatusStaging is a AgentUpdateStatus enum value
15851	AgentUpdateStatusStaging = "STAGING"
15852
15853	// AgentUpdateStatusStaged is a AgentUpdateStatus enum value
15854	AgentUpdateStatusStaged = "STAGED"
15855
15856	// AgentUpdateStatusUpdating is a AgentUpdateStatus enum value
15857	AgentUpdateStatusUpdating = "UPDATING"
15858
15859	// AgentUpdateStatusUpdated is a AgentUpdateStatus enum value
15860	AgentUpdateStatusUpdated = "UPDATED"
15861
15862	// AgentUpdateStatusFailed is a AgentUpdateStatus enum value
15863	AgentUpdateStatusFailed = "FAILED"
15864)
15865
15866const (
15867	// AssignPublicIpEnabled is a AssignPublicIp enum value
15868	AssignPublicIpEnabled = "ENABLED"
15869
15870	// AssignPublicIpDisabled is a AssignPublicIp enum value
15871	AssignPublicIpDisabled = "DISABLED"
15872)
15873
15874const (
15875	// ClusterFieldStatistics is a ClusterField enum value
15876	ClusterFieldStatistics = "STATISTICS"
15877
15878	// ClusterFieldTags is a ClusterField enum value
15879	ClusterFieldTags = "TAGS"
15880)
15881
15882const (
15883	// ClusterSettingNameContainerInsights is a ClusterSettingName enum value
15884	ClusterSettingNameContainerInsights = "containerInsights"
15885)
15886
15887const (
15888	// CompatibilityEc2 is a Compatibility enum value
15889	CompatibilityEc2 = "EC2"
15890
15891	// CompatibilityFargate is a Compatibility enum value
15892	CompatibilityFargate = "FARGATE"
15893)
15894
15895const (
15896	// ConnectivityConnected is a Connectivity enum value
15897	ConnectivityConnected = "CONNECTED"
15898
15899	// ConnectivityDisconnected is a Connectivity enum value
15900	ConnectivityDisconnected = "DISCONNECTED"
15901)
15902
15903const (
15904	// ContainerConditionStart is a ContainerCondition enum value
15905	ContainerConditionStart = "START"
15906
15907	// ContainerConditionComplete is a ContainerCondition enum value
15908	ContainerConditionComplete = "COMPLETE"
15909
15910	// ContainerConditionSuccess is a ContainerCondition enum value
15911	ContainerConditionSuccess = "SUCCESS"
15912
15913	// ContainerConditionHealthy is a ContainerCondition enum value
15914	ContainerConditionHealthy = "HEALTHY"
15915)
15916
15917const (
15918	// ContainerInstanceFieldTags is a ContainerInstanceField enum value
15919	ContainerInstanceFieldTags = "TAGS"
15920)
15921
15922const (
15923	// ContainerInstanceStatusActive is a ContainerInstanceStatus enum value
15924	ContainerInstanceStatusActive = "ACTIVE"
15925
15926	// ContainerInstanceStatusDraining is a ContainerInstanceStatus enum value
15927	ContainerInstanceStatusDraining = "DRAINING"
15928
15929	// ContainerInstanceStatusRegistering is a ContainerInstanceStatus enum value
15930	ContainerInstanceStatusRegistering = "REGISTERING"
15931
15932	// ContainerInstanceStatusDeregistering is a ContainerInstanceStatus enum value
15933	ContainerInstanceStatusDeregistering = "DEREGISTERING"
15934
15935	// ContainerInstanceStatusRegistrationFailed is a ContainerInstanceStatus enum value
15936	ContainerInstanceStatusRegistrationFailed = "REGISTRATION_FAILED"
15937)
15938
15939const (
15940	// DeploymentControllerTypeEcs is a DeploymentControllerType enum value
15941	DeploymentControllerTypeEcs = "ECS"
15942
15943	// DeploymentControllerTypeCodeDeploy is a DeploymentControllerType enum value
15944	DeploymentControllerTypeCodeDeploy = "CODE_DEPLOY"
15945
15946	// DeploymentControllerTypeExternal is a DeploymentControllerType enum value
15947	DeploymentControllerTypeExternal = "EXTERNAL"
15948)
15949
15950const (
15951	// DesiredStatusRunning is a DesiredStatus enum value
15952	DesiredStatusRunning = "RUNNING"
15953
15954	// DesiredStatusPending is a DesiredStatus enum value
15955	DesiredStatusPending = "PENDING"
15956
15957	// DesiredStatusStopped is a DesiredStatus enum value
15958	DesiredStatusStopped = "STOPPED"
15959)
15960
15961const (
15962	// DeviceCgroupPermissionRead is a DeviceCgroupPermission enum value
15963	DeviceCgroupPermissionRead = "read"
15964
15965	// DeviceCgroupPermissionWrite is a DeviceCgroupPermission enum value
15966	DeviceCgroupPermissionWrite = "write"
15967
15968	// DeviceCgroupPermissionMknod is a DeviceCgroupPermission enum value
15969	DeviceCgroupPermissionMknod = "mknod"
15970)
15971
15972const (
15973	// HealthStatusHealthy is a HealthStatus enum value
15974	HealthStatusHealthy = "HEALTHY"
15975
15976	// HealthStatusUnhealthy is a HealthStatus enum value
15977	HealthStatusUnhealthy = "UNHEALTHY"
15978
15979	// HealthStatusUnknown is a HealthStatus enum value
15980	HealthStatusUnknown = "UNKNOWN"
15981)
15982
15983const (
15984	// IpcModeHost is a IpcMode enum value
15985	IpcModeHost = "host"
15986
15987	// IpcModeTask is a IpcMode enum value
15988	IpcModeTask = "task"
15989
15990	// IpcModeNone is a IpcMode enum value
15991	IpcModeNone = "none"
15992)
15993
15994const (
15995	// LaunchTypeEc2 is a LaunchType enum value
15996	LaunchTypeEc2 = "EC2"
15997
15998	// LaunchTypeFargate is a LaunchType enum value
15999	LaunchTypeFargate = "FARGATE"
16000)
16001
16002const (
16003	// LogDriverJsonFile is a LogDriver enum value
16004	LogDriverJsonFile = "json-file"
16005
16006	// LogDriverSyslog is a LogDriver enum value
16007	LogDriverSyslog = "syslog"
16008
16009	// LogDriverJournald is a LogDriver enum value
16010	LogDriverJournald = "journald"
16011
16012	// LogDriverGelf is a LogDriver enum value
16013	LogDriverGelf = "gelf"
16014
16015	// LogDriverFluentd is a LogDriver enum value
16016	LogDriverFluentd = "fluentd"
16017
16018	// LogDriverAwslogs is a LogDriver enum value
16019	LogDriverAwslogs = "awslogs"
16020
16021	// LogDriverSplunk is a LogDriver enum value
16022	LogDriverSplunk = "splunk"
16023)
16024
16025const (
16026	// NetworkModeBridge is a NetworkMode enum value
16027	NetworkModeBridge = "bridge"
16028
16029	// NetworkModeHost is a NetworkMode enum value
16030	NetworkModeHost = "host"
16031
16032	// NetworkModeAwsvpc is a NetworkMode enum value
16033	NetworkModeAwsvpc = "awsvpc"
16034
16035	// NetworkModeNone is a NetworkMode enum value
16036	NetworkModeNone = "none"
16037)
16038
16039const (
16040	// PidModeHost is a PidMode enum value
16041	PidModeHost = "host"
16042
16043	// PidModeTask is a PidMode enum value
16044	PidModeTask = "task"
16045)
16046
16047const (
16048	// PlacementConstraintTypeDistinctInstance is a PlacementConstraintType enum value
16049	PlacementConstraintTypeDistinctInstance = "distinctInstance"
16050
16051	// PlacementConstraintTypeMemberOf is a PlacementConstraintType enum value
16052	PlacementConstraintTypeMemberOf = "memberOf"
16053)
16054
16055const (
16056	// PlacementStrategyTypeRandom is a PlacementStrategyType enum value
16057	PlacementStrategyTypeRandom = "random"
16058
16059	// PlacementStrategyTypeSpread is a PlacementStrategyType enum value
16060	PlacementStrategyTypeSpread = "spread"
16061
16062	// PlacementStrategyTypeBinpack is a PlacementStrategyType enum value
16063	PlacementStrategyTypeBinpack = "binpack"
16064)
16065
16066const (
16067	// PlatformDeviceTypeGpu is a PlatformDeviceType enum value
16068	PlatformDeviceTypeGpu = "GPU"
16069)
16070
16071const (
16072	// PropagateTagsTaskDefinition is a PropagateTags enum value
16073	PropagateTagsTaskDefinition = "TASK_DEFINITION"
16074
16075	// PropagateTagsService is a PropagateTags enum value
16076	PropagateTagsService = "SERVICE"
16077)
16078
16079const (
16080	// ProxyConfigurationTypeAppmesh is a ProxyConfigurationType enum value
16081	ProxyConfigurationTypeAppmesh = "APPMESH"
16082)
16083
16084const (
16085	// ResourceTypeGpu is a ResourceType enum value
16086	ResourceTypeGpu = "GPU"
16087)
16088
16089const (
16090	// ScaleUnitPercent is a ScaleUnit enum value
16091	ScaleUnitPercent = "PERCENT"
16092)
16093
16094const (
16095	// SchedulingStrategyReplica is a SchedulingStrategy enum value
16096	SchedulingStrategyReplica = "REPLICA"
16097
16098	// SchedulingStrategyDaemon is a SchedulingStrategy enum value
16099	SchedulingStrategyDaemon = "DAEMON"
16100)
16101
16102const (
16103	// ScopeTask is a Scope enum value
16104	ScopeTask = "task"
16105
16106	// ScopeShared is a Scope enum value
16107	ScopeShared = "shared"
16108)
16109
16110const (
16111	// ServiceFieldTags is a ServiceField enum value
16112	ServiceFieldTags = "TAGS"
16113)
16114
16115const (
16116	// SettingNameServiceLongArnFormat is a SettingName enum value
16117	SettingNameServiceLongArnFormat = "serviceLongArnFormat"
16118
16119	// SettingNameTaskLongArnFormat is a SettingName enum value
16120	SettingNameTaskLongArnFormat = "taskLongArnFormat"
16121
16122	// SettingNameContainerInstanceLongArnFormat is a SettingName enum value
16123	SettingNameContainerInstanceLongArnFormat = "containerInstanceLongArnFormat"
16124
16125	// SettingNameAwsvpcTrunking is a SettingName enum value
16126	SettingNameAwsvpcTrunking = "awsvpcTrunking"
16127
16128	// SettingNameContainerInsights is a SettingName enum value
16129	SettingNameContainerInsights = "containerInsights"
16130)
16131
16132const (
16133	// SortOrderAsc is a SortOrder enum value
16134	SortOrderAsc = "ASC"
16135
16136	// SortOrderDesc is a SortOrder enum value
16137	SortOrderDesc = "DESC"
16138)
16139
16140const (
16141	// StabilityStatusSteadyState is a StabilityStatus enum value
16142	StabilityStatusSteadyState = "STEADY_STATE"
16143
16144	// StabilityStatusStabilizing is a StabilityStatus enum value
16145	StabilityStatusStabilizing = "STABILIZING"
16146)
16147
16148const (
16149	// TargetTypeContainerInstance is a TargetType enum value
16150	TargetTypeContainerInstance = "container-instance"
16151)
16152
16153const (
16154	// TaskDefinitionFamilyStatusActive is a TaskDefinitionFamilyStatus enum value
16155	TaskDefinitionFamilyStatusActive = "ACTIVE"
16156
16157	// TaskDefinitionFamilyStatusInactive is a TaskDefinitionFamilyStatus enum value
16158	TaskDefinitionFamilyStatusInactive = "INACTIVE"
16159
16160	// TaskDefinitionFamilyStatusAll is a TaskDefinitionFamilyStatus enum value
16161	TaskDefinitionFamilyStatusAll = "ALL"
16162)
16163
16164const (
16165	// TaskDefinitionFieldTags is a TaskDefinitionField enum value
16166	TaskDefinitionFieldTags = "TAGS"
16167)
16168
16169const (
16170	// TaskDefinitionPlacementConstraintTypeMemberOf is a TaskDefinitionPlacementConstraintType enum value
16171	TaskDefinitionPlacementConstraintTypeMemberOf = "memberOf"
16172)
16173
16174const (
16175	// TaskDefinitionStatusActive is a TaskDefinitionStatus enum value
16176	TaskDefinitionStatusActive = "ACTIVE"
16177
16178	// TaskDefinitionStatusInactive is a TaskDefinitionStatus enum value
16179	TaskDefinitionStatusInactive = "INACTIVE"
16180)
16181
16182const (
16183	// TaskFieldTags is a TaskField enum value
16184	TaskFieldTags = "TAGS"
16185)
16186
16187const (
16188	// TaskStopCodeTaskFailedToStart is a TaskStopCode enum value
16189	TaskStopCodeTaskFailedToStart = "TaskFailedToStart"
16190
16191	// TaskStopCodeEssentialContainerExited is a TaskStopCode enum value
16192	TaskStopCodeEssentialContainerExited = "EssentialContainerExited"
16193
16194	// TaskStopCodeUserInitiated is a TaskStopCode enum value
16195	TaskStopCodeUserInitiated = "UserInitiated"
16196)
16197
16198const (
16199	// TransportProtocolTcp is a TransportProtocol enum value
16200	TransportProtocolTcp = "tcp"
16201
16202	// TransportProtocolUdp is a TransportProtocol enum value
16203	TransportProtocolUdp = "udp"
16204)
16205
16206const (
16207	// UlimitNameCore is a UlimitName enum value
16208	UlimitNameCore = "core"
16209
16210	// UlimitNameCpu is a UlimitName enum value
16211	UlimitNameCpu = "cpu"
16212
16213	// UlimitNameData is a UlimitName enum value
16214	UlimitNameData = "data"
16215
16216	// UlimitNameFsize is a UlimitName enum value
16217	UlimitNameFsize = "fsize"
16218
16219	// UlimitNameLocks is a UlimitName enum value
16220	UlimitNameLocks = "locks"
16221
16222	// UlimitNameMemlock is a UlimitName enum value
16223	UlimitNameMemlock = "memlock"
16224
16225	// UlimitNameMsgqueue is a UlimitName enum value
16226	UlimitNameMsgqueue = "msgqueue"
16227
16228	// UlimitNameNice is a UlimitName enum value
16229	UlimitNameNice = "nice"
16230
16231	// UlimitNameNofile is a UlimitName enum value
16232	UlimitNameNofile = "nofile"
16233
16234	// UlimitNameNproc is a UlimitName enum value
16235	UlimitNameNproc = "nproc"
16236
16237	// UlimitNameRss is a UlimitName enum value
16238	UlimitNameRss = "rss"
16239
16240	// UlimitNameRtprio is a UlimitName enum value
16241	UlimitNameRtprio = "rtprio"
16242
16243	// UlimitNameRttime is a UlimitName enum value
16244	UlimitNameRttime = "rttime"
16245
16246	// UlimitNameSigpending is a UlimitName enum value
16247	UlimitNameSigpending = "sigpending"
16248
16249	// UlimitNameStack is a UlimitName enum value
16250	UlimitNameStack = "stack"
16251)
16252