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)
13
14const opCreateCluster = "CreateCluster"
15
16// CreateClusterRequest generates a "aws/request.Request" representing the
17// client's request for the CreateCluster operation. The "output" return
18// value will be populated with the request's response once the request complets
19// successfuly.
20//
21// Use "Send" method on the returned Request to send the API call to the service.
22// the "output" return value is not valid until after Send returns without error.
23//
24// See CreateCluster for more information on using the CreateCluster
25// API call, and error handling.
26//
27// This method is useful when you want to inject custom logic or configuration
28// into the SDK's request lifecycle. Such as custom headers, or retry logic.
29//
30//
31//    // Example sending a request using the CreateClusterRequest method.
32//    req, resp := client.CreateClusterRequest(params)
33//
34//    err := req.Send()
35//    if err == nil { // resp is now filled
36//        fmt.Println(resp)
37//    }
38//
39// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCluster
40func (c *ECS) CreateClusterRequest(input *CreateClusterInput) (req *request.Request, output *CreateClusterOutput) {
41	op := &request.Operation{
42		Name:       opCreateCluster,
43		HTTPMethod: "POST",
44		HTTPPath:   "/",
45	}
46
47	if input == nil {
48		input = &CreateClusterInput{}
49	}
50
51	output = &CreateClusterOutput{}
52	req = c.newRequest(op, input, output)
53	return
54}
55
56// CreateCluster API operation for Amazon EC2 Container Service.
57//
58// Creates a new Amazon ECS cluster. By default, your account receives a default
59// cluster when you launch your first container instance. However, you can create
60// your own cluster with a unique name with the CreateCluster action.
61//
62// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
63// with awserr.Error's Code and Message methods to get detailed information about
64// the error.
65//
66// See the AWS API reference guide for Amazon EC2 Container Service's
67// API operation CreateCluster for usage and error information.
68//
69// Returned Error Codes:
70//   * ErrCodeServerException "ServerException"
71//   These errors are usually caused by a server issue.
72//
73//   * ErrCodeClientException "ClientException"
74//   These errors are usually caused by a client action, such as using an action
75//   or resource on behalf of a user that doesn't have permission to use the action
76//   or resource, or specifying an identifier that is not valid.
77//
78//   * ErrCodeInvalidParameterException "InvalidParameterException"
79//   The specified parameter is invalid. Review the available parameters for the
80//   API request.
81//
82// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCluster
83func (c *ECS) CreateCluster(input *CreateClusterInput) (*CreateClusterOutput, error) {
84	req, out := c.CreateClusterRequest(input)
85	return out, req.Send()
86}
87
88// CreateClusterWithContext is the same as CreateCluster with the addition of
89// the ability to pass a context and additional request options.
90//
91// See CreateCluster for details on how to use this API operation.
92//
93// The context must be non-nil and will be used for request cancellation. If
94// the context is nil a panic will occur. In the future the SDK may create
95// sub-contexts for http.Requests. See https://golang.org/pkg/context/
96// for more information on using Contexts.
97func (c *ECS) CreateClusterWithContext(ctx aws.Context, input *CreateClusterInput, opts ...request.Option) (*CreateClusterOutput, error) {
98	req, out := c.CreateClusterRequest(input)
99	req.SetContext(ctx)
100	req.ApplyOptions(opts...)
101	return out, req.Send()
102}
103
104const opCreateService = "CreateService"
105
106// CreateServiceRequest generates a "aws/request.Request" representing the
107// client's request for the CreateService operation. The "output" return
108// value will be populated with the request's response once the request complets
109// successfuly.
110//
111// Use "Send" method on the returned Request to send the API call to the service.
112// the "output" return value is not valid until after Send returns without error.
113//
114// See CreateService for more information on using the CreateService
115// API call, and error handling.
116//
117// This method is useful when you want to inject custom logic or configuration
118// into the SDK's request lifecycle. Such as custom headers, or retry logic.
119//
120//
121//    // Example sending a request using the CreateServiceRequest method.
122//    req, resp := client.CreateServiceRequest(params)
123//
124//    err := req.Send()
125//    if err == nil { // resp is now filled
126//        fmt.Println(resp)
127//    }
128//
129// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateService
130func (c *ECS) CreateServiceRequest(input *CreateServiceInput) (req *request.Request, output *CreateServiceOutput) {
131	op := &request.Operation{
132		Name:       opCreateService,
133		HTTPMethod: "POST",
134		HTTPPath:   "/",
135	}
136
137	if input == nil {
138		input = &CreateServiceInput{}
139	}
140
141	output = &CreateServiceOutput{}
142	req = c.newRequest(op, input, output)
143	return
144}
145
146// CreateService API operation for Amazon EC2 Container Service.
147//
148// Runs and maintains a desired number of tasks from a specified task definition.
149// If the number of tasks running in a service drops below desiredCount, Amazon
150// ECS spawns another copy of the task in the specified cluster. To update an
151// existing service, see UpdateService.
152//
153// In addition to maintaining the desired count of tasks in your service, you
154// can optionally run your service behind a load balancer. The load balancer
155// distributes traffic across the tasks that are associated with the service.
156// For more information, see Service Load Balancing (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)
157// in the Amazon EC2 Container Service Developer Guide.
158//
159// You can optionally specify a deployment configuration for your service. During
160// a deployment (which is triggered by changing the task definition or the desired
161// count of a service with an UpdateService operation), the service scheduler
162// uses the minimumHealthyPercent and maximumPercent parameters to determine
163// the deployment strategy.
164//
165// The minimumHealthyPercent represents a lower limit on the number of your
166// service's tasks that must remain in the RUNNING state during a deployment,
167// as a percentage of the desiredCount (rounded up to the nearest integer).
168// This parameter enables you to deploy without using additional cluster capacity.
169// For example, if your service has a desiredCount of four tasks and a minimumHealthyPercent
170// of 50%, the scheduler can stop two existing tasks to free up cluster capacity
171// before starting two new tasks. Tasks for services that do not use a load
172// balancer are considered healthy if they are in the RUNNING state. Tasks for
173// services that do use a load balancer are considered healthy if they are in
174// the RUNNING state and the container instance they are hosted on is reported
175// as healthy by the load balancer. The default value for minimumHealthyPercent
176// is 50% in the console and 100% for the AWS CLI, the AWS SDKs, and the APIs.
177//
178// The maximumPercent parameter represents an upper limit on the number of your
179// service's tasks that are allowed in the RUNNING or PENDING state during a
180// deployment, as a percentage of the desiredCount (rounded down to the nearest
181// integer). This parameter enables you to define the deployment batch size.
182// For example, if your service has a desiredCount of four tasks and a maximumPercent
183// value of 200%, the scheduler can start four new tasks before stopping the
184// four older tasks (provided that the cluster resources required to do this
185// are available). The default value for maximumPercent is 200%.
186//
187// When the service scheduler launches new tasks, it determines task placement
188// in your cluster using the following logic:
189//
190//    * Determine which of the container instances in your cluster can support
191//    your service's task definition (for example, they have the required CPU,
192//    memory, ports, and container instance attributes).
193//
194//    * By default, the service scheduler attempts to balance tasks across Availability
195//    Zones in this manner (although you can choose a different placement strategy)
196//    with the placementStrategy parameter):
197//
198// Sort the valid container instances by the fewest number of running tasks
199//    for this service in the same Availability Zone as the instance. For example,
200//    if zone A has one running service task and zones B and C each have zero,
201//    valid container instances in either zone B or C are considered optimal
202//    for placement.
203//
204// Place the new service task on a valid container instance in an optimal Availability
205//    Zone (based on the previous steps), favoring container instances with
206//    the fewest number of running tasks for this service.
207//
208// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
209// with awserr.Error's Code and Message methods to get detailed information about
210// the error.
211//
212// See the AWS API reference guide for Amazon EC2 Container Service's
213// API operation CreateService for usage and error information.
214//
215// Returned Error Codes:
216//   * ErrCodeServerException "ServerException"
217//   These errors are usually caused by a server issue.
218//
219//   * ErrCodeClientException "ClientException"
220//   These errors are usually caused by a client action, such as using an action
221//   or resource on behalf of a user that doesn't have permission to use the action
222//   or resource, or specifying an identifier that is not valid.
223//
224//   * ErrCodeInvalidParameterException "InvalidParameterException"
225//   The specified parameter is invalid. Review the available parameters for the
226//   API request.
227//
228//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
229//   The specified cluster could not be found. You can view your available clusters
230//   with ListClusters. Amazon ECS clusters are region-specific.
231//
232// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateService
233func (c *ECS) CreateService(input *CreateServiceInput) (*CreateServiceOutput, error) {
234	req, out := c.CreateServiceRequest(input)
235	return out, req.Send()
236}
237
238// CreateServiceWithContext is the same as CreateService with the addition of
239// the ability to pass a context and additional request options.
240//
241// See CreateService for details on how to use this API operation.
242//
243// The context must be non-nil and will be used for request cancellation. If
244// the context is nil a panic will occur. In the future the SDK may create
245// sub-contexts for http.Requests. See https://golang.org/pkg/context/
246// for more information on using Contexts.
247func (c *ECS) CreateServiceWithContext(ctx aws.Context, input *CreateServiceInput, opts ...request.Option) (*CreateServiceOutput, error) {
248	req, out := c.CreateServiceRequest(input)
249	req.SetContext(ctx)
250	req.ApplyOptions(opts...)
251	return out, req.Send()
252}
253
254const opDeleteAttributes = "DeleteAttributes"
255
256// DeleteAttributesRequest generates a "aws/request.Request" representing the
257// client's request for the DeleteAttributes operation. The "output" return
258// value will be populated with the request's response once the request complets
259// successfuly.
260//
261// Use "Send" method on the returned Request to send the API call to the service.
262// the "output" return value is not valid until after Send returns without error.
263//
264// See DeleteAttributes for more information on using the DeleteAttributes
265// API call, and error handling.
266//
267// This method is useful when you want to inject custom logic or configuration
268// into the SDK's request lifecycle. Such as custom headers, or retry logic.
269//
270//
271//    // Example sending a request using the DeleteAttributesRequest method.
272//    req, resp := client.DeleteAttributesRequest(params)
273//
274//    err := req.Send()
275//    if err == nil { // resp is now filled
276//        fmt.Println(resp)
277//    }
278//
279// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributes
280func (c *ECS) DeleteAttributesRequest(input *DeleteAttributesInput) (req *request.Request, output *DeleteAttributesOutput) {
281	op := &request.Operation{
282		Name:       opDeleteAttributes,
283		HTTPMethod: "POST",
284		HTTPPath:   "/",
285	}
286
287	if input == nil {
288		input = &DeleteAttributesInput{}
289	}
290
291	output = &DeleteAttributesOutput{}
292	req = c.newRequest(op, input, output)
293	return
294}
295
296// DeleteAttributes API operation for Amazon EC2 Container Service.
297//
298// Deletes one or more custom attributes from an Amazon ECS resource.
299//
300// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
301// with awserr.Error's Code and Message methods to get detailed information about
302// the error.
303//
304// See the AWS API reference guide for Amazon EC2 Container Service's
305// API operation DeleteAttributes for usage and error information.
306//
307// Returned Error Codes:
308//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
309//   The specified cluster could not be found. You can view your available clusters
310//   with ListClusters. Amazon ECS clusters are region-specific.
311//
312//   * ErrCodeTargetNotFoundException "TargetNotFoundException"
313//   The specified target could not be found. You can view your available container
314//   instances with ListContainerInstances. Amazon ECS container instances are
315//   cluster-specific and region-specific.
316//
317//   * ErrCodeInvalidParameterException "InvalidParameterException"
318//   The specified parameter is invalid. Review the available parameters for the
319//   API request.
320//
321// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributes
322func (c *ECS) DeleteAttributes(input *DeleteAttributesInput) (*DeleteAttributesOutput, error) {
323	req, out := c.DeleteAttributesRequest(input)
324	return out, req.Send()
325}
326
327// DeleteAttributesWithContext is the same as DeleteAttributes with the addition of
328// the ability to pass a context and additional request options.
329//
330// See DeleteAttributes for details on how to use this API operation.
331//
332// The context must be non-nil and will be used for request cancellation. If
333// the context is nil a panic will occur. In the future the SDK may create
334// sub-contexts for http.Requests. See https://golang.org/pkg/context/
335// for more information on using Contexts.
336func (c *ECS) DeleteAttributesWithContext(ctx aws.Context, input *DeleteAttributesInput, opts ...request.Option) (*DeleteAttributesOutput, error) {
337	req, out := c.DeleteAttributesRequest(input)
338	req.SetContext(ctx)
339	req.ApplyOptions(opts...)
340	return out, req.Send()
341}
342
343const opDeleteCluster = "DeleteCluster"
344
345// DeleteClusterRequest generates a "aws/request.Request" representing the
346// client's request for the DeleteCluster operation. The "output" return
347// value will be populated with the request's response once the request complets
348// successfuly.
349//
350// Use "Send" method on the returned Request to send the API call to the service.
351// the "output" return value is not valid until after Send returns without error.
352//
353// See DeleteCluster for more information on using the DeleteCluster
354// API call, and error handling.
355//
356// This method is useful when you want to inject custom logic or configuration
357// into the SDK's request lifecycle. Such as custom headers, or retry logic.
358//
359//
360//    // Example sending a request using the DeleteClusterRequest method.
361//    req, resp := client.DeleteClusterRequest(params)
362//
363//    err := req.Send()
364//    if err == nil { // resp is now filled
365//        fmt.Println(resp)
366//    }
367//
368// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCluster
369func (c *ECS) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Request, output *DeleteClusterOutput) {
370	op := &request.Operation{
371		Name:       opDeleteCluster,
372		HTTPMethod: "POST",
373		HTTPPath:   "/",
374	}
375
376	if input == nil {
377		input = &DeleteClusterInput{}
378	}
379
380	output = &DeleteClusterOutput{}
381	req = c.newRequest(op, input, output)
382	return
383}
384
385// DeleteCluster API operation for Amazon EC2 Container Service.
386//
387// Deletes the specified cluster. You must deregister all container instances
388// from this cluster before you may delete it. You can list the container instances
389// in a cluster with ListContainerInstances and deregister them with DeregisterContainerInstance.
390//
391// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
392// with awserr.Error's Code and Message methods to get detailed information about
393// the error.
394//
395// See the AWS API reference guide for Amazon EC2 Container Service's
396// API operation DeleteCluster for usage and error information.
397//
398// Returned Error Codes:
399//   * ErrCodeServerException "ServerException"
400//   These errors are usually caused by a server issue.
401//
402//   * ErrCodeClientException "ClientException"
403//   These errors are usually caused by a client action, such as using an action
404//   or resource on behalf of a user that doesn't have permission to use the action
405//   or resource, or specifying an identifier that is not valid.
406//
407//   * ErrCodeInvalidParameterException "InvalidParameterException"
408//   The specified parameter is invalid. Review the available parameters for the
409//   API request.
410//
411//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
412//   The specified cluster could not be found. You can view your available clusters
413//   with ListClusters. Amazon ECS clusters are region-specific.
414//
415//   * ErrCodeClusterContainsContainerInstancesException "ClusterContainsContainerInstancesException"
416//   You cannot delete a cluster that has registered container instances. You
417//   must first deregister the container instances before you can delete the cluster.
418//   For more information, see DeregisterContainerInstance.
419//
420//   * ErrCodeClusterContainsServicesException "ClusterContainsServicesException"
421//   You cannot delete a cluster that contains services. You must first update
422//   the service to reduce its desired task count to 0 and then delete the service.
423//   For more information, see UpdateService and DeleteService.
424//
425// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCluster
426func (c *ECS) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error) {
427	req, out := c.DeleteClusterRequest(input)
428	return out, req.Send()
429}
430
431// DeleteClusterWithContext is the same as DeleteCluster with the addition of
432// the ability to pass a context and additional request options.
433//
434// See DeleteCluster for details on how to use this API operation.
435//
436// The context must be non-nil and will be used for request cancellation. If
437// the context is nil a panic will occur. In the future the SDK may create
438// sub-contexts for http.Requests. See https://golang.org/pkg/context/
439// for more information on using Contexts.
440func (c *ECS) DeleteClusterWithContext(ctx aws.Context, input *DeleteClusterInput, opts ...request.Option) (*DeleteClusterOutput, error) {
441	req, out := c.DeleteClusterRequest(input)
442	req.SetContext(ctx)
443	req.ApplyOptions(opts...)
444	return out, req.Send()
445}
446
447const opDeleteService = "DeleteService"
448
449// DeleteServiceRequest generates a "aws/request.Request" representing the
450// client's request for the DeleteService operation. The "output" return
451// value will be populated with the request's response once the request complets
452// successfuly.
453//
454// Use "Send" method on the returned Request to send the API call to the service.
455// the "output" return value is not valid until after Send returns without error.
456//
457// See DeleteService for more information on using the DeleteService
458// API call, and error handling.
459//
460// This method is useful when you want to inject custom logic or configuration
461// into the SDK's request lifecycle. Such as custom headers, or retry logic.
462//
463//
464//    // Example sending a request using the DeleteServiceRequest method.
465//    req, resp := client.DeleteServiceRequest(params)
466//
467//    err := req.Send()
468//    if err == nil { // resp is now filled
469//        fmt.Println(resp)
470//    }
471//
472// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteService
473func (c *ECS) DeleteServiceRequest(input *DeleteServiceInput) (req *request.Request, output *DeleteServiceOutput) {
474	op := &request.Operation{
475		Name:       opDeleteService,
476		HTTPMethod: "POST",
477		HTTPPath:   "/",
478	}
479
480	if input == nil {
481		input = &DeleteServiceInput{}
482	}
483
484	output = &DeleteServiceOutput{}
485	req = c.newRequest(op, input, output)
486	return
487}
488
489// DeleteService API operation for Amazon EC2 Container Service.
490//
491// Deletes a specified service within a cluster. You can delete a service if
492// you have no running tasks in it and the desired task count is zero. If the
493// service is actively maintaining tasks, you cannot delete it, and you must
494// update the service to a desired task count of zero. For more information,
495// see UpdateService.
496//
497// When you delete a service, if there are still running tasks that require
498// cleanup, the service status moves from ACTIVE to DRAINING, and the service
499// is no longer visible in the console or in ListServices API operations. After
500// the tasks have stopped, then the service status moves from DRAINING to INACTIVE.
501// Services in the DRAINING or INACTIVE status can still be viewed with DescribeServices
502// API operations; however, in the future, INACTIVE services may be cleaned
503// up and purged from Amazon ECS record keeping, and DescribeServices API operations
504// on those services will return a ServiceNotFoundException error.
505//
506// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
507// with awserr.Error's Code and Message methods to get detailed information about
508// the error.
509//
510// See the AWS API reference guide for Amazon EC2 Container Service's
511// API operation DeleteService for usage and error information.
512//
513// Returned Error Codes:
514//   * ErrCodeServerException "ServerException"
515//   These errors are usually caused by a server issue.
516//
517//   * ErrCodeClientException "ClientException"
518//   These errors are usually caused by a client action, such as using an action
519//   or resource on behalf of a user that doesn't have permission to use the action
520//   or resource, or specifying an identifier that is not valid.
521//
522//   * ErrCodeInvalidParameterException "InvalidParameterException"
523//   The specified parameter is invalid. Review the available parameters for the
524//   API request.
525//
526//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
527//   The specified cluster could not be found. You can view your available clusters
528//   with ListClusters. Amazon ECS clusters are region-specific.
529//
530//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
531//   The specified service could not be found. You can view your available services
532//   with ListServices. Amazon ECS services are cluster-specific and region-specific.
533//
534// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteService
535func (c *ECS) DeleteService(input *DeleteServiceInput) (*DeleteServiceOutput, error) {
536	req, out := c.DeleteServiceRequest(input)
537	return out, req.Send()
538}
539
540// DeleteServiceWithContext is the same as DeleteService with the addition of
541// the ability to pass a context and additional request options.
542//
543// See DeleteService for details on how to use this API operation.
544//
545// The context must be non-nil and will be used for request cancellation. If
546// the context is nil a panic will occur. In the future the SDK may create
547// sub-contexts for http.Requests. See https://golang.org/pkg/context/
548// for more information on using Contexts.
549func (c *ECS) DeleteServiceWithContext(ctx aws.Context, input *DeleteServiceInput, opts ...request.Option) (*DeleteServiceOutput, error) {
550	req, out := c.DeleteServiceRequest(input)
551	req.SetContext(ctx)
552	req.ApplyOptions(opts...)
553	return out, req.Send()
554}
555
556const opDeregisterContainerInstance = "DeregisterContainerInstance"
557
558// DeregisterContainerInstanceRequest generates a "aws/request.Request" representing the
559// client's request for the DeregisterContainerInstance operation. The "output" return
560// value will be populated with the request's response once the request complets
561// successfuly.
562//
563// Use "Send" method on the returned Request to send the API call to the service.
564// the "output" return value is not valid until after Send returns without error.
565//
566// See DeregisterContainerInstance for more information on using the DeregisterContainerInstance
567// API call, and error handling.
568//
569// This method is useful when you want to inject custom logic or configuration
570// into the SDK's request lifecycle. Such as custom headers, or retry logic.
571//
572//
573//    // Example sending a request using the DeregisterContainerInstanceRequest method.
574//    req, resp := client.DeregisterContainerInstanceRequest(params)
575//
576//    err := req.Send()
577//    if err == nil { // resp is now filled
578//        fmt.Println(resp)
579//    }
580//
581// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstance
582func (c *ECS) DeregisterContainerInstanceRequest(input *DeregisterContainerInstanceInput) (req *request.Request, output *DeregisterContainerInstanceOutput) {
583	op := &request.Operation{
584		Name:       opDeregisterContainerInstance,
585		HTTPMethod: "POST",
586		HTTPPath:   "/",
587	}
588
589	if input == nil {
590		input = &DeregisterContainerInstanceInput{}
591	}
592
593	output = &DeregisterContainerInstanceOutput{}
594	req = c.newRequest(op, input, output)
595	return
596}
597
598// DeregisterContainerInstance API operation for Amazon EC2 Container Service.
599//
600// Deregisters an Amazon ECS container instance from the specified cluster.
601// This instance is no longer available to run tasks.
602//
603// If you intend to use the container instance for some other purpose after
604// deregistration, you should stop all of the tasks running on the container
605// instance before deregistration to avoid any orphaned tasks from consuming
606// resources.
607//
608// Deregistering a container instance removes the instance from a cluster, but
609// it does not terminate the EC2 instance; if you are finished using the instance,
610// be sure to terminate it in the Amazon EC2 console to stop billing.
611//
612// If you terminate a running container instance, Amazon ECS automatically deregisters
613// the instance from your cluster (stopped container instances or instances
614// with disconnected agents are not automatically deregistered when terminated).
615//
616// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
617// with awserr.Error's Code and Message methods to get detailed information about
618// the error.
619//
620// See the AWS API reference guide for Amazon EC2 Container Service's
621// API operation DeregisterContainerInstance for usage and error information.
622//
623// Returned Error Codes:
624//   * ErrCodeServerException "ServerException"
625//   These errors are usually caused by a server issue.
626//
627//   * ErrCodeClientException "ClientException"
628//   These errors are usually caused by a client action, such as using an action
629//   or resource on behalf of a user that doesn't have permission to use the action
630//   or resource, or specifying an identifier that is not valid.
631//
632//   * ErrCodeInvalidParameterException "InvalidParameterException"
633//   The specified parameter is invalid. Review the available parameters for the
634//   API request.
635//
636//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
637//   The specified cluster could not be found. You can view your available clusters
638//   with ListClusters. Amazon ECS clusters are region-specific.
639//
640// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstance
641func (c *ECS) DeregisterContainerInstance(input *DeregisterContainerInstanceInput) (*DeregisterContainerInstanceOutput, error) {
642	req, out := c.DeregisterContainerInstanceRequest(input)
643	return out, req.Send()
644}
645
646// DeregisterContainerInstanceWithContext is the same as DeregisterContainerInstance with the addition of
647// the ability to pass a context and additional request options.
648//
649// See DeregisterContainerInstance for details on how to use this API operation.
650//
651// The context must be non-nil and will be used for request cancellation. If
652// the context is nil a panic will occur. In the future the SDK may create
653// sub-contexts for http.Requests. See https://golang.org/pkg/context/
654// for more information on using Contexts.
655func (c *ECS) DeregisterContainerInstanceWithContext(ctx aws.Context, input *DeregisterContainerInstanceInput, opts ...request.Option) (*DeregisterContainerInstanceOutput, error) {
656	req, out := c.DeregisterContainerInstanceRequest(input)
657	req.SetContext(ctx)
658	req.ApplyOptions(opts...)
659	return out, req.Send()
660}
661
662const opDeregisterTaskDefinition = "DeregisterTaskDefinition"
663
664// DeregisterTaskDefinitionRequest generates a "aws/request.Request" representing the
665// client's request for the DeregisterTaskDefinition operation. The "output" return
666// value will be populated with the request's response once the request complets
667// successfuly.
668//
669// Use "Send" method on the returned Request to send the API call to the service.
670// the "output" return value is not valid until after Send returns without error.
671//
672// See DeregisterTaskDefinition for more information on using the DeregisterTaskDefinition
673// API call, and error handling.
674//
675// This method is useful when you want to inject custom logic or configuration
676// into the SDK's request lifecycle. Such as custom headers, or retry logic.
677//
678//
679//    // Example sending a request using the DeregisterTaskDefinitionRequest method.
680//    req, resp := client.DeregisterTaskDefinitionRequest(params)
681//
682//    err := req.Send()
683//    if err == nil { // resp is now filled
684//        fmt.Println(resp)
685//    }
686//
687// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinition
688func (c *ECS) DeregisterTaskDefinitionRequest(input *DeregisterTaskDefinitionInput) (req *request.Request, output *DeregisterTaskDefinitionOutput) {
689	op := &request.Operation{
690		Name:       opDeregisterTaskDefinition,
691		HTTPMethod: "POST",
692		HTTPPath:   "/",
693	}
694
695	if input == nil {
696		input = &DeregisterTaskDefinitionInput{}
697	}
698
699	output = &DeregisterTaskDefinitionOutput{}
700	req = c.newRequest(op, input, output)
701	return
702}
703
704// DeregisterTaskDefinition API operation for Amazon EC2 Container Service.
705//
706// Deregisters the specified task definition by family and revision. Upon deregistration,
707// the task definition is marked as INACTIVE. Existing tasks and services that
708// reference an INACTIVE task definition continue to run without disruption.
709// Existing services that reference an INACTIVE task definition can still scale
710// up or down by modifying the service's desired count.
711//
712// You cannot use an INACTIVE task definition to run new tasks or create new
713// services, and you cannot update an existing service to reference an INACTIVE
714// task definition (although there may be up to a 10 minute window following
715// deregistration where these restrictions have not yet taken effect).
716//
717// At this time, INACTIVE task definitions remain discoverable in your account
718// indefinitely; however, this behavior is subject to change in the future,
719// so you should not rely on INACTIVE task definitions persisting beyond the
720// life cycle of any associated tasks and services.
721//
722// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
723// with awserr.Error's Code and Message methods to get detailed information about
724// the error.
725//
726// See the AWS API reference guide for Amazon EC2 Container Service's
727// API operation DeregisterTaskDefinition for usage and error information.
728//
729// Returned Error Codes:
730//   * ErrCodeServerException "ServerException"
731//   These errors are usually caused by a server issue.
732//
733//   * ErrCodeClientException "ClientException"
734//   These errors are usually caused by a client action, such as using an action
735//   or resource on behalf of a user that doesn't have permission to use the action
736//   or resource, or specifying an identifier that is not valid.
737//
738//   * ErrCodeInvalidParameterException "InvalidParameterException"
739//   The specified parameter is invalid. Review the available parameters for the
740//   API request.
741//
742// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinition
743func (c *ECS) DeregisterTaskDefinition(input *DeregisterTaskDefinitionInput) (*DeregisterTaskDefinitionOutput, error) {
744	req, out := c.DeregisterTaskDefinitionRequest(input)
745	return out, req.Send()
746}
747
748// DeregisterTaskDefinitionWithContext is the same as DeregisterTaskDefinition with the addition of
749// the ability to pass a context and additional request options.
750//
751// See DeregisterTaskDefinition for details on how to use this API operation.
752//
753// The context must be non-nil and will be used for request cancellation. If
754// the context is nil a panic will occur. In the future the SDK may create
755// sub-contexts for http.Requests. See https://golang.org/pkg/context/
756// for more information on using Contexts.
757func (c *ECS) DeregisterTaskDefinitionWithContext(ctx aws.Context, input *DeregisterTaskDefinitionInput, opts ...request.Option) (*DeregisterTaskDefinitionOutput, error) {
758	req, out := c.DeregisterTaskDefinitionRequest(input)
759	req.SetContext(ctx)
760	req.ApplyOptions(opts...)
761	return out, req.Send()
762}
763
764const opDescribeClusters = "DescribeClusters"
765
766// DescribeClustersRequest generates a "aws/request.Request" representing the
767// client's request for the DescribeClusters operation. The "output" return
768// value will be populated with the request's response once the request complets
769// successfuly.
770//
771// Use "Send" method on the returned Request to send the API call to the service.
772// the "output" return value is not valid until after Send returns without error.
773//
774// See DescribeClusters for more information on using the DescribeClusters
775// API call, and error handling.
776//
777// This method is useful when you want to inject custom logic or configuration
778// into the SDK's request lifecycle. Such as custom headers, or retry logic.
779//
780//
781//    // Example sending a request using the DescribeClustersRequest method.
782//    req, resp := client.DescribeClustersRequest(params)
783//
784//    err := req.Send()
785//    if err == nil { // resp is now filled
786//        fmt.Println(resp)
787//    }
788//
789// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClusters
790func (c *ECS) DescribeClustersRequest(input *DescribeClustersInput) (req *request.Request, output *DescribeClustersOutput) {
791	op := &request.Operation{
792		Name:       opDescribeClusters,
793		HTTPMethod: "POST",
794		HTTPPath:   "/",
795	}
796
797	if input == nil {
798		input = &DescribeClustersInput{}
799	}
800
801	output = &DescribeClustersOutput{}
802	req = c.newRequest(op, input, output)
803	return
804}
805
806// DescribeClusters API operation for Amazon EC2 Container Service.
807//
808// Describes one or more of your clusters.
809//
810// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
811// with awserr.Error's Code and Message methods to get detailed information about
812// the error.
813//
814// See the AWS API reference guide for Amazon EC2 Container Service's
815// API operation DescribeClusters for usage and error information.
816//
817// Returned Error Codes:
818//   * ErrCodeServerException "ServerException"
819//   These errors are usually caused by a server issue.
820//
821//   * ErrCodeClientException "ClientException"
822//   These errors are usually caused by a client action, such as using an action
823//   or resource on behalf of a user that doesn't have permission to use the action
824//   or resource, or specifying an identifier that is not valid.
825//
826//   * ErrCodeInvalidParameterException "InvalidParameterException"
827//   The specified parameter is invalid. Review the available parameters for the
828//   API request.
829//
830// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClusters
831func (c *ECS) DescribeClusters(input *DescribeClustersInput) (*DescribeClustersOutput, error) {
832	req, out := c.DescribeClustersRequest(input)
833	return out, req.Send()
834}
835
836// DescribeClustersWithContext is the same as DescribeClusters with the addition of
837// the ability to pass a context and additional request options.
838//
839// See DescribeClusters for details on how to use this API operation.
840//
841// The context must be non-nil and will be used for request cancellation. If
842// the context is nil a panic will occur. In the future the SDK may create
843// sub-contexts for http.Requests. See https://golang.org/pkg/context/
844// for more information on using Contexts.
845func (c *ECS) DescribeClustersWithContext(ctx aws.Context, input *DescribeClustersInput, opts ...request.Option) (*DescribeClustersOutput, error) {
846	req, out := c.DescribeClustersRequest(input)
847	req.SetContext(ctx)
848	req.ApplyOptions(opts...)
849	return out, req.Send()
850}
851
852const opDescribeContainerInstances = "DescribeContainerInstances"
853
854// DescribeContainerInstancesRequest generates a "aws/request.Request" representing the
855// client's request for the DescribeContainerInstances operation. The "output" return
856// value will be populated with the request's response once the request complets
857// successfuly.
858//
859// Use "Send" method on the returned Request to send the API call to the service.
860// the "output" return value is not valid until after Send returns without error.
861//
862// See DescribeContainerInstances for more information on using the DescribeContainerInstances
863// API call, and error handling.
864//
865// This method is useful when you want to inject custom logic or configuration
866// into the SDK's request lifecycle. Such as custom headers, or retry logic.
867//
868//
869//    // Example sending a request using the DescribeContainerInstancesRequest method.
870//    req, resp := client.DescribeContainerInstancesRequest(params)
871//
872//    err := req.Send()
873//    if err == nil { // resp is now filled
874//        fmt.Println(resp)
875//    }
876//
877// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstances
878func (c *ECS) DescribeContainerInstancesRequest(input *DescribeContainerInstancesInput) (req *request.Request, output *DescribeContainerInstancesOutput) {
879	op := &request.Operation{
880		Name:       opDescribeContainerInstances,
881		HTTPMethod: "POST",
882		HTTPPath:   "/",
883	}
884
885	if input == nil {
886		input = &DescribeContainerInstancesInput{}
887	}
888
889	output = &DescribeContainerInstancesOutput{}
890	req = c.newRequest(op, input, output)
891	return
892}
893
894// DescribeContainerInstances API operation for Amazon EC2 Container Service.
895//
896// Describes Amazon EC2 Container Service container instances. Returns metadata
897// about registered and remaining resources on each container instance requested.
898//
899// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
900// with awserr.Error's Code and Message methods to get detailed information about
901// the error.
902//
903// See the AWS API reference guide for Amazon EC2 Container Service's
904// API operation DescribeContainerInstances for usage and error information.
905//
906// Returned Error Codes:
907//   * ErrCodeServerException "ServerException"
908//   These errors are usually caused by a server issue.
909//
910//   * ErrCodeClientException "ClientException"
911//   These errors are usually caused by a client action, such as using an action
912//   or resource on behalf of a user that doesn't have permission to use the action
913//   or resource, or specifying an identifier that is not valid.
914//
915//   * ErrCodeInvalidParameterException "InvalidParameterException"
916//   The specified parameter is invalid. Review the available parameters for the
917//   API request.
918//
919//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
920//   The specified cluster could not be found. You can view your available clusters
921//   with ListClusters. Amazon ECS clusters are region-specific.
922//
923// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstances
924func (c *ECS) DescribeContainerInstances(input *DescribeContainerInstancesInput) (*DescribeContainerInstancesOutput, error) {
925	req, out := c.DescribeContainerInstancesRequest(input)
926	return out, req.Send()
927}
928
929// DescribeContainerInstancesWithContext is the same as DescribeContainerInstances with the addition of
930// the ability to pass a context and additional request options.
931//
932// See DescribeContainerInstances 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) DescribeContainerInstancesWithContext(ctx aws.Context, input *DescribeContainerInstancesInput, opts ...request.Option) (*DescribeContainerInstancesOutput, error) {
939	req, out := c.DescribeContainerInstancesRequest(input)
940	req.SetContext(ctx)
941	req.ApplyOptions(opts...)
942	return out, req.Send()
943}
944
945const opDescribeServices = "DescribeServices"
946
947// DescribeServicesRequest generates a "aws/request.Request" representing the
948// client's request for the DescribeServices operation. The "output" return
949// value will be populated with the request's response once the request complets
950// successfuly.
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 DescribeServices for more information on using the DescribeServices
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 DescribeServicesRequest method.
963//    req, resp := client.DescribeServicesRequest(params)
964//
965//    err := req.Send()
966//    if err == nil { // resp is now filled
967//        fmt.Println(resp)
968//    }
969//
970// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServices
971func (c *ECS) DescribeServicesRequest(input *DescribeServicesInput) (req *request.Request, output *DescribeServicesOutput) {
972	op := &request.Operation{
973		Name:       opDescribeServices,
974		HTTPMethod: "POST",
975		HTTPPath:   "/",
976	}
977
978	if input == nil {
979		input = &DescribeServicesInput{}
980	}
981
982	output = &DescribeServicesOutput{}
983	req = c.newRequest(op, input, output)
984	return
985}
986
987// DescribeServices API operation for Amazon EC2 Container Service.
988//
989// Describes the specified services running in your cluster.
990//
991// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
992// with awserr.Error's Code and Message methods to get detailed information about
993// the error.
994//
995// See the AWS API reference guide for Amazon EC2 Container Service's
996// API operation DescribeServices for usage and error information.
997//
998// Returned Error Codes:
999//   * ErrCodeServerException "ServerException"
1000//   These errors are usually caused by a server issue.
1001//
1002//   * ErrCodeClientException "ClientException"
1003//   These errors are usually caused by a client action, such as using an action
1004//   or resource on behalf of a user that doesn't have permission to use the action
1005//   or resource, or specifying an identifier that is not valid.
1006//
1007//   * ErrCodeInvalidParameterException "InvalidParameterException"
1008//   The specified parameter is invalid. Review the available parameters for the
1009//   API request.
1010//
1011//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1012//   The specified cluster could not be found. You can view your available clusters
1013//   with ListClusters. Amazon ECS clusters are region-specific.
1014//
1015// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServices
1016func (c *ECS) DescribeServices(input *DescribeServicesInput) (*DescribeServicesOutput, error) {
1017	req, out := c.DescribeServicesRequest(input)
1018	return out, req.Send()
1019}
1020
1021// DescribeServicesWithContext is the same as DescribeServices with the addition of
1022// the ability to pass a context and additional request options.
1023//
1024// See DescribeServices for details on how to use this API operation.
1025//
1026// The context must be non-nil and will be used for request cancellation. If
1027// the context is nil a panic will occur. In the future the SDK may create
1028// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1029// for more information on using Contexts.
1030func (c *ECS) DescribeServicesWithContext(ctx aws.Context, input *DescribeServicesInput, opts ...request.Option) (*DescribeServicesOutput, error) {
1031	req, out := c.DescribeServicesRequest(input)
1032	req.SetContext(ctx)
1033	req.ApplyOptions(opts...)
1034	return out, req.Send()
1035}
1036
1037const opDescribeTaskDefinition = "DescribeTaskDefinition"
1038
1039// DescribeTaskDefinitionRequest generates a "aws/request.Request" representing the
1040// client's request for the DescribeTaskDefinition operation. The "output" return
1041// value will be populated with the request's response once the request complets
1042// successfuly.
1043//
1044// Use "Send" method on the returned Request to send the API call to the service.
1045// the "output" return value is not valid until after Send returns without error.
1046//
1047// See DescribeTaskDefinition for more information on using the DescribeTaskDefinition
1048// API call, and error handling.
1049//
1050// This method is useful when you want to inject custom logic or configuration
1051// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1052//
1053//
1054//    // Example sending a request using the DescribeTaskDefinitionRequest method.
1055//    req, resp := client.DescribeTaskDefinitionRequest(params)
1056//
1057//    err := req.Send()
1058//    if err == nil { // resp is now filled
1059//        fmt.Println(resp)
1060//    }
1061//
1062// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinition
1063func (c *ECS) DescribeTaskDefinitionRequest(input *DescribeTaskDefinitionInput) (req *request.Request, output *DescribeTaskDefinitionOutput) {
1064	op := &request.Operation{
1065		Name:       opDescribeTaskDefinition,
1066		HTTPMethod: "POST",
1067		HTTPPath:   "/",
1068	}
1069
1070	if input == nil {
1071		input = &DescribeTaskDefinitionInput{}
1072	}
1073
1074	output = &DescribeTaskDefinitionOutput{}
1075	req = c.newRequest(op, input, output)
1076	return
1077}
1078
1079// DescribeTaskDefinition API operation for Amazon EC2 Container Service.
1080//
1081// Describes a task definition. You can specify a family and revision to find
1082// information about a specific task definition, or you can simply specify the
1083// family to find the latest ACTIVE revision in that family.
1084//
1085// You can only describe INACTIVE task definitions while an active task or service
1086// references them.
1087//
1088// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1089// with awserr.Error's Code and Message methods to get detailed information about
1090// the error.
1091//
1092// See the AWS API reference guide for Amazon EC2 Container Service's
1093// API operation DescribeTaskDefinition for usage and error information.
1094//
1095// Returned Error Codes:
1096//   * ErrCodeServerException "ServerException"
1097//   These errors are usually caused by a server issue.
1098//
1099//   * ErrCodeClientException "ClientException"
1100//   These errors are usually caused by a client action, such as using an action
1101//   or resource on behalf of a user that doesn't have permission to use the action
1102//   or resource, or specifying an identifier that is not valid.
1103//
1104//   * ErrCodeInvalidParameterException "InvalidParameterException"
1105//   The specified parameter is invalid. Review the available parameters for the
1106//   API request.
1107//
1108// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinition
1109func (c *ECS) DescribeTaskDefinition(input *DescribeTaskDefinitionInput) (*DescribeTaskDefinitionOutput, error) {
1110	req, out := c.DescribeTaskDefinitionRequest(input)
1111	return out, req.Send()
1112}
1113
1114// DescribeTaskDefinitionWithContext is the same as DescribeTaskDefinition with the addition of
1115// the ability to pass a context and additional request options.
1116//
1117// See DescribeTaskDefinition for details on how to use this API operation.
1118//
1119// The context must be non-nil and will be used for request cancellation. If
1120// the context is nil a panic will occur. In the future the SDK may create
1121// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1122// for more information on using Contexts.
1123func (c *ECS) DescribeTaskDefinitionWithContext(ctx aws.Context, input *DescribeTaskDefinitionInput, opts ...request.Option) (*DescribeTaskDefinitionOutput, error) {
1124	req, out := c.DescribeTaskDefinitionRequest(input)
1125	req.SetContext(ctx)
1126	req.ApplyOptions(opts...)
1127	return out, req.Send()
1128}
1129
1130const opDescribeTasks = "DescribeTasks"
1131
1132// DescribeTasksRequest generates a "aws/request.Request" representing the
1133// client's request for the DescribeTasks operation. The "output" return
1134// value will be populated with the request's response once the request complets
1135// successfuly.
1136//
1137// Use "Send" method on the returned Request to send the API call to the service.
1138// the "output" return value is not valid until after Send returns without error.
1139//
1140// See DescribeTasks for more information on using the DescribeTasks
1141// API call, and error handling.
1142//
1143// This method is useful when you want to inject custom logic or configuration
1144// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1145//
1146//
1147//    // Example sending a request using the DescribeTasksRequest method.
1148//    req, resp := client.DescribeTasksRequest(params)
1149//
1150//    err := req.Send()
1151//    if err == nil { // resp is now filled
1152//        fmt.Println(resp)
1153//    }
1154//
1155// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasks
1156func (c *ECS) DescribeTasksRequest(input *DescribeTasksInput) (req *request.Request, output *DescribeTasksOutput) {
1157	op := &request.Operation{
1158		Name:       opDescribeTasks,
1159		HTTPMethod: "POST",
1160		HTTPPath:   "/",
1161	}
1162
1163	if input == nil {
1164		input = &DescribeTasksInput{}
1165	}
1166
1167	output = &DescribeTasksOutput{}
1168	req = c.newRequest(op, input, output)
1169	return
1170}
1171
1172// DescribeTasks API operation for Amazon EC2 Container Service.
1173//
1174// Describes a specified task or tasks.
1175//
1176// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1177// with awserr.Error's Code and Message methods to get detailed information about
1178// the error.
1179//
1180// See the AWS API reference guide for Amazon EC2 Container Service's
1181// API operation DescribeTasks for usage and error information.
1182//
1183// Returned Error Codes:
1184//   * ErrCodeServerException "ServerException"
1185//   These errors are usually caused by a server issue.
1186//
1187//   * ErrCodeClientException "ClientException"
1188//   These errors are usually caused by a client action, such as using an action
1189//   or resource on behalf of a user that doesn't have permission to use the action
1190//   or resource, or specifying an identifier that is not valid.
1191//
1192//   * ErrCodeInvalidParameterException "InvalidParameterException"
1193//   The specified parameter is invalid. Review the available parameters for the
1194//   API request.
1195//
1196//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1197//   The specified cluster could not be found. You can view your available clusters
1198//   with ListClusters. Amazon ECS clusters are region-specific.
1199//
1200// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasks
1201func (c *ECS) DescribeTasks(input *DescribeTasksInput) (*DescribeTasksOutput, error) {
1202	req, out := c.DescribeTasksRequest(input)
1203	return out, req.Send()
1204}
1205
1206// DescribeTasksWithContext is the same as DescribeTasks with the addition of
1207// the ability to pass a context and additional request options.
1208//
1209// See DescribeTasks for details on how to use this API operation.
1210//
1211// The context must be non-nil and will be used for request cancellation. If
1212// the context is nil a panic will occur. In the future the SDK may create
1213// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1214// for more information on using Contexts.
1215func (c *ECS) DescribeTasksWithContext(ctx aws.Context, input *DescribeTasksInput, opts ...request.Option) (*DescribeTasksOutput, error) {
1216	req, out := c.DescribeTasksRequest(input)
1217	req.SetContext(ctx)
1218	req.ApplyOptions(opts...)
1219	return out, req.Send()
1220}
1221
1222const opDiscoverPollEndpoint = "DiscoverPollEndpoint"
1223
1224// DiscoverPollEndpointRequest generates a "aws/request.Request" representing the
1225// client's request for the DiscoverPollEndpoint operation. The "output" return
1226// value will be populated with the request's response once the request complets
1227// successfuly.
1228//
1229// Use "Send" method on the returned Request to send the API call to the service.
1230// the "output" return value is not valid until after Send returns without error.
1231//
1232// See DiscoverPollEndpoint for more information on using the DiscoverPollEndpoint
1233// API call, and error handling.
1234//
1235// This method is useful when you want to inject custom logic or configuration
1236// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1237//
1238//
1239//    // Example sending a request using the DiscoverPollEndpointRequest method.
1240//    req, resp := client.DiscoverPollEndpointRequest(params)
1241//
1242//    err := req.Send()
1243//    if err == nil { // resp is now filled
1244//        fmt.Println(resp)
1245//    }
1246//
1247// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpoint
1248func (c *ECS) DiscoverPollEndpointRequest(input *DiscoverPollEndpointInput) (req *request.Request, output *DiscoverPollEndpointOutput) {
1249	op := &request.Operation{
1250		Name:       opDiscoverPollEndpoint,
1251		HTTPMethod: "POST",
1252		HTTPPath:   "/",
1253	}
1254
1255	if input == nil {
1256		input = &DiscoverPollEndpointInput{}
1257	}
1258
1259	output = &DiscoverPollEndpointOutput{}
1260	req = c.newRequest(op, input, output)
1261	return
1262}
1263
1264// DiscoverPollEndpoint API operation for Amazon EC2 Container Service.
1265//
1266// This action is only used by the Amazon EC2 Container Service agent, and it
1267// is not intended for use outside of the agent.
1268//
1269// Returns an endpoint for the Amazon EC2 Container Service agent to poll for
1270// updates.
1271//
1272// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1273// with awserr.Error's Code and Message methods to get detailed information about
1274// the error.
1275//
1276// See the AWS API reference guide for Amazon EC2 Container Service's
1277// API operation DiscoverPollEndpoint for usage and error information.
1278//
1279// Returned Error Codes:
1280//   * ErrCodeServerException "ServerException"
1281//   These errors are usually caused by a server issue.
1282//
1283//   * ErrCodeClientException "ClientException"
1284//   These errors are usually caused by a client action, such as using an action
1285//   or resource on behalf of a user that doesn't have permission to use the action
1286//   or resource, or specifying an identifier that is not valid.
1287//
1288// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpoint
1289func (c *ECS) DiscoverPollEndpoint(input *DiscoverPollEndpointInput) (*DiscoverPollEndpointOutput, error) {
1290	req, out := c.DiscoverPollEndpointRequest(input)
1291	return out, req.Send()
1292}
1293
1294// DiscoverPollEndpointWithContext is the same as DiscoverPollEndpoint with the addition of
1295// the ability to pass a context and additional request options.
1296//
1297// See DiscoverPollEndpoint for details on how to use this API operation.
1298//
1299// The context must be non-nil and will be used for request cancellation. If
1300// the context is nil a panic will occur. In the future the SDK may create
1301// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1302// for more information on using Contexts.
1303func (c *ECS) DiscoverPollEndpointWithContext(ctx aws.Context, input *DiscoverPollEndpointInput, opts ...request.Option) (*DiscoverPollEndpointOutput, error) {
1304	req, out := c.DiscoverPollEndpointRequest(input)
1305	req.SetContext(ctx)
1306	req.ApplyOptions(opts...)
1307	return out, req.Send()
1308}
1309
1310const opListAttributes = "ListAttributes"
1311
1312// ListAttributesRequest generates a "aws/request.Request" representing the
1313// client's request for the ListAttributes operation. The "output" return
1314// value will be populated with the request's response once the request complets
1315// successfuly.
1316//
1317// Use "Send" method on the returned Request to send the API call to the service.
1318// the "output" return value is not valid until after Send returns without error.
1319//
1320// See ListAttributes for more information on using the ListAttributes
1321// API call, and error handling.
1322//
1323// This method is useful when you want to inject custom logic or configuration
1324// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1325//
1326//
1327//    // Example sending a request using the ListAttributesRequest method.
1328//    req, resp := client.ListAttributesRequest(params)
1329//
1330//    err := req.Send()
1331//    if err == nil { // resp is now filled
1332//        fmt.Println(resp)
1333//    }
1334//
1335// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributes
1336func (c *ECS) ListAttributesRequest(input *ListAttributesInput) (req *request.Request, output *ListAttributesOutput) {
1337	op := &request.Operation{
1338		Name:       opListAttributes,
1339		HTTPMethod: "POST",
1340		HTTPPath:   "/",
1341	}
1342
1343	if input == nil {
1344		input = &ListAttributesInput{}
1345	}
1346
1347	output = &ListAttributesOutput{}
1348	req = c.newRequest(op, input, output)
1349	return
1350}
1351
1352// ListAttributes API operation for Amazon EC2 Container Service.
1353//
1354// Lists the attributes for Amazon ECS resources within a specified target type
1355// and cluster. When you specify a target type and cluster, ListAttributes returns
1356// a list of attribute objects, one for each attribute on each resource. You
1357// can filter the list of results to a single attribute name to only return
1358// results that have that name. You can also filter the results by attribute
1359// name and value, for example, to see which container instances in a cluster
1360// are running a Linux AMI (ecs.os-type=linux).
1361//
1362// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1363// with awserr.Error's Code and Message methods to get detailed information about
1364// the error.
1365//
1366// See the AWS API reference guide for Amazon EC2 Container Service's
1367// API operation ListAttributes for usage and error information.
1368//
1369// Returned Error Codes:
1370//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1371//   The specified cluster could not be found. You can view your available clusters
1372//   with ListClusters. Amazon ECS clusters are region-specific.
1373//
1374//   * ErrCodeInvalidParameterException "InvalidParameterException"
1375//   The specified parameter is invalid. Review the available parameters for the
1376//   API request.
1377//
1378// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributes
1379func (c *ECS) ListAttributes(input *ListAttributesInput) (*ListAttributesOutput, error) {
1380	req, out := c.ListAttributesRequest(input)
1381	return out, req.Send()
1382}
1383
1384// ListAttributesWithContext is the same as ListAttributes with the addition of
1385// the ability to pass a context and additional request options.
1386//
1387// See ListAttributes for details on how to use this API operation.
1388//
1389// The context must be non-nil and will be used for request cancellation. If
1390// the context is nil a panic will occur. In the future the SDK may create
1391// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1392// for more information on using Contexts.
1393func (c *ECS) ListAttributesWithContext(ctx aws.Context, input *ListAttributesInput, opts ...request.Option) (*ListAttributesOutput, error) {
1394	req, out := c.ListAttributesRequest(input)
1395	req.SetContext(ctx)
1396	req.ApplyOptions(opts...)
1397	return out, req.Send()
1398}
1399
1400const opListClusters = "ListClusters"
1401
1402// ListClustersRequest generates a "aws/request.Request" representing the
1403// client's request for the ListClusters operation. The "output" return
1404// value will be populated with the request's response once the request complets
1405// successfuly.
1406//
1407// Use "Send" method on the returned Request to send the API call to the service.
1408// the "output" return value is not valid until after Send returns without error.
1409//
1410// See ListClusters for more information on using the ListClusters
1411// API call, and error handling.
1412//
1413// This method is useful when you want to inject custom logic or configuration
1414// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1415//
1416//
1417//    // Example sending a request using the ListClustersRequest method.
1418//    req, resp := client.ListClustersRequest(params)
1419//
1420//    err := req.Send()
1421//    if err == nil { // resp is now filled
1422//        fmt.Println(resp)
1423//    }
1424//
1425// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClusters
1426func (c *ECS) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
1427	op := &request.Operation{
1428		Name:       opListClusters,
1429		HTTPMethod: "POST",
1430		HTTPPath:   "/",
1431		Paginator: &request.Paginator{
1432			InputTokens:     []string{"nextToken"},
1433			OutputTokens:    []string{"nextToken"},
1434			LimitToken:      "maxResults",
1435			TruncationToken: "",
1436		},
1437	}
1438
1439	if input == nil {
1440		input = &ListClustersInput{}
1441	}
1442
1443	output = &ListClustersOutput{}
1444	req = c.newRequest(op, input, output)
1445	return
1446}
1447
1448// ListClusters API operation for Amazon EC2 Container Service.
1449//
1450// Returns a list of existing clusters.
1451//
1452// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1453// with awserr.Error's Code and Message methods to get detailed information about
1454// the error.
1455//
1456// See the AWS API reference guide for Amazon EC2 Container Service's
1457// API operation ListClusters for usage and error information.
1458//
1459// Returned Error Codes:
1460//   * ErrCodeServerException "ServerException"
1461//   These errors are usually caused by a server issue.
1462//
1463//   * ErrCodeClientException "ClientException"
1464//   These errors are usually caused by a client action, such as using an action
1465//   or resource on behalf of a user that doesn't have permission to use the action
1466//   or resource, or specifying an identifier that is not valid.
1467//
1468//   * ErrCodeInvalidParameterException "InvalidParameterException"
1469//   The specified parameter is invalid. Review the available parameters for the
1470//   API request.
1471//
1472// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClusters
1473func (c *ECS) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
1474	req, out := c.ListClustersRequest(input)
1475	return out, req.Send()
1476}
1477
1478// ListClustersWithContext is the same as ListClusters with the addition of
1479// the ability to pass a context and additional request options.
1480//
1481// See ListClusters for details on how to use this API operation.
1482//
1483// The context must be non-nil and will be used for request cancellation. If
1484// the context is nil a panic will occur. In the future the SDK may create
1485// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1486// for more information on using Contexts.
1487func (c *ECS) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
1488	req, out := c.ListClustersRequest(input)
1489	req.SetContext(ctx)
1490	req.ApplyOptions(opts...)
1491	return out, req.Send()
1492}
1493
1494// ListClustersPages iterates over the pages of a ListClusters operation,
1495// calling the "fn" function with the response data for each page. To stop
1496// iterating, return false from the fn function.
1497//
1498// See ListClusters method for more information on how to use this operation.
1499//
1500// Note: This operation can generate multiple requests to a service.
1501//
1502//    // Example iterating over at most 3 pages of a ListClusters operation.
1503//    pageNum := 0
1504//    err := client.ListClustersPages(params,
1505//        func(page *ListClustersOutput, lastPage bool) bool {
1506//            pageNum++
1507//            fmt.Println(page)
1508//            return pageNum <= 3
1509//        })
1510//
1511func (c *ECS) ListClustersPages(input *ListClustersInput, fn func(*ListClustersOutput, bool) bool) error {
1512	return c.ListClustersPagesWithContext(aws.BackgroundContext(), input, fn)
1513}
1514
1515// ListClustersPagesWithContext same as ListClustersPages except
1516// it takes a Context and allows setting request options on the pages.
1517//
1518// The context must be non-nil and will be used for request cancellation. If
1519// the context is nil a panic will occur. In the future the SDK may create
1520// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1521// for more information on using Contexts.
1522func (c *ECS) ListClustersPagesWithContext(ctx aws.Context, input *ListClustersInput, fn func(*ListClustersOutput, bool) bool, opts ...request.Option) error {
1523	p := request.Pagination{
1524		NewRequest: func() (*request.Request, error) {
1525			var inCpy *ListClustersInput
1526			if input != nil {
1527				tmp := *input
1528				inCpy = &tmp
1529			}
1530			req, _ := c.ListClustersRequest(inCpy)
1531			req.SetContext(ctx)
1532			req.ApplyOptions(opts...)
1533			return req, nil
1534		},
1535	}
1536
1537	cont := true
1538	for p.Next() && cont {
1539		cont = fn(p.Page().(*ListClustersOutput), !p.HasNextPage())
1540	}
1541	return p.Err()
1542}
1543
1544const opListContainerInstances = "ListContainerInstances"
1545
1546// ListContainerInstancesRequest generates a "aws/request.Request" representing the
1547// client's request for the ListContainerInstances operation. The "output" return
1548// value will be populated with the request's response once the request complets
1549// successfuly.
1550//
1551// Use "Send" method on the returned Request to send the API call to the service.
1552// the "output" return value is not valid until after Send returns without error.
1553//
1554// See ListContainerInstances for more information on using the ListContainerInstances
1555// API call, and error handling.
1556//
1557// This method is useful when you want to inject custom logic or configuration
1558// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1559//
1560//
1561//    // Example sending a request using the ListContainerInstancesRequest method.
1562//    req, resp := client.ListContainerInstancesRequest(params)
1563//
1564//    err := req.Send()
1565//    if err == nil { // resp is now filled
1566//        fmt.Println(resp)
1567//    }
1568//
1569// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstances
1570func (c *ECS) ListContainerInstancesRequest(input *ListContainerInstancesInput) (req *request.Request, output *ListContainerInstancesOutput) {
1571	op := &request.Operation{
1572		Name:       opListContainerInstances,
1573		HTTPMethod: "POST",
1574		HTTPPath:   "/",
1575		Paginator: &request.Paginator{
1576			InputTokens:     []string{"nextToken"},
1577			OutputTokens:    []string{"nextToken"},
1578			LimitToken:      "maxResults",
1579			TruncationToken: "",
1580		},
1581	}
1582
1583	if input == nil {
1584		input = &ListContainerInstancesInput{}
1585	}
1586
1587	output = &ListContainerInstancesOutput{}
1588	req = c.newRequest(op, input, output)
1589	return
1590}
1591
1592// ListContainerInstances API operation for Amazon EC2 Container Service.
1593//
1594// Returns a list of container instances in a specified cluster. You can filter
1595// the results of a ListContainerInstances operation with cluster query language
1596// statements inside the filter parameter. For more information, see Cluster
1597// Query Language (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
1598// in the Amazon EC2 Container Service Developer Guide.
1599//
1600// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1601// with awserr.Error's Code and Message methods to get detailed information about
1602// the error.
1603//
1604// See the AWS API reference guide for Amazon EC2 Container Service's
1605// API operation ListContainerInstances for usage and error information.
1606//
1607// Returned Error Codes:
1608//   * ErrCodeServerException "ServerException"
1609//   These errors are usually caused by a server issue.
1610//
1611//   * ErrCodeClientException "ClientException"
1612//   These errors are usually caused by a client action, such as using an action
1613//   or resource on behalf of a user that doesn't have permission to use the action
1614//   or resource, or specifying an identifier that is not valid.
1615//
1616//   * ErrCodeInvalidParameterException "InvalidParameterException"
1617//   The specified parameter is invalid. Review the available parameters for the
1618//   API request.
1619//
1620//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1621//   The specified cluster could not be found. You can view your available clusters
1622//   with ListClusters. Amazon ECS clusters are region-specific.
1623//
1624// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstances
1625func (c *ECS) ListContainerInstances(input *ListContainerInstancesInput) (*ListContainerInstancesOutput, error) {
1626	req, out := c.ListContainerInstancesRequest(input)
1627	return out, req.Send()
1628}
1629
1630// ListContainerInstancesWithContext is the same as ListContainerInstances with the addition of
1631// the ability to pass a context and additional request options.
1632//
1633// See ListContainerInstances for details on how to use this API operation.
1634//
1635// The context must be non-nil and will be used for request cancellation. If
1636// the context is nil a panic will occur. In the future the SDK may create
1637// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1638// for more information on using Contexts.
1639func (c *ECS) ListContainerInstancesWithContext(ctx aws.Context, input *ListContainerInstancesInput, opts ...request.Option) (*ListContainerInstancesOutput, error) {
1640	req, out := c.ListContainerInstancesRequest(input)
1641	req.SetContext(ctx)
1642	req.ApplyOptions(opts...)
1643	return out, req.Send()
1644}
1645
1646// ListContainerInstancesPages iterates over the pages of a ListContainerInstances operation,
1647// calling the "fn" function with the response data for each page. To stop
1648// iterating, return false from the fn function.
1649//
1650// See ListContainerInstances method for more information on how to use this operation.
1651//
1652// Note: This operation can generate multiple requests to a service.
1653//
1654//    // Example iterating over at most 3 pages of a ListContainerInstances operation.
1655//    pageNum := 0
1656//    err := client.ListContainerInstancesPages(params,
1657//        func(page *ListContainerInstancesOutput, lastPage bool) bool {
1658//            pageNum++
1659//            fmt.Println(page)
1660//            return pageNum <= 3
1661//        })
1662//
1663func (c *ECS) ListContainerInstancesPages(input *ListContainerInstancesInput, fn func(*ListContainerInstancesOutput, bool) bool) error {
1664	return c.ListContainerInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
1665}
1666
1667// ListContainerInstancesPagesWithContext same as ListContainerInstancesPages except
1668// it takes a Context and allows setting request options on the pages.
1669//
1670// The context must be non-nil and will be used for request cancellation. If
1671// the context is nil a panic will occur. In the future the SDK may create
1672// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1673// for more information on using Contexts.
1674func (c *ECS) ListContainerInstancesPagesWithContext(ctx aws.Context, input *ListContainerInstancesInput, fn func(*ListContainerInstancesOutput, bool) bool, opts ...request.Option) error {
1675	p := request.Pagination{
1676		NewRequest: func() (*request.Request, error) {
1677			var inCpy *ListContainerInstancesInput
1678			if input != nil {
1679				tmp := *input
1680				inCpy = &tmp
1681			}
1682			req, _ := c.ListContainerInstancesRequest(inCpy)
1683			req.SetContext(ctx)
1684			req.ApplyOptions(opts...)
1685			return req, nil
1686		},
1687	}
1688
1689	cont := true
1690	for p.Next() && cont {
1691		cont = fn(p.Page().(*ListContainerInstancesOutput), !p.HasNextPage())
1692	}
1693	return p.Err()
1694}
1695
1696const opListServices = "ListServices"
1697
1698// ListServicesRequest generates a "aws/request.Request" representing the
1699// client's request for the ListServices operation. The "output" return
1700// value will be populated with the request's response once the request complets
1701// successfuly.
1702//
1703// Use "Send" method on the returned Request to send the API call to the service.
1704// the "output" return value is not valid until after Send returns without error.
1705//
1706// See ListServices for more information on using the ListServices
1707// API call, and error handling.
1708//
1709// This method is useful when you want to inject custom logic or configuration
1710// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1711//
1712//
1713//    // Example sending a request using the ListServicesRequest method.
1714//    req, resp := client.ListServicesRequest(params)
1715//
1716//    err := req.Send()
1717//    if err == nil { // resp is now filled
1718//        fmt.Println(resp)
1719//    }
1720//
1721// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServices
1722func (c *ECS) ListServicesRequest(input *ListServicesInput) (req *request.Request, output *ListServicesOutput) {
1723	op := &request.Operation{
1724		Name:       opListServices,
1725		HTTPMethod: "POST",
1726		HTTPPath:   "/",
1727		Paginator: &request.Paginator{
1728			InputTokens:     []string{"nextToken"},
1729			OutputTokens:    []string{"nextToken"},
1730			LimitToken:      "maxResults",
1731			TruncationToken: "",
1732		},
1733	}
1734
1735	if input == nil {
1736		input = &ListServicesInput{}
1737	}
1738
1739	output = &ListServicesOutput{}
1740	req = c.newRequest(op, input, output)
1741	return
1742}
1743
1744// ListServices API operation for Amazon EC2 Container Service.
1745//
1746// Lists the services that are running in a specified cluster.
1747//
1748// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1749// with awserr.Error's Code and Message methods to get detailed information about
1750// the error.
1751//
1752// See the AWS API reference guide for Amazon EC2 Container Service's
1753// API operation ListServices for usage and error information.
1754//
1755// Returned Error Codes:
1756//   * ErrCodeServerException "ServerException"
1757//   These errors are usually caused by a server issue.
1758//
1759//   * ErrCodeClientException "ClientException"
1760//   These errors are usually caused by a client action, such as using an action
1761//   or resource on behalf of a user that doesn't have permission to use the action
1762//   or resource, or specifying an identifier that is not valid.
1763//
1764//   * ErrCodeInvalidParameterException "InvalidParameterException"
1765//   The specified parameter is invalid. Review the available parameters for the
1766//   API request.
1767//
1768//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
1769//   The specified cluster could not be found. You can view your available clusters
1770//   with ListClusters. Amazon ECS clusters are region-specific.
1771//
1772// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServices
1773func (c *ECS) ListServices(input *ListServicesInput) (*ListServicesOutput, error) {
1774	req, out := c.ListServicesRequest(input)
1775	return out, req.Send()
1776}
1777
1778// ListServicesWithContext is the same as ListServices with the addition of
1779// the ability to pass a context and additional request options.
1780//
1781// See ListServices for details on how to use this API operation.
1782//
1783// The context must be non-nil and will be used for request cancellation. If
1784// the context is nil a panic will occur. In the future the SDK may create
1785// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1786// for more information on using Contexts.
1787func (c *ECS) ListServicesWithContext(ctx aws.Context, input *ListServicesInput, opts ...request.Option) (*ListServicesOutput, error) {
1788	req, out := c.ListServicesRequest(input)
1789	req.SetContext(ctx)
1790	req.ApplyOptions(opts...)
1791	return out, req.Send()
1792}
1793
1794// ListServicesPages iterates over the pages of a ListServices operation,
1795// calling the "fn" function with the response data for each page. To stop
1796// iterating, return false from the fn function.
1797//
1798// See ListServices method for more information on how to use this operation.
1799//
1800// Note: This operation can generate multiple requests to a service.
1801//
1802//    // Example iterating over at most 3 pages of a ListServices operation.
1803//    pageNum := 0
1804//    err := client.ListServicesPages(params,
1805//        func(page *ListServicesOutput, lastPage bool) bool {
1806//            pageNum++
1807//            fmt.Println(page)
1808//            return pageNum <= 3
1809//        })
1810//
1811func (c *ECS) ListServicesPages(input *ListServicesInput, fn func(*ListServicesOutput, bool) bool) error {
1812	return c.ListServicesPagesWithContext(aws.BackgroundContext(), input, fn)
1813}
1814
1815// ListServicesPagesWithContext same as ListServicesPages except
1816// it takes a Context and allows setting request options on the pages.
1817//
1818// The context must be non-nil and will be used for request cancellation. If
1819// the context is nil a panic will occur. In the future the SDK may create
1820// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1821// for more information on using Contexts.
1822func (c *ECS) ListServicesPagesWithContext(ctx aws.Context, input *ListServicesInput, fn func(*ListServicesOutput, bool) bool, opts ...request.Option) error {
1823	p := request.Pagination{
1824		NewRequest: func() (*request.Request, error) {
1825			var inCpy *ListServicesInput
1826			if input != nil {
1827				tmp := *input
1828				inCpy = &tmp
1829			}
1830			req, _ := c.ListServicesRequest(inCpy)
1831			req.SetContext(ctx)
1832			req.ApplyOptions(opts...)
1833			return req, nil
1834		},
1835	}
1836
1837	cont := true
1838	for p.Next() && cont {
1839		cont = fn(p.Page().(*ListServicesOutput), !p.HasNextPage())
1840	}
1841	return p.Err()
1842}
1843
1844const opListTaskDefinitionFamilies = "ListTaskDefinitionFamilies"
1845
1846// ListTaskDefinitionFamiliesRequest generates a "aws/request.Request" representing the
1847// client's request for the ListTaskDefinitionFamilies operation. The "output" return
1848// value will be populated with the request's response once the request complets
1849// successfuly.
1850//
1851// Use "Send" method on the returned Request to send the API call to the service.
1852// the "output" return value is not valid until after Send returns without error.
1853//
1854// See ListTaskDefinitionFamilies for more information on using the ListTaskDefinitionFamilies
1855// API call, and error handling.
1856//
1857// This method is useful when you want to inject custom logic or configuration
1858// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1859//
1860//
1861//    // Example sending a request using the ListTaskDefinitionFamiliesRequest method.
1862//    req, resp := client.ListTaskDefinitionFamiliesRequest(params)
1863//
1864//    err := req.Send()
1865//    if err == nil { // resp is now filled
1866//        fmt.Println(resp)
1867//    }
1868//
1869// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamilies
1870func (c *ECS) ListTaskDefinitionFamiliesRequest(input *ListTaskDefinitionFamiliesInput) (req *request.Request, output *ListTaskDefinitionFamiliesOutput) {
1871	op := &request.Operation{
1872		Name:       opListTaskDefinitionFamilies,
1873		HTTPMethod: "POST",
1874		HTTPPath:   "/",
1875		Paginator: &request.Paginator{
1876			InputTokens:     []string{"nextToken"},
1877			OutputTokens:    []string{"nextToken"},
1878			LimitToken:      "maxResults",
1879			TruncationToken: "",
1880		},
1881	}
1882
1883	if input == nil {
1884		input = &ListTaskDefinitionFamiliesInput{}
1885	}
1886
1887	output = &ListTaskDefinitionFamiliesOutput{}
1888	req = c.newRequest(op, input, output)
1889	return
1890}
1891
1892// ListTaskDefinitionFamilies API operation for Amazon EC2 Container Service.
1893//
1894// Returns a list of task definition families that are registered to your account
1895// (which may include task definition families that no longer have any ACTIVE
1896// task definition revisions).
1897//
1898// You can filter out task definition families that do not contain any ACTIVE
1899// task definition revisions by setting the status parameter to ACTIVE. You
1900// can also filter the results with the familyPrefix parameter.
1901//
1902// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1903// with awserr.Error's Code and Message methods to get detailed information about
1904// the error.
1905//
1906// See the AWS API reference guide for Amazon EC2 Container Service's
1907// API operation ListTaskDefinitionFamilies for usage and error information.
1908//
1909// Returned Error Codes:
1910//   * ErrCodeServerException "ServerException"
1911//   These errors are usually caused by a server issue.
1912//
1913//   * ErrCodeClientException "ClientException"
1914//   These errors are usually caused by a client action, such as using an action
1915//   or resource on behalf of a user that doesn't have permission to use the action
1916//   or resource, or specifying an identifier that is not valid.
1917//
1918//   * ErrCodeInvalidParameterException "InvalidParameterException"
1919//   The specified parameter is invalid. Review the available parameters for the
1920//   API request.
1921//
1922// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamilies
1923func (c *ECS) ListTaskDefinitionFamilies(input *ListTaskDefinitionFamiliesInput) (*ListTaskDefinitionFamiliesOutput, error) {
1924	req, out := c.ListTaskDefinitionFamiliesRequest(input)
1925	return out, req.Send()
1926}
1927
1928// ListTaskDefinitionFamiliesWithContext is the same as ListTaskDefinitionFamilies with the addition of
1929// the ability to pass a context and additional request options.
1930//
1931// See ListTaskDefinitionFamilies for details on how to use this API operation.
1932//
1933// The context must be non-nil and will be used for request cancellation. If
1934// the context is nil a panic will occur. In the future the SDK may create
1935// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1936// for more information on using Contexts.
1937func (c *ECS) ListTaskDefinitionFamiliesWithContext(ctx aws.Context, input *ListTaskDefinitionFamiliesInput, opts ...request.Option) (*ListTaskDefinitionFamiliesOutput, error) {
1938	req, out := c.ListTaskDefinitionFamiliesRequest(input)
1939	req.SetContext(ctx)
1940	req.ApplyOptions(opts...)
1941	return out, req.Send()
1942}
1943
1944// ListTaskDefinitionFamiliesPages iterates over the pages of a ListTaskDefinitionFamilies operation,
1945// calling the "fn" function with the response data for each page. To stop
1946// iterating, return false from the fn function.
1947//
1948// See ListTaskDefinitionFamilies method for more information on how to use this operation.
1949//
1950// Note: This operation can generate multiple requests to a service.
1951//
1952//    // Example iterating over at most 3 pages of a ListTaskDefinitionFamilies operation.
1953//    pageNum := 0
1954//    err := client.ListTaskDefinitionFamiliesPages(params,
1955//        func(page *ListTaskDefinitionFamiliesOutput, lastPage bool) bool {
1956//            pageNum++
1957//            fmt.Println(page)
1958//            return pageNum <= 3
1959//        })
1960//
1961func (c *ECS) ListTaskDefinitionFamiliesPages(input *ListTaskDefinitionFamiliesInput, fn func(*ListTaskDefinitionFamiliesOutput, bool) bool) error {
1962	return c.ListTaskDefinitionFamiliesPagesWithContext(aws.BackgroundContext(), input, fn)
1963}
1964
1965// ListTaskDefinitionFamiliesPagesWithContext same as ListTaskDefinitionFamiliesPages except
1966// it takes a Context and allows setting request options on the pages.
1967//
1968// The context must be non-nil and will be used for request cancellation. If
1969// the context is nil a panic will occur. In the future the SDK may create
1970// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1971// for more information on using Contexts.
1972func (c *ECS) ListTaskDefinitionFamiliesPagesWithContext(ctx aws.Context, input *ListTaskDefinitionFamiliesInput, fn func(*ListTaskDefinitionFamiliesOutput, bool) bool, opts ...request.Option) error {
1973	p := request.Pagination{
1974		NewRequest: func() (*request.Request, error) {
1975			var inCpy *ListTaskDefinitionFamiliesInput
1976			if input != nil {
1977				tmp := *input
1978				inCpy = &tmp
1979			}
1980			req, _ := c.ListTaskDefinitionFamiliesRequest(inCpy)
1981			req.SetContext(ctx)
1982			req.ApplyOptions(opts...)
1983			return req, nil
1984		},
1985	}
1986
1987	cont := true
1988	for p.Next() && cont {
1989		cont = fn(p.Page().(*ListTaskDefinitionFamiliesOutput), !p.HasNextPage())
1990	}
1991	return p.Err()
1992}
1993
1994const opListTaskDefinitions = "ListTaskDefinitions"
1995
1996// ListTaskDefinitionsRequest generates a "aws/request.Request" representing the
1997// client's request for the ListTaskDefinitions operation. The "output" return
1998// value will be populated with the request's response once the request complets
1999// successfuly.
2000//
2001// Use "Send" method on the returned Request to send the API call to the service.
2002// the "output" return value is not valid until after Send returns without error.
2003//
2004// See ListTaskDefinitions for more information on using the ListTaskDefinitions
2005// API call, and error handling.
2006//
2007// This method is useful when you want to inject custom logic or configuration
2008// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2009//
2010//
2011//    // Example sending a request using the ListTaskDefinitionsRequest method.
2012//    req, resp := client.ListTaskDefinitionsRequest(params)
2013//
2014//    err := req.Send()
2015//    if err == nil { // resp is now filled
2016//        fmt.Println(resp)
2017//    }
2018//
2019// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitions
2020func (c *ECS) ListTaskDefinitionsRequest(input *ListTaskDefinitionsInput) (req *request.Request, output *ListTaskDefinitionsOutput) {
2021	op := &request.Operation{
2022		Name:       opListTaskDefinitions,
2023		HTTPMethod: "POST",
2024		HTTPPath:   "/",
2025		Paginator: &request.Paginator{
2026			InputTokens:     []string{"nextToken"},
2027			OutputTokens:    []string{"nextToken"},
2028			LimitToken:      "maxResults",
2029			TruncationToken: "",
2030		},
2031	}
2032
2033	if input == nil {
2034		input = &ListTaskDefinitionsInput{}
2035	}
2036
2037	output = &ListTaskDefinitionsOutput{}
2038	req = c.newRequest(op, input, output)
2039	return
2040}
2041
2042// ListTaskDefinitions API operation for Amazon EC2 Container Service.
2043//
2044// Returns a list of task definitions that are registered to your account. You
2045// can filter the results by family name with the familyPrefix parameter or
2046// by status with the status parameter.
2047//
2048// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2049// with awserr.Error's Code and Message methods to get detailed information about
2050// the error.
2051//
2052// See the AWS API reference guide for Amazon EC2 Container Service's
2053// API operation ListTaskDefinitions for usage and error information.
2054//
2055// Returned Error Codes:
2056//   * ErrCodeServerException "ServerException"
2057//   These errors are usually caused by a server issue.
2058//
2059//   * ErrCodeClientException "ClientException"
2060//   These errors are usually caused by a client action, such as using an action
2061//   or resource on behalf of a user that doesn't have permission to use the action
2062//   or resource, or specifying an identifier that is not valid.
2063//
2064//   * ErrCodeInvalidParameterException "InvalidParameterException"
2065//   The specified parameter is invalid. Review the available parameters for the
2066//   API request.
2067//
2068// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitions
2069func (c *ECS) ListTaskDefinitions(input *ListTaskDefinitionsInput) (*ListTaskDefinitionsOutput, error) {
2070	req, out := c.ListTaskDefinitionsRequest(input)
2071	return out, req.Send()
2072}
2073
2074// ListTaskDefinitionsWithContext is the same as ListTaskDefinitions with the addition of
2075// the ability to pass a context and additional request options.
2076//
2077// See ListTaskDefinitions for details on how to use this API operation.
2078//
2079// The context must be non-nil and will be used for request cancellation. If
2080// the context is nil a panic will occur. In the future the SDK may create
2081// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2082// for more information on using Contexts.
2083func (c *ECS) ListTaskDefinitionsWithContext(ctx aws.Context, input *ListTaskDefinitionsInput, opts ...request.Option) (*ListTaskDefinitionsOutput, error) {
2084	req, out := c.ListTaskDefinitionsRequest(input)
2085	req.SetContext(ctx)
2086	req.ApplyOptions(opts...)
2087	return out, req.Send()
2088}
2089
2090// ListTaskDefinitionsPages iterates over the pages of a ListTaskDefinitions operation,
2091// calling the "fn" function with the response data for each page. To stop
2092// iterating, return false from the fn function.
2093//
2094// See ListTaskDefinitions method for more information on how to use this operation.
2095//
2096// Note: This operation can generate multiple requests to a service.
2097//
2098//    // Example iterating over at most 3 pages of a ListTaskDefinitions operation.
2099//    pageNum := 0
2100//    err := client.ListTaskDefinitionsPages(params,
2101//        func(page *ListTaskDefinitionsOutput, lastPage bool) bool {
2102//            pageNum++
2103//            fmt.Println(page)
2104//            return pageNum <= 3
2105//        })
2106//
2107func (c *ECS) ListTaskDefinitionsPages(input *ListTaskDefinitionsInput, fn func(*ListTaskDefinitionsOutput, bool) bool) error {
2108	return c.ListTaskDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn)
2109}
2110
2111// ListTaskDefinitionsPagesWithContext same as ListTaskDefinitionsPages except
2112// it takes a Context and allows setting request options on the pages.
2113//
2114// The context must be non-nil and will be used for request cancellation. If
2115// the context is nil a panic will occur. In the future the SDK may create
2116// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2117// for more information on using Contexts.
2118func (c *ECS) ListTaskDefinitionsPagesWithContext(ctx aws.Context, input *ListTaskDefinitionsInput, fn func(*ListTaskDefinitionsOutput, bool) bool, opts ...request.Option) error {
2119	p := request.Pagination{
2120		NewRequest: func() (*request.Request, error) {
2121			var inCpy *ListTaskDefinitionsInput
2122			if input != nil {
2123				tmp := *input
2124				inCpy = &tmp
2125			}
2126			req, _ := c.ListTaskDefinitionsRequest(inCpy)
2127			req.SetContext(ctx)
2128			req.ApplyOptions(opts...)
2129			return req, nil
2130		},
2131	}
2132
2133	cont := true
2134	for p.Next() && cont {
2135		cont = fn(p.Page().(*ListTaskDefinitionsOutput), !p.HasNextPage())
2136	}
2137	return p.Err()
2138}
2139
2140const opListTasks = "ListTasks"
2141
2142// ListTasksRequest generates a "aws/request.Request" representing the
2143// client's request for the ListTasks operation. The "output" return
2144// value will be populated with the request's response once the request complets
2145// successfuly.
2146//
2147// Use "Send" method on the returned Request to send the API call to the service.
2148// the "output" return value is not valid until after Send returns without error.
2149//
2150// See ListTasks for more information on using the ListTasks
2151// API call, and error handling.
2152//
2153// This method is useful when you want to inject custom logic or configuration
2154// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2155//
2156//
2157//    // Example sending a request using the ListTasksRequest method.
2158//    req, resp := client.ListTasksRequest(params)
2159//
2160//    err := req.Send()
2161//    if err == nil { // resp is now filled
2162//        fmt.Println(resp)
2163//    }
2164//
2165// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasks
2166func (c *ECS) ListTasksRequest(input *ListTasksInput) (req *request.Request, output *ListTasksOutput) {
2167	op := &request.Operation{
2168		Name:       opListTasks,
2169		HTTPMethod: "POST",
2170		HTTPPath:   "/",
2171		Paginator: &request.Paginator{
2172			InputTokens:     []string{"nextToken"},
2173			OutputTokens:    []string{"nextToken"},
2174			LimitToken:      "maxResults",
2175			TruncationToken: "",
2176		},
2177	}
2178
2179	if input == nil {
2180		input = &ListTasksInput{}
2181	}
2182
2183	output = &ListTasksOutput{}
2184	req = c.newRequest(op, input, output)
2185	return
2186}
2187
2188// ListTasks API operation for Amazon EC2 Container Service.
2189//
2190// Returns a list of tasks for a specified cluster. You can filter the results
2191// by family name, by a particular container instance, or by the desired status
2192// of the task with the family, containerInstance, and desiredStatus parameters.
2193//
2194// Recently-stopped tasks might appear in the returned results. Currently, stopped
2195// tasks appear in the returned results for at least one hour.
2196//
2197// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2198// with awserr.Error's Code and Message methods to get detailed information about
2199// the error.
2200//
2201// See the AWS API reference guide for Amazon EC2 Container Service's
2202// API operation ListTasks for usage and error information.
2203//
2204// Returned Error Codes:
2205//   * ErrCodeServerException "ServerException"
2206//   These errors are usually caused by a server issue.
2207//
2208//   * ErrCodeClientException "ClientException"
2209//   These errors are usually caused by a client action, such as using an action
2210//   or resource on behalf of a user that doesn't have permission to use the action
2211//   or resource, or specifying an identifier that is not valid.
2212//
2213//   * ErrCodeInvalidParameterException "InvalidParameterException"
2214//   The specified parameter is invalid. Review the available parameters for the
2215//   API request.
2216//
2217//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
2218//   The specified cluster could not be found. You can view your available clusters
2219//   with ListClusters. Amazon ECS clusters are region-specific.
2220//
2221//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
2222//   The specified service could not be found. You can view your available services
2223//   with ListServices. Amazon ECS services are cluster-specific and region-specific.
2224//
2225// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasks
2226func (c *ECS) ListTasks(input *ListTasksInput) (*ListTasksOutput, error) {
2227	req, out := c.ListTasksRequest(input)
2228	return out, req.Send()
2229}
2230
2231// ListTasksWithContext is the same as ListTasks with the addition of
2232// the ability to pass a context and additional request options.
2233//
2234// See ListTasks for details on how to use this API operation.
2235//
2236// The context must be non-nil and will be used for request cancellation. If
2237// the context is nil a panic will occur. In the future the SDK may create
2238// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2239// for more information on using Contexts.
2240func (c *ECS) ListTasksWithContext(ctx aws.Context, input *ListTasksInput, opts ...request.Option) (*ListTasksOutput, error) {
2241	req, out := c.ListTasksRequest(input)
2242	req.SetContext(ctx)
2243	req.ApplyOptions(opts...)
2244	return out, req.Send()
2245}
2246
2247// ListTasksPages iterates over the pages of a ListTasks operation,
2248// calling the "fn" function with the response data for each page. To stop
2249// iterating, return false from the fn function.
2250//
2251// See ListTasks method for more information on how to use this operation.
2252//
2253// Note: This operation can generate multiple requests to a service.
2254//
2255//    // Example iterating over at most 3 pages of a ListTasks operation.
2256//    pageNum := 0
2257//    err := client.ListTasksPages(params,
2258//        func(page *ListTasksOutput, lastPage bool) bool {
2259//            pageNum++
2260//            fmt.Println(page)
2261//            return pageNum <= 3
2262//        })
2263//
2264func (c *ECS) ListTasksPages(input *ListTasksInput, fn func(*ListTasksOutput, bool) bool) error {
2265	return c.ListTasksPagesWithContext(aws.BackgroundContext(), input, fn)
2266}
2267
2268// ListTasksPagesWithContext same as ListTasksPages except
2269// it takes a Context and allows setting request options on the pages.
2270//
2271// The context must be non-nil and will be used for request cancellation. If
2272// the context is nil a panic will occur. In the future the SDK may create
2273// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2274// for more information on using Contexts.
2275func (c *ECS) ListTasksPagesWithContext(ctx aws.Context, input *ListTasksInput, fn func(*ListTasksOutput, bool) bool, opts ...request.Option) error {
2276	p := request.Pagination{
2277		NewRequest: func() (*request.Request, error) {
2278			var inCpy *ListTasksInput
2279			if input != nil {
2280				tmp := *input
2281				inCpy = &tmp
2282			}
2283			req, _ := c.ListTasksRequest(inCpy)
2284			req.SetContext(ctx)
2285			req.ApplyOptions(opts...)
2286			return req, nil
2287		},
2288	}
2289
2290	cont := true
2291	for p.Next() && cont {
2292		cont = fn(p.Page().(*ListTasksOutput), !p.HasNextPage())
2293	}
2294	return p.Err()
2295}
2296
2297const opPutAttributes = "PutAttributes"
2298
2299// PutAttributesRequest generates a "aws/request.Request" representing the
2300// client's request for the PutAttributes operation. The "output" return
2301// value will be populated with the request's response once the request complets
2302// successfuly.
2303//
2304// Use "Send" method on the returned Request to send the API call to the service.
2305// the "output" return value is not valid until after Send returns without error.
2306//
2307// See PutAttributes for more information on using the PutAttributes
2308// API call, and error handling.
2309//
2310// This method is useful when you want to inject custom logic or configuration
2311// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2312//
2313//
2314//    // Example sending a request using the PutAttributesRequest method.
2315//    req, resp := client.PutAttributesRequest(params)
2316//
2317//    err := req.Send()
2318//    if err == nil { // resp is now filled
2319//        fmt.Println(resp)
2320//    }
2321//
2322// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributes
2323func (c *ECS) PutAttributesRequest(input *PutAttributesInput) (req *request.Request, output *PutAttributesOutput) {
2324	op := &request.Operation{
2325		Name:       opPutAttributes,
2326		HTTPMethod: "POST",
2327		HTTPPath:   "/",
2328	}
2329
2330	if input == nil {
2331		input = &PutAttributesInput{}
2332	}
2333
2334	output = &PutAttributesOutput{}
2335	req = c.newRequest(op, input, output)
2336	return
2337}
2338
2339// PutAttributes API operation for Amazon EC2 Container Service.
2340//
2341// Create or update an attribute on an Amazon ECS resource. If the attribute
2342// does not exist, it is created. If the attribute exists, its value is replaced
2343// with the specified value. To delete an attribute, use DeleteAttributes. For
2344// more information, see Attributes (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
2345// in the Amazon EC2 Container Service Developer Guide.
2346//
2347// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2348// with awserr.Error's Code and Message methods to get detailed information about
2349// the error.
2350//
2351// See the AWS API reference guide for Amazon EC2 Container Service's
2352// API operation PutAttributes for usage and error information.
2353//
2354// Returned Error Codes:
2355//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
2356//   The specified cluster could not be found. You can view your available clusters
2357//   with ListClusters. Amazon ECS clusters are region-specific.
2358//
2359//   * ErrCodeTargetNotFoundException "TargetNotFoundException"
2360//   The specified target could not be found. You can view your available container
2361//   instances with ListContainerInstances. Amazon ECS container instances are
2362//   cluster-specific and region-specific.
2363//
2364//   * ErrCodeAttributeLimitExceededException "AttributeLimitExceededException"
2365//   You can apply up to 10 custom attributes per resource. You can view the attributes
2366//   of a resource with ListAttributes. You can remove existing attributes on
2367//   a resource with DeleteAttributes.
2368//
2369//   * ErrCodeInvalidParameterException "InvalidParameterException"
2370//   The specified parameter is invalid. Review the available parameters for the
2371//   API request.
2372//
2373// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributes
2374func (c *ECS) PutAttributes(input *PutAttributesInput) (*PutAttributesOutput, error) {
2375	req, out := c.PutAttributesRequest(input)
2376	return out, req.Send()
2377}
2378
2379// PutAttributesWithContext is the same as PutAttributes with the addition of
2380// the ability to pass a context and additional request options.
2381//
2382// See PutAttributes for details on how to use this API operation.
2383//
2384// The context must be non-nil and will be used for request cancellation. If
2385// the context is nil a panic will occur. In the future the SDK may create
2386// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2387// for more information on using Contexts.
2388func (c *ECS) PutAttributesWithContext(ctx aws.Context, input *PutAttributesInput, opts ...request.Option) (*PutAttributesOutput, error) {
2389	req, out := c.PutAttributesRequest(input)
2390	req.SetContext(ctx)
2391	req.ApplyOptions(opts...)
2392	return out, req.Send()
2393}
2394
2395const opRegisterContainerInstance = "RegisterContainerInstance"
2396
2397// RegisterContainerInstanceRequest generates a "aws/request.Request" representing the
2398// client's request for the RegisterContainerInstance operation. The "output" return
2399// value will be populated with the request's response once the request complets
2400// successfuly.
2401//
2402// Use "Send" method on the returned Request to send the API call to the service.
2403// the "output" return value is not valid until after Send returns without error.
2404//
2405// See RegisterContainerInstance for more information on using the RegisterContainerInstance
2406// API call, and error handling.
2407//
2408// This method is useful when you want to inject custom logic or configuration
2409// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2410//
2411//
2412//    // Example sending a request using the RegisterContainerInstanceRequest method.
2413//    req, resp := client.RegisterContainerInstanceRequest(params)
2414//
2415//    err := req.Send()
2416//    if err == nil { // resp is now filled
2417//        fmt.Println(resp)
2418//    }
2419//
2420// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstance
2421func (c *ECS) RegisterContainerInstanceRequest(input *RegisterContainerInstanceInput) (req *request.Request, output *RegisterContainerInstanceOutput) {
2422	op := &request.Operation{
2423		Name:       opRegisterContainerInstance,
2424		HTTPMethod: "POST",
2425		HTTPPath:   "/",
2426	}
2427
2428	if input == nil {
2429		input = &RegisterContainerInstanceInput{}
2430	}
2431
2432	output = &RegisterContainerInstanceOutput{}
2433	req = c.newRequest(op, input, output)
2434	return
2435}
2436
2437// RegisterContainerInstance API operation for Amazon EC2 Container Service.
2438//
2439// This action is only used by the Amazon EC2 Container Service agent, and it
2440// is not intended for use outside of the agent.
2441//
2442// Registers an EC2 instance into the specified cluster. This instance becomes
2443// available to place containers on.
2444//
2445// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2446// with awserr.Error's Code and Message methods to get detailed information about
2447// the error.
2448//
2449// See the AWS API reference guide for Amazon EC2 Container Service's
2450// API operation RegisterContainerInstance for usage and error information.
2451//
2452// Returned Error Codes:
2453//   * ErrCodeServerException "ServerException"
2454//   These errors are usually caused by a server issue.
2455//
2456//   * ErrCodeClientException "ClientException"
2457//   These errors are usually caused by a client action, such as using an action
2458//   or resource on behalf of a user that doesn't have permission to use the action
2459//   or resource, or specifying an identifier that is not valid.
2460//
2461// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstance
2462func (c *ECS) RegisterContainerInstance(input *RegisterContainerInstanceInput) (*RegisterContainerInstanceOutput, error) {
2463	req, out := c.RegisterContainerInstanceRequest(input)
2464	return out, req.Send()
2465}
2466
2467// RegisterContainerInstanceWithContext is the same as RegisterContainerInstance with the addition of
2468// the ability to pass a context and additional request options.
2469//
2470// See RegisterContainerInstance for details on how to use this API operation.
2471//
2472// The context must be non-nil and will be used for request cancellation. If
2473// the context is nil a panic will occur. In the future the SDK may create
2474// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2475// for more information on using Contexts.
2476func (c *ECS) RegisterContainerInstanceWithContext(ctx aws.Context, input *RegisterContainerInstanceInput, opts ...request.Option) (*RegisterContainerInstanceOutput, error) {
2477	req, out := c.RegisterContainerInstanceRequest(input)
2478	req.SetContext(ctx)
2479	req.ApplyOptions(opts...)
2480	return out, req.Send()
2481}
2482
2483const opRegisterTaskDefinition = "RegisterTaskDefinition"
2484
2485// RegisterTaskDefinitionRequest generates a "aws/request.Request" representing the
2486// client's request for the RegisterTaskDefinition operation. The "output" return
2487// value will be populated with the request's response once the request complets
2488// successfuly.
2489//
2490// Use "Send" method on the returned Request to send the API call to the service.
2491// the "output" return value is not valid until after Send returns without error.
2492//
2493// See RegisterTaskDefinition for more information on using the RegisterTaskDefinition
2494// API call, and error handling.
2495//
2496// This method is useful when you want to inject custom logic or configuration
2497// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2498//
2499//
2500//    // Example sending a request using the RegisterTaskDefinitionRequest method.
2501//    req, resp := client.RegisterTaskDefinitionRequest(params)
2502//
2503//    err := req.Send()
2504//    if err == nil { // resp is now filled
2505//        fmt.Println(resp)
2506//    }
2507//
2508// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinition
2509func (c *ECS) RegisterTaskDefinitionRequest(input *RegisterTaskDefinitionInput) (req *request.Request, output *RegisterTaskDefinitionOutput) {
2510	op := &request.Operation{
2511		Name:       opRegisterTaskDefinition,
2512		HTTPMethod: "POST",
2513		HTTPPath:   "/",
2514	}
2515
2516	if input == nil {
2517		input = &RegisterTaskDefinitionInput{}
2518	}
2519
2520	output = &RegisterTaskDefinitionOutput{}
2521	req = c.newRequest(op, input, output)
2522	return
2523}
2524
2525// RegisterTaskDefinition API operation for Amazon EC2 Container Service.
2526//
2527// Registers a new task definition from the supplied family and containerDefinitions.
2528// Optionally, you can add data volumes to your containers with the volumes
2529// parameter. For more information about task definition parameters and defaults,
2530// see Amazon ECS Task Definitions (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
2531// in the Amazon EC2 Container Service Developer Guide.
2532//
2533// You can specify an IAM role for your task with the taskRoleArn parameter.
2534// When you specify an IAM role for a task, its containers can then use the
2535// latest versions of the AWS CLI or SDKs to make API requests to the AWS services
2536// that are specified in the IAM policy associated with the role. For more information,
2537// see IAM Roles for Tasks (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
2538// in the Amazon EC2 Container Service Developer Guide.
2539//
2540// You can specify a Docker networking mode for the containers in your task
2541// definition with the networkMode parameter. The available network modes correspond
2542// to those described in Network settings (https://docs.docker.com/engine/reference/run/#/network-settings)
2543// in the Docker run reference.
2544//
2545// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2546// with awserr.Error's Code and Message methods to get detailed information about
2547// the error.
2548//
2549// See the AWS API reference guide for Amazon EC2 Container Service's
2550// API operation RegisterTaskDefinition for usage and error information.
2551//
2552// Returned Error Codes:
2553//   * ErrCodeServerException "ServerException"
2554//   These errors are usually caused by a server issue.
2555//
2556//   * ErrCodeClientException "ClientException"
2557//   These errors are usually caused by a client action, such as using an action
2558//   or resource on behalf of a user that doesn't have permission to use the action
2559//   or resource, or specifying an identifier that is not valid.
2560//
2561//   * ErrCodeInvalidParameterException "InvalidParameterException"
2562//   The specified parameter is invalid. Review the available parameters for the
2563//   API request.
2564//
2565// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinition
2566func (c *ECS) RegisterTaskDefinition(input *RegisterTaskDefinitionInput) (*RegisterTaskDefinitionOutput, error) {
2567	req, out := c.RegisterTaskDefinitionRequest(input)
2568	return out, req.Send()
2569}
2570
2571// RegisterTaskDefinitionWithContext is the same as RegisterTaskDefinition with the addition of
2572// the ability to pass a context and additional request options.
2573//
2574// See RegisterTaskDefinition for details on how to use this API operation.
2575//
2576// The context must be non-nil and will be used for request cancellation. If
2577// the context is nil a panic will occur. In the future the SDK may create
2578// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2579// for more information on using Contexts.
2580func (c *ECS) RegisterTaskDefinitionWithContext(ctx aws.Context, input *RegisterTaskDefinitionInput, opts ...request.Option) (*RegisterTaskDefinitionOutput, error) {
2581	req, out := c.RegisterTaskDefinitionRequest(input)
2582	req.SetContext(ctx)
2583	req.ApplyOptions(opts...)
2584	return out, req.Send()
2585}
2586
2587const opRunTask = "RunTask"
2588
2589// RunTaskRequest generates a "aws/request.Request" representing the
2590// client's request for the RunTask operation. The "output" return
2591// value will be populated with the request's response once the request complets
2592// successfuly.
2593//
2594// Use "Send" method on the returned Request to send the API call to the service.
2595// the "output" return value is not valid until after Send returns without error.
2596//
2597// See RunTask for more information on using the RunTask
2598// API call, and error handling.
2599//
2600// This method is useful when you want to inject custom logic or configuration
2601// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2602//
2603//
2604//    // Example sending a request using the RunTaskRequest method.
2605//    req, resp := client.RunTaskRequest(params)
2606//
2607//    err := req.Send()
2608//    if err == nil { // resp is now filled
2609//        fmt.Println(resp)
2610//    }
2611//
2612// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTask
2613func (c *ECS) RunTaskRequest(input *RunTaskInput) (req *request.Request, output *RunTaskOutput) {
2614	op := &request.Operation{
2615		Name:       opRunTask,
2616		HTTPMethod: "POST",
2617		HTTPPath:   "/",
2618	}
2619
2620	if input == nil {
2621		input = &RunTaskInput{}
2622	}
2623
2624	output = &RunTaskOutput{}
2625	req = c.newRequest(op, input, output)
2626	return
2627}
2628
2629// RunTask API operation for Amazon EC2 Container Service.
2630//
2631// Starts a new task using the specified task definition.
2632//
2633// You can allow Amazon ECS to place tasks for you, or you can customize how
2634// Amazon ECS places tasks using placement constraints and placement strategies.
2635// For more information, see Scheduling Tasks (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html)
2636// in the Amazon EC2 Container Service Developer Guide.
2637//
2638// Alternatively, you can use StartTask to use your own scheduler or place tasks
2639// manually on specific container instances.
2640//
2641// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2642// with awserr.Error's Code and Message methods to get detailed information about
2643// the error.
2644//
2645// See the AWS API reference guide for Amazon EC2 Container Service's
2646// API operation RunTask for usage and error information.
2647//
2648// Returned Error Codes:
2649//   * ErrCodeServerException "ServerException"
2650//   These errors are usually caused by a server issue.
2651//
2652//   * ErrCodeClientException "ClientException"
2653//   These errors are usually caused by a client action, such as using an action
2654//   or resource on behalf of a user that doesn't have permission to use the action
2655//   or resource, or specifying an identifier that is not valid.
2656//
2657//   * ErrCodeInvalidParameterException "InvalidParameterException"
2658//   The specified parameter is invalid. Review the available parameters for the
2659//   API request.
2660//
2661//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
2662//   The specified cluster could not be found. You can view your available clusters
2663//   with ListClusters. Amazon ECS clusters are region-specific.
2664//
2665// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTask
2666func (c *ECS) RunTask(input *RunTaskInput) (*RunTaskOutput, error) {
2667	req, out := c.RunTaskRequest(input)
2668	return out, req.Send()
2669}
2670
2671// RunTaskWithContext is the same as RunTask with the addition of
2672// the ability to pass a context and additional request options.
2673//
2674// See RunTask for details on how to use this API operation.
2675//
2676// The context must be non-nil and will be used for request cancellation. If
2677// the context is nil a panic will occur. In the future the SDK may create
2678// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2679// for more information on using Contexts.
2680func (c *ECS) RunTaskWithContext(ctx aws.Context, input *RunTaskInput, opts ...request.Option) (*RunTaskOutput, error) {
2681	req, out := c.RunTaskRequest(input)
2682	req.SetContext(ctx)
2683	req.ApplyOptions(opts...)
2684	return out, req.Send()
2685}
2686
2687const opStartTask = "StartTask"
2688
2689// StartTaskRequest generates a "aws/request.Request" representing the
2690// client's request for the StartTask operation. The "output" return
2691// value will be populated with the request's response once the request complets
2692// successfuly.
2693//
2694// Use "Send" method on the returned Request to send the API call to the service.
2695// the "output" return value is not valid until after Send returns without error.
2696//
2697// See StartTask for more information on using the StartTask
2698// API call, and error handling.
2699//
2700// This method is useful when you want to inject custom logic or configuration
2701// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2702//
2703//
2704//    // Example sending a request using the StartTaskRequest method.
2705//    req, resp := client.StartTaskRequest(params)
2706//
2707//    err := req.Send()
2708//    if err == nil { // resp is now filled
2709//        fmt.Println(resp)
2710//    }
2711//
2712// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTask
2713func (c *ECS) StartTaskRequest(input *StartTaskInput) (req *request.Request, output *StartTaskOutput) {
2714	op := &request.Operation{
2715		Name:       opStartTask,
2716		HTTPMethod: "POST",
2717		HTTPPath:   "/",
2718	}
2719
2720	if input == nil {
2721		input = &StartTaskInput{}
2722	}
2723
2724	output = &StartTaskOutput{}
2725	req = c.newRequest(op, input, output)
2726	return
2727}
2728
2729// StartTask API operation for Amazon EC2 Container Service.
2730//
2731// Starts a new task from the specified task definition on the specified container
2732// instance or instances.
2733//
2734// Alternatively, you can use RunTask to place tasks for you. For more information,
2735// see Scheduling Tasks (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html)
2736// in the Amazon EC2 Container Service Developer Guide.
2737//
2738// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2739// with awserr.Error's Code and Message methods to get detailed information about
2740// the error.
2741//
2742// See the AWS API reference guide for Amazon EC2 Container Service's
2743// API operation StartTask for usage and error information.
2744//
2745// Returned Error Codes:
2746//   * ErrCodeServerException "ServerException"
2747//   These errors are usually caused by a server issue.
2748//
2749//   * ErrCodeClientException "ClientException"
2750//   These errors are usually caused by a client action, such as using an action
2751//   or resource on behalf of a user that doesn't have permission to use the action
2752//   or resource, or specifying an identifier that is not valid.
2753//
2754//   * ErrCodeInvalidParameterException "InvalidParameterException"
2755//   The specified parameter is invalid. Review the available parameters for the
2756//   API request.
2757//
2758//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
2759//   The specified cluster could not be found. You can view your available clusters
2760//   with ListClusters. Amazon ECS clusters are region-specific.
2761//
2762// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTask
2763func (c *ECS) StartTask(input *StartTaskInput) (*StartTaskOutput, error) {
2764	req, out := c.StartTaskRequest(input)
2765	return out, req.Send()
2766}
2767
2768// StartTaskWithContext is the same as StartTask with the addition of
2769// the ability to pass a context and additional request options.
2770//
2771// See StartTask for details on how to use this API operation.
2772//
2773// The context must be non-nil and will be used for request cancellation. If
2774// the context is nil a panic will occur. In the future the SDK may create
2775// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2776// for more information on using Contexts.
2777func (c *ECS) StartTaskWithContext(ctx aws.Context, input *StartTaskInput, opts ...request.Option) (*StartTaskOutput, error) {
2778	req, out := c.StartTaskRequest(input)
2779	req.SetContext(ctx)
2780	req.ApplyOptions(opts...)
2781	return out, req.Send()
2782}
2783
2784const opStopTask = "StopTask"
2785
2786// StopTaskRequest generates a "aws/request.Request" representing the
2787// client's request for the StopTask operation. The "output" return
2788// value will be populated with the request's response once the request complets
2789// successfuly.
2790//
2791// Use "Send" method on the returned Request to send the API call to the service.
2792// the "output" return value is not valid until after Send returns without error.
2793//
2794// See StopTask for more information on using the StopTask
2795// API call, and error handling.
2796//
2797// This method is useful when you want to inject custom logic or configuration
2798// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2799//
2800//
2801//    // Example sending a request using the StopTaskRequest method.
2802//    req, resp := client.StopTaskRequest(params)
2803//
2804//    err := req.Send()
2805//    if err == nil { // resp is now filled
2806//        fmt.Println(resp)
2807//    }
2808//
2809// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTask
2810func (c *ECS) StopTaskRequest(input *StopTaskInput) (req *request.Request, output *StopTaskOutput) {
2811	op := &request.Operation{
2812		Name:       opStopTask,
2813		HTTPMethod: "POST",
2814		HTTPPath:   "/",
2815	}
2816
2817	if input == nil {
2818		input = &StopTaskInput{}
2819	}
2820
2821	output = &StopTaskOutput{}
2822	req = c.newRequest(op, input, output)
2823	return
2824}
2825
2826// StopTask API operation for Amazon EC2 Container Service.
2827//
2828// Stops a running task.
2829//
2830// When StopTask is called on a task, the equivalent of docker stop is issued
2831// to the containers running in the task. This results in a SIGTERM and a default
2832// 30-second timeout, after which SIGKILL is sent and the containers are forcibly
2833// stopped. If the container handles the SIGTERM gracefully and exits within
2834// 30 seconds from receiving it, no SIGKILL is sent.
2835//
2836// The default 30-second timeout can be configured on the Amazon ECS container
2837// agent with the ECS_CONTAINER_STOP_TIMEOUT variable. For more information,
2838// see Amazon ECS Container Agent Configuration (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
2839// in the Amazon EC2 Container Service Developer Guide.
2840//
2841// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2842// with awserr.Error's Code and Message methods to get detailed information about
2843// the error.
2844//
2845// See the AWS API reference guide for Amazon EC2 Container Service's
2846// API operation StopTask for usage and error information.
2847//
2848// Returned Error Codes:
2849//   * ErrCodeServerException "ServerException"
2850//   These errors are usually caused by a server issue.
2851//
2852//   * ErrCodeClientException "ClientException"
2853//   These errors are usually caused by a client action, such as using an action
2854//   or resource on behalf of a user that doesn't have permission to use the action
2855//   or resource, or specifying an identifier that is not valid.
2856//
2857//   * ErrCodeInvalidParameterException "InvalidParameterException"
2858//   The specified parameter is invalid. Review the available parameters for the
2859//   API request.
2860//
2861//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
2862//   The specified cluster could not be found. You can view your available clusters
2863//   with ListClusters. Amazon ECS clusters are region-specific.
2864//
2865// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTask
2866func (c *ECS) StopTask(input *StopTaskInput) (*StopTaskOutput, error) {
2867	req, out := c.StopTaskRequest(input)
2868	return out, req.Send()
2869}
2870
2871// StopTaskWithContext is the same as StopTask with the addition of
2872// the ability to pass a context and additional request options.
2873//
2874// See StopTask for details on how to use this API operation.
2875//
2876// The context must be non-nil and will be used for request cancellation. If
2877// the context is nil a panic will occur. In the future the SDK may create
2878// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2879// for more information on using Contexts.
2880func (c *ECS) StopTaskWithContext(ctx aws.Context, input *StopTaskInput, opts ...request.Option) (*StopTaskOutput, error) {
2881	req, out := c.StopTaskRequest(input)
2882	req.SetContext(ctx)
2883	req.ApplyOptions(opts...)
2884	return out, req.Send()
2885}
2886
2887const opSubmitContainerStateChange = "SubmitContainerStateChange"
2888
2889// SubmitContainerStateChangeRequest generates a "aws/request.Request" representing the
2890// client's request for the SubmitContainerStateChange operation. The "output" return
2891// value will be populated with the request's response once the request complets
2892// successfuly.
2893//
2894// Use "Send" method on the returned Request to send the API call to the service.
2895// the "output" return value is not valid until after Send returns without error.
2896//
2897// See SubmitContainerStateChange for more information on using the SubmitContainerStateChange
2898// API call, and error handling.
2899//
2900// This method is useful when you want to inject custom logic or configuration
2901// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2902//
2903//
2904//    // Example sending a request using the SubmitContainerStateChangeRequest method.
2905//    req, resp := client.SubmitContainerStateChangeRequest(params)
2906//
2907//    err := req.Send()
2908//    if err == nil { // resp is now filled
2909//        fmt.Println(resp)
2910//    }
2911//
2912// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChange
2913func (c *ECS) SubmitContainerStateChangeRequest(input *SubmitContainerStateChangeInput) (req *request.Request, output *SubmitContainerStateChangeOutput) {
2914	op := &request.Operation{
2915		Name:       opSubmitContainerStateChange,
2916		HTTPMethod: "POST",
2917		HTTPPath:   "/",
2918	}
2919
2920	if input == nil {
2921		input = &SubmitContainerStateChangeInput{}
2922	}
2923
2924	output = &SubmitContainerStateChangeOutput{}
2925	req = c.newRequest(op, input, output)
2926	return
2927}
2928
2929// SubmitContainerStateChange API operation for Amazon EC2 Container Service.
2930//
2931// This action is only used by the Amazon EC2 Container Service agent, and it
2932// is not intended for use outside of the agent.
2933//
2934// Sent to acknowledge that a container changed states.
2935//
2936// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2937// with awserr.Error's Code and Message methods to get detailed information about
2938// the error.
2939//
2940// See the AWS API reference guide for Amazon EC2 Container Service's
2941// API operation SubmitContainerStateChange for usage and error information.
2942//
2943// Returned Error Codes:
2944//   * ErrCodeServerException "ServerException"
2945//   These errors are usually caused by a server issue.
2946//
2947//   * ErrCodeClientException "ClientException"
2948//   These errors are usually caused by a client action, such as using an action
2949//   or resource on behalf of a user that doesn't have permission to use the action
2950//   or resource, or specifying an identifier that is not valid.
2951//
2952// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChange
2953func (c *ECS) SubmitContainerStateChange(input *SubmitContainerStateChangeInput) (*SubmitContainerStateChangeOutput, error) {
2954	req, out := c.SubmitContainerStateChangeRequest(input)
2955	return out, req.Send()
2956}
2957
2958// SubmitContainerStateChangeWithContext is the same as SubmitContainerStateChange with the addition of
2959// the ability to pass a context and additional request options.
2960//
2961// See SubmitContainerStateChange for details on how to use this API operation.
2962//
2963// The context must be non-nil and will be used for request cancellation. If
2964// the context is nil a panic will occur. In the future the SDK may create
2965// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2966// for more information on using Contexts.
2967func (c *ECS) SubmitContainerStateChangeWithContext(ctx aws.Context, input *SubmitContainerStateChangeInput, opts ...request.Option) (*SubmitContainerStateChangeOutput, error) {
2968	req, out := c.SubmitContainerStateChangeRequest(input)
2969	req.SetContext(ctx)
2970	req.ApplyOptions(opts...)
2971	return out, req.Send()
2972}
2973
2974const opSubmitTaskStateChange = "SubmitTaskStateChange"
2975
2976// SubmitTaskStateChangeRequest generates a "aws/request.Request" representing the
2977// client's request for the SubmitTaskStateChange operation. The "output" return
2978// value will be populated with the request's response once the request complets
2979// successfuly.
2980//
2981// Use "Send" method on the returned Request to send the API call to the service.
2982// the "output" return value is not valid until after Send returns without error.
2983//
2984// See SubmitTaskStateChange for more information on using the SubmitTaskStateChange
2985// API call, and error handling.
2986//
2987// This method is useful when you want to inject custom logic or configuration
2988// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2989//
2990//
2991//    // Example sending a request using the SubmitTaskStateChangeRequest method.
2992//    req, resp := client.SubmitTaskStateChangeRequest(params)
2993//
2994//    err := req.Send()
2995//    if err == nil { // resp is now filled
2996//        fmt.Println(resp)
2997//    }
2998//
2999// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChange
3000func (c *ECS) SubmitTaskStateChangeRequest(input *SubmitTaskStateChangeInput) (req *request.Request, output *SubmitTaskStateChangeOutput) {
3001	op := &request.Operation{
3002		Name:       opSubmitTaskStateChange,
3003		HTTPMethod: "POST",
3004		HTTPPath:   "/",
3005	}
3006
3007	if input == nil {
3008		input = &SubmitTaskStateChangeInput{}
3009	}
3010
3011	output = &SubmitTaskStateChangeOutput{}
3012	req = c.newRequest(op, input, output)
3013	return
3014}
3015
3016// SubmitTaskStateChange API operation for Amazon EC2 Container Service.
3017//
3018// This action is only used by the Amazon EC2 Container Service agent, and it
3019// is not intended for use outside of the agent.
3020//
3021// Sent to acknowledge that a task changed states.
3022//
3023// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3024// with awserr.Error's Code and Message methods to get detailed information about
3025// the error.
3026//
3027// See the AWS API reference guide for Amazon EC2 Container Service's
3028// API operation SubmitTaskStateChange for usage and error information.
3029//
3030// Returned Error Codes:
3031//   * ErrCodeServerException "ServerException"
3032//   These errors are usually caused by a server issue.
3033//
3034//   * ErrCodeClientException "ClientException"
3035//   These errors are usually caused by a client action, such as using an action
3036//   or resource on behalf of a user that doesn't have permission to use the action
3037//   or resource, or specifying an identifier that is not valid.
3038//
3039// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChange
3040func (c *ECS) SubmitTaskStateChange(input *SubmitTaskStateChangeInput) (*SubmitTaskStateChangeOutput, error) {
3041	req, out := c.SubmitTaskStateChangeRequest(input)
3042	return out, req.Send()
3043}
3044
3045// SubmitTaskStateChangeWithContext is the same as SubmitTaskStateChange with the addition of
3046// the ability to pass a context and additional request options.
3047//
3048// See SubmitTaskStateChange for details on how to use this API operation.
3049//
3050// The context must be non-nil and will be used for request cancellation. If
3051// the context is nil a panic will occur. In the future the SDK may create
3052// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3053// for more information on using Contexts.
3054func (c *ECS) SubmitTaskStateChangeWithContext(ctx aws.Context, input *SubmitTaskStateChangeInput, opts ...request.Option) (*SubmitTaskStateChangeOutput, error) {
3055	req, out := c.SubmitTaskStateChangeRequest(input)
3056	req.SetContext(ctx)
3057	req.ApplyOptions(opts...)
3058	return out, req.Send()
3059}
3060
3061const opUpdateContainerAgent = "UpdateContainerAgent"
3062
3063// UpdateContainerAgentRequest generates a "aws/request.Request" representing the
3064// client's request for the UpdateContainerAgent operation. The "output" return
3065// value will be populated with the request's response once the request complets
3066// successfuly.
3067//
3068// Use "Send" method on the returned Request to send the API call to the service.
3069// the "output" return value is not valid until after Send returns without error.
3070//
3071// See UpdateContainerAgent for more information on using the UpdateContainerAgent
3072// API call, and error handling.
3073//
3074// This method is useful when you want to inject custom logic or configuration
3075// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3076//
3077//
3078//    // Example sending a request using the UpdateContainerAgentRequest method.
3079//    req, resp := client.UpdateContainerAgentRequest(params)
3080//
3081//    err := req.Send()
3082//    if err == nil { // resp is now filled
3083//        fmt.Println(resp)
3084//    }
3085//
3086// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
3087func (c *ECS) UpdateContainerAgentRequest(input *UpdateContainerAgentInput) (req *request.Request, output *UpdateContainerAgentOutput) {
3088	op := &request.Operation{
3089		Name:       opUpdateContainerAgent,
3090		HTTPMethod: "POST",
3091		HTTPPath:   "/",
3092	}
3093
3094	if input == nil {
3095		input = &UpdateContainerAgentInput{}
3096	}
3097
3098	output = &UpdateContainerAgentOutput{}
3099	req = c.newRequest(op, input, output)
3100	return
3101}
3102
3103// UpdateContainerAgent API operation for Amazon EC2 Container Service.
3104//
3105// Updates the Amazon ECS container agent on a specified container instance.
3106// Updating the Amazon ECS container agent does not interrupt running tasks
3107// or services on the container instance. The process for updating the agent
3108// differs depending on whether your container instance was launched with the
3109// Amazon ECS-optimized AMI or another operating system.
3110//
3111// UpdateContainerAgent requires the Amazon ECS-optimized AMI or Amazon Linux
3112// with the ecs-init service installed and running. For help updating the Amazon
3113// ECS container agent on other operating systems, see Manually Updating the
3114// Amazon ECS Container Agent (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html#manually_update_agent)
3115// in the Amazon EC2 Container Service Developer Guide.
3116//
3117// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3118// with awserr.Error's Code and Message methods to get detailed information about
3119// the error.
3120//
3121// See the AWS API reference guide for Amazon EC2 Container Service's
3122// API operation UpdateContainerAgent for usage and error information.
3123//
3124// Returned Error Codes:
3125//   * ErrCodeServerException "ServerException"
3126//   These errors are usually caused by a server issue.
3127//
3128//   * ErrCodeClientException "ClientException"
3129//   These errors are usually caused by a client action, such as using an action
3130//   or resource on behalf of a user that doesn't have permission to use the action
3131//   or resource, or specifying an identifier that is not valid.
3132//
3133//   * ErrCodeInvalidParameterException "InvalidParameterException"
3134//   The specified parameter is invalid. Review the available parameters for the
3135//   API request.
3136//
3137//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
3138//   The specified cluster could not be found. You can view your available clusters
3139//   with ListClusters. Amazon ECS clusters are region-specific.
3140//
3141//   * ErrCodeUpdateInProgressException "UpdateInProgressException"
3142//   There is already a current Amazon ECS container agent update in progress
3143//   on the specified container instance. If the container agent becomes disconnected
3144//   while it is in a transitional stage, such as PENDING or STAGING, the update
3145//   process can get stuck in that state. However, when the agent reconnects,
3146//   it resumes where it stopped previously.
3147//
3148//   * ErrCodeNoUpdateAvailableException "NoUpdateAvailableException"
3149//   There is no update available for this Amazon ECS container agent. This could
3150//   be because the agent is already running the latest version, or it is so old
3151//   that there is no update path to the current version.
3152//
3153//   * ErrCodeMissingVersionException "MissingVersionException"
3154//   Amazon ECS is unable to determine the current version of the Amazon ECS container
3155//   agent on the container instance and does not have enough information to proceed
3156//   with an update. This could be because the agent running on the container
3157//   instance is an older or custom version that does not use our version information.
3158//
3159// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
3160func (c *ECS) UpdateContainerAgent(input *UpdateContainerAgentInput) (*UpdateContainerAgentOutput, error) {
3161	req, out := c.UpdateContainerAgentRequest(input)
3162	return out, req.Send()
3163}
3164
3165// UpdateContainerAgentWithContext is the same as UpdateContainerAgent with the addition of
3166// the ability to pass a context and additional request options.
3167//
3168// See UpdateContainerAgent for details on how to use this API operation.
3169//
3170// The context must be non-nil and will be used for request cancellation. If
3171// the context is nil a panic will occur. In the future the SDK may create
3172// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3173// for more information on using Contexts.
3174func (c *ECS) UpdateContainerAgentWithContext(ctx aws.Context, input *UpdateContainerAgentInput, opts ...request.Option) (*UpdateContainerAgentOutput, error) {
3175	req, out := c.UpdateContainerAgentRequest(input)
3176	req.SetContext(ctx)
3177	req.ApplyOptions(opts...)
3178	return out, req.Send()
3179}
3180
3181const opUpdateContainerInstancesState = "UpdateContainerInstancesState"
3182
3183// UpdateContainerInstancesStateRequest generates a "aws/request.Request" representing the
3184// client's request for the UpdateContainerInstancesState operation. The "output" return
3185// value will be populated with the request's response once the request complets
3186// successfuly.
3187//
3188// Use "Send" method on the returned Request to send the API call to the service.
3189// the "output" return value is not valid until after Send returns without error.
3190//
3191// See UpdateContainerInstancesState for more information on using the UpdateContainerInstancesState
3192// API call, and error handling.
3193//
3194// This method is useful when you want to inject custom logic or configuration
3195// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3196//
3197//
3198//    // Example sending a request using the UpdateContainerInstancesStateRequest method.
3199//    req, resp := client.UpdateContainerInstancesStateRequest(params)
3200//
3201//    err := req.Send()
3202//    if err == nil { // resp is now filled
3203//        fmt.Println(resp)
3204//    }
3205//
3206// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
3207func (c *ECS) UpdateContainerInstancesStateRequest(input *UpdateContainerInstancesStateInput) (req *request.Request, output *UpdateContainerInstancesStateOutput) {
3208	op := &request.Operation{
3209		Name:       opUpdateContainerInstancesState,
3210		HTTPMethod: "POST",
3211		HTTPPath:   "/",
3212	}
3213
3214	if input == nil {
3215		input = &UpdateContainerInstancesStateInput{}
3216	}
3217
3218	output = &UpdateContainerInstancesStateOutput{}
3219	req = c.newRequest(op, input, output)
3220	return
3221}
3222
3223// UpdateContainerInstancesState API operation for Amazon EC2 Container Service.
3224//
3225// Modifies the status of an Amazon ECS container instance.
3226//
3227// You can change the status of a container instance to DRAINING to manually
3228// remove an instance from a cluster, for example to perform system updates,
3229// update the Docker daemon, or scale down the cluster size.
3230//
3231// When you set a container instance to DRAINING, Amazon ECS prevents new tasks
3232// from being scheduled for placement on the container instance and replacement
3233// service tasks are started on other container instances in the cluster if
3234// the resources are available. Service tasks on the container instance that
3235// are in the PENDING state are stopped immediately.
3236//
3237// Service tasks on the container instance that are in the RUNNING state are
3238// stopped and replaced according the service's deployment configuration parameters,
3239// minimumHealthyPercent and maximumPercent. Note that you can change the deployment
3240// configuration of your service using UpdateService.
3241//
3242//    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
3243//    temporarily during task replacement. For example, desiredCount is four
3244//    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
3245//    before starting two new tasks. If the minimum is 100%, the service scheduler
3246//    can't remove existing tasks until the replacement tasks are considered
3247//    healthy. Tasks for services that do not use a load balancer are considered
3248//    healthy if they are in the RUNNING state. Tasks for services that use
3249//    a load balancer are considered healthy if they are in the RUNNING state
3250//    and the container instance they are hosted on is reported as healthy by
3251//    the load balancer.
3252//
3253//    * The maximumPercent parameter represents an upper limit on the number
3254//    of running tasks during task replacement, which enables you to define
3255//    the replacement batch size. For example, if desiredCount of four tasks,
3256//    a maximum of 200% starts four new tasks before stopping the four tasks
3257//    to be drained (provided that the cluster resources required to do this
3258//    are available). If the maximum is 100%, then replacement tasks can't start
3259//    until the draining tasks have stopped.
3260//
3261// Any PENDING or RUNNING tasks that do not belong to a service are not affected;
3262// you must wait for them to finish or stop them manually.
3263//
3264// A container instance has completed draining when it has no more RUNNING tasks.
3265// You can verify this using ListTasks.
3266//
3267// When you set a container instance to ACTIVE, the Amazon ECS scheduler can
3268// begin scheduling tasks on the instance again.
3269//
3270// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3271// with awserr.Error's Code and Message methods to get detailed information about
3272// the error.
3273//
3274// See the AWS API reference guide for Amazon EC2 Container Service's
3275// API operation UpdateContainerInstancesState for usage and error information.
3276//
3277// Returned Error Codes:
3278//   * ErrCodeServerException "ServerException"
3279//   These errors are usually caused by a server issue.
3280//
3281//   * ErrCodeClientException "ClientException"
3282//   These errors are usually caused by a client action, such as using an action
3283//   or resource on behalf of a user that doesn't have permission to use the action
3284//   or resource, or specifying an identifier that is not valid.
3285//
3286//   * ErrCodeInvalidParameterException "InvalidParameterException"
3287//   The specified parameter is invalid. Review the available parameters for the
3288//   API request.
3289//
3290//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
3291//   The specified cluster could not be found. You can view your available clusters
3292//   with ListClusters. Amazon ECS clusters are region-specific.
3293//
3294// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
3295func (c *ECS) UpdateContainerInstancesState(input *UpdateContainerInstancesStateInput) (*UpdateContainerInstancesStateOutput, error) {
3296	req, out := c.UpdateContainerInstancesStateRequest(input)
3297	return out, req.Send()
3298}
3299
3300// UpdateContainerInstancesStateWithContext is the same as UpdateContainerInstancesState with the addition of
3301// the ability to pass a context and additional request options.
3302//
3303// See UpdateContainerInstancesState for details on how to use this API operation.
3304//
3305// The context must be non-nil and will be used for request cancellation. If
3306// the context is nil a panic will occur. In the future the SDK may create
3307// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3308// for more information on using Contexts.
3309func (c *ECS) UpdateContainerInstancesStateWithContext(ctx aws.Context, input *UpdateContainerInstancesStateInput, opts ...request.Option) (*UpdateContainerInstancesStateOutput, error) {
3310	req, out := c.UpdateContainerInstancesStateRequest(input)
3311	req.SetContext(ctx)
3312	req.ApplyOptions(opts...)
3313	return out, req.Send()
3314}
3315
3316const opUpdateService = "UpdateService"
3317
3318// UpdateServiceRequest generates a "aws/request.Request" representing the
3319// client's request for the UpdateService operation. The "output" return
3320// value will be populated with the request's response once the request complets
3321// successfuly.
3322//
3323// Use "Send" method on the returned Request to send the API call to the service.
3324// the "output" return value is not valid until after Send returns without error.
3325//
3326// See UpdateService for more information on using the UpdateService
3327// API call, and error handling.
3328//
3329// This method is useful when you want to inject custom logic or configuration
3330// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3331//
3332//
3333//    // Example sending a request using the UpdateServiceRequest method.
3334//    req, resp := client.UpdateServiceRequest(params)
3335//
3336//    err := req.Send()
3337//    if err == nil { // resp is now filled
3338//        fmt.Println(resp)
3339//    }
3340//
3341// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
3342func (c *ECS) UpdateServiceRequest(input *UpdateServiceInput) (req *request.Request, output *UpdateServiceOutput) {
3343	op := &request.Operation{
3344		Name:       opUpdateService,
3345		HTTPMethod: "POST",
3346		HTTPPath:   "/",
3347	}
3348
3349	if input == nil {
3350		input = &UpdateServiceInput{}
3351	}
3352
3353	output = &UpdateServiceOutput{}
3354	req = c.newRequest(op, input, output)
3355	return
3356}
3357
3358// UpdateService API operation for Amazon EC2 Container Service.
3359//
3360// Modifies the desired count, deployment configuration, or task definition
3361// used in a service.
3362//
3363// You can add to or subtract from the number of instantiations of a task definition
3364// in a service by specifying the cluster that the service is running in and
3365// a new desiredCount parameter.
3366//
3367// You can use UpdateService to modify your task definition and deploy a new
3368// version of your service.
3369//
3370// You can also update the deployment configuration of a service. When a deployment
3371// is triggered by updating the task definition of a service, the service scheduler
3372// uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent,
3373// to determine the deployment strategy.
3374//
3375//    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
3376//    temporarily during a deployment. For example, if desiredCount is four
3377//    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
3378//    before starting two new tasks. Tasks for services that do not use a load
3379//    balancer are considered healthy if they are in the RUNNING state. Tasks
3380//    for services that use a load balancer are considered healthy if they are
3381//    in the RUNNING state and the container instance they are hosted on is
3382//    reported as healthy by the load balancer.
3383//
3384//    * The maximumPercent parameter represents an upper limit on the number
3385//    of running tasks during a deployment, which enables you to define the
3386//    deployment batch size. For example, if desiredCount is four tasks, a maximum
3387//    of 200% starts four new tasks before stopping the four older tasks (provided
3388//    that the cluster resources required to do this are available).
3389//
3390// When UpdateService stops a task during a deployment, the equivalent of docker
3391// stop is issued to the containers running in the task. This results in a SIGTERM
3392// and a 30-second timeout, after which SIGKILL is sent and the containers are
3393// forcibly stopped. If the container handles the SIGTERM gracefully and exits
3394// within 30 seconds from receiving it, no SIGKILL is sent.
3395//
3396// When the service scheduler launches new tasks, it determines task placement
3397// in your cluster with the following logic:
3398//
3399//    * Determine which of the container instances in your cluster can support
3400//    your service's task definition (for example, they have the required CPU,
3401//    memory, ports, and container instance attributes).
3402//
3403//    * By default, the service scheduler attempts to balance tasks across Availability
3404//    Zones in this manner (although you can choose a different placement strategy):
3405//
3406// Sort the valid container instances by the fewest number of running tasks
3407//    for this service in the same Availability Zone as the instance. For example,
3408//    if zone A has one running service task and zones B and C each have zero,
3409//    valid container instances in either zone B or C are considered optimal
3410//    for placement.
3411//
3412// Place the new service task on a valid container instance in an optimal Availability
3413//    Zone (based on the previous steps), favoring container instances with
3414//    the fewest number of running tasks for this service.
3415//
3416// When the service scheduler stops running tasks, it attempts to maintain balance
3417// across the Availability Zones in your cluster using the following logic:
3418//
3419//    * Sort the container instances by the largest number of running tasks
3420//    for this service in the same Availability Zone as the instance. For example,
3421//    if zone A has one running service task and zones B and C each have two,
3422//    container instances in either zone B or C are considered optimal for termination.
3423//
3424//    * Stop the task on a container instance in an optimal Availability Zone
3425//    (based on the previous steps), favoring container instances with the largest
3426//    number of running tasks for this service.
3427//
3428// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3429// with awserr.Error's Code and Message methods to get detailed information about
3430// the error.
3431//
3432// See the AWS API reference guide for Amazon EC2 Container Service's
3433// API operation UpdateService for usage and error information.
3434//
3435// Returned Error Codes:
3436//   * ErrCodeServerException "ServerException"
3437//   These errors are usually caused by a server issue.
3438//
3439//   * ErrCodeClientException "ClientException"
3440//   These errors are usually caused by a client action, such as using an action
3441//   or resource on behalf of a user that doesn't have permission to use the action
3442//   or resource, or specifying an identifier that is not valid.
3443//
3444//   * ErrCodeInvalidParameterException "InvalidParameterException"
3445//   The specified parameter is invalid. Review the available parameters for the
3446//   API request.
3447//
3448//   * ErrCodeClusterNotFoundException "ClusterNotFoundException"
3449//   The specified cluster could not be found. You can view your available clusters
3450//   with ListClusters. Amazon ECS clusters are region-specific.
3451//
3452//   * ErrCodeServiceNotFoundException "ServiceNotFoundException"
3453//   The specified service could not be found. You can view your available services
3454//   with ListServices. Amazon ECS services are cluster-specific and region-specific.
3455//
3456//   * ErrCodeServiceNotActiveException "ServiceNotActiveException"
3457//   The specified service is not active. You cannot update a service that is
3458//   not active. If you have previously deleted a service, you can re-create it
3459//   with CreateService.
3460//
3461// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
3462func (c *ECS) UpdateService(input *UpdateServiceInput) (*UpdateServiceOutput, error) {
3463	req, out := c.UpdateServiceRequest(input)
3464	return out, req.Send()
3465}
3466
3467// UpdateServiceWithContext is the same as UpdateService with the addition of
3468// the ability to pass a context and additional request options.
3469//
3470// See UpdateService for details on how to use this API operation.
3471//
3472// The context must be non-nil and will be used for request cancellation. If
3473// the context is nil a panic will occur. In the future the SDK may create
3474// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3475// for more information on using Contexts.
3476func (c *ECS) UpdateServiceWithContext(ctx aws.Context, input *UpdateServiceInput, opts ...request.Option) (*UpdateServiceOutput, error) {
3477	req, out := c.UpdateServiceRequest(input)
3478	req.SetContext(ctx)
3479	req.ApplyOptions(opts...)
3480	return out, req.Send()
3481}
3482
3483// An attribute is a name-value pair associated with an Amazon ECS object. Attributes
3484// enable you to extend the Amazon ECS data model by adding custom metadata
3485// to your resources. For more information, see Attributes (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
3486// in the Amazon EC2 Container Service Developer Guide.
3487// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Attribute
3488type Attribute struct {
3489	_ struct{} `type:"structure"`
3490
3491	// The name of the attribute. Up to 128 letters (uppercase and lowercase), numbers,
3492	// hyphens, underscores, and periods are allowed.
3493	//
3494	// Name is a required field
3495	Name *string `locationName:"name" type:"string" required:"true"`
3496
3497	// The ID of the target. You can specify the short form ID for a resource or
3498	// the full Amazon Resource Name (ARN).
3499	TargetId *string `locationName:"targetId" type:"string"`
3500
3501	// The type of the target with which to attach the attribute. This parameter
3502	// is required if you use the short form ID for a resource instead of the full
3503	// Amazon Resource Name (ARN).
3504	TargetType *string `locationName:"targetType" type:"string" enum:"TargetType"`
3505
3506	// The value of the attribute. Up to 128 letters (uppercase and lowercase),
3507	// numbers, hyphens, underscores, periods, at signs (@), forward slashes, colons,
3508	// and spaces are allowed.
3509	Value *string `locationName:"value" type:"string"`
3510}
3511
3512// String returns the string representation
3513func (s Attribute) String() string {
3514	return awsutil.Prettify(s)
3515}
3516
3517// GoString returns the string representation
3518func (s Attribute) GoString() string {
3519	return s.String()
3520}
3521
3522// Validate inspects the fields of the type to determine if they are valid.
3523func (s *Attribute) Validate() error {
3524	invalidParams := request.ErrInvalidParams{Context: "Attribute"}
3525	if s.Name == nil {
3526		invalidParams.Add(request.NewErrParamRequired("Name"))
3527	}
3528
3529	if invalidParams.Len() > 0 {
3530		return invalidParams
3531	}
3532	return nil
3533}
3534
3535// SetName sets the Name field's value.
3536func (s *Attribute) SetName(v string) *Attribute {
3537	s.Name = &v
3538	return s
3539}
3540
3541// SetTargetId sets the TargetId field's value.
3542func (s *Attribute) SetTargetId(v string) *Attribute {
3543	s.TargetId = &v
3544	return s
3545}
3546
3547// SetTargetType sets the TargetType field's value.
3548func (s *Attribute) SetTargetType(v string) *Attribute {
3549	s.TargetType = &v
3550	return s
3551}
3552
3553// SetValue sets the Value field's value.
3554func (s *Attribute) SetValue(v string) *Attribute {
3555	s.Value = &v
3556	return s
3557}
3558
3559// A regional grouping of one or more container instances on which you can run
3560// task requests. Each account receives a default cluster the first time you
3561// use the Amazon ECS service, but you may also create other clusters. Clusters
3562// may contain more than one instance type simultaneously.
3563// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Cluster
3564type Cluster struct {
3565	_ struct{} `type:"structure"`
3566
3567	// The number of services that are running on the cluster in an ACTIVE state.
3568	// You can view these services with ListServices.
3569	ActiveServicesCount *int64 `locationName:"activeServicesCount" type:"integer"`
3570
3571	// The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains
3572	// the arn:aws:ecs namespace, followed by the region of the cluster, the AWS
3573	// account ID of the cluster owner, the cluster namespace, and then the cluster
3574	// name. For example, arn:aws:ecs:region:012345678910:cluster/test..
3575	ClusterArn *string `locationName:"clusterArn" type:"string"`
3576
3577	// A user-generated string that you use to identify your cluster.
3578	ClusterName *string `locationName:"clusterName" type:"string"`
3579
3580	// The number of tasks in the cluster that are in the PENDING state.
3581	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
3582
3583	// The number of container instances registered into the cluster.
3584	RegisteredContainerInstancesCount *int64 `locationName:"registeredContainerInstancesCount" type:"integer"`
3585
3586	// The number of tasks in the cluster that are in the RUNNING state.
3587	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
3588
3589	// The status of the cluster. The valid values are ACTIVE or INACTIVE. ACTIVE
3590	// indicates that you can register container instances with the cluster and
3591	// the associated instances can accept tasks.
3592	Status *string `locationName:"status" type:"string"`
3593}
3594
3595// String returns the string representation
3596func (s Cluster) String() string {
3597	return awsutil.Prettify(s)
3598}
3599
3600// GoString returns the string representation
3601func (s Cluster) GoString() string {
3602	return s.String()
3603}
3604
3605// SetActiveServicesCount sets the ActiveServicesCount field's value.
3606func (s *Cluster) SetActiveServicesCount(v int64) *Cluster {
3607	s.ActiveServicesCount = &v
3608	return s
3609}
3610
3611// SetClusterArn sets the ClusterArn field's value.
3612func (s *Cluster) SetClusterArn(v string) *Cluster {
3613	s.ClusterArn = &v
3614	return s
3615}
3616
3617// SetClusterName sets the ClusterName field's value.
3618func (s *Cluster) SetClusterName(v string) *Cluster {
3619	s.ClusterName = &v
3620	return s
3621}
3622
3623// SetPendingTasksCount sets the PendingTasksCount field's value.
3624func (s *Cluster) SetPendingTasksCount(v int64) *Cluster {
3625	s.PendingTasksCount = &v
3626	return s
3627}
3628
3629// SetRegisteredContainerInstancesCount sets the RegisteredContainerInstancesCount field's value.
3630func (s *Cluster) SetRegisteredContainerInstancesCount(v int64) *Cluster {
3631	s.RegisteredContainerInstancesCount = &v
3632	return s
3633}
3634
3635// SetRunningTasksCount sets the RunningTasksCount field's value.
3636func (s *Cluster) SetRunningTasksCount(v int64) *Cluster {
3637	s.RunningTasksCount = &v
3638	return s
3639}
3640
3641// SetStatus sets the Status field's value.
3642func (s *Cluster) SetStatus(v string) *Cluster {
3643	s.Status = &v
3644	return s
3645}
3646
3647// A Docker container that is part of a task.
3648// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Container
3649type Container struct {
3650	_ struct{} `type:"structure"`
3651
3652	// The Amazon Resource Name (ARN) of the container.
3653	ContainerArn *string `locationName:"containerArn" type:"string"`
3654
3655	// The exit code returned from the container.
3656	ExitCode *int64 `locationName:"exitCode" type:"integer"`
3657
3658	// The last known status of the container.
3659	LastStatus *string `locationName:"lastStatus" type:"string"`
3660
3661	// The name of the container.
3662	Name *string `locationName:"name" type:"string"`
3663
3664	// The network bindings associated with the container.
3665	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
3666
3667	// A short (255 max characters) human-readable string to provide additional
3668	// details about a running or stopped container.
3669	Reason *string `locationName:"reason" type:"string"`
3670
3671	// The Amazon Resource Name (ARN) of the task.
3672	TaskArn *string `locationName:"taskArn" type:"string"`
3673}
3674
3675// String returns the string representation
3676func (s Container) String() string {
3677	return awsutil.Prettify(s)
3678}
3679
3680// GoString returns the string representation
3681func (s Container) GoString() string {
3682	return s.String()
3683}
3684
3685// SetContainerArn sets the ContainerArn field's value.
3686func (s *Container) SetContainerArn(v string) *Container {
3687	s.ContainerArn = &v
3688	return s
3689}
3690
3691// SetExitCode sets the ExitCode field's value.
3692func (s *Container) SetExitCode(v int64) *Container {
3693	s.ExitCode = &v
3694	return s
3695}
3696
3697// SetLastStatus sets the LastStatus field's value.
3698func (s *Container) SetLastStatus(v string) *Container {
3699	s.LastStatus = &v
3700	return s
3701}
3702
3703// SetName sets the Name field's value.
3704func (s *Container) SetName(v string) *Container {
3705	s.Name = &v
3706	return s
3707}
3708
3709// SetNetworkBindings sets the NetworkBindings field's value.
3710func (s *Container) SetNetworkBindings(v []*NetworkBinding) *Container {
3711	s.NetworkBindings = v
3712	return s
3713}
3714
3715// SetReason sets the Reason field's value.
3716func (s *Container) SetReason(v string) *Container {
3717	s.Reason = &v
3718	return s
3719}
3720
3721// SetTaskArn sets the TaskArn field's value.
3722func (s *Container) SetTaskArn(v string) *Container {
3723	s.TaskArn = &v
3724	return s
3725}
3726
3727// Container definitions are used in task definitions to describe the different
3728// containers that are launched as part of a task.
3729// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ContainerDefinition
3730type ContainerDefinition struct {
3731	_ struct{} `type:"structure"`
3732
3733	// The command that is passed to the container. This parameter maps to Cmd in
3734	// the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
3735	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
3736	// and the COMMAND parameter to docker run (https://docs.docker.com/engine/reference/run/).
3737	// For more information, see https://docs.docker.com/engine/reference/builder/#cmd
3738	// (https://docs.docker.com/engine/reference/builder/#cmd).
3739	Command []*string `locationName:"command" type:"list"`
3740
3741	// The number of cpu units reserved for the container. A container instance
3742	// has 1,024 cpu units for every CPU core. This parameter specifies the minimum
3743	// amount of CPU to reserve for a container, and containers share unallocated
3744	// CPU units with other containers on the instance with the same ratio as their
3745	// allocated amount. This parameter maps to CpuShares in the Create a container
3746	// (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
3747	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
3748	// and the --cpu-shares option to docker run (https://docs.docker.com/engine/reference/run/).
3749	//
3750	// You can determine the number of CPU units that are available per EC2 instance
3751	// type by multiplying the vCPUs listed for that instance type on the Amazon
3752	// EC2 Instances (http://aws.amazon.com/ec2/instance-types/) detail page by
3753	// 1,024.
3754	//
3755	// For example, if you run a single-container task on a single-core instance
3756	// type with 512 CPU units specified for that container, and that is the only
3757	// task running on the container instance, that container could use the full
3758	// 1,024 CPU unit share at any given time. However, if you launched another
3759	// copy of the same task on that container instance, each task would be guaranteed
3760	// a minimum of 512 CPU units when needed, and each container could float to
3761	// higher CPU usage if the other container was not using it, but if both tasks
3762	// were 100% active all of the time, they would be limited to 512 CPU units.
3763	//
3764	// The Docker daemon on the container instance uses the CPU value to calculate
3765	// the relative CPU share ratios for running containers. For more information,
3766	// see CPU share constraint (https://docs.docker.com/engine/reference/run/#cpu-share-constraint)
3767	// in the Docker documentation. The minimum valid CPU share value that the Linux
3768	// kernel allows is 2; however, the CPU parameter is not required, and you can
3769	// use CPU values below 2 in your container definitions. For CPU values below
3770	// 2 (including null), the behavior varies based on your Amazon ECS container
3771	// agent version:
3772	//
3773	//    * Agent versions less than or equal to 1.1.0: Null and zero CPU values
3774	//    are passed to Docker as 0, which Docker then converts to 1,024 CPU shares.
3775	//    CPU values of 1 are passed to Docker as 1, which the Linux kernel converts
3776	//    to 2 CPU shares.
3777	//
3778	//    * Agent versions greater than or equal to 1.2.0: Null, zero, and CPU values
3779	//    of 1 are passed to Docker as 2.
3780	Cpu *int64 `locationName:"cpu" type:"integer"`
3781
3782	// When this parameter is true, networking is disabled within the container.
3783	// This parameter maps to NetworkDisabled in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
3784	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/).
3785	DisableNetworking *bool `locationName:"disableNetworking" type:"boolean"`
3786
3787	// A list of DNS search domains that are presented to the container. This parameter
3788	// maps to DnsSearch in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
3789	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
3790	// and the --dns-search option to docker run (https://docs.docker.com/engine/reference/run/).
3791	DnsSearchDomains []*string `locationName:"dnsSearchDomains" type:"list"`
3792
3793	// A list of DNS servers that are presented to the container. This parameter
3794	// maps to Dns in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
3795	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
3796	// and the --dns option to docker run (https://docs.docker.com/engine/reference/run/).
3797	DnsServers []*string `locationName:"dnsServers" type:"list"`
3798
3799	// A key/value map of labels to add to the container. This parameter maps to
3800	// Labels in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
3801	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
3802	// and the --label option to docker run (https://docs.docker.com/engine/reference/run/).
3803	// This parameter requires version 1.18 of the Docker Remote API or greater
3804	// on your container instance. To check the Docker Remote API version on your
3805	// container instance, log into your container instance and run the following
3806	// command: sudo docker version | grep "Server API version"
3807	DockerLabels map[string]*string `locationName:"dockerLabels" type:"map"`
3808
3809	// A list of strings to provide custom labels for SELinux and AppArmor multi-level
3810	// security systems. This parameter maps to SecurityOpt in the Create a container
3811	// (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
3812	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
3813	// and the --security-opt option to docker run (https://docs.docker.com/engine/reference/run/).
3814	//
3815	// The Amazon ECS container agent running on a container instance must register
3816	// with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment
3817	// variables before containers placed on that instance can use these security
3818	// options. For more information, see Amazon ECS Container Agent Configuration
3819	// (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
3820	// in the Amazon EC2 Container Service Developer Guide.
3821	DockerSecurityOptions []*string `locationName:"dockerSecurityOptions" type:"list"`
3822
3823	// Early versions of the Amazon ECS container agent do not properly handle entryPoint
3824	// parameters. If you have problems using entryPoint, update your container
3825	// agent or enter your commands and arguments as command array items instead.
3826	//
3827	// The entry point that is passed to the container. This parameter maps to Entrypoint
3828	// in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
3829	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
3830	// and the --entrypoint option to docker run (https://docs.docker.com/engine/reference/run/).
3831	// For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint
3832	// (https://docs.docker.com/engine/reference/builder/#entrypoint).
3833	EntryPoint []*string `locationName:"entryPoint" type:"list"`
3834
3835	// The environment variables to pass to a container. This parameter maps to
3836	// Env in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
3837	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
3838	// and the --env option to docker run (https://docs.docker.com/engine/reference/run/).
3839	//
3840	// We do not recommend using plain text environment variables for sensitive
3841	// information, such as credential data.
3842	Environment []*KeyValuePair `locationName:"environment" type:"list"`
3843
3844	// If the essential parameter of a container is marked as true, and that container
3845	// fails or stops for any reason, all other containers that are part of the
3846	// task are stopped. If the essential parameter of a container is marked as
3847	// false, then its failure does not affect the rest of the containers in a task.
3848	// If this parameter is omitted, a container is assumed to be essential.
3849	//
3850	// All tasks must have at least one essential container. If you have an application
3851	// that is composed of multiple containers, you should group containers that
3852	// are used for a common purpose into components, and separate the different
3853	// components into multiple task definitions. For more information, see Application
3854	// Architecture (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html)
3855	// in the Amazon EC2 Container Service Developer Guide.
3856	Essential *bool `locationName:"essential" type:"boolean"`
3857
3858	// A list of hostnames and IP address mappings to append to the /etc/hosts file
3859	// on the container. This parameter maps to ExtraHosts in the Create a container
3860	// (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
3861	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
3862	// and the --add-host option to docker run (https://docs.docker.com/engine/reference/run/).
3863	ExtraHosts []*HostEntry `locationName:"extraHosts" type:"list"`
3864
3865	// The hostname to use for your container. This parameter maps to Hostname in
3866	// the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
3867	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
3868	// and the --hostname option to docker run (https://docs.docker.com/engine/reference/run/).
3869	Hostname *string `locationName:"hostname" type:"string"`
3870
3871	// The image used to start a container. This string is passed directly to the
3872	// Docker daemon. Images in the Docker Hub registry are available by default.
3873	// Other repositories are specified with either repository-url/image:tag or
3874	// repository-url/image@digest. Up to 255 letters (uppercase and lowercase),
3875	// numbers, hyphens, underscores, colons, periods, forward slashes, and number
3876	// signs are allowed. This parameter maps to Image in the Create a container
3877	// (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
3878	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
3879	// and the IMAGE parameter of docker run (https://docs.docker.com/engine/reference/run/).
3880	//
3881	//    * Images in Amazon ECR repositories can be specified by either using the
3882	//    full registry/repository:tag or registry/repository@digest. For example,
3883	//    012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest
3884	//    or 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE.
3885	//
3886	//
3887	//    * Images in official repositories on Docker Hub use a single name (for
3888	//    example, ubuntu or mongo).
3889	//
3890	//    * Images in other repositories on Docker Hub are qualified with an organization
3891	//    name (for example, amazon/amazon-ecs-agent).
3892	//
3893	//    * Images in other online repositories are qualified further by a domain
3894	//    name (for example, quay.io/assemblyline/ubuntu).
3895	Image *string `locationName:"image" type:"string"`
3896
3897	// The link parameter allows containers to communicate with each other without
3898	// the need for port mappings, using the name parameter and optionally, an alias
3899	// for the link. This construct is analogous to name:alias in Docker links.
3900	// Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores
3901	// are allowed for each name and alias. For more information on linking Docker
3902	// containers, see https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/
3903	// (https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/).
3904	// This parameter maps to Links in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
3905	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
3906	// and the --link option to docker run (https://docs.docker.com/engine/reference/run/).
3907	//
3908	// Containers that are collocated on a single container instance may be able
3909	// to communicate with each other without requiring links or host port mappings.
3910	// Network isolation is achieved on the container instance using security groups
3911	// and VPC settings.
3912	Links []*string `locationName:"links" type:"list"`
3913
3914	// Linux-specific modifications that are applied to the container, such as Linux
3915	// KernelCapabilities.
3916	LinuxParameters *LinuxParameters `locationName:"linuxParameters" type:"structure"`
3917
3918	// The log configuration specification for the container. This parameter maps
3919	// to LogConfig in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
3920	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
3921	// and the --log-driver option to docker run (https://docs.docker.com/engine/reference/run/).
3922	// By default, containers use the same logging driver that the Docker daemon
3923	// uses; however the container may use a different logging driver than the Docker
3924	// daemon by specifying a log driver with this parameter in the container definition.
3925	// To use a different logging driver for a container, the log system must be
3926	// configured properly on the container instance (or on a different log server
3927	// for remote logging options). For more information on the options for different
3928	// supported log drivers, see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
3929	// in the Docker documentation.
3930	//
3931	// Amazon ECS currently supports a subset of the logging drivers available to
3932	// the Docker daemon (shown in the LogConfiguration data type). Additional log
3933	// drivers may be available in future releases of the Amazon ECS container agent.
3934	//
3935	// This parameter requires version 1.18 of the Docker Remote API or greater
3936	// on your container instance. To check the Docker Remote API version on your
3937	// container instance, log into your container instance and run the following
3938	// command: sudo docker version | grep "Server API version"
3939	//
3940	// The Amazon ECS container agent running on a container instance must register
3941	// the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS
3942	// environment variable before containers placed on that instance can use these
3943	// log configuration options. For more information, see Amazon ECS Container
3944	// Agent Configuration (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
3945	// in the Amazon EC2 Container Service Developer Guide.
3946	LogConfiguration *LogConfiguration `locationName:"logConfiguration" type:"structure"`
3947
3948	// The hard limit (in MiB) of memory to present to the container. If your container
3949	// attempts to exceed the memory specified here, the container is killed. This
3950	// parameter maps to Memory in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
3951	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
3952	// and the --memory option to docker run (https://docs.docker.com/engine/reference/run/).
3953	//
3954	// You must specify a non-zero integer for one or both of memory or memoryReservation
3955	// in container definitions. If you specify both, memory must be greater than
3956	// memoryReservation. If you specify memoryReservation, then that value is subtracted
3957	// from the available memory resources for the container instance on which the
3958	// container is placed; otherwise, the value of memory is used.
3959	//
3960	// The Docker daemon reserves a minimum of 4 MiB of memory for a container,
3961	// so you should not specify fewer than 4 MiB of memory for your containers.
3962	Memory *int64 `locationName:"memory" type:"integer"`
3963
3964	// The soft limit (in MiB) of memory to reserve for the container. When system
3965	// memory is under heavy contention, Docker attempts to keep the container memory
3966	// to this soft limit; however, your container can consume more memory when
3967	// it needs to, up to either the hard limit specified with the memory parameter
3968	// (if applicable), or all of the available memory on the container instance,
3969	// whichever comes first. This parameter maps to MemoryReservation in the Create
3970	// a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
3971	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
3972	// and the --memory-reservation option to docker run (https://docs.docker.com/engine/reference/run/).
3973	//
3974	// You must specify a non-zero integer for one or both of memory or memoryReservation
3975	// in container definitions. If you specify both, memory must be greater than
3976	// memoryReservation. If you specify memoryReservation, then that value is subtracted
3977	// from the available memory resources for the container instance on which the
3978	// container is placed; otherwise, the value of memory is used.
3979	//
3980	// For example, if your container normally uses 128 MiB of memory, but occasionally
3981	// bursts to 256 MiB of memory for short periods of time, you can set a memoryReservation
3982	// of 128 MiB, and a memory hard limit of 300 MiB. This configuration would
3983	// allow the container to only reserve 128 MiB of memory from the remaining
3984	// resources on the container instance, but also allow the container to consume
3985	// more memory resources when needed.
3986	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
3987
3988	// The mount points for data volumes in your container. This parameter maps
3989	// to Volumes in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
3990	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
3991	// and the --volume option to docker run (https://docs.docker.com/engine/reference/run/).
3992	MountPoints []*MountPoint `locationName:"mountPoints" type:"list"`
3993
3994	// The name of a container. If you are linking multiple containers together
3995	// in a task definition, the name of one container can be entered in the links
3996	// of another container to connect the containers. Up to 255 letters (uppercase
3997	// and lowercase), numbers, hyphens, and underscores are allowed. This parameter
3998	// maps to name in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
3999	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
4000	// and the --name option to docker run (https://docs.docker.com/engine/reference/run/).
4001	Name *string `locationName:"name" type:"string"`
4002
4003	// The list of port mappings for the container. Port mappings allow containers
4004	// to access ports on the host container instance to send or receive traffic.
4005	// This parameter maps to PortBindings in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
4006	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
4007	// and the --publish option to docker run (https://docs.docker.com/engine/reference/run/).
4008	// If the network mode of a task definition is set to none, then you cannot
4009	// specify port mappings. If the network mode of a task definition is set to
4010	// host, then host ports must either be undefined or they must match the container
4011	// port in the port mapping.
4012	//
4013	// After a task reaches the RUNNING status, manual and automatic host and container
4014	// port assignments are visible in the Network Bindings section of a container
4015	// description of a selected task in the Amazon ECS console, or the networkBindings
4016	// section DescribeTasks responses.
4017	PortMappings []*PortMapping `locationName:"portMappings" type:"list"`
4018
4019	// When this parameter is true, the container is given elevated privileges on
4020	// the host container instance (similar to the root user). This parameter maps
4021	// to Privileged in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
4022	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
4023	// and the --privileged option to docker run (https://docs.docker.com/engine/reference/run/).
4024	Privileged *bool `locationName:"privileged" type:"boolean"`
4025
4026	// When this parameter is true, the container is given read-only access to its
4027	// root file system. This parameter maps to ReadonlyRootfs in the Create a container
4028	// (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
4029	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
4030	// and the --read-only option to docker run.
4031	ReadonlyRootFilesystem *bool `locationName:"readonlyRootFilesystem" type:"boolean"`
4032
4033	// A list of ulimits to set in the container. This parameter maps to Ulimits
4034	// in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
4035	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
4036	// and the --ulimit option to docker run (https://docs.docker.com/engine/reference/run/).
4037	// Valid naming values are displayed in the Ulimit data type. This parameter
4038	// requires version 1.18 of the Docker Remote API or greater on your container
4039	// instance. To check the Docker Remote API version on your container instance,
4040	// log into your container instance and run the following command: sudo docker
4041	// version | grep "Server API version"
4042	Ulimits []*Ulimit `locationName:"ulimits" type:"list"`
4043
4044	// The user name to use inside the container. This parameter maps to User in
4045	// the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
4046	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
4047	// and the --user option to docker run (https://docs.docker.com/engine/reference/run/).
4048	User *string `locationName:"user" type:"string"`
4049
4050	// Data volumes to mount from another container. This parameter maps to VolumesFrom
4051	// in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
4052	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
4053	// and the --volumes-from option to docker run (https://docs.docker.com/engine/reference/run/).
4054	VolumesFrom []*VolumeFrom `locationName:"volumesFrom" type:"list"`
4055
4056	// The working directory in which to run commands inside the container. This
4057	// parameter maps to WorkingDir in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
4058	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
4059	// and the --workdir option to docker run (https://docs.docker.com/engine/reference/run/).
4060	WorkingDirectory *string `locationName:"workingDirectory" type:"string"`
4061}
4062
4063// String returns the string representation
4064func (s ContainerDefinition) String() string {
4065	return awsutil.Prettify(s)
4066}
4067
4068// GoString returns the string representation
4069func (s ContainerDefinition) GoString() string {
4070	return s.String()
4071}
4072
4073// Validate inspects the fields of the type to determine if they are valid.
4074func (s *ContainerDefinition) Validate() error {
4075	invalidParams := request.ErrInvalidParams{Context: "ContainerDefinition"}
4076	if s.ExtraHosts != nil {
4077		for i, v := range s.ExtraHosts {
4078			if v == nil {
4079				continue
4080			}
4081			if err := v.Validate(); err != nil {
4082				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExtraHosts", i), err.(request.ErrInvalidParams))
4083			}
4084		}
4085	}
4086	if s.LogConfiguration != nil {
4087		if err := s.LogConfiguration.Validate(); err != nil {
4088			invalidParams.AddNested("LogConfiguration", err.(request.ErrInvalidParams))
4089		}
4090	}
4091	if s.Ulimits != nil {
4092		for i, v := range s.Ulimits {
4093			if v == nil {
4094				continue
4095			}
4096			if err := v.Validate(); err != nil {
4097				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Ulimits", i), err.(request.ErrInvalidParams))
4098			}
4099		}
4100	}
4101
4102	if invalidParams.Len() > 0 {
4103		return invalidParams
4104	}
4105	return nil
4106}
4107
4108// SetCommand sets the Command field's value.
4109func (s *ContainerDefinition) SetCommand(v []*string) *ContainerDefinition {
4110	s.Command = v
4111	return s
4112}
4113
4114// SetCpu sets the Cpu field's value.
4115func (s *ContainerDefinition) SetCpu(v int64) *ContainerDefinition {
4116	s.Cpu = &v
4117	return s
4118}
4119
4120// SetDisableNetworking sets the DisableNetworking field's value.
4121func (s *ContainerDefinition) SetDisableNetworking(v bool) *ContainerDefinition {
4122	s.DisableNetworking = &v
4123	return s
4124}
4125
4126// SetDnsSearchDomains sets the DnsSearchDomains field's value.
4127func (s *ContainerDefinition) SetDnsSearchDomains(v []*string) *ContainerDefinition {
4128	s.DnsSearchDomains = v
4129	return s
4130}
4131
4132// SetDnsServers sets the DnsServers field's value.
4133func (s *ContainerDefinition) SetDnsServers(v []*string) *ContainerDefinition {
4134	s.DnsServers = v
4135	return s
4136}
4137
4138// SetDockerLabels sets the DockerLabels field's value.
4139func (s *ContainerDefinition) SetDockerLabels(v map[string]*string) *ContainerDefinition {
4140	s.DockerLabels = v
4141	return s
4142}
4143
4144// SetDockerSecurityOptions sets the DockerSecurityOptions field's value.
4145func (s *ContainerDefinition) SetDockerSecurityOptions(v []*string) *ContainerDefinition {
4146	s.DockerSecurityOptions = v
4147	return s
4148}
4149
4150// SetEntryPoint sets the EntryPoint field's value.
4151func (s *ContainerDefinition) SetEntryPoint(v []*string) *ContainerDefinition {
4152	s.EntryPoint = v
4153	return s
4154}
4155
4156// SetEnvironment sets the Environment field's value.
4157func (s *ContainerDefinition) SetEnvironment(v []*KeyValuePair) *ContainerDefinition {
4158	s.Environment = v
4159	return s
4160}
4161
4162// SetEssential sets the Essential field's value.
4163func (s *ContainerDefinition) SetEssential(v bool) *ContainerDefinition {
4164	s.Essential = &v
4165	return s
4166}
4167
4168// SetExtraHosts sets the ExtraHosts field's value.
4169func (s *ContainerDefinition) SetExtraHosts(v []*HostEntry) *ContainerDefinition {
4170	s.ExtraHosts = v
4171	return s
4172}
4173
4174// SetHostname sets the Hostname field's value.
4175func (s *ContainerDefinition) SetHostname(v string) *ContainerDefinition {
4176	s.Hostname = &v
4177	return s
4178}
4179
4180// SetImage sets the Image field's value.
4181func (s *ContainerDefinition) SetImage(v string) *ContainerDefinition {
4182	s.Image = &v
4183	return s
4184}
4185
4186// SetLinks sets the Links field's value.
4187func (s *ContainerDefinition) SetLinks(v []*string) *ContainerDefinition {
4188	s.Links = v
4189	return s
4190}
4191
4192// SetLinuxParameters sets the LinuxParameters field's value.
4193func (s *ContainerDefinition) SetLinuxParameters(v *LinuxParameters) *ContainerDefinition {
4194	s.LinuxParameters = v
4195	return s
4196}
4197
4198// SetLogConfiguration sets the LogConfiguration field's value.
4199func (s *ContainerDefinition) SetLogConfiguration(v *LogConfiguration) *ContainerDefinition {
4200	s.LogConfiguration = v
4201	return s
4202}
4203
4204// SetMemory sets the Memory field's value.
4205func (s *ContainerDefinition) SetMemory(v int64) *ContainerDefinition {
4206	s.Memory = &v
4207	return s
4208}
4209
4210// SetMemoryReservation sets the MemoryReservation field's value.
4211func (s *ContainerDefinition) SetMemoryReservation(v int64) *ContainerDefinition {
4212	s.MemoryReservation = &v
4213	return s
4214}
4215
4216// SetMountPoints sets the MountPoints field's value.
4217func (s *ContainerDefinition) SetMountPoints(v []*MountPoint) *ContainerDefinition {
4218	s.MountPoints = v
4219	return s
4220}
4221
4222// SetName sets the Name field's value.
4223func (s *ContainerDefinition) SetName(v string) *ContainerDefinition {
4224	s.Name = &v
4225	return s
4226}
4227
4228// SetPortMappings sets the PortMappings field's value.
4229func (s *ContainerDefinition) SetPortMappings(v []*PortMapping) *ContainerDefinition {
4230	s.PortMappings = v
4231	return s
4232}
4233
4234// SetPrivileged sets the Privileged field's value.
4235func (s *ContainerDefinition) SetPrivileged(v bool) *ContainerDefinition {
4236	s.Privileged = &v
4237	return s
4238}
4239
4240// SetReadonlyRootFilesystem sets the ReadonlyRootFilesystem field's value.
4241func (s *ContainerDefinition) SetReadonlyRootFilesystem(v bool) *ContainerDefinition {
4242	s.ReadonlyRootFilesystem = &v
4243	return s
4244}
4245
4246// SetUlimits sets the Ulimits field's value.
4247func (s *ContainerDefinition) SetUlimits(v []*Ulimit) *ContainerDefinition {
4248	s.Ulimits = v
4249	return s
4250}
4251
4252// SetUser sets the User field's value.
4253func (s *ContainerDefinition) SetUser(v string) *ContainerDefinition {
4254	s.User = &v
4255	return s
4256}
4257
4258// SetVolumesFrom sets the VolumesFrom field's value.
4259func (s *ContainerDefinition) SetVolumesFrom(v []*VolumeFrom) *ContainerDefinition {
4260	s.VolumesFrom = v
4261	return s
4262}
4263
4264// SetWorkingDirectory sets the WorkingDirectory field's value.
4265func (s *ContainerDefinition) SetWorkingDirectory(v string) *ContainerDefinition {
4266	s.WorkingDirectory = &v
4267	return s
4268}
4269
4270// An EC2 instance that is running the Amazon ECS agent and has been registered
4271// with a cluster.
4272// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ContainerInstance
4273type ContainerInstance struct {
4274	_ struct{} `type:"structure"`
4275
4276	// This parameter returns true if the agent is actually connected to Amazon
4277	// ECS. Registered instances with an agent that may be unhealthy or stopped
4278	// return false, and instances without a connected agent cannot accept placement
4279	// requests.
4280	AgentConnected *bool `locationName:"agentConnected" type:"boolean"`
4281
4282	// The status of the most recent agent update. If an update has never been requested,
4283	// this value is NULL.
4284	AgentUpdateStatus *string `locationName:"agentUpdateStatus" type:"string" enum:"AgentUpdateStatus"`
4285
4286	// The attributes set for the container instance, either by the Amazon ECS container
4287	// agent at instance registration or manually with the PutAttributes operation.
4288	Attributes []*Attribute `locationName:"attributes" type:"list"`
4289
4290	// The Amazon Resource Name (ARN) of the container instance. The ARN contains
4291	// the arn:aws:ecs namespace, followed by the region of the container instance,
4292	// the AWS account ID of the container instance owner, the container-instance
4293	// namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
4294	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
4295
4296	// The EC2 instance ID of the container instance.
4297	Ec2InstanceId *string `locationName:"ec2InstanceId" type:"string"`
4298
4299	// The number of tasks on the container instance that are in the PENDING status.
4300	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
4301
4302	// The Unix timestamp for when the container instance was registered.
4303	RegisteredAt *time.Time `locationName:"registeredAt" type:"timestamp" timestampFormat:"unix"`
4304
4305	// For most resource types, this parameter describes the registered resources
4306	// on the container instance that are in use by current tasks. For port resource
4307	// types, this parameter describes the ports that were reserved by the Amazon
4308	// ECS container agent when it registered the container instance with Amazon
4309	// ECS.
4310	RegisteredResources []*Resource `locationName:"registeredResources" type:"list"`
4311
4312	// For most resource types, this parameter describes the remaining resources
4313	// of the container instance that are available for new tasks. For port resource
4314	// types, this parameter describes the ports that are reserved by the Amazon
4315	// ECS container agent and any containers that have reserved port mappings;
4316	// any port that is not specified here is available for new tasks.
4317	RemainingResources []*Resource `locationName:"remainingResources" type:"list"`
4318
4319	// The number of tasks on the container instance that are in the RUNNING status.
4320	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
4321
4322	// The status of the container instance. The valid values are ACTIVE, INACTIVE,
4323	// or DRAINING. ACTIVE indicates that the container instance can accept tasks.
4324	// DRAINING indicates that new tasks are not placed on the container instance
4325	// and any service tasks running on the container instance are removed if possible.
4326	// For more information, see Container Instance Draining (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-draining.html)
4327	// in the Amazon EC2 Container Service Developer Guide.
4328	Status *string `locationName:"status" type:"string"`
4329
4330	// The version counter for the container instance. Every time a container instance
4331	// experiences a change that triggers a CloudWatch event, the version counter
4332	// is incremented. If you are replicating your Amazon ECS container instance
4333	// state with CloudWatch events, you can compare the version of a container
4334	// instance reported by the Amazon ECS APIs with the version reported in CloudWatch
4335	// events for the container instance (inside the detail object) to verify that
4336	// the version in your event stream is current.
4337	Version *int64 `locationName:"version" type:"long"`
4338
4339	// The version information for the Amazon ECS container agent and Docker daemon
4340	// running on the container instance.
4341	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
4342}
4343
4344// String returns the string representation
4345func (s ContainerInstance) String() string {
4346	return awsutil.Prettify(s)
4347}
4348
4349// GoString returns the string representation
4350func (s ContainerInstance) GoString() string {
4351	return s.String()
4352}
4353
4354// SetAgentConnected sets the AgentConnected field's value.
4355func (s *ContainerInstance) SetAgentConnected(v bool) *ContainerInstance {
4356	s.AgentConnected = &v
4357	return s
4358}
4359
4360// SetAgentUpdateStatus sets the AgentUpdateStatus field's value.
4361func (s *ContainerInstance) SetAgentUpdateStatus(v string) *ContainerInstance {
4362	s.AgentUpdateStatus = &v
4363	return s
4364}
4365
4366// SetAttributes sets the Attributes field's value.
4367func (s *ContainerInstance) SetAttributes(v []*Attribute) *ContainerInstance {
4368	s.Attributes = v
4369	return s
4370}
4371
4372// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
4373func (s *ContainerInstance) SetContainerInstanceArn(v string) *ContainerInstance {
4374	s.ContainerInstanceArn = &v
4375	return s
4376}
4377
4378// SetEc2InstanceId sets the Ec2InstanceId field's value.
4379func (s *ContainerInstance) SetEc2InstanceId(v string) *ContainerInstance {
4380	s.Ec2InstanceId = &v
4381	return s
4382}
4383
4384// SetPendingTasksCount sets the PendingTasksCount field's value.
4385func (s *ContainerInstance) SetPendingTasksCount(v int64) *ContainerInstance {
4386	s.PendingTasksCount = &v
4387	return s
4388}
4389
4390// SetRegisteredAt sets the RegisteredAt field's value.
4391func (s *ContainerInstance) SetRegisteredAt(v time.Time) *ContainerInstance {
4392	s.RegisteredAt = &v
4393	return s
4394}
4395
4396// SetRegisteredResources sets the RegisteredResources field's value.
4397func (s *ContainerInstance) SetRegisteredResources(v []*Resource) *ContainerInstance {
4398	s.RegisteredResources = v
4399	return s
4400}
4401
4402// SetRemainingResources sets the RemainingResources field's value.
4403func (s *ContainerInstance) SetRemainingResources(v []*Resource) *ContainerInstance {
4404	s.RemainingResources = v
4405	return s
4406}
4407
4408// SetRunningTasksCount sets the RunningTasksCount field's value.
4409func (s *ContainerInstance) SetRunningTasksCount(v int64) *ContainerInstance {
4410	s.RunningTasksCount = &v
4411	return s
4412}
4413
4414// SetStatus sets the Status field's value.
4415func (s *ContainerInstance) SetStatus(v string) *ContainerInstance {
4416	s.Status = &v
4417	return s
4418}
4419
4420// SetVersion sets the Version field's value.
4421func (s *ContainerInstance) SetVersion(v int64) *ContainerInstance {
4422	s.Version = &v
4423	return s
4424}
4425
4426// SetVersionInfo sets the VersionInfo field's value.
4427func (s *ContainerInstance) SetVersionInfo(v *VersionInfo) *ContainerInstance {
4428	s.VersionInfo = v
4429	return s
4430}
4431
4432// The overrides that should be sent to a container.
4433// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ContainerOverride
4434type ContainerOverride struct {
4435	_ struct{} `type:"structure"`
4436
4437	// The command to send to the container that overrides the default command from
4438	// the Docker image or the task definition. You must also specify a container
4439	// name.
4440	Command []*string `locationName:"command" type:"list"`
4441
4442	// The number of cpu units reserved for the container, instead of the default
4443	// value from the task definition. You must also specify a container name.
4444	Cpu *int64 `locationName:"cpu" type:"integer"`
4445
4446	// The environment variables to send to the container. You can add new environment
4447	// variables, which are added to the container at launch, or you can override
4448	// the existing environment variables from the Docker image or the task definition.
4449	// You must also specify a container name.
4450	Environment []*KeyValuePair `locationName:"environment" type:"list"`
4451
4452	// The hard limit (in MiB) of memory to present to the container, instead of
4453	// the default value from the task definition. If your container attempts to
4454	// exceed the memory specified here, the container is killed. You must also
4455	// specify a container name.
4456	Memory *int64 `locationName:"memory" type:"integer"`
4457
4458	// The soft limit (in MiB) of memory to reserve for the container, instead of
4459	// the default value from the task definition. You must also specify a container
4460	// name.
4461	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
4462
4463	// The name of the container that receives the override. This parameter is required
4464	// if any override is specified.
4465	Name *string `locationName:"name" type:"string"`
4466}
4467
4468// String returns the string representation
4469func (s ContainerOverride) String() string {
4470	return awsutil.Prettify(s)
4471}
4472
4473// GoString returns the string representation
4474func (s ContainerOverride) GoString() string {
4475	return s.String()
4476}
4477
4478// SetCommand sets the Command field's value.
4479func (s *ContainerOverride) SetCommand(v []*string) *ContainerOverride {
4480	s.Command = v
4481	return s
4482}
4483
4484// SetCpu sets the Cpu field's value.
4485func (s *ContainerOverride) SetCpu(v int64) *ContainerOverride {
4486	s.Cpu = &v
4487	return s
4488}
4489
4490// SetEnvironment sets the Environment field's value.
4491func (s *ContainerOverride) SetEnvironment(v []*KeyValuePair) *ContainerOverride {
4492	s.Environment = v
4493	return s
4494}
4495
4496// SetMemory sets the Memory field's value.
4497func (s *ContainerOverride) SetMemory(v int64) *ContainerOverride {
4498	s.Memory = &v
4499	return s
4500}
4501
4502// SetMemoryReservation sets the MemoryReservation field's value.
4503func (s *ContainerOverride) SetMemoryReservation(v int64) *ContainerOverride {
4504	s.MemoryReservation = &v
4505	return s
4506}
4507
4508// SetName sets the Name field's value.
4509func (s *ContainerOverride) SetName(v string) *ContainerOverride {
4510	s.Name = &v
4511	return s
4512}
4513
4514// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateClusterRequest
4515type CreateClusterInput struct {
4516	_ struct{} `type:"structure"`
4517
4518	// The name of your cluster. If you do not specify a name for your cluster,
4519	// you create a cluster named default. Up to 255 letters (uppercase and lowercase),
4520	// numbers, hyphens, and underscores are allowed.
4521	ClusterName *string `locationName:"clusterName" type:"string"`
4522}
4523
4524// String returns the string representation
4525func (s CreateClusterInput) String() string {
4526	return awsutil.Prettify(s)
4527}
4528
4529// GoString returns the string representation
4530func (s CreateClusterInput) GoString() string {
4531	return s.String()
4532}
4533
4534// SetClusterName sets the ClusterName field's value.
4535func (s *CreateClusterInput) SetClusterName(v string) *CreateClusterInput {
4536	s.ClusterName = &v
4537	return s
4538}
4539
4540// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateClusterResponse
4541type CreateClusterOutput struct {
4542	_ struct{} `type:"structure"`
4543
4544	// The full description of your new cluster.
4545	Cluster *Cluster `locationName:"cluster" type:"structure"`
4546}
4547
4548// String returns the string representation
4549func (s CreateClusterOutput) String() string {
4550	return awsutil.Prettify(s)
4551}
4552
4553// GoString returns the string representation
4554func (s CreateClusterOutput) GoString() string {
4555	return s.String()
4556}
4557
4558// SetCluster sets the Cluster field's value.
4559func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput {
4560	s.Cluster = v
4561	return s
4562}
4563
4564// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateServiceRequest
4565type CreateServiceInput struct {
4566	_ struct{} `type:"structure"`
4567
4568	// Unique, case-sensitive identifier you provide to ensure the idempotency of
4569	// the request. Up to 32 ASCII characters are allowed.
4570	ClientToken *string `locationName:"clientToken" type:"string"`
4571
4572	// The short name or full Amazon Resource Name (ARN) of the cluster on which
4573	// to run your service. If you do not specify a cluster, the default cluster
4574	// is assumed.
4575	Cluster *string `locationName:"cluster" type:"string"`
4576
4577	// Optional deployment parameters that control how many tasks run during the
4578	// deployment and the ordering of stopping and starting tasks.
4579	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
4580
4581	// The number of instantiations of the specified task definition to place and
4582	// keep running on your cluster.
4583	//
4584	// DesiredCount is a required field
4585	DesiredCount *int64 `locationName:"desiredCount" type:"integer" required:"true"`
4586
4587	// A load balancer object representing the load balancer to use with your service.
4588	// Currently, you are limited to one load balancer or target group per service.
4589	// After you create a service, the load balancer name or target group ARN, container
4590	// name, and container port specified in the service definition are immutable.
4591	//
4592	// For Classic Load Balancers, this object must contain the load balancer name,
4593	// the container name (as it appears in a container definition), and the container
4594	// port to access from the load balancer. When a task from this service is placed
4595	// on a container instance, the container instance is registered with the load
4596	// balancer specified here.
4597	//
4598	// For Application Load Balancers and Network Load Balancers, this object must
4599	// contain the load balancer target group ARN, the container name (as it appears
4600	// in a container definition), and the container port to access from the load
4601	// balancer. When a task from this service is placed on a container instance,
4602	// the container instance and port combination is registered as a target in
4603	// the target group specified here.
4604	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
4605
4606	// An array of placement constraint objects to use for tasks in your service.
4607	// You can specify a maximum of 10 constraints per task (this limit includes
4608	// constraints in the task definition and those specified at run time).
4609	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
4610
4611	// The placement strategy objects to use for tasks in your service. You can
4612	// specify a maximum of 5 strategy rules per service.
4613	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
4614
4615	// The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon
4616	// ECS to make calls to your load balancer on your behalf. This parameter is
4617	// required if you are using a load balancer with your service. If you specify
4618	// the role parameter, you must also specify a load balancer object with the
4619	// loadBalancers parameter.
4620	//
4621	// If your specified role has a path other than /, then you must either specify
4622	// the full role ARN (this is recommended) or prefix the role name with the
4623	// path. For example, if a role with the name bar has a path of /foo/ then you
4624	// would specify /foo/bar as the role name. For more information, see Friendly
4625	// Names and Paths (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names)
4626	// in the IAM User Guide.
4627	Role *string `locationName:"role" type:"string"`
4628
4629	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
4630	// hyphens, and underscores are allowed. Service names must be unique within
4631	// a cluster, but you can have similarly named services in multiple clusters
4632	// within a region or across multiple regions.
4633	//
4634	// ServiceName is a required field
4635	ServiceName *string `locationName:"serviceName" type:"string" required:"true"`
4636
4637	// The family and revision (family:revision) or full Amazon Resource Name (ARN)
4638	// of the task definition to run in your service. If a revision is not specified,
4639	// the latest ACTIVE revision is used.
4640	//
4641	// TaskDefinition is a required field
4642	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
4643}
4644
4645// String returns the string representation
4646func (s CreateServiceInput) String() string {
4647	return awsutil.Prettify(s)
4648}
4649
4650// GoString returns the string representation
4651func (s CreateServiceInput) GoString() string {
4652	return s.String()
4653}
4654
4655// Validate inspects the fields of the type to determine if they are valid.
4656func (s *CreateServiceInput) Validate() error {
4657	invalidParams := request.ErrInvalidParams{Context: "CreateServiceInput"}
4658	if s.DesiredCount == nil {
4659		invalidParams.Add(request.NewErrParamRequired("DesiredCount"))
4660	}
4661	if s.ServiceName == nil {
4662		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
4663	}
4664	if s.TaskDefinition == nil {
4665		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
4666	}
4667
4668	if invalidParams.Len() > 0 {
4669		return invalidParams
4670	}
4671	return nil
4672}
4673
4674// SetClientToken sets the ClientToken field's value.
4675func (s *CreateServiceInput) SetClientToken(v string) *CreateServiceInput {
4676	s.ClientToken = &v
4677	return s
4678}
4679
4680// SetCluster sets the Cluster field's value.
4681func (s *CreateServiceInput) SetCluster(v string) *CreateServiceInput {
4682	s.Cluster = &v
4683	return s
4684}
4685
4686// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
4687func (s *CreateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *CreateServiceInput {
4688	s.DeploymentConfiguration = v
4689	return s
4690}
4691
4692// SetDesiredCount sets the DesiredCount field's value.
4693func (s *CreateServiceInput) SetDesiredCount(v int64) *CreateServiceInput {
4694	s.DesiredCount = &v
4695	return s
4696}
4697
4698// SetLoadBalancers sets the LoadBalancers field's value.
4699func (s *CreateServiceInput) SetLoadBalancers(v []*LoadBalancer) *CreateServiceInput {
4700	s.LoadBalancers = v
4701	return s
4702}
4703
4704// SetPlacementConstraints sets the PlacementConstraints field's value.
4705func (s *CreateServiceInput) SetPlacementConstraints(v []*PlacementConstraint) *CreateServiceInput {
4706	s.PlacementConstraints = v
4707	return s
4708}
4709
4710// SetPlacementStrategy sets the PlacementStrategy field's value.
4711func (s *CreateServiceInput) SetPlacementStrategy(v []*PlacementStrategy) *CreateServiceInput {
4712	s.PlacementStrategy = v
4713	return s
4714}
4715
4716// SetRole sets the Role field's value.
4717func (s *CreateServiceInput) SetRole(v string) *CreateServiceInput {
4718	s.Role = &v
4719	return s
4720}
4721
4722// SetServiceName sets the ServiceName field's value.
4723func (s *CreateServiceInput) SetServiceName(v string) *CreateServiceInput {
4724	s.ServiceName = &v
4725	return s
4726}
4727
4728// SetTaskDefinition sets the TaskDefinition field's value.
4729func (s *CreateServiceInput) SetTaskDefinition(v string) *CreateServiceInput {
4730	s.TaskDefinition = &v
4731	return s
4732}
4733
4734// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateServiceResponse
4735type CreateServiceOutput struct {
4736	_ struct{} `type:"structure"`
4737
4738	// The full description of your service following the create call.
4739	Service *Service `locationName:"service" type:"structure"`
4740}
4741
4742// String returns the string representation
4743func (s CreateServiceOutput) String() string {
4744	return awsutil.Prettify(s)
4745}
4746
4747// GoString returns the string representation
4748func (s CreateServiceOutput) GoString() string {
4749	return s.String()
4750}
4751
4752// SetService sets the Service field's value.
4753func (s *CreateServiceOutput) SetService(v *Service) *CreateServiceOutput {
4754	s.Service = v
4755	return s
4756}
4757
4758// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributesRequest
4759type DeleteAttributesInput struct {
4760	_ struct{} `type:"structure"`
4761
4762	// The attributes to delete from your resource. You can specify up to 10 attributes
4763	// per request. For custom attributes, specify the attribute name and target
4764	// ID, but do not specify the value. If you specify the target ID using the
4765	// short form, you must also specify the target type.
4766	//
4767	// Attributes is a required field
4768	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
4769
4770	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
4771	// the resource to delete attributes. If you do not specify a cluster, the default
4772	// cluster is assumed.
4773	Cluster *string `locationName:"cluster" type:"string"`
4774}
4775
4776// String returns the string representation
4777func (s DeleteAttributesInput) String() string {
4778	return awsutil.Prettify(s)
4779}
4780
4781// GoString returns the string representation
4782func (s DeleteAttributesInput) GoString() string {
4783	return s.String()
4784}
4785
4786// Validate inspects the fields of the type to determine if they are valid.
4787func (s *DeleteAttributesInput) Validate() error {
4788	invalidParams := request.ErrInvalidParams{Context: "DeleteAttributesInput"}
4789	if s.Attributes == nil {
4790		invalidParams.Add(request.NewErrParamRequired("Attributes"))
4791	}
4792	if s.Attributes != nil {
4793		for i, v := range s.Attributes {
4794			if v == nil {
4795				continue
4796			}
4797			if err := v.Validate(); err != nil {
4798				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
4799			}
4800		}
4801	}
4802
4803	if invalidParams.Len() > 0 {
4804		return invalidParams
4805	}
4806	return nil
4807}
4808
4809// SetAttributes sets the Attributes field's value.
4810func (s *DeleteAttributesInput) SetAttributes(v []*Attribute) *DeleteAttributesInput {
4811	s.Attributes = v
4812	return s
4813}
4814
4815// SetCluster sets the Cluster field's value.
4816func (s *DeleteAttributesInput) SetCluster(v string) *DeleteAttributesInput {
4817	s.Cluster = &v
4818	return s
4819}
4820
4821// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributesResponse
4822type DeleteAttributesOutput struct {
4823	_ struct{} `type:"structure"`
4824
4825	// A list of attribute objects that were successfully deleted from your resource.
4826	Attributes []*Attribute `locationName:"attributes" type:"list"`
4827}
4828
4829// String returns the string representation
4830func (s DeleteAttributesOutput) String() string {
4831	return awsutil.Prettify(s)
4832}
4833
4834// GoString returns the string representation
4835func (s DeleteAttributesOutput) GoString() string {
4836	return s.String()
4837}
4838
4839// SetAttributes sets the Attributes field's value.
4840func (s *DeleteAttributesOutput) SetAttributes(v []*Attribute) *DeleteAttributesOutput {
4841	s.Attributes = v
4842	return s
4843}
4844
4845// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteClusterRequest
4846type DeleteClusterInput struct {
4847	_ struct{} `type:"structure"`
4848
4849	// The short name or full Amazon Resource Name (ARN) of the cluster to delete.
4850	//
4851	// Cluster is a required field
4852	Cluster *string `locationName:"cluster" type:"string" required:"true"`
4853}
4854
4855// String returns the string representation
4856func (s DeleteClusterInput) String() string {
4857	return awsutil.Prettify(s)
4858}
4859
4860// GoString returns the string representation
4861func (s DeleteClusterInput) GoString() string {
4862	return s.String()
4863}
4864
4865// Validate inspects the fields of the type to determine if they are valid.
4866func (s *DeleteClusterInput) Validate() error {
4867	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"}
4868	if s.Cluster == nil {
4869		invalidParams.Add(request.NewErrParamRequired("Cluster"))
4870	}
4871
4872	if invalidParams.Len() > 0 {
4873		return invalidParams
4874	}
4875	return nil
4876}
4877
4878// SetCluster sets the Cluster field's value.
4879func (s *DeleteClusterInput) SetCluster(v string) *DeleteClusterInput {
4880	s.Cluster = &v
4881	return s
4882}
4883
4884// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteClusterResponse
4885type DeleteClusterOutput struct {
4886	_ struct{} `type:"structure"`
4887
4888	// The full description of the deleted cluster.
4889	Cluster *Cluster `locationName:"cluster" type:"structure"`
4890}
4891
4892// String returns the string representation
4893func (s DeleteClusterOutput) String() string {
4894	return awsutil.Prettify(s)
4895}
4896
4897// GoString returns the string representation
4898func (s DeleteClusterOutput) GoString() string {
4899	return s.String()
4900}
4901
4902// SetCluster sets the Cluster field's value.
4903func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput {
4904	s.Cluster = v
4905	return s
4906}
4907
4908// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteServiceRequest
4909type DeleteServiceInput struct {
4910	_ struct{} `type:"structure"`
4911
4912	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
4913	// the service to delete. If you do not specify a cluster, the default cluster
4914	// is assumed.
4915	Cluster *string `locationName:"cluster" type:"string"`
4916
4917	// The name of the service to delete.
4918	//
4919	// Service is a required field
4920	Service *string `locationName:"service" type:"string" required:"true"`
4921}
4922
4923// String returns the string representation
4924func (s DeleteServiceInput) String() string {
4925	return awsutil.Prettify(s)
4926}
4927
4928// GoString returns the string representation
4929func (s DeleteServiceInput) GoString() string {
4930	return s.String()
4931}
4932
4933// Validate inspects the fields of the type to determine if they are valid.
4934func (s *DeleteServiceInput) Validate() error {
4935	invalidParams := request.ErrInvalidParams{Context: "DeleteServiceInput"}
4936	if s.Service == nil {
4937		invalidParams.Add(request.NewErrParamRequired("Service"))
4938	}
4939
4940	if invalidParams.Len() > 0 {
4941		return invalidParams
4942	}
4943	return nil
4944}
4945
4946// SetCluster sets the Cluster field's value.
4947func (s *DeleteServiceInput) SetCluster(v string) *DeleteServiceInput {
4948	s.Cluster = &v
4949	return s
4950}
4951
4952// SetService sets the Service field's value.
4953func (s *DeleteServiceInput) SetService(v string) *DeleteServiceInput {
4954	s.Service = &v
4955	return s
4956}
4957
4958// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteServiceResponse
4959type DeleteServiceOutput struct {
4960	_ struct{} `type:"structure"`
4961
4962	// The full description of the deleted service.
4963	Service *Service `locationName:"service" type:"structure"`
4964}
4965
4966// String returns the string representation
4967func (s DeleteServiceOutput) String() string {
4968	return awsutil.Prettify(s)
4969}
4970
4971// GoString returns the string representation
4972func (s DeleteServiceOutput) GoString() string {
4973	return s.String()
4974}
4975
4976// SetService sets the Service field's value.
4977func (s *DeleteServiceOutput) SetService(v *Service) *DeleteServiceOutput {
4978	s.Service = v
4979	return s
4980}
4981
4982// The details of an Amazon ECS service deployment.
4983// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Deployment
4984type Deployment struct {
4985	_ struct{} `type:"structure"`
4986
4987	// The Unix timestamp for when the service was created.
4988	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"unix"`
4989
4990	// The most recent desired count of tasks that was specified for the service
4991	// to deploy or maintain.
4992	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
4993
4994	// The ID of the deployment.
4995	Id *string `locationName:"id" type:"string"`
4996
4997	// The number of tasks in the deployment that are in the PENDING status.
4998	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
4999
5000	// The number of tasks in the deployment that are in the RUNNING status.
5001	RunningCount *int64 `locationName:"runningCount" type:"integer"`
5002
5003	// The status of the deployment. Valid values are PRIMARY (for the most recent
5004	// deployment), ACTIVE (for previous deployments that still have tasks running,
5005	// but are being replaced with the PRIMARY deployment), and INACTIVE (for deployments
5006	// that have been completely replaced).
5007	Status *string `locationName:"status" type:"string"`
5008
5009	// The most recent task definition that was specified for the service to use.
5010	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
5011
5012	// The Unix timestamp for when the service was last updated.
5013	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"unix"`
5014}
5015
5016// String returns the string representation
5017func (s Deployment) String() string {
5018	return awsutil.Prettify(s)
5019}
5020
5021// GoString returns the string representation
5022func (s Deployment) GoString() string {
5023	return s.String()
5024}
5025
5026// SetCreatedAt sets the CreatedAt field's value.
5027func (s *Deployment) SetCreatedAt(v time.Time) *Deployment {
5028	s.CreatedAt = &v
5029	return s
5030}
5031
5032// SetDesiredCount sets the DesiredCount field's value.
5033func (s *Deployment) SetDesiredCount(v int64) *Deployment {
5034	s.DesiredCount = &v
5035	return s
5036}
5037
5038// SetId sets the Id field's value.
5039func (s *Deployment) SetId(v string) *Deployment {
5040	s.Id = &v
5041	return s
5042}
5043
5044// SetPendingCount sets the PendingCount field's value.
5045func (s *Deployment) SetPendingCount(v int64) *Deployment {
5046	s.PendingCount = &v
5047	return s
5048}
5049
5050// SetRunningCount sets the RunningCount field's value.
5051func (s *Deployment) SetRunningCount(v int64) *Deployment {
5052	s.RunningCount = &v
5053	return s
5054}
5055
5056// SetStatus sets the Status field's value.
5057func (s *Deployment) SetStatus(v string) *Deployment {
5058	s.Status = &v
5059	return s
5060}
5061
5062// SetTaskDefinition sets the TaskDefinition field's value.
5063func (s *Deployment) SetTaskDefinition(v string) *Deployment {
5064	s.TaskDefinition = &v
5065	return s
5066}
5067
5068// SetUpdatedAt sets the UpdatedAt field's value.
5069func (s *Deployment) SetUpdatedAt(v time.Time) *Deployment {
5070	s.UpdatedAt = &v
5071	return s
5072}
5073
5074// Optional deployment parameters that control how many tasks run during the
5075// deployment and the ordering of stopping and starting tasks.
5076// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeploymentConfiguration
5077type DeploymentConfiguration struct {
5078	_ struct{} `type:"structure"`
5079
5080	// The upper limit (as a percentage of the service's desiredCount) of the number
5081	// of tasks that are allowed in the RUNNING or PENDING state in a service during
5082	// a deployment. The maximum number of tasks during a deployment is the desiredCount
5083	// multiplied by maximumPercent/100, rounded down to the nearest integer value.
5084	MaximumPercent *int64 `locationName:"maximumPercent" type:"integer"`
5085
5086	// The lower limit (as a percentage of the service's desiredCount) of the number
5087	// of running tasks that must remain in the RUNNING state in a service during
5088	// a deployment. The minimum healthy tasks during a deployment is the desiredCount
5089	// multiplied by minimumHealthyPercent/100, rounded up to the nearest integer
5090	// value.
5091	MinimumHealthyPercent *int64 `locationName:"minimumHealthyPercent" type:"integer"`
5092}
5093
5094// String returns the string representation
5095func (s DeploymentConfiguration) String() string {
5096	return awsutil.Prettify(s)
5097}
5098
5099// GoString returns the string representation
5100func (s DeploymentConfiguration) GoString() string {
5101	return s.String()
5102}
5103
5104// SetMaximumPercent sets the MaximumPercent field's value.
5105func (s *DeploymentConfiguration) SetMaximumPercent(v int64) *DeploymentConfiguration {
5106	s.MaximumPercent = &v
5107	return s
5108}
5109
5110// SetMinimumHealthyPercent sets the MinimumHealthyPercent field's value.
5111func (s *DeploymentConfiguration) SetMinimumHealthyPercent(v int64) *DeploymentConfiguration {
5112	s.MinimumHealthyPercent = &v
5113	return s
5114}
5115
5116// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstanceRequest
5117type DeregisterContainerInstanceInput struct {
5118	_ struct{} `type:"structure"`
5119
5120	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
5121	// the container instance to deregister. If you do not specify a cluster, the
5122	// default cluster is assumed.
5123	Cluster *string `locationName:"cluster" type:"string"`
5124
5125	// The container instance ID or full Amazon Resource Name (ARN) of the container
5126	// instance to deregister. The ARN contains the arn:aws:ecs namespace, followed
5127	// by the region of the container instance, the AWS account ID of the container
5128	// instance owner, the container-instance namespace, and then the container
5129	// instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
5130	//
5131	// ContainerInstance is a required field
5132	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
5133
5134	// Forces the deregistration of the container instance. If you have tasks running
5135	// on the container instance when you deregister it with the force option, these
5136	// tasks remain running until you terminate the instance or the tasks stop through
5137	// some other means, but they are orphaned (no longer monitored or accounted
5138	// for by Amazon ECS). If an orphaned task on your container instance is part
5139	// of an Amazon ECS service, then the service scheduler starts another copy
5140	// of that task, on a different container instance if possible.
5141	//
5142	// Any containers in orphaned service tasks that are registered with a Classic
5143	// Load Balancer or an Application Load Balancer target group are deregistered,
5144	// and they will begin connection draining according to the settings on the
5145	// load balancer or target group.
5146	Force *bool `locationName:"force" type:"boolean"`
5147}
5148
5149// String returns the string representation
5150func (s DeregisterContainerInstanceInput) String() string {
5151	return awsutil.Prettify(s)
5152}
5153
5154// GoString returns the string representation
5155func (s DeregisterContainerInstanceInput) GoString() string {
5156	return s.String()
5157}
5158
5159// Validate inspects the fields of the type to determine if they are valid.
5160func (s *DeregisterContainerInstanceInput) Validate() error {
5161	invalidParams := request.ErrInvalidParams{Context: "DeregisterContainerInstanceInput"}
5162	if s.ContainerInstance == nil {
5163		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
5164	}
5165
5166	if invalidParams.Len() > 0 {
5167		return invalidParams
5168	}
5169	return nil
5170}
5171
5172// SetCluster sets the Cluster field's value.
5173func (s *DeregisterContainerInstanceInput) SetCluster(v string) *DeregisterContainerInstanceInput {
5174	s.Cluster = &v
5175	return s
5176}
5177
5178// SetContainerInstance sets the ContainerInstance field's value.
5179func (s *DeregisterContainerInstanceInput) SetContainerInstance(v string) *DeregisterContainerInstanceInput {
5180	s.ContainerInstance = &v
5181	return s
5182}
5183
5184// SetForce sets the Force field's value.
5185func (s *DeregisterContainerInstanceInput) SetForce(v bool) *DeregisterContainerInstanceInput {
5186	s.Force = &v
5187	return s
5188}
5189
5190// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstanceResponse
5191type DeregisterContainerInstanceOutput struct {
5192	_ struct{} `type:"structure"`
5193
5194	// The container instance that was deregistered.
5195	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
5196}
5197
5198// String returns the string representation
5199func (s DeregisterContainerInstanceOutput) String() string {
5200	return awsutil.Prettify(s)
5201}
5202
5203// GoString returns the string representation
5204func (s DeregisterContainerInstanceOutput) GoString() string {
5205	return s.String()
5206}
5207
5208// SetContainerInstance sets the ContainerInstance field's value.
5209func (s *DeregisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *DeregisterContainerInstanceOutput {
5210	s.ContainerInstance = v
5211	return s
5212}
5213
5214// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinitionRequest
5215type DeregisterTaskDefinitionInput struct {
5216	_ struct{} `type:"structure"`
5217
5218	// The family and revision (family:revision) or full Amazon Resource Name (ARN)
5219	// of the task definition to deregister. You must specify a revision.
5220	//
5221	// TaskDefinition is a required field
5222	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
5223}
5224
5225// String returns the string representation
5226func (s DeregisterTaskDefinitionInput) String() string {
5227	return awsutil.Prettify(s)
5228}
5229
5230// GoString returns the string representation
5231func (s DeregisterTaskDefinitionInput) GoString() string {
5232	return s.String()
5233}
5234
5235// Validate inspects the fields of the type to determine if they are valid.
5236func (s *DeregisterTaskDefinitionInput) Validate() error {
5237	invalidParams := request.ErrInvalidParams{Context: "DeregisterTaskDefinitionInput"}
5238	if s.TaskDefinition == nil {
5239		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
5240	}
5241
5242	if invalidParams.Len() > 0 {
5243		return invalidParams
5244	}
5245	return nil
5246}
5247
5248// SetTaskDefinition sets the TaskDefinition field's value.
5249func (s *DeregisterTaskDefinitionInput) SetTaskDefinition(v string) *DeregisterTaskDefinitionInput {
5250	s.TaskDefinition = &v
5251	return s
5252}
5253
5254// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinitionResponse
5255type DeregisterTaskDefinitionOutput struct {
5256	_ struct{} `type:"structure"`
5257
5258	// The full description of the deregistered task.
5259	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
5260}
5261
5262// String returns the string representation
5263func (s DeregisterTaskDefinitionOutput) String() string {
5264	return awsutil.Prettify(s)
5265}
5266
5267// GoString returns the string representation
5268func (s DeregisterTaskDefinitionOutput) GoString() string {
5269	return s.String()
5270}
5271
5272// SetTaskDefinition sets the TaskDefinition field's value.
5273func (s *DeregisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DeregisterTaskDefinitionOutput {
5274	s.TaskDefinition = v
5275	return s
5276}
5277
5278// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClustersRequest
5279type DescribeClustersInput struct {
5280	_ struct{} `type:"structure"`
5281
5282	// A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN)
5283	// entries. If you do not specify a cluster, the default cluster is assumed.
5284	Clusters []*string `locationName:"clusters" type:"list"`
5285}
5286
5287// String returns the string representation
5288func (s DescribeClustersInput) String() string {
5289	return awsutil.Prettify(s)
5290}
5291
5292// GoString returns the string representation
5293func (s DescribeClustersInput) GoString() string {
5294	return s.String()
5295}
5296
5297// SetClusters sets the Clusters field's value.
5298func (s *DescribeClustersInput) SetClusters(v []*string) *DescribeClustersInput {
5299	s.Clusters = v
5300	return s
5301}
5302
5303// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClustersResponse
5304type DescribeClustersOutput struct {
5305	_ struct{} `type:"structure"`
5306
5307	// The list of clusters.
5308	Clusters []*Cluster `locationName:"clusters" type:"list"`
5309
5310	// Any failures associated with the call.
5311	Failures []*Failure `locationName:"failures" type:"list"`
5312}
5313
5314// String returns the string representation
5315func (s DescribeClustersOutput) String() string {
5316	return awsutil.Prettify(s)
5317}
5318
5319// GoString returns the string representation
5320func (s DescribeClustersOutput) GoString() string {
5321	return s.String()
5322}
5323
5324// SetClusters sets the Clusters field's value.
5325func (s *DescribeClustersOutput) SetClusters(v []*Cluster) *DescribeClustersOutput {
5326	s.Clusters = v
5327	return s
5328}
5329
5330// SetFailures sets the Failures field's value.
5331func (s *DescribeClustersOutput) SetFailures(v []*Failure) *DescribeClustersOutput {
5332	s.Failures = v
5333	return s
5334}
5335
5336// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstancesRequest
5337type DescribeContainerInstancesInput struct {
5338	_ struct{} `type:"structure"`
5339
5340	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
5341	// the container instances to describe. If you do not specify a cluster, the
5342	// default cluster is assumed.
5343	Cluster *string `locationName:"cluster" type:"string"`
5344
5345	// A list of container instance IDs or full Amazon Resource Name (ARN) entries.
5346	//
5347	// ContainerInstances is a required field
5348	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
5349}
5350
5351// String returns the string representation
5352func (s DescribeContainerInstancesInput) String() string {
5353	return awsutil.Prettify(s)
5354}
5355
5356// GoString returns the string representation
5357func (s DescribeContainerInstancesInput) GoString() string {
5358	return s.String()
5359}
5360
5361// Validate inspects the fields of the type to determine if they are valid.
5362func (s *DescribeContainerInstancesInput) Validate() error {
5363	invalidParams := request.ErrInvalidParams{Context: "DescribeContainerInstancesInput"}
5364	if s.ContainerInstances == nil {
5365		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
5366	}
5367
5368	if invalidParams.Len() > 0 {
5369		return invalidParams
5370	}
5371	return nil
5372}
5373
5374// SetCluster sets the Cluster field's value.
5375func (s *DescribeContainerInstancesInput) SetCluster(v string) *DescribeContainerInstancesInput {
5376	s.Cluster = &v
5377	return s
5378}
5379
5380// SetContainerInstances sets the ContainerInstances field's value.
5381func (s *DescribeContainerInstancesInput) SetContainerInstances(v []*string) *DescribeContainerInstancesInput {
5382	s.ContainerInstances = v
5383	return s
5384}
5385
5386// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstancesResponse
5387type DescribeContainerInstancesOutput struct {
5388	_ struct{} `type:"structure"`
5389
5390	// The list of container instances.
5391	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
5392
5393	// Any failures associated with the call.
5394	Failures []*Failure `locationName:"failures" type:"list"`
5395}
5396
5397// String returns the string representation
5398func (s DescribeContainerInstancesOutput) String() string {
5399	return awsutil.Prettify(s)
5400}
5401
5402// GoString returns the string representation
5403func (s DescribeContainerInstancesOutput) GoString() string {
5404	return s.String()
5405}
5406
5407// SetContainerInstances sets the ContainerInstances field's value.
5408func (s *DescribeContainerInstancesOutput) SetContainerInstances(v []*ContainerInstance) *DescribeContainerInstancesOutput {
5409	s.ContainerInstances = v
5410	return s
5411}
5412
5413// SetFailures sets the Failures field's value.
5414func (s *DescribeContainerInstancesOutput) SetFailures(v []*Failure) *DescribeContainerInstancesOutput {
5415	s.Failures = v
5416	return s
5417}
5418
5419// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServicesRequest
5420type DescribeServicesInput struct {
5421	_ struct{} `type:"structure"`
5422
5423	// The short name or full Amazon Resource Name (ARN)the cluster that hosts the
5424	// service to describe. If you do not specify a cluster, the default cluster
5425	// is assumed.
5426	Cluster *string `locationName:"cluster" type:"string"`
5427
5428	// A list of services to describe. You may specify up to 10 services to describe
5429	// in a single operation.
5430	//
5431	// Services is a required field
5432	Services []*string `locationName:"services" type:"list" required:"true"`
5433}
5434
5435// String returns the string representation
5436func (s DescribeServicesInput) String() string {
5437	return awsutil.Prettify(s)
5438}
5439
5440// GoString returns the string representation
5441func (s DescribeServicesInput) GoString() string {
5442	return s.String()
5443}
5444
5445// Validate inspects the fields of the type to determine if they are valid.
5446func (s *DescribeServicesInput) Validate() error {
5447	invalidParams := request.ErrInvalidParams{Context: "DescribeServicesInput"}
5448	if s.Services == nil {
5449		invalidParams.Add(request.NewErrParamRequired("Services"))
5450	}
5451
5452	if invalidParams.Len() > 0 {
5453		return invalidParams
5454	}
5455	return nil
5456}
5457
5458// SetCluster sets the Cluster field's value.
5459func (s *DescribeServicesInput) SetCluster(v string) *DescribeServicesInput {
5460	s.Cluster = &v
5461	return s
5462}
5463
5464// SetServices sets the Services field's value.
5465func (s *DescribeServicesInput) SetServices(v []*string) *DescribeServicesInput {
5466	s.Services = v
5467	return s
5468}
5469
5470// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServicesResponse
5471type DescribeServicesOutput struct {
5472	_ struct{} `type:"structure"`
5473
5474	// Any failures associated with the call.
5475	Failures []*Failure `locationName:"failures" type:"list"`
5476
5477	// The list of services described.
5478	Services []*Service `locationName:"services" type:"list"`
5479}
5480
5481// String returns the string representation
5482func (s DescribeServicesOutput) String() string {
5483	return awsutil.Prettify(s)
5484}
5485
5486// GoString returns the string representation
5487func (s DescribeServicesOutput) GoString() string {
5488	return s.String()
5489}
5490
5491// SetFailures sets the Failures field's value.
5492func (s *DescribeServicesOutput) SetFailures(v []*Failure) *DescribeServicesOutput {
5493	s.Failures = v
5494	return s
5495}
5496
5497// SetServices sets the Services field's value.
5498func (s *DescribeServicesOutput) SetServices(v []*Service) *DescribeServicesOutput {
5499	s.Services = v
5500	return s
5501}
5502
5503// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinitionRequest
5504type DescribeTaskDefinitionInput struct {
5505	_ struct{} `type:"structure"`
5506
5507	// The family for the latest ACTIVE revision, family and revision (family:revision)
5508	// for a specific revision in the family, or full Amazon Resource Name (ARN)
5509	// of the task definition to describe.
5510	//
5511	// TaskDefinition is a required field
5512	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
5513}
5514
5515// String returns the string representation
5516func (s DescribeTaskDefinitionInput) String() string {
5517	return awsutil.Prettify(s)
5518}
5519
5520// GoString returns the string representation
5521func (s DescribeTaskDefinitionInput) GoString() string {
5522	return s.String()
5523}
5524
5525// Validate inspects the fields of the type to determine if they are valid.
5526func (s *DescribeTaskDefinitionInput) Validate() error {
5527	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskDefinitionInput"}
5528	if s.TaskDefinition == nil {
5529		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
5530	}
5531
5532	if invalidParams.Len() > 0 {
5533		return invalidParams
5534	}
5535	return nil
5536}
5537
5538// SetTaskDefinition sets the TaskDefinition field's value.
5539func (s *DescribeTaskDefinitionInput) SetTaskDefinition(v string) *DescribeTaskDefinitionInput {
5540	s.TaskDefinition = &v
5541	return s
5542}
5543
5544// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinitionResponse
5545type DescribeTaskDefinitionOutput struct {
5546	_ struct{} `type:"structure"`
5547
5548	// The full task definition description.
5549	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
5550}
5551
5552// String returns the string representation
5553func (s DescribeTaskDefinitionOutput) String() string {
5554	return awsutil.Prettify(s)
5555}
5556
5557// GoString returns the string representation
5558func (s DescribeTaskDefinitionOutput) GoString() string {
5559	return s.String()
5560}
5561
5562// SetTaskDefinition sets the TaskDefinition field's value.
5563func (s *DescribeTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DescribeTaskDefinitionOutput {
5564	s.TaskDefinition = v
5565	return s
5566}
5567
5568// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasksRequest
5569type DescribeTasksInput struct {
5570	_ struct{} `type:"structure"`
5571
5572	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
5573	// the task to describe. If you do not specify a cluster, the default cluster
5574	// is assumed.
5575	Cluster *string `locationName:"cluster" type:"string"`
5576
5577	// A list of up to 100 task IDs or full Amazon Resource Name (ARN) entries.
5578	//
5579	// Tasks is a required field
5580	Tasks []*string `locationName:"tasks" type:"list" required:"true"`
5581}
5582
5583// String returns the string representation
5584func (s DescribeTasksInput) String() string {
5585	return awsutil.Prettify(s)
5586}
5587
5588// GoString returns the string representation
5589func (s DescribeTasksInput) GoString() string {
5590	return s.String()
5591}
5592
5593// Validate inspects the fields of the type to determine if they are valid.
5594func (s *DescribeTasksInput) Validate() error {
5595	invalidParams := request.ErrInvalidParams{Context: "DescribeTasksInput"}
5596	if s.Tasks == nil {
5597		invalidParams.Add(request.NewErrParamRequired("Tasks"))
5598	}
5599
5600	if invalidParams.Len() > 0 {
5601		return invalidParams
5602	}
5603	return nil
5604}
5605
5606// SetCluster sets the Cluster field's value.
5607func (s *DescribeTasksInput) SetCluster(v string) *DescribeTasksInput {
5608	s.Cluster = &v
5609	return s
5610}
5611
5612// SetTasks sets the Tasks field's value.
5613func (s *DescribeTasksInput) SetTasks(v []*string) *DescribeTasksInput {
5614	s.Tasks = v
5615	return s
5616}
5617
5618// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasksResponse
5619type DescribeTasksOutput struct {
5620	_ struct{} `type:"structure"`
5621
5622	// Any failures associated with the call.
5623	Failures []*Failure `locationName:"failures" type:"list"`
5624
5625	// The list of tasks.
5626	Tasks []*Task `locationName:"tasks" type:"list"`
5627}
5628
5629// String returns the string representation
5630func (s DescribeTasksOutput) String() string {
5631	return awsutil.Prettify(s)
5632}
5633
5634// GoString returns the string representation
5635func (s DescribeTasksOutput) GoString() string {
5636	return s.String()
5637}
5638
5639// SetFailures sets the Failures field's value.
5640func (s *DescribeTasksOutput) SetFailures(v []*Failure) *DescribeTasksOutput {
5641	s.Failures = v
5642	return s
5643}
5644
5645// SetTasks sets the Tasks field's value.
5646func (s *DescribeTasksOutput) SetTasks(v []*Task) *DescribeTasksOutput {
5647	s.Tasks = v
5648	return s
5649}
5650
5651// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpointRequest
5652type DiscoverPollEndpointInput struct {
5653	_ struct{} `type:"structure"`
5654
5655	// The short name or full Amazon Resource Name (ARN) of the cluster that the
5656	// container instance belongs to.
5657	Cluster *string `locationName:"cluster" type:"string"`
5658
5659	// The container instance ID or full Amazon Resource Name (ARN) of the container
5660	// instance. The ARN contains the arn:aws:ecs namespace, followed by the region
5661	// of the container instance, the AWS account ID of the container instance owner,
5662	// the container-instance namespace, and then the container instance ID. For
5663	// example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
5664	ContainerInstance *string `locationName:"containerInstance" type:"string"`
5665}
5666
5667// String returns the string representation
5668func (s DiscoverPollEndpointInput) String() string {
5669	return awsutil.Prettify(s)
5670}
5671
5672// GoString returns the string representation
5673func (s DiscoverPollEndpointInput) GoString() string {
5674	return s.String()
5675}
5676
5677// SetCluster sets the Cluster field's value.
5678func (s *DiscoverPollEndpointInput) SetCluster(v string) *DiscoverPollEndpointInput {
5679	s.Cluster = &v
5680	return s
5681}
5682
5683// SetContainerInstance sets the ContainerInstance field's value.
5684func (s *DiscoverPollEndpointInput) SetContainerInstance(v string) *DiscoverPollEndpointInput {
5685	s.ContainerInstance = &v
5686	return s
5687}
5688
5689// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpointResponse
5690type DiscoverPollEndpointOutput struct {
5691	_ struct{} `type:"structure"`
5692
5693	// The endpoint for the Amazon ECS agent to poll.
5694	Endpoint *string `locationName:"endpoint" type:"string"`
5695
5696	// The telemetry endpoint for the Amazon ECS agent.
5697	TelemetryEndpoint *string `locationName:"telemetryEndpoint" type:"string"`
5698}
5699
5700// String returns the string representation
5701func (s DiscoverPollEndpointOutput) String() string {
5702	return awsutil.Prettify(s)
5703}
5704
5705// GoString returns the string representation
5706func (s DiscoverPollEndpointOutput) GoString() string {
5707	return s.String()
5708}
5709
5710// SetEndpoint sets the Endpoint field's value.
5711func (s *DiscoverPollEndpointOutput) SetEndpoint(v string) *DiscoverPollEndpointOutput {
5712	s.Endpoint = &v
5713	return s
5714}
5715
5716// SetTelemetryEndpoint sets the TelemetryEndpoint field's value.
5717func (s *DiscoverPollEndpointOutput) SetTelemetryEndpoint(v string) *DiscoverPollEndpointOutput {
5718	s.TelemetryEndpoint = &v
5719	return s
5720}
5721
5722// A failed resource.
5723// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Failure
5724type Failure struct {
5725	_ struct{} `type:"structure"`
5726
5727	// The Amazon Resource Name (ARN) of the failed resource.
5728	Arn *string `locationName:"arn" type:"string"`
5729
5730	// The reason for the failure.
5731	Reason *string `locationName:"reason" type:"string"`
5732}
5733
5734// String returns the string representation
5735func (s Failure) String() string {
5736	return awsutil.Prettify(s)
5737}
5738
5739// GoString returns the string representation
5740func (s Failure) GoString() string {
5741	return s.String()
5742}
5743
5744// SetArn sets the Arn field's value.
5745func (s *Failure) SetArn(v string) *Failure {
5746	s.Arn = &v
5747	return s
5748}
5749
5750// SetReason sets the Reason field's value.
5751func (s *Failure) SetReason(v string) *Failure {
5752	s.Reason = &v
5753	return s
5754}
5755
5756// Hostnames and IP address entries that are added to the /etc/hosts file of
5757// a container via the extraHosts parameter of its ContainerDefinition.
5758// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/HostEntry
5759type HostEntry struct {
5760	_ struct{} `type:"structure"`
5761
5762	// The hostname to use in the /etc/hosts entry.
5763	//
5764	// Hostname is a required field
5765	Hostname *string `locationName:"hostname" type:"string" required:"true"`
5766
5767	// The IP address to use in the /etc/hosts entry.
5768	//
5769	// IpAddress is a required field
5770	IpAddress *string `locationName:"ipAddress" type:"string" required:"true"`
5771}
5772
5773// String returns the string representation
5774func (s HostEntry) String() string {
5775	return awsutil.Prettify(s)
5776}
5777
5778// GoString returns the string representation
5779func (s HostEntry) GoString() string {
5780	return s.String()
5781}
5782
5783// Validate inspects the fields of the type to determine if they are valid.
5784func (s *HostEntry) Validate() error {
5785	invalidParams := request.ErrInvalidParams{Context: "HostEntry"}
5786	if s.Hostname == nil {
5787		invalidParams.Add(request.NewErrParamRequired("Hostname"))
5788	}
5789	if s.IpAddress == nil {
5790		invalidParams.Add(request.NewErrParamRequired("IpAddress"))
5791	}
5792
5793	if invalidParams.Len() > 0 {
5794		return invalidParams
5795	}
5796	return nil
5797}
5798
5799// SetHostname sets the Hostname field's value.
5800func (s *HostEntry) SetHostname(v string) *HostEntry {
5801	s.Hostname = &v
5802	return s
5803}
5804
5805// SetIpAddress sets the IpAddress field's value.
5806func (s *HostEntry) SetIpAddress(v string) *HostEntry {
5807	s.IpAddress = &v
5808	return s
5809}
5810
5811// Details on a container instance host volume.
5812// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/HostVolumeProperties
5813type HostVolumeProperties struct {
5814	_ struct{} `type:"structure"`
5815
5816	// The path on the host container instance that is presented to the container.
5817	// If this parameter is empty, then the Docker daemon has assigned a host path
5818	// for you. If the host parameter contains a sourcePath file location, then
5819	// the data volume persists at the specified location on the host container
5820	// instance until you delete it manually. If the sourcePath value does not exist
5821	// on the host container instance, the Docker daemon creates it. If the location
5822	// does exist, the contents of the source path folder are exported.
5823	SourcePath *string `locationName:"sourcePath" type:"string"`
5824}
5825
5826// String returns the string representation
5827func (s HostVolumeProperties) String() string {
5828	return awsutil.Prettify(s)
5829}
5830
5831// GoString returns the string representation
5832func (s HostVolumeProperties) GoString() string {
5833	return s.String()
5834}
5835
5836// SetSourcePath sets the SourcePath field's value.
5837func (s *HostVolumeProperties) SetSourcePath(v string) *HostVolumeProperties {
5838	s.SourcePath = &v
5839	return s
5840}
5841
5842// The Linux capabilities for the container that are added to or dropped from
5843// the default configuration provided by Docker. For more information on the
5844// default capabilities and the non-default available capabilities, see Runtime
5845// privilege and Linux capabilities (https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities)
5846// in the Docker run reference. For more detailed information on these Linux
5847// capabilities, see the capabilities(7) (http://man7.org/linux/man-pages/man7/capabilities.7.html)
5848// Linux manual page.
5849// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/KernelCapabilities
5850type KernelCapabilities struct {
5851	_ struct{} `type:"structure"`
5852
5853	// The Linux capabilities for the container that have been added to the default
5854	// configuration provided by Docker. This parameter maps to CapAdd in the Create
5855	// a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
5856	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
5857	// and the --cap-add option to docker run (https://docs.docker.com/engine/reference/run/).
5858	Add []*string `locationName:"add" type:"list"`
5859
5860	// The Linux capabilities for the container that have been removed from the
5861	// default configuration provided by Docker. This parameter maps to CapDrop
5862	// in the Create a container (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container)
5863	// section of the Docker Remote API (https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/)
5864	// and the --cap-drop option to docker run (https://docs.docker.com/engine/reference/run/).
5865	Drop []*string `locationName:"drop" type:"list"`
5866}
5867
5868// String returns the string representation
5869func (s KernelCapabilities) String() string {
5870	return awsutil.Prettify(s)
5871}
5872
5873// GoString returns the string representation
5874func (s KernelCapabilities) GoString() string {
5875	return s.String()
5876}
5877
5878// SetAdd sets the Add field's value.
5879func (s *KernelCapabilities) SetAdd(v []*string) *KernelCapabilities {
5880	s.Add = v
5881	return s
5882}
5883
5884// SetDrop sets the Drop field's value.
5885func (s *KernelCapabilities) SetDrop(v []*string) *KernelCapabilities {
5886	s.Drop = v
5887	return s
5888}
5889
5890// A key and value pair object.
5891// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/KeyValuePair
5892type KeyValuePair struct {
5893	_ struct{} `type:"structure"`
5894
5895	// The name of the key value pair. For environment variables, this is the name
5896	// of the environment variable.
5897	Name *string `locationName:"name" type:"string"`
5898
5899	// The value of the key value pair. For environment variables, this is the value
5900	// of the environment variable.
5901	Value *string `locationName:"value" type:"string"`
5902}
5903
5904// String returns the string representation
5905func (s KeyValuePair) String() string {
5906	return awsutil.Prettify(s)
5907}
5908
5909// GoString returns the string representation
5910func (s KeyValuePair) GoString() string {
5911	return s.String()
5912}
5913
5914// SetName sets the Name field's value.
5915func (s *KeyValuePair) SetName(v string) *KeyValuePair {
5916	s.Name = &v
5917	return s
5918}
5919
5920// SetValue sets the Value field's value.
5921func (s *KeyValuePair) SetValue(v string) *KeyValuePair {
5922	s.Value = &v
5923	return s
5924}
5925
5926// Linux-specific options that are applied to the container, such as Linux KernelCapabilities.
5927// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/LinuxParameters
5928type LinuxParameters struct {
5929	_ struct{} `type:"structure"`
5930
5931	// The Linux capabilities for the container that are added to or dropped from
5932	// the default configuration provided by Docker.
5933	Capabilities *KernelCapabilities `locationName:"capabilities" type:"structure"`
5934}
5935
5936// String returns the string representation
5937func (s LinuxParameters) String() string {
5938	return awsutil.Prettify(s)
5939}
5940
5941// GoString returns the string representation
5942func (s LinuxParameters) GoString() string {
5943	return s.String()
5944}
5945
5946// SetCapabilities sets the Capabilities field's value.
5947func (s *LinuxParameters) SetCapabilities(v *KernelCapabilities) *LinuxParameters {
5948	s.Capabilities = v
5949	return s
5950}
5951
5952// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributesRequest
5953type ListAttributesInput struct {
5954	_ struct{} `type:"structure"`
5955
5956	// The name of the attribute with which to filter the results.
5957	AttributeName *string `locationName:"attributeName" type:"string"`
5958
5959	// The value of the attribute with which to filter results. You must also specify
5960	// an attribute name to use this parameter.
5961	AttributeValue *string `locationName:"attributeValue" type:"string"`
5962
5963	// The short name or full Amazon Resource Name (ARN) of the cluster to list
5964	// attributes. If you do not specify a cluster, the default cluster is assumed.
5965	Cluster *string `locationName:"cluster" type:"string"`
5966
5967	// The maximum number of cluster results returned by ListAttributes in paginated
5968	// output. When this parameter is used, ListAttributes only returns maxResults
5969	// results in a single page along with a nextToken response element. The remaining
5970	// results of the initial request can be seen by sending another ListAttributes
5971	// request with the returned nextToken value. This value can be between 1 and
5972	// 100. If this parameter is not used, then ListAttributes returns up to 100
5973	// results and a nextToken value if applicable.
5974	MaxResults *int64 `locationName:"maxResults" type:"integer"`
5975
5976	// The nextToken value returned from a previous paginated ListAttributes request
5977	// where maxResults was used and the results exceeded the value of that parameter.
5978	// Pagination continues from the end of the previous results that returned the
5979	// nextToken value. This value is null when there are no more results to return.
5980	//
5981	// This token should be treated as an opaque identifier that is only used to
5982	// retrieve the next items in a list and not for other programmatic purposes.
5983	NextToken *string `locationName:"nextToken" type:"string"`
5984
5985	// The type of the target with which to list attributes.
5986	//
5987	// TargetType is a required field
5988	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"TargetType"`
5989}
5990
5991// String returns the string representation
5992func (s ListAttributesInput) String() string {
5993	return awsutil.Prettify(s)
5994}
5995
5996// GoString returns the string representation
5997func (s ListAttributesInput) GoString() string {
5998	return s.String()
5999}
6000
6001// Validate inspects the fields of the type to determine if they are valid.
6002func (s *ListAttributesInput) Validate() error {
6003	invalidParams := request.ErrInvalidParams{Context: "ListAttributesInput"}
6004	if s.TargetType == nil {
6005		invalidParams.Add(request.NewErrParamRequired("TargetType"))
6006	}
6007
6008	if invalidParams.Len() > 0 {
6009		return invalidParams
6010	}
6011	return nil
6012}
6013
6014// SetAttributeName sets the AttributeName field's value.
6015func (s *ListAttributesInput) SetAttributeName(v string) *ListAttributesInput {
6016	s.AttributeName = &v
6017	return s
6018}
6019
6020// SetAttributeValue sets the AttributeValue field's value.
6021func (s *ListAttributesInput) SetAttributeValue(v string) *ListAttributesInput {
6022	s.AttributeValue = &v
6023	return s
6024}
6025
6026// SetCluster sets the Cluster field's value.
6027func (s *ListAttributesInput) SetCluster(v string) *ListAttributesInput {
6028	s.Cluster = &v
6029	return s
6030}
6031
6032// SetMaxResults sets the MaxResults field's value.
6033func (s *ListAttributesInput) SetMaxResults(v int64) *ListAttributesInput {
6034	s.MaxResults = &v
6035	return s
6036}
6037
6038// SetNextToken sets the NextToken field's value.
6039func (s *ListAttributesInput) SetNextToken(v string) *ListAttributesInput {
6040	s.NextToken = &v
6041	return s
6042}
6043
6044// SetTargetType sets the TargetType field's value.
6045func (s *ListAttributesInput) SetTargetType(v string) *ListAttributesInput {
6046	s.TargetType = &v
6047	return s
6048}
6049
6050// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributesResponse
6051type ListAttributesOutput struct {
6052	_ struct{} `type:"structure"`
6053
6054	// A list of attribute objects that meet the criteria of the request.
6055	Attributes []*Attribute `locationName:"attributes" type:"list"`
6056
6057	// The nextToken value to include in a future ListAttributes request. When the
6058	// results of a ListAttributes request exceed maxResults, this value can be
6059	// used to retrieve the next page of results. This value is null when there
6060	// are no more results to return.
6061	NextToken *string `locationName:"nextToken" type:"string"`
6062}
6063
6064// String returns the string representation
6065func (s ListAttributesOutput) String() string {
6066	return awsutil.Prettify(s)
6067}
6068
6069// GoString returns the string representation
6070func (s ListAttributesOutput) GoString() string {
6071	return s.String()
6072}
6073
6074// SetAttributes sets the Attributes field's value.
6075func (s *ListAttributesOutput) SetAttributes(v []*Attribute) *ListAttributesOutput {
6076	s.Attributes = v
6077	return s
6078}
6079
6080// SetNextToken sets the NextToken field's value.
6081func (s *ListAttributesOutput) SetNextToken(v string) *ListAttributesOutput {
6082	s.NextToken = &v
6083	return s
6084}
6085
6086// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClustersRequest
6087type ListClustersInput struct {
6088	_ struct{} `type:"structure"`
6089
6090	// The maximum number of cluster results returned by ListClusters in paginated
6091	// output. When this parameter is used, ListClusters only returns maxResults
6092	// results in a single page along with a nextToken response element. The remaining
6093	// results of the initial request can be seen by sending another ListClusters
6094	// request with the returned nextToken value. This value can be between 1 and
6095	// 100. If this parameter is not used, then ListClusters returns up to 100 results
6096	// and a nextToken value if applicable.
6097	MaxResults *int64 `locationName:"maxResults" type:"integer"`
6098
6099	// The nextToken value returned from a previous paginated ListClusters request
6100	// where maxResults was used and the results exceeded the value of that parameter.
6101	// Pagination continues from the end of the previous results that returned the
6102	// nextToken value. This value is null when there are no more results to return.
6103	//
6104	// This token should be treated as an opaque identifier that is only used to
6105	// retrieve the next items in a list and not for other programmatic purposes.
6106	NextToken *string `locationName:"nextToken" type:"string"`
6107}
6108
6109// String returns the string representation
6110func (s ListClustersInput) String() string {
6111	return awsutil.Prettify(s)
6112}
6113
6114// GoString returns the string representation
6115func (s ListClustersInput) GoString() string {
6116	return s.String()
6117}
6118
6119// SetMaxResults sets the MaxResults field's value.
6120func (s *ListClustersInput) SetMaxResults(v int64) *ListClustersInput {
6121	s.MaxResults = &v
6122	return s
6123}
6124
6125// SetNextToken sets the NextToken field's value.
6126func (s *ListClustersInput) SetNextToken(v string) *ListClustersInput {
6127	s.NextToken = &v
6128	return s
6129}
6130
6131// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClustersResponse
6132type ListClustersOutput struct {
6133	_ struct{} `type:"structure"`
6134
6135	// The list of full Amazon Resource Name (ARN) entries for each cluster associated
6136	// with your account.
6137	ClusterArns []*string `locationName:"clusterArns" type:"list"`
6138
6139	// The nextToken value to include in a future ListClusters request. When the
6140	// results of a ListClusters request exceed maxResults, this value can be used
6141	// to retrieve the next page of results. This value is null when there are no
6142	// more results to return.
6143	NextToken *string `locationName:"nextToken" type:"string"`
6144}
6145
6146// String returns the string representation
6147func (s ListClustersOutput) String() string {
6148	return awsutil.Prettify(s)
6149}
6150
6151// GoString returns the string representation
6152func (s ListClustersOutput) GoString() string {
6153	return s.String()
6154}
6155
6156// SetClusterArns sets the ClusterArns field's value.
6157func (s *ListClustersOutput) SetClusterArns(v []*string) *ListClustersOutput {
6158	s.ClusterArns = v
6159	return s
6160}
6161
6162// SetNextToken sets the NextToken field's value.
6163func (s *ListClustersOutput) SetNextToken(v string) *ListClustersOutput {
6164	s.NextToken = &v
6165	return s
6166}
6167
6168// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstancesRequest
6169type ListContainerInstancesInput struct {
6170	_ struct{} `type:"structure"`
6171
6172	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
6173	// the container instances to list. If you do not specify a cluster, the default
6174	// cluster is assumed.
6175	Cluster *string `locationName:"cluster" type:"string"`
6176
6177	// You can filter the results of a ListContainerInstances operation with cluster
6178	// query language statements. For more information, see Cluster Query Language
6179	// (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
6180	// in the Amazon EC2 Container Service Developer Guide.
6181	Filter *string `locationName:"filter" type:"string"`
6182
6183	// The maximum number of container instance results returned by ListContainerInstances
6184	// in paginated output. When this parameter is used, ListContainerInstances
6185	// only returns maxResults results in a single page along with a nextToken response
6186	// element. The remaining results of the initial request can be seen by sending
6187	// another ListContainerInstances request with the returned nextToken value.
6188	// This value can be between 1 and 100. If this parameter is not used, then
6189	// ListContainerInstances returns up to 100 results and a nextToken value if
6190	// applicable.
6191	MaxResults *int64 `locationName:"maxResults" type:"integer"`
6192
6193	// The nextToken value returned from a previous paginated ListContainerInstances
6194	// request where maxResults was used and the results exceeded the value of that
6195	// parameter. Pagination continues from the end of the previous results that
6196	// returned the nextToken value. This value is null when there are no more results
6197	// to return.
6198	//
6199	// This token should be treated as an opaque identifier that is only used to
6200	// retrieve the next items in a list and not for other programmatic purposes.
6201	NextToken *string `locationName:"nextToken" type:"string"`
6202
6203	// Filters the container instances by status. For example, if you specify the
6204	// DRAINING status, the results include only container instances that have been
6205	// set to DRAINING using UpdateContainerInstancesState. If you do not specify
6206	// this parameter, the default is to include container instances set to ACTIVE
6207	// and DRAINING.
6208	Status *string `locationName:"status" type:"string" enum:"ContainerInstanceStatus"`
6209}
6210
6211// String returns the string representation
6212func (s ListContainerInstancesInput) String() string {
6213	return awsutil.Prettify(s)
6214}
6215
6216// GoString returns the string representation
6217func (s ListContainerInstancesInput) GoString() string {
6218	return s.String()
6219}
6220
6221// SetCluster sets the Cluster field's value.
6222func (s *ListContainerInstancesInput) SetCluster(v string) *ListContainerInstancesInput {
6223	s.Cluster = &v
6224	return s
6225}
6226
6227// SetFilter sets the Filter field's value.
6228func (s *ListContainerInstancesInput) SetFilter(v string) *ListContainerInstancesInput {
6229	s.Filter = &v
6230	return s
6231}
6232
6233// SetMaxResults sets the MaxResults field's value.
6234func (s *ListContainerInstancesInput) SetMaxResults(v int64) *ListContainerInstancesInput {
6235	s.MaxResults = &v
6236	return s
6237}
6238
6239// SetNextToken sets the NextToken field's value.
6240func (s *ListContainerInstancesInput) SetNextToken(v string) *ListContainerInstancesInput {
6241	s.NextToken = &v
6242	return s
6243}
6244
6245// SetStatus sets the Status field's value.
6246func (s *ListContainerInstancesInput) SetStatus(v string) *ListContainerInstancesInput {
6247	s.Status = &v
6248	return s
6249}
6250
6251// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstancesResponse
6252type ListContainerInstancesOutput struct {
6253	_ struct{} `type:"structure"`
6254
6255	// The list of container instances with full Amazon Resource Name (ARN) entries
6256	// for each container instance associated with the specified cluster.
6257	ContainerInstanceArns []*string `locationName:"containerInstanceArns" type:"list"`
6258
6259	// The nextToken value to include in a future ListContainerInstances request.
6260	// When the results of a ListContainerInstances request exceed maxResults, this
6261	// value can be used to retrieve the next page of results. This value is null
6262	// when there are no more results to return.
6263	NextToken *string `locationName:"nextToken" type:"string"`
6264}
6265
6266// String returns the string representation
6267func (s ListContainerInstancesOutput) String() string {
6268	return awsutil.Prettify(s)
6269}
6270
6271// GoString returns the string representation
6272func (s ListContainerInstancesOutput) GoString() string {
6273	return s.String()
6274}
6275
6276// SetContainerInstanceArns sets the ContainerInstanceArns field's value.
6277func (s *ListContainerInstancesOutput) SetContainerInstanceArns(v []*string) *ListContainerInstancesOutput {
6278	s.ContainerInstanceArns = v
6279	return s
6280}
6281
6282// SetNextToken sets the NextToken field's value.
6283func (s *ListContainerInstancesOutput) SetNextToken(v string) *ListContainerInstancesOutput {
6284	s.NextToken = &v
6285	return s
6286}
6287
6288// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServicesRequest
6289type ListServicesInput struct {
6290	_ struct{} `type:"structure"`
6291
6292	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
6293	// the services to list. If you do not specify a cluster, the default cluster
6294	// is assumed.
6295	Cluster *string `locationName:"cluster" type:"string"`
6296
6297	// The maximum number of container instance results returned by ListServices
6298	// in paginated output. When this parameter is used, ListServices only returns
6299	// maxResults results in a single page along with a nextToken response element.
6300	// The remaining results of the initial request can be seen by sending another
6301	// ListServices request with the returned nextToken value. This value can be
6302	// between 1 and 10. If this parameter is not used, then ListServices returns
6303	// up to 10 results and a nextToken value if applicable.
6304	MaxResults *int64 `locationName:"maxResults" type:"integer"`
6305
6306	// The nextToken value returned from a previous paginated ListServices request
6307	// where maxResults was used and the results exceeded the value of that parameter.
6308	// Pagination continues from the end of the previous results that returned the
6309	// nextToken value. This value is null when there are no more results to return.
6310	//
6311	// This token should be treated as an opaque identifier that is only used to
6312	// retrieve the next items in a list and not for other programmatic purposes.
6313	NextToken *string `locationName:"nextToken" type:"string"`
6314}
6315
6316// String returns the string representation
6317func (s ListServicesInput) String() string {
6318	return awsutil.Prettify(s)
6319}
6320
6321// GoString returns the string representation
6322func (s ListServicesInput) GoString() string {
6323	return s.String()
6324}
6325
6326// SetCluster sets the Cluster field's value.
6327func (s *ListServicesInput) SetCluster(v string) *ListServicesInput {
6328	s.Cluster = &v
6329	return s
6330}
6331
6332// SetMaxResults sets the MaxResults field's value.
6333func (s *ListServicesInput) SetMaxResults(v int64) *ListServicesInput {
6334	s.MaxResults = &v
6335	return s
6336}
6337
6338// SetNextToken sets the NextToken field's value.
6339func (s *ListServicesInput) SetNextToken(v string) *ListServicesInput {
6340	s.NextToken = &v
6341	return s
6342}
6343
6344// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServicesResponse
6345type ListServicesOutput struct {
6346	_ struct{} `type:"structure"`
6347
6348	// The nextToken value to include in a future ListServices request. When the
6349	// results of a ListServices request exceed maxResults, this value can be used
6350	// to retrieve the next page of results. This value is null when there are no
6351	// more results to return.
6352	NextToken *string `locationName:"nextToken" type:"string"`
6353
6354	// The list of full Amazon Resource Name (ARN) entries for each service associated
6355	// with the specified cluster.
6356	ServiceArns []*string `locationName:"serviceArns" type:"list"`
6357}
6358
6359// String returns the string representation
6360func (s ListServicesOutput) String() string {
6361	return awsutil.Prettify(s)
6362}
6363
6364// GoString returns the string representation
6365func (s ListServicesOutput) GoString() string {
6366	return s.String()
6367}
6368
6369// SetNextToken sets the NextToken field's value.
6370func (s *ListServicesOutput) SetNextToken(v string) *ListServicesOutput {
6371	s.NextToken = &v
6372	return s
6373}
6374
6375// SetServiceArns sets the ServiceArns field's value.
6376func (s *ListServicesOutput) SetServiceArns(v []*string) *ListServicesOutput {
6377	s.ServiceArns = v
6378	return s
6379}
6380
6381// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamiliesRequest
6382type ListTaskDefinitionFamiliesInput struct {
6383	_ struct{} `type:"structure"`
6384
6385	// The familyPrefix is a string that is used to filter the results of ListTaskDefinitionFamilies.
6386	// If you specify a familyPrefix, only task definition family names that begin
6387	// with the familyPrefix string are returned.
6388	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
6389
6390	// The maximum number of task definition family results returned by ListTaskDefinitionFamilies
6391	// in paginated output. When this parameter is used, ListTaskDefinitions only
6392	// returns maxResults results in a single page along with a nextToken response
6393	// element. The remaining results of the initial request can be seen by sending
6394	// another ListTaskDefinitionFamilies request with the returned nextToken value.
6395	// This value can be between 1 and 100. If this parameter is not used, then
6396	// ListTaskDefinitionFamilies returns up to 100 results and a nextToken value
6397	// if applicable.
6398	MaxResults *int64 `locationName:"maxResults" type:"integer"`
6399
6400	// The nextToken value returned from a previous paginated ListTaskDefinitionFamilies
6401	// request where maxResults was used and the results exceeded the value of that
6402	// parameter. Pagination continues from the end of the previous results that
6403	// returned the nextToken value. This value is null when there are no more results
6404	// to return.
6405	//
6406	// This token should be treated as an opaque identifier that is only used to
6407	// retrieve the next items in a list and not for other programmatic purposes.
6408	NextToken *string `locationName:"nextToken" type:"string"`
6409
6410	// The task definition family status with which to filter the ListTaskDefinitionFamilies
6411	// results. By default, both ACTIVE and INACTIVE task definition families are
6412	// listed. If this parameter is set to ACTIVE, only task definition families
6413	// that have an ACTIVE task definition revision are returned. If this parameter
6414	// is set to INACTIVE, only task definition families that do not have any ACTIVE
6415	// task definition revisions are returned. If you paginate the resulting output,
6416	// be sure to keep the status value constant in each subsequent request.
6417	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionFamilyStatus"`
6418}
6419
6420// String returns the string representation
6421func (s ListTaskDefinitionFamiliesInput) String() string {
6422	return awsutil.Prettify(s)
6423}
6424
6425// GoString returns the string representation
6426func (s ListTaskDefinitionFamiliesInput) GoString() string {
6427	return s.String()
6428}
6429
6430// SetFamilyPrefix sets the FamilyPrefix field's value.
6431func (s *ListTaskDefinitionFamiliesInput) SetFamilyPrefix(v string) *ListTaskDefinitionFamiliesInput {
6432	s.FamilyPrefix = &v
6433	return s
6434}
6435
6436// SetMaxResults sets the MaxResults field's value.
6437func (s *ListTaskDefinitionFamiliesInput) SetMaxResults(v int64) *ListTaskDefinitionFamiliesInput {
6438	s.MaxResults = &v
6439	return s
6440}
6441
6442// SetNextToken sets the NextToken field's value.
6443func (s *ListTaskDefinitionFamiliesInput) SetNextToken(v string) *ListTaskDefinitionFamiliesInput {
6444	s.NextToken = &v
6445	return s
6446}
6447
6448// SetStatus sets the Status field's value.
6449func (s *ListTaskDefinitionFamiliesInput) SetStatus(v string) *ListTaskDefinitionFamiliesInput {
6450	s.Status = &v
6451	return s
6452}
6453
6454// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamiliesResponse
6455type ListTaskDefinitionFamiliesOutput struct {
6456	_ struct{} `type:"structure"`
6457
6458	// The list of task definition family names that match the ListTaskDefinitionFamilies
6459	// request.
6460	Families []*string `locationName:"families" type:"list"`
6461
6462	// The nextToken value to include in a future ListTaskDefinitionFamilies request.
6463	// When the results of a ListTaskDefinitionFamilies request exceed maxResults,
6464	// this value can be used to retrieve the next page of results. This value is
6465	// null when there are no more results to return.
6466	NextToken *string `locationName:"nextToken" type:"string"`
6467}
6468
6469// String returns the string representation
6470func (s ListTaskDefinitionFamiliesOutput) String() string {
6471	return awsutil.Prettify(s)
6472}
6473
6474// GoString returns the string representation
6475func (s ListTaskDefinitionFamiliesOutput) GoString() string {
6476	return s.String()
6477}
6478
6479// SetFamilies sets the Families field's value.
6480func (s *ListTaskDefinitionFamiliesOutput) SetFamilies(v []*string) *ListTaskDefinitionFamiliesOutput {
6481	s.Families = v
6482	return s
6483}
6484
6485// SetNextToken sets the NextToken field's value.
6486func (s *ListTaskDefinitionFamiliesOutput) SetNextToken(v string) *ListTaskDefinitionFamiliesOutput {
6487	s.NextToken = &v
6488	return s
6489}
6490
6491// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionsRequest
6492type ListTaskDefinitionsInput struct {
6493	_ struct{} `type:"structure"`
6494
6495	// The full family name with which to filter the ListTaskDefinitions results.
6496	// Specifying a familyPrefix limits the listed task definitions to task definition
6497	// revisions that belong to that family.
6498	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
6499
6500	// The maximum number of task definition results returned by ListTaskDefinitions
6501	// in paginated output. When this parameter is used, ListTaskDefinitions only
6502	// returns maxResults results in a single page along with a nextToken response
6503	// element. The remaining results of the initial request can be seen by sending
6504	// another ListTaskDefinitions request with the returned nextToken value. This
6505	// value can be between 1 and 100. If this parameter is not used, then ListTaskDefinitions
6506	// returns up to 100 results and a nextToken value if applicable.
6507	MaxResults *int64 `locationName:"maxResults" type:"integer"`
6508
6509	// The nextToken value returned from a previous paginated ListTaskDefinitions
6510	// request where maxResults was used and the results exceeded the value of that
6511	// parameter. Pagination continues from the end of the previous results that
6512	// returned the nextToken value. This value is null when there are no more results
6513	// to return.
6514	//
6515	// This token should be treated as an opaque identifier that is only used to
6516	// retrieve the next items in a list and not for other programmatic purposes.
6517	NextToken *string `locationName:"nextToken" type:"string"`
6518
6519	// The order in which to sort the results. Valid values are ASC and DESC. By
6520	// default (ASC), task definitions are listed lexicographically by family name
6521	// and in ascending numerical order by revision so that the newest task definitions
6522	// in a family are listed last. Setting this parameter to DESC reverses the
6523	// sort order on family name and revision so that the newest task definitions
6524	// in a family are listed first.
6525	Sort *string `locationName:"sort" type:"string" enum:"SortOrder"`
6526
6527	// The task definition status with which to filter the ListTaskDefinitions results.
6528	// By default, only ACTIVE task definitions are listed. By setting this parameter
6529	// to INACTIVE, you can view task definitions that are INACTIVE as long as an
6530	// active task or service still references them. If you paginate the resulting
6531	// output, be sure to keep the status value constant in each subsequent request.
6532	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
6533}
6534
6535// String returns the string representation
6536func (s ListTaskDefinitionsInput) String() string {
6537	return awsutil.Prettify(s)
6538}
6539
6540// GoString returns the string representation
6541func (s ListTaskDefinitionsInput) GoString() string {
6542	return s.String()
6543}
6544
6545// SetFamilyPrefix sets the FamilyPrefix field's value.
6546func (s *ListTaskDefinitionsInput) SetFamilyPrefix(v string) *ListTaskDefinitionsInput {
6547	s.FamilyPrefix = &v
6548	return s
6549}
6550
6551// SetMaxResults sets the MaxResults field's value.
6552func (s *ListTaskDefinitionsInput) SetMaxResults(v int64) *ListTaskDefinitionsInput {
6553	s.MaxResults = &v
6554	return s
6555}
6556
6557// SetNextToken sets the NextToken field's value.
6558func (s *ListTaskDefinitionsInput) SetNextToken(v string) *ListTaskDefinitionsInput {
6559	s.NextToken = &v
6560	return s
6561}
6562
6563// SetSort sets the Sort field's value.
6564func (s *ListTaskDefinitionsInput) SetSort(v string) *ListTaskDefinitionsInput {
6565	s.Sort = &v
6566	return s
6567}
6568
6569// SetStatus sets the Status field's value.
6570func (s *ListTaskDefinitionsInput) SetStatus(v string) *ListTaskDefinitionsInput {
6571	s.Status = &v
6572	return s
6573}
6574
6575// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionsResponse
6576type ListTaskDefinitionsOutput struct {
6577	_ struct{} `type:"structure"`
6578
6579	// The nextToken value to include in a future ListTaskDefinitions request. When
6580	// the results of a ListTaskDefinitions request exceed maxResults, this value
6581	// can be used to retrieve the next page of results. This value is null when
6582	// there are no more results to return.
6583	NextToken *string `locationName:"nextToken" type:"string"`
6584
6585	// The list of task definition Amazon Resource Name (ARN) entries for the ListTaskDefinitions
6586	// request.
6587	TaskDefinitionArns []*string `locationName:"taskDefinitionArns" type:"list"`
6588}
6589
6590// String returns the string representation
6591func (s ListTaskDefinitionsOutput) String() string {
6592	return awsutil.Prettify(s)
6593}
6594
6595// GoString returns the string representation
6596func (s ListTaskDefinitionsOutput) GoString() string {
6597	return s.String()
6598}
6599
6600// SetNextToken sets the NextToken field's value.
6601func (s *ListTaskDefinitionsOutput) SetNextToken(v string) *ListTaskDefinitionsOutput {
6602	s.NextToken = &v
6603	return s
6604}
6605
6606// SetTaskDefinitionArns sets the TaskDefinitionArns field's value.
6607func (s *ListTaskDefinitionsOutput) SetTaskDefinitionArns(v []*string) *ListTaskDefinitionsOutput {
6608	s.TaskDefinitionArns = v
6609	return s
6610}
6611
6612// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasksRequest
6613type ListTasksInput struct {
6614	_ struct{} `type:"structure"`
6615
6616	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
6617	// the tasks to list. If you do not specify a cluster, the default cluster is
6618	// assumed.
6619	Cluster *string `locationName:"cluster" type:"string"`
6620
6621	// The container instance ID or full Amazon Resource Name (ARN) of the container
6622	// instance with which to filter the ListTasks results. Specifying a containerInstance
6623	// limits the results to tasks that belong to that container instance.
6624	ContainerInstance *string `locationName:"containerInstance" type:"string"`
6625
6626	// The task desired status with which to filter the ListTasks results. Specifying
6627	// a desiredStatus of STOPPED limits the results to tasks that ECS has set the
6628	// desired status to STOPPED, which can be useful for debugging tasks that are
6629	// not starting properly or have died or finished. The default status filter
6630	// is RUNNING, which shows tasks that ECS has set the desired status to RUNNING.
6631	//
6632	// Although you can filter results based on a desired status of PENDING, this
6633	// will not return any results because ECS never sets the desired status of
6634	// a task to that value (only a task's lastStatus may have a value of PENDING).
6635	DesiredStatus *string `locationName:"desiredStatus" type:"string" enum:"DesiredStatus"`
6636
6637	// The name of the family with which to filter the ListTasks results. Specifying
6638	// a family limits the results to tasks that belong to that family.
6639	Family *string `locationName:"family" type:"string"`
6640
6641	// The maximum number of task results returned by ListTasks in paginated output.
6642	// When this parameter is used, ListTasks only returns maxResults results in
6643	// a single page along with a nextToken response element. The remaining results
6644	// of the initial request can be seen by sending another ListTasks request with
6645	// the returned nextToken value. This value can be between 1 and 100. If this
6646	// parameter is not used, then ListTasks returns up to 100 results and a nextToken
6647	// value if applicable.
6648	MaxResults *int64 `locationName:"maxResults" type:"integer"`
6649
6650	// The nextToken value returned from a previous paginated ListTasks request
6651	// where maxResults was used and the results exceeded the value of that parameter.
6652	// Pagination continues from the end of the previous results that returned the
6653	// nextToken value. This value is null when there are no more results to return.
6654	//
6655	// This token should be treated as an opaque identifier that is only used to
6656	// retrieve the next items in a list and not for other programmatic purposes.
6657	NextToken *string `locationName:"nextToken" type:"string"`
6658
6659	// The name of the service with which to filter the ListTasks results. Specifying
6660	// a serviceName limits the results to tasks that belong to that service.
6661	ServiceName *string `locationName:"serviceName" type:"string"`
6662
6663	// The startedBy value with which to filter the task results. Specifying a startedBy
6664	// value limits the results to tasks that were started with that value.
6665	StartedBy *string `locationName:"startedBy" type:"string"`
6666}
6667
6668// String returns the string representation
6669func (s ListTasksInput) String() string {
6670	return awsutil.Prettify(s)
6671}
6672
6673// GoString returns the string representation
6674func (s ListTasksInput) GoString() string {
6675	return s.String()
6676}
6677
6678// SetCluster sets the Cluster field's value.
6679func (s *ListTasksInput) SetCluster(v string) *ListTasksInput {
6680	s.Cluster = &v
6681	return s
6682}
6683
6684// SetContainerInstance sets the ContainerInstance field's value.
6685func (s *ListTasksInput) SetContainerInstance(v string) *ListTasksInput {
6686	s.ContainerInstance = &v
6687	return s
6688}
6689
6690// SetDesiredStatus sets the DesiredStatus field's value.
6691func (s *ListTasksInput) SetDesiredStatus(v string) *ListTasksInput {
6692	s.DesiredStatus = &v
6693	return s
6694}
6695
6696// SetFamily sets the Family field's value.
6697func (s *ListTasksInput) SetFamily(v string) *ListTasksInput {
6698	s.Family = &v
6699	return s
6700}
6701
6702// SetMaxResults sets the MaxResults field's value.
6703func (s *ListTasksInput) SetMaxResults(v int64) *ListTasksInput {
6704	s.MaxResults = &v
6705	return s
6706}
6707
6708// SetNextToken sets the NextToken field's value.
6709func (s *ListTasksInput) SetNextToken(v string) *ListTasksInput {
6710	s.NextToken = &v
6711	return s
6712}
6713
6714// SetServiceName sets the ServiceName field's value.
6715func (s *ListTasksInput) SetServiceName(v string) *ListTasksInput {
6716	s.ServiceName = &v
6717	return s
6718}
6719
6720// SetStartedBy sets the StartedBy field's value.
6721func (s *ListTasksInput) SetStartedBy(v string) *ListTasksInput {
6722	s.StartedBy = &v
6723	return s
6724}
6725
6726// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasksResponse
6727type ListTasksOutput struct {
6728	_ struct{} `type:"structure"`
6729
6730	// The nextToken value to include in a future ListTasks request. When the results
6731	// of a ListTasks request exceed maxResults, this value can be used to retrieve
6732	// the next page of results. This value is null when there are no more results
6733	// to return.
6734	NextToken *string `locationName:"nextToken" type:"string"`
6735
6736	// The list of task Amazon Resource Name (ARN) entries for the ListTasks request.
6737	TaskArns []*string `locationName:"taskArns" type:"list"`
6738}
6739
6740// String returns the string representation
6741func (s ListTasksOutput) String() string {
6742	return awsutil.Prettify(s)
6743}
6744
6745// GoString returns the string representation
6746func (s ListTasksOutput) GoString() string {
6747	return s.String()
6748}
6749
6750// SetNextToken sets the NextToken field's value.
6751func (s *ListTasksOutput) SetNextToken(v string) *ListTasksOutput {
6752	s.NextToken = &v
6753	return s
6754}
6755
6756// SetTaskArns sets the TaskArns field's value.
6757func (s *ListTasksOutput) SetTaskArns(v []*string) *ListTasksOutput {
6758	s.TaskArns = v
6759	return s
6760}
6761
6762// Details on a load balancer that is used with a service.
6763// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/LoadBalancer
6764type LoadBalancer struct {
6765	_ struct{} `type:"structure"`
6766
6767	// The name of the container (as it appears in a container definition) to associate
6768	// with the load balancer.
6769	ContainerName *string `locationName:"containerName" type:"string"`
6770
6771	// The port on the container to associate with the load balancer. This port
6772	// must correspond to a containerPort in the service's task definition. Your
6773	// container instances must allow ingress traffic on the hostPort of the port
6774	// mapping.
6775	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
6776
6777	// The name of a load balancer.
6778	LoadBalancerName *string `locationName:"loadBalancerName" type:"string"`
6779
6780	// The full Amazon Resource Name (ARN) of the Elastic Load Balancing target
6781	// group associated with a service.
6782	TargetGroupArn *string `locationName:"targetGroupArn" type:"string"`
6783}
6784
6785// String returns the string representation
6786func (s LoadBalancer) String() string {
6787	return awsutil.Prettify(s)
6788}
6789
6790// GoString returns the string representation
6791func (s LoadBalancer) GoString() string {
6792	return s.String()
6793}
6794
6795// SetContainerName sets the ContainerName field's value.
6796func (s *LoadBalancer) SetContainerName(v string) *LoadBalancer {
6797	s.ContainerName = &v
6798	return s
6799}
6800
6801// SetContainerPort sets the ContainerPort field's value.
6802func (s *LoadBalancer) SetContainerPort(v int64) *LoadBalancer {
6803	s.ContainerPort = &v
6804	return s
6805}
6806
6807// SetLoadBalancerName sets the LoadBalancerName field's value.
6808func (s *LoadBalancer) SetLoadBalancerName(v string) *LoadBalancer {
6809	s.LoadBalancerName = &v
6810	return s
6811}
6812
6813// SetTargetGroupArn sets the TargetGroupArn field's value.
6814func (s *LoadBalancer) SetTargetGroupArn(v string) *LoadBalancer {
6815	s.TargetGroupArn = &v
6816	return s
6817}
6818
6819// Log configuration options to send to a custom log driver for the container.
6820// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/LogConfiguration
6821type LogConfiguration struct {
6822	_ struct{} `type:"structure"`
6823
6824	// The log driver to use for the container. The valid values listed for this
6825	// parameter are log drivers that the Amazon ECS container agent can communicate
6826	// with by default.
6827	//
6828	// If you have a custom driver that is not listed above that you would like
6829	// to work with the Amazon ECS container agent, you can fork the Amazon ECS
6830	// container agent project that is available on GitHub (https://github.com/aws/amazon-ecs-agent)
6831	// and customize it to work with that driver. We encourage you to submit pull
6832	// requests for changes that you would like to have included. However, Amazon
6833	// Web Services does not currently provide support for running modified copies
6834	// of this software.
6835	//
6836	// This parameter requires version 1.18 of the Docker Remote API or greater
6837	// on your container instance. To check the Docker Remote API version on your
6838	// container instance, log into your container instance and run the following
6839	// command: sudo docker version | grep "Server API version"
6840	//
6841	// LogDriver is a required field
6842	LogDriver *string `locationName:"logDriver" type:"string" required:"true" enum:"LogDriver"`
6843
6844	// The configuration options to send to the log driver. This parameter requires
6845	// version 1.19 of the Docker Remote API or greater on your container instance.
6846	// To check the Docker Remote API version on your container instance, log into
6847	// your container instance and run the following command: sudo docker version
6848	// | grep "Server API version"
6849	Options map[string]*string `locationName:"options" type:"map"`
6850}
6851
6852// String returns the string representation
6853func (s LogConfiguration) String() string {
6854	return awsutil.Prettify(s)
6855}
6856
6857// GoString returns the string representation
6858func (s LogConfiguration) GoString() string {
6859	return s.String()
6860}
6861
6862// Validate inspects the fields of the type to determine if they are valid.
6863func (s *LogConfiguration) Validate() error {
6864	invalidParams := request.ErrInvalidParams{Context: "LogConfiguration"}
6865	if s.LogDriver == nil {
6866		invalidParams.Add(request.NewErrParamRequired("LogDriver"))
6867	}
6868
6869	if invalidParams.Len() > 0 {
6870		return invalidParams
6871	}
6872	return nil
6873}
6874
6875// SetLogDriver sets the LogDriver field's value.
6876func (s *LogConfiguration) SetLogDriver(v string) *LogConfiguration {
6877	s.LogDriver = &v
6878	return s
6879}
6880
6881// SetOptions sets the Options field's value.
6882func (s *LogConfiguration) SetOptions(v map[string]*string) *LogConfiguration {
6883	s.Options = v
6884	return s
6885}
6886
6887// Details on a volume mount point that is used in a container definition.
6888// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/MountPoint
6889type MountPoint struct {
6890	_ struct{} `type:"structure"`
6891
6892	// The path on the container to mount the host volume at.
6893	ContainerPath *string `locationName:"containerPath" type:"string"`
6894
6895	// If this value is true, the container has read-only access to the volume.
6896	// If this value is false, then the container can write to the volume. The default
6897	// value is false.
6898	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
6899
6900	// The name of the volume to mount.
6901	SourceVolume *string `locationName:"sourceVolume" type:"string"`
6902}
6903
6904// String returns the string representation
6905func (s MountPoint) String() string {
6906	return awsutil.Prettify(s)
6907}
6908
6909// GoString returns the string representation
6910func (s MountPoint) GoString() string {
6911	return s.String()
6912}
6913
6914// SetContainerPath sets the ContainerPath field's value.
6915func (s *MountPoint) SetContainerPath(v string) *MountPoint {
6916	s.ContainerPath = &v
6917	return s
6918}
6919
6920// SetReadOnly sets the ReadOnly field's value.
6921func (s *MountPoint) SetReadOnly(v bool) *MountPoint {
6922	s.ReadOnly = &v
6923	return s
6924}
6925
6926// SetSourceVolume sets the SourceVolume field's value.
6927func (s *MountPoint) SetSourceVolume(v string) *MountPoint {
6928	s.SourceVolume = &v
6929	return s
6930}
6931
6932// Details on the network bindings between a container and its host container
6933// instance. After a task reaches the RUNNING status, manual and automatic host
6934// and container port assignments are visible in the networkBindings section
6935// of DescribeTasks API responses.
6936// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/NetworkBinding
6937type NetworkBinding struct {
6938	_ struct{} `type:"structure"`
6939
6940	// The IP address that the container is bound to on the container instance.
6941	BindIP *string `locationName:"bindIP" type:"string"`
6942
6943	// The port number on the container that is be used with the network binding.
6944	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
6945
6946	// The port number on the host that is used with the network binding.
6947	HostPort *int64 `locationName:"hostPort" type:"integer"`
6948
6949	// The protocol used for the network binding.
6950	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
6951}
6952
6953// String returns the string representation
6954func (s NetworkBinding) String() string {
6955	return awsutil.Prettify(s)
6956}
6957
6958// GoString returns the string representation
6959func (s NetworkBinding) GoString() string {
6960	return s.String()
6961}
6962
6963// SetBindIP sets the BindIP field's value.
6964func (s *NetworkBinding) SetBindIP(v string) *NetworkBinding {
6965	s.BindIP = &v
6966	return s
6967}
6968
6969// SetContainerPort sets the ContainerPort field's value.
6970func (s *NetworkBinding) SetContainerPort(v int64) *NetworkBinding {
6971	s.ContainerPort = &v
6972	return s
6973}
6974
6975// SetHostPort sets the HostPort field's value.
6976func (s *NetworkBinding) SetHostPort(v int64) *NetworkBinding {
6977	s.HostPort = &v
6978	return s
6979}
6980
6981// SetProtocol sets the Protocol field's value.
6982func (s *NetworkBinding) SetProtocol(v string) *NetworkBinding {
6983	s.Protocol = &v
6984	return s
6985}
6986
6987// An object representing a constraint on task placement. For more information,
6988// see Task Placement Constraints (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
6989// in the Amazon EC2 Container Service Developer Guide.
6990// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PlacementConstraint
6991type PlacementConstraint struct {
6992	_ struct{} `type:"structure"`
6993
6994	// A cluster query language expression to apply to the constraint. Note you
6995	// cannot specify an expression if the constraint type is distinctInstance.
6996	// For more information, see Cluster Query Language (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
6997	// in the Amazon EC2 Container Service Developer Guide.
6998	Expression *string `locationName:"expression" type:"string"`
6999
7000	// The type of constraint. Use distinctInstance to ensure that each task in
7001	// a particular group is running on a different container instance. Use memberOf
7002	// to restrict selection to a group of valid candidates. Note that distinctInstance
7003	// is not supported in task definitions.
7004	Type *string `locationName:"type" type:"string" enum:"PlacementConstraintType"`
7005}
7006
7007// String returns the string representation
7008func (s PlacementConstraint) String() string {
7009	return awsutil.Prettify(s)
7010}
7011
7012// GoString returns the string representation
7013func (s PlacementConstraint) GoString() string {
7014	return s.String()
7015}
7016
7017// SetExpression sets the Expression field's value.
7018func (s *PlacementConstraint) SetExpression(v string) *PlacementConstraint {
7019	s.Expression = &v
7020	return s
7021}
7022
7023// SetType sets the Type field's value.
7024func (s *PlacementConstraint) SetType(v string) *PlacementConstraint {
7025	s.Type = &v
7026	return s
7027}
7028
7029// The task placement strategy for a task or service. For more information,
7030// see Task Placement Strategies (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html)
7031// in the Amazon EC2 Container Service Developer Guide.
7032// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PlacementStrategy
7033type PlacementStrategy struct {
7034	_ struct{} `type:"structure"`
7035
7036	// The field to apply the placement strategy against. For the spread placement
7037	// strategy, valid values are instanceId (or host, which has the same effect),
7038	// or any platform or custom attribute that is applied to a container instance,
7039	// such as attribute:ecs.availability-zone. For the binpack placement strategy,
7040	// valid values are cpu and memory. For the random placement strategy, this
7041	// field is not used.
7042	Field *string `locationName:"field" type:"string"`
7043
7044	// The type of placement strategy. The random placement strategy randomly places
7045	// tasks on available candidates. The spread placement strategy spreads placement
7046	// across available candidates evenly based on the field parameter. The binpack
7047	// strategy places tasks on available candidates that have the least available
7048	// amount of the resource that is specified with the field parameter. For example,
7049	// if you binpack on memory, a task is placed on the instance with the least
7050	// amount of remaining memory (but still enough to run the task).
7051	Type *string `locationName:"type" type:"string" enum:"PlacementStrategyType"`
7052}
7053
7054// String returns the string representation
7055func (s PlacementStrategy) String() string {
7056	return awsutil.Prettify(s)
7057}
7058
7059// GoString returns the string representation
7060func (s PlacementStrategy) GoString() string {
7061	return s.String()
7062}
7063
7064// SetField sets the Field field's value.
7065func (s *PlacementStrategy) SetField(v string) *PlacementStrategy {
7066	s.Field = &v
7067	return s
7068}
7069
7070// SetType sets the Type field's value.
7071func (s *PlacementStrategy) SetType(v string) *PlacementStrategy {
7072	s.Type = &v
7073	return s
7074}
7075
7076// Port mappings allow containers to access ports on the host container instance
7077// to send or receive traffic. Port mappings are specified as part of the container
7078// definition. After a task reaches the RUNNING status, manual and automatic
7079// host and container port assignments are visible in the networkBindings section
7080// of DescribeTasks API responses.
7081// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PortMapping
7082type PortMapping struct {
7083	_ struct{} `type:"structure"`
7084
7085	// The port number on the container that is bound to the user-specified or automatically
7086	// assigned host port. If you specify a container port and not a host port,
7087	// your container automatically receives a host port in the ephemeral port range
7088	// (for more information, see hostPort). Port mappings that are automatically
7089	// assigned in this way do not count toward the 100 reserved ports limit of
7090	// a container instance.
7091	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
7092
7093	// The port number on the container instance to reserve for your container.
7094	// You can specify a non-reserved host port for your container port mapping,
7095	// or you can omit the hostPort (or set it to 0) while specifying a containerPort
7096	// and your container automatically receives a port in the ephemeral port range
7097	// for your container instance operating system and Docker version.
7098	//
7099	// The default ephemeral port range for Docker version 1.6.0 and later is listed
7100	// on the instance under /proc/sys/net/ipv4/ip_local_port_range; if this kernel
7101	// parameter is unavailable, the default ephemeral port range of 49153 to 65535
7102	// is used. You should not attempt to specify a host port in the ephemeral port
7103	// range as these are reserved for automatic assignment. In general, ports below
7104	// 32768 are outside of the ephemeral port range.
7105	//
7106	// The default ephemeral port range of 49153 to 65535 will always be used for
7107	// Docker versions prior to 1.6.0.
7108	//
7109	// The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376,
7110	// and the Amazon ECS container agent ports 51678 and 51679. Any host port that
7111	// was previously specified in a running task is also reserved while the task
7112	// is running (after a task stops, the host port is released).The current reserved
7113	// ports are displayed in the remainingResources of DescribeContainerInstances
7114	// output, and a container instance may have up to 100 reserved ports at a time,
7115	// including the default reserved ports (automatically assigned ports do not
7116	// count toward the 100 reserved ports limit).
7117	HostPort *int64 `locationName:"hostPort" type:"integer"`
7118
7119	// The protocol used for the port mapping. Valid values are tcp and udp. The
7120	// default is tcp.
7121	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
7122}
7123
7124// String returns the string representation
7125func (s PortMapping) String() string {
7126	return awsutil.Prettify(s)
7127}
7128
7129// GoString returns the string representation
7130func (s PortMapping) GoString() string {
7131	return s.String()
7132}
7133
7134// SetContainerPort sets the ContainerPort field's value.
7135func (s *PortMapping) SetContainerPort(v int64) *PortMapping {
7136	s.ContainerPort = &v
7137	return s
7138}
7139
7140// SetHostPort sets the HostPort field's value.
7141func (s *PortMapping) SetHostPort(v int64) *PortMapping {
7142	s.HostPort = &v
7143	return s
7144}
7145
7146// SetProtocol sets the Protocol field's value.
7147func (s *PortMapping) SetProtocol(v string) *PortMapping {
7148	s.Protocol = &v
7149	return s
7150}
7151
7152// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributesRequest
7153type PutAttributesInput struct {
7154	_ struct{} `type:"structure"`
7155
7156	// The attributes to apply to your resource. You can specify up to 10 custom
7157	// attributes per resource. You can specify up to 10 attributes in a single
7158	// call.
7159	//
7160	// Attributes is a required field
7161	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
7162
7163	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
7164	// the resource to apply attributes. If you do not specify a cluster, the default
7165	// cluster is assumed.
7166	Cluster *string `locationName:"cluster" type:"string"`
7167}
7168
7169// String returns the string representation
7170func (s PutAttributesInput) String() string {
7171	return awsutil.Prettify(s)
7172}
7173
7174// GoString returns the string representation
7175func (s PutAttributesInput) GoString() string {
7176	return s.String()
7177}
7178
7179// Validate inspects the fields of the type to determine if they are valid.
7180func (s *PutAttributesInput) Validate() error {
7181	invalidParams := request.ErrInvalidParams{Context: "PutAttributesInput"}
7182	if s.Attributes == nil {
7183		invalidParams.Add(request.NewErrParamRequired("Attributes"))
7184	}
7185	if s.Attributes != nil {
7186		for i, v := range s.Attributes {
7187			if v == nil {
7188				continue
7189			}
7190			if err := v.Validate(); err != nil {
7191				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
7192			}
7193		}
7194	}
7195
7196	if invalidParams.Len() > 0 {
7197		return invalidParams
7198	}
7199	return nil
7200}
7201
7202// SetAttributes sets the Attributes field's value.
7203func (s *PutAttributesInput) SetAttributes(v []*Attribute) *PutAttributesInput {
7204	s.Attributes = v
7205	return s
7206}
7207
7208// SetCluster sets the Cluster field's value.
7209func (s *PutAttributesInput) SetCluster(v string) *PutAttributesInput {
7210	s.Cluster = &v
7211	return s
7212}
7213
7214// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributesResponse
7215type PutAttributesOutput struct {
7216	_ struct{} `type:"structure"`
7217
7218	// The attributes applied to your resource.
7219	Attributes []*Attribute `locationName:"attributes" type:"list"`
7220}
7221
7222// String returns the string representation
7223func (s PutAttributesOutput) String() string {
7224	return awsutil.Prettify(s)
7225}
7226
7227// GoString returns the string representation
7228func (s PutAttributesOutput) GoString() string {
7229	return s.String()
7230}
7231
7232// SetAttributes sets the Attributes field's value.
7233func (s *PutAttributesOutput) SetAttributes(v []*Attribute) *PutAttributesOutput {
7234	s.Attributes = v
7235	return s
7236}
7237
7238// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstanceRequest
7239type RegisterContainerInstanceInput struct {
7240	_ struct{} `type:"structure"`
7241
7242	// The container instance attributes that this container instance supports.
7243	Attributes []*Attribute `locationName:"attributes" type:"list"`
7244
7245	// The short name or full Amazon Resource Name (ARN) of the cluster with which
7246	// to register your container instance. If you do not specify a cluster, the
7247	// default cluster is assumed.
7248	Cluster *string `locationName:"cluster" type:"string"`
7249
7250	// The Amazon Resource Name (ARN) of the container instance (if it was previously
7251	// registered).
7252	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
7253
7254	// The instance identity document for the EC2 instance to register. This document
7255	// can be found by running the following command from the instance: curl http://169.254.169.254/latest/dynamic/instance-identity/document/
7256	InstanceIdentityDocument *string `locationName:"instanceIdentityDocument" type:"string"`
7257
7258	// The instance identity document signature for the EC2 instance to register.
7259	// This signature can be found by running the following command from the instance:
7260	// curl http://169.254.169.254/latest/dynamic/instance-identity/signature/
7261	InstanceIdentityDocumentSignature *string `locationName:"instanceIdentityDocumentSignature" type:"string"`
7262
7263	// The resources available on the instance.
7264	TotalResources []*Resource `locationName:"totalResources" type:"list"`
7265
7266	// The version information for the Amazon ECS container agent and Docker daemon
7267	// running on the container instance.
7268	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
7269}
7270
7271// String returns the string representation
7272func (s RegisterContainerInstanceInput) String() string {
7273	return awsutil.Prettify(s)
7274}
7275
7276// GoString returns the string representation
7277func (s RegisterContainerInstanceInput) GoString() string {
7278	return s.String()
7279}
7280
7281// Validate inspects the fields of the type to determine if they are valid.
7282func (s *RegisterContainerInstanceInput) Validate() error {
7283	invalidParams := request.ErrInvalidParams{Context: "RegisterContainerInstanceInput"}
7284	if s.Attributes != nil {
7285		for i, v := range s.Attributes {
7286			if v == nil {
7287				continue
7288			}
7289			if err := v.Validate(); err != nil {
7290				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
7291			}
7292		}
7293	}
7294
7295	if invalidParams.Len() > 0 {
7296		return invalidParams
7297	}
7298	return nil
7299}
7300
7301// SetAttributes sets the Attributes field's value.
7302func (s *RegisterContainerInstanceInput) SetAttributes(v []*Attribute) *RegisterContainerInstanceInput {
7303	s.Attributes = v
7304	return s
7305}
7306
7307// SetCluster sets the Cluster field's value.
7308func (s *RegisterContainerInstanceInput) SetCluster(v string) *RegisterContainerInstanceInput {
7309	s.Cluster = &v
7310	return s
7311}
7312
7313// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
7314func (s *RegisterContainerInstanceInput) SetContainerInstanceArn(v string) *RegisterContainerInstanceInput {
7315	s.ContainerInstanceArn = &v
7316	return s
7317}
7318
7319// SetInstanceIdentityDocument sets the InstanceIdentityDocument field's value.
7320func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocument(v string) *RegisterContainerInstanceInput {
7321	s.InstanceIdentityDocument = &v
7322	return s
7323}
7324
7325// SetInstanceIdentityDocumentSignature sets the InstanceIdentityDocumentSignature field's value.
7326func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocumentSignature(v string) *RegisterContainerInstanceInput {
7327	s.InstanceIdentityDocumentSignature = &v
7328	return s
7329}
7330
7331// SetTotalResources sets the TotalResources field's value.
7332func (s *RegisterContainerInstanceInput) SetTotalResources(v []*Resource) *RegisterContainerInstanceInput {
7333	s.TotalResources = v
7334	return s
7335}
7336
7337// SetVersionInfo sets the VersionInfo field's value.
7338func (s *RegisterContainerInstanceInput) SetVersionInfo(v *VersionInfo) *RegisterContainerInstanceInput {
7339	s.VersionInfo = v
7340	return s
7341}
7342
7343// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstanceResponse
7344type RegisterContainerInstanceOutput struct {
7345	_ struct{} `type:"structure"`
7346
7347	// The container instance that was registered.
7348	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
7349}
7350
7351// String returns the string representation
7352func (s RegisterContainerInstanceOutput) String() string {
7353	return awsutil.Prettify(s)
7354}
7355
7356// GoString returns the string representation
7357func (s RegisterContainerInstanceOutput) GoString() string {
7358	return s.String()
7359}
7360
7361// SetContainerInstance sets the ContainerInstance field's value.
7362func (s *RegisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *RegisterContainerInstanceOutput {
7363	s.ContainerInstance = v
7364	return s
7365}
7366
7367// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinitionRequest
7368type RegisterTaskDefinitionInput struct {
7369	_ struct{} `type:"structure"`
7370
7371	// A list of container definitions in JSON format that describe the different
7372	// containers that make up your task.
7373	//
7374	// ContainerDefinitions is a required field
7375	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list" required:"true"`
7376
7377	// You must specify a family for a task definition, which allows you to track
7378	// multiple versions of the same task definition. The family is used as a name
7379	// for your task definition. Up to 255 letters (uppercase and lowercase), numbers,
7380	// hyphens, and underscores are allowed.
7381	//
7382	// Family is a required field
7383	Family *string `locationName:"family" type:"string" required:"true"`
7384
7385	// The Docker networking mode to use for the containers in the task. The valid
7386	// values are none, bridge, and host.
7387	//
7388	// The default Docker network mode is bridge. If the network mode is set to
7389	// none, you cannot specify port mappings in your container definitions, and
7390	// the task's containers do not have external connectivity. The host network
7391	// mode offers the highest networking performance for containers because they
7392	// use the host network stack instead of the virtualized network stack provided
7393	// by the bridge mode; however, exposed container ports are mapped directly
7394	// to the corresponding host port, so you cannot take advantage of dynamic host
7395	// port mappings or run multiple instantiations of the same task on a single
7396	// container instance if port mappings are used.
7397	//
7398	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
7399	// in the Docker run reference.
7400	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
7401
7402	// An array of placement constraint objects to use for the task. You can specify
7403	// a maximum of 10 constraints per task (this limit includes constraints in
7404	// the task definition and those specified at run time).
7405	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
7406
7407	// The short name or full Amazon Resource Name (ARN) of the IAM role that containers
7408	// in this task can assume. All containers in this task are granted the permissions
7409	// that are specified in this role. For more information, see IAM Roles for
7410	// Tasks (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
7411	// in the Amazon EC2 Container Service Developer Guide.
7412	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
7413
7414	// A list of volume definitions in JSON format that containers in your task
7415	// may use.
7416	Volumes []*Volume `locationName:"volumes" type:"list"`
7417}
7418
7419// String returns the string representation
7420func (s RegisterTaskDefinitionInput) String() string {
7421	return awsutil.Prettify(s)
7422}
7423
7424// GoString returns the string representation
7425func (s RegisterTaskDefinitionInput) GoString() string {
7426	return s.String()
7427}
7428
7429// Validate inspects the fields of the type to determine if they are valid.
7430func (s *RegisterTaskDefinitionInput) Validate() error {
7431	invalidParams := request.ErrInvalidParams{Context: "RegisterTaskDefinitionInput"}
7432	if s.ContainerDefinitions == nil {
7433		invalidParams.Add(request.NewErrParamRequired("ContainerDefinitions"))
7434	}
7435	if s.Family == nil {
7436		invalidParams.Add(request.NewErrParamRequired("Family"))
7437	}
7438	if s.ContainerDefinitions != nil {
7439		for i, v := range s.ContainerDefinitions {
7440			if v == nil {
7441				continue
7442			}
7443			if err := v.Validate(); err != nil {
7444				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContainerDefinitions", i), err.(request.ErrInvalidParams))
7445			}
7446		}
7447	}
7448
7449	if invalidParams.Len() > 0 {
7450		return invalidParams
7451	}
7452	return nil
7453}
7454
7455// SetContainerDefinitions sets the ContainerDefinitions field's value.
7456func (s *RegisterTaskDefinitionInput) SetContainerDefinitions(v []*ContainerDefinition) *RegisterTaskDefinitionInput {
7457	s.ContainerDefinitions = v
7458	return s
7459}
7460
7461// SetFamily sets the Family field's value.
7462func (s *RegisterTaskDefinitionInput) SetFamily(v string) *RegisterTaskDefinitionInput {
7463	s.Family = &v
7464	return s
7465}
7466
7467// SetNetworkMode sets the NetworkMode field's value.
7468func (s *RegisterTaskDefinitionInput) SetNetworkMode(v string) *RegisterTaskDefinitionInput {
7469	s.NetworkMode = &v
7470	return s
7471}
7472
7473// SetPlacementConstraints sets the PlacementConstraints field's value.
7474func (s *RegisterTaskDefinitionInput) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *RegisterTaskDefinitionInput {
7475	s.PlacementConstraints = v
7476	return s
7477}
7478
7479// SetTaskRoleArn sets the TaskRoleArn field's value.
7480func (s *RegisterTaskDefinitionInput) SetTaskRoleArn(v string) *RegisterTaskDefinitionInput {
7481	s.TaskRoleArn = &v
7482	return s
7483}
7484
7485// SetVolumes sets the Volumes field's value.
7486func (s *RegisterTaskDefinitionInput) SetVolumes(v []*Volume) *RegisterTaskDefinitionInput {
7487	s.Volumes = v
7488	return s
7489}
7490
7491// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinitionResponse
7492type RegisterTaskDefinitionOutput struct {
7493	_ struct{} `type:"structure"`
7494
7495	// The full description of the registered task definition.
7496	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
7497}
7498
7499// String returns the string representation
7500func (s RegisterTaskDefinitionOutput) String() string {
7501	return awsutil.Prettify(s)
7502}
7503
7504// GoString returns the string representation
7505func (s RegisterTaskDefinitionOutput) GoString() string {
7506	return s.String()
7507}
7508
7509// SetTaskDefinition sets the TaskDefinition field's value.
7510func (s *RegisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *RegisterTaskDefinitionOutput {
7511	s.TaskDefinition = v
7512	return s
7513}
7514
7515// Describes the resources available for a container instance.
7516// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Resource
7517type Resource struct {
7518	_ struct{} `type:"structure"`
7519
7520	// When the doubleValue type is set, the value of the resource must be a double
7521	// precision floating-point type.
7522	DoubleValue *float64 `locationName:"doubleValue" type:"double"`
7523
7524	// When the integerValue type is set, the value of the resource must be an integer.
7525	IntegerValue *int64 `locationName:"integerValue" type:"integer"`
7526
7527	// When the longValue type is set, the value of the resource must be an extended
7528	// precision floating-point type.
7529	LongValue *int64 `locationName:"longValue" type:"long"`
7530
7531	// The name of the resource, such as cpu, memory, ports, or a user-defined resource.
7532	Name *string `locationName:"name" type:"string"`
7533
7534	// When the stringSetValue type is set, the value of the resource must be a
7535	// string type.
7536	StringSetValue []*string `locationName:"stringSetValue" type:"list"`
7537
7538	// The type of the resource, such as INTEGER, DOUBLE, LONG, or STRINGSET.
7539	Type *string `locationName:"type" type:"string"`
7540}
7541
7542// String returns the string representation
7543func (s Resource) String() string {
7544	return awsutil.Prettify(s)
7545}
7546
7547// GoString returns the string representation
7548func (s Resource) GoString() string {
7549	return s.String()
7550}
7551
7552// SetDoubleValue sets the DoubleValue field's value.
7553func (s *Resource) SetDoubleValue(v float64) *Resource {
7554	s.DoubleValue = &v
7555	return s
7556}
7557
7558// SetIntegerValue sets the IntegerValue field's value.
7559func (s *Resource) SetIntegerValue(v int64) *Resource {
7560	s.IntegerValue = &v
7561	return s
7562}
7563
7564// SetLongValue sets the LongValue field's value.
7565func (s *Resource) SetLongValue(v int64) *Resource {
7566	s.LongValue = &v
7567	return s
7568}
7569
7570// SetName sets the Name field's value.
7571func (s *Resource) SetName(v string) *Resource {
7572	s.Name = &v
7573	return s
7574}
7575
7576// SetStringSetValue sets the StringSetValue field's value.
7577func (s *Resource) SetStringSetValue(v []*string) *Resource {
7578	s.StringSetValue = v
7579	return s
7580}
7581
7582// SetType sets the Type field's value.
7583func (s *Resource) SetType(v string) *Resource {
7584	s.Type = &v
7585	return s
7586}
7587
7588// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTaskRequest
7589type RunTaskInput struct {
7590	_ struct{} `type:"structure"`
7591
7592	// The short name or full Amazon Resource Name (ARN) of the cluster on which
7593	// to run your task. If you do not specify a cluster, the default cluster is
7594	// assumed.
7595	Cluster *string `locationName:"cluster" type:"string"`
7596
7597	// The number of instantiations of the specified task to place on your cluster.
7598	// You can specify up to 10 tasks per call.
7599	Count *int64 `locationName:"count" type:"integer"`
7600
7601	// The name of the task group to associate with the task. The default value
7602	// is the family name of the task definition (for example, family:my-family-name).
7603	Group *string `locationName:"group" type:"string"`
7604
7605	// A list of container overrides in JSON format that specify the name of a container
7606	// in the specified task definition and the overrides it should receive. You
7607	// can override the default command for a container (that is specified in the
7608	// task definition or Docker image) with a command override. You can also override
7609	// existing environment variables (that are specified in the task definition
7610	// or Docker image) on a container or add new environment variables to it with
7611	// an environment override.
7612	//
7613	// A total of 8192 characters are allowed for overrides. This limit includes
7614	// the JSON formatting characters of the override structure.
7615	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
7616
7617	// An array of placement constraint objects to use for the task. You can specify
7618	// up to 10 constraints per task (including constraints in the task definition
7619	// and those specified at run time).
7620	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
7621
7622	// The placement strategy objects to use for the task. You can specify a maximum
7623	// of 5 strategy rules per task.
7624	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
7625
7626	// An optional tag specified when a task is started. For example if you automatically
7627	// trigger a task to run a batch process job, you could apply a unique identifier
7628	// for that job to your task with the startedBy parameter. You can then identify
7629	// which tasks belong to that job by filtering the results of a ListTasks call
7630	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
7631	// hyphens, and underscores are allowed.
7632	//
7633	// If a task is started by an Amazon ECS service, then the startedBy parameter
7634	// contains the deployment ID of the service that starts it.
7635	StartedBy *string `locationName:"startedBy" type:"string"`
7636
7637	// The family and revision (family:revision) or full Amazon Resource Name (ARN)
7638	// of the task definition to run. If a revision is not specified, the latest
7639	// ACTIVE revision is used.
7640	//
7641	// TaskDefinition is a required field
7642	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
7643}
7644
7645// String returns the string representation
7646func (s RunTaskInput) String() string {
7647	return awsutil.Prettify(s)
7648}
7649
7650// GoString returns the string representation
7651func (s RunTaskInput) GoString() string {
7652	return s.String()
7653}
7654
7655// Validate inspects the fields of the type to determine if they are valid.
7656func (s *RunTaskInput) Validate() error {
7657	invalidParams := request.ErrInvalidParams{Context: "RunTaskInput"}
7658	if s.TaskDefinition == nil {
7659		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
7660	}
7661
7662	if invalidParams.Len() > 0 {
7663		return invalidParams
7664	}
7665	return nil
7666}
7667
7668// SetCluster sets the Cluster field's value.
7669func (s *RunTaskInput) SetCluster(v string) *RunTaskInput {
7670	s.Cluster = &v
7671	return s
7672}
7673
7674// SetCount sets the Count field's value.
7675func (s *RunTaskInput) SetCount(v int64) *RunTaskInput {
7676	s.Count = &v
7677	return s
7678}
7679
7680// SetGroup sets the Group field's value.
7681func (s *RunTaskInput) SetGroup(v string) *RunTaskInput {
7682	s.Group = &v
7683	return s
7684}
7685
7686// SetOverrides sets the Overrides field's value.
7687func (s *RunTaskInput) SetOverrides(v *TaskOverride) *RunTaskInput {
7688	s.Overrides = v
7689	return s
7690}
7691
7692// SetPlacementConstraints sets the PlacementConstraints field's value.
7693func (s *RunTaskInput) SetPlacementConstraints(v []*PlacementConstraint) *RunTaskInput {
7694	s.PlacementConstraints = v
7695	return s
7696}
7697
7698// SetPlacementStrategy sets the PlacementStrategy field's value.
7699func (s *RunTaskInput) SetPlacementStrategy(v []*PlacementStrategy) *RunTaskInput {
7700	s.PlacementStrategy = v
7701	return s
7702}
7703
7704// SetStartedBy sets the StartedBy field's value.
7705func (s *RunTaskInput) SetStartedBy(v string) *RunTaskInput {
7706	s.StartedBy = &v
7707	return s
7708}
7709
7710// SetTaskDefinition sets the TaskDefinition field's value.
7711func (s *RunTaskInput) SetTaskDefinition(v string) *RunTaskInput {
7712	s.TaskDefinition = &v
7713	return s
7714}
7715
7716// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTaskResponse
7717type RunTaskOutput struct {
7718	_ struct{} `type:"structure"`
7719
7720	// Any failures associated with the call.
7721	Failures []*Failure `locationName:"failures" type:"list"`
7722
7723	// A full description of the tasks that were run. Each task that was successfully
7724	// placed on your cluster are described here.
7725	Tasks []*Task `locationName:"tasks" type:"list"`
7726}
7727
7728// String returns the string representation
7729func (s RunTaskOutput) String() string {
7730	return awsutil.Prettify(s)
7731}
7732
7733// GoString returns the string representation
7734func (s RunTaskOutput) GoString() string {
7735	return s.String()
7736}
7737
7738// SetFailures sets the Failures field's value.
7739func (s *RunTaskOutput) SetFailures(v []*Failure) *RunTaskOutput {
7740	s.Failures = v
7741	return s
7742}
7743
7744// SetTasks sets the Tasks field's value.
7745func (s *RunTaskOutput) SetTasks(v []*Task) *RunTaskOutput {
7746	s.Tasks = v
7747	return s
7748}
7749
7750// Details on a service within a cluster
7751// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Service
7752type Service struct {
7753	_ struct{} `type:"structure"`
7754
7755	// The Amazon Resource Name (ARN) of the cluster that hosts the service.
7756	ClusterArn *string `locationName:"clusterArn" type:"string"`
7757
7758	// The Unix timestamp for when the service was created.
7759	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"unix"`
7760
7761	// Optional deployment parameters that control how many tasks run during the
7762	// deployment and the ordering of stopping and starting tasks.
7763	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
7764
7765	// The current state of deployments for the service.
7766	Deployments []*Deployment `locationName:"deployments" type:"list"`
7767
7768	// The desired number of instantiations of the task definition to keep running
7769	// on the service. This value is specified when the service is created with
7770	// CreateService, and it can be modified with UpdateService.
7771	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
7772
7773	// The event stream for your service. A maximum of 100 of the latest events
7774	// are displayed.
7775	Events []*ServiceEvent `locationName:"events" type:"list"`
7776
7777	// A list of Elastic Load Balancing load balancer objects, containing the load
7778	// balancer name, the container name (as it appears in a container definition),
7779	// and the container port to access from the load balancer.
7780	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
7781
7782	// The number of tasks in the cluster that are in the PENDING state.
7783	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
7784
7785	// The placement constraints for the tasks in the service.
7786	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
7787
7788	// The placement strategy that determines how tasks for the service are placed.
7789	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
7790
7791	// The Amazon Resource Name (ARN) of the IAM role associated with the service
7792	// that allows the Amazon ECS container agent to register container instances
7793	// with an Elastic Load Balancing load balancer.
7794	RoleArn *string `locationName:"roleArn" type:"string"`
7795
7796	// The number of tasks in the cluster that are in the RUNNING state.
7797	RunningCount *int64 `locationName:"runningCount" type:"integer"`
7798
7799	// The Amazon Resource Name (ARN) that identifies the service. The ARN contains
7800	// the arn:aws:ecs namespace, followed by the region of the service, the AWS
7801	// account ID of the service owner, the service namespace, and then the service
7802	// name. For example, arn:aws:ecs:region:012345678910:service/my-service.
7803	ServiceArn *string `locationName:"serviceArn" type:"string"`
7804
7805	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
7806	// hyphens, and underscores are allowed. Service names must be unique within
7807	// a cluster, but you can have similarly named services in multiple clusters
7808	// within a region or across multiple regions.
7809	ServiceName *string `locationName:"serviceName" type:"string"`
7810
7811	// The status of the service. The valid values are ACTIVE, DRAINING, or INACTIVE.
7812	Status *string `locationName:"status" type:"string"`
7813
7814	// The task definition to use for tasks in the service. This value is specified
7815	// when the service is created with CreateService, and it can be modified with
7816	// UpdateService.
7817	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
7818}
7819
7820// String returns the string representation
7821func (s Service) String() string {
7822	return awsutil.Prettify(s)
7823}
7824
7825// GoString returns the string representation
7826func (s Service) GoString() string {
7827	return s.String()
7828}
7829
7830// SetClusterArn sets the ClusterArn field's value.
7831func (s *Service) SetClusterArn(v string) *Service {
7832	s.ClusterArn = &v
7833	return s
7834}
7835
7836// SetCreatedAt sets the CreatedAt field's value.
7837func (s *Service) SetCreatedAt(v time.Time) *Service {
7838	s.CreatedAt = &v
7839	return s
7840}
7841
7842// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
7843func (s *Service) SetDeploymentConfiguration(v *DeploymentConfiguration) *Service {
7844	s.DeploymentConfiguration = v
7845	return s
7846}
7847
7848// SetDeployments sets the Deployments field's value.
7849func (s *Service) SetDeployments(v []*Deployment) *Service {
7850	s.Deployments = v
7851	return s
7852}
7853
7854// SetDesiredCount sets the DesiredCount field's value.
7855func (s *Service) SetDesiredCount(v int64) *Service {
7856	s.DesiredCount = &v
7857	return s
7858}
7859
7860// SetEvents sets the Events field's value.
7861func (s *Service) SetEvents(v []*ServiceEvent) *Service {
7862	s.Events = v
7863	return s
7864}
7865
7866// SetLoadBalancers sets the LoadBalancers field's value.
7867func (s *Service) SetLoadBalancers(v []*LoadBalancer) *Service {
7868	s.LoadBalancers = v
7869	return s
7870}
7871
7872// SetPendingCount sets the PendingCount field's value.
7873func (s *Service) SetPendingCount(v int64) *Service {
7874	s.PendingCount = &v
7875	return s
7876}
7877
7878// SetPlacementConstraints sets the PlacementConstraints field's value.
7879func (s *Service) SetPlacementConstraints(v []*PlacementConstraint) *Service {
7880	s.PlacementConstraints = v
7881	return s
7882}
7883
7884// SetPlacementStrategy sets the PlacementStrategy field's value.
7885func (s *Service) SetPlacementStrategy(v []*PlacementStrategy) *Service {
7886	s.PlacementStrategy = v
7887	return s
7888}
7889
7890// SetRoleArn sets the RoleArn field's value.
7891func (s *Service) SetRoleArn(v string) *Service {
7892	s.RoleArn = &v
7893	return s
7894}
7895
7896// SetRunningCount sets the RunningCount field's value.
7897func (s *Service) SetRunningCount(v int64) *Service {
7898	s.RunningCount = &v
7899	return s
7900}
7901
7902// SetServiceArn sets the ServiceArn field's value.
7903func (s *Service) SetServiceArn(v string) *Service {
7904	s.ServiceArn = &v
7905	return s
7906}
7907
7908// SetServiceName sets the ServiceName field's value.
7909func (s *Service) SetServiceName(v string) *Service {
7910	s.ServiceName = &v
7911	return s
7912}
7913
7914// SetStatus sets the Status field's value.
7915func (s *Service) SetStatus(v string) *Service {
7916	s.Status = &v
7917	return s
7918}
7919
7920// SetTaskDefinition sets the TaskDefinition field's value.
7921func (s *Service) SetTaskDefinition(v string) *Service {
7922	s.TaskDefinition = &v
7923	return s
7924}
7925
7926// Details on an event associated with a service.
7927// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ServiceEvent
7928type ServiceEvent struct {
7929	_ struct{} `type:"structure"`
7930
7931	// The Unix timestamp for when the event was triggered.
7932	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"unix"`
7933
7934	// The ID string of the event.
7935	Id *string `locationName:"id" type:"string"`
7936
7937	// The event message.
7938	Message *string `locationName:"message" type:"string"`
7939}
7940
7941// String returns the string representation
7942func (s ServiceEvent) String() string {
7943	return awsutil.Prettify(s)
7944}
7945
7946// GoString returns the string representation
7947func (s ServiceEvent) GoString() string {
7948	return s.String()
7949}
7950
7951// SetCreatedAt sets the CreatedAt field's value.
7952func (s *ServiceEvent) SetCreatedAt(v time.Time) *ServiceEvent {
7953	s.CreatedAt = &v
7954	return s
7955}
7956
7957// SetId sets the Id field's value.
7958func (s *ServiceEvent) SetId(v string) *ServiceEvent {
7959	s.Id = &v
7960	return s
7961}
7962
7963// SetMessage sets the Message field's value.
7964func (s *ServiceEvent) SetMessage(v string) *ServiceEvent {
7965	s.Message = &v
7966	return s
7967}
7968
7969// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTaskRequest
7970type StartTaskInput struct {
7971	_ struct{} `type:"structure"`
7972
7973	// The short name or full Amazon Resource Name (ARN) of the cluster on which
7974	// to start your task. If you do not specify a cluster, the default cluster
7975	// is assumed.
7976	Cluster *string `locationName:"cluster" type:"string"`
7977
7978	// The container instance IDs or full Amazon Resource Name (ARN) entries for
7979	// the container instances on which you would like to place your task. You can
7980	// specify up to 10 container instances.
7981	//
7982	// ContainerInstances is a required field
7983	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
7984
7985	// The name of the task group to associate with the task. The default value
7986	// is the family name of the task definition (for example, family:my-family-name).
7987	Group *string `locationName:"group" type:"string"`
7988
7989	// A list of container overrides in JSON format that specify the name of a container
7990	// in the specified task definition and the overrides it should receive. You
7991	// can override the default command for a container (that is specified in the
7992	// task definition or Docker image) with a command override. You can also override
7993	// existing environment variables (that are specified in the task definition
7994	// or Docker image) on a container or add new environment variables to it with
7995	// an environment override.
7996	//
7997	// A total of 8192 characters are allowed for overrides. This limit includes
7998	// the JSON formatting characters of the override structure.
7999	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
8000
8001	// An optional tag specified when a task is started. For example if you automatically
8002	// trigger a task to run a batch process job, you could apply a unique identifier
8003	// for that job to your task with the startedBy parameter. You can then identify
8004	// which tasks belong to that job by filtering the results of a ListTasks call
8005	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
8006	// hyphens, and underscores are allowed.
8007	//
8008	// If a task is started by an Amazon ECS service, then the startedBy parameter
8009	// contains the deployment ID of the service that starts it.
8010	StartedBy *string `locationName:"startedBy" type:"string"`
8011
8012	// The family and revision (family:revision) or full Amazon Resource Name (ARN)
8013	// of the task definition to start. If a revision is not specified, the latest
8014	// ACTIVE revision is used.
8015	//
8016	// TaskDefinition is a required field
8017	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
8018}
8019
8020// String returns the string representation
8021func (s StartTaskInput) String() string {
8022	return awsutil.Prettify(s)
8023}
8024
8025// GoString returns the string representation
8026func (s StartTaskInput) GoString() string {
8027	return s.String()
8028}
8029
8030// Validate inspects the fields of the type to determine if they are valid.
8031func (s *StartTaskInput) Validate() error {
8032	invalidParams := request.ErrInvalidParams{Context: "StartTaskInput"}
8033	if s.ContainerInstances == nil {
8034		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
8035	}
8036	if s.TaskDefinition == nil {
8037		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
8038	}
8039
8040	if invalidParams.Len() > 0 {
8041		return invalidParams
8042	}
8043	return nil
8044}
8045
8046// SetCluster sets the Cluster field's value.
8047func (s *StartTaskInput) SetCluster(v string) *StartTaskInput {
8048	s.Cluster = &v
8049	return s
8050}
8051
8052// SetContainerInstances sets the ContainerInstances field's value.
8053func (s *StartTaskInput) SetContainerInstances(v []*string) *StartTaskInput {
8054	s.ContainerInstances = v
8055	return s
8056}
8057
8058// SetGroup sets the Group field's value.
8059func (s *StartTaskInput) SetGroup(v string) *StartTaskInput {
8060	s.Group = &v
8061	return s
8062}
8063
8064// SetOverrides sets the Overrides field's value.
8065func (s *StartTaskInput) SetOverrides(v *TaskOverride) *StartTaskInput {
8066	s.Overrides = v
8067	return s
8068}
8069
8070// SetStartedBy sets the StartedBy field's value.
8071func (s *StartTaskInput) SetStartedBy(v string) *StartTaskInput {
8072	s.StartedBy = &v
8073	return s
8074}
8075
8076// SetTaskDefinition sets the TaskDefinition field's value.
8077func (s *StartTaskInput) SetTaskDefinition(v string) *StartTaskInput {
8078	s.TaskDefinition = &v
8079	return s
8080}
8081
8082// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTaskResponse
8083type StartTaskOutput struct {
8084	_ struct{} `type:"structure"`
8085
8086	// Any failures associated with the call.
8087	Failures []*Failure `locationName:"failures" type:"list"`
8088
8089	// A full description of the tasks that were started. Each task that was successfully
8090	// placed on your container instances are described here.
8091	Tasks []*Task `locationName:"tasks" type:"list"`
8092}
8093
8094// String returns the string representation
8095func (s StartTaskOutput) String() string {
8096	return awsutil.Prettify(s)
8097}
8098
8099// GoString returns the string representation
8100func (s StartTaskOutput) GoString() string {
8101	return s.String()
8102}
8103
8104// SetFailures sets the Failures field's value.
8105func (s *StartTaskOutput) SetFailures(v []*Failure) *StartTaskOutput {
8106	s.Failures = v
8107	return s
8108}
8109
8110// SetTasks sets the Tasks field's value.
8111func (s *StartTaskOutput) SetTasks(v []*Task) *StartTaskOutput {
8112	s.Tasks = v
8113	return s
8114}
8115
8116// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTaskRequest
8117type StopTaskInput struct {
8118	_ struct{} `type:"structure"`
8119
8120	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
8121	// the task to stop. If you do not specify a cluster, the default cluster is
8122	// assumed.
8123	Cluster *string `locationName:"cluster" type:"string"`
8124
8125	// An optional message specified when a task is stopped. For example, if you
8126	// are using a custom scheduler, you can use this parameter to specify the reason
8127	// for stopping the task here, and the message will appear in subsequent DescribeTasks
8128	// API operations on this task. Up to 255 characters are allowed in this message.
8129	Reason *string `locationName:"reason" type:"string"`
8130
8131	// The task ID or full Amazon Resource Name (ARN) entry of the task to stop.
8132	//
8133	// Task is a required field
8134	Task *string `locationName:"task" type:"string" required:"true"`
8135}
8136
8137// String returns the string representation
8138func (s StopTaskInput) String() string {
8139	return awsutil.Prettify(s)
8140}
8141
8142// GoString returns the string representation
8143func (s StopTaskInput) GoString() string {
8144	return s.String()
8145}
8146
8147// Validate inspects the fields of the type to determine if they are valid.
8148func (s *StopTaskInput) Validate() error {
8149	invalidParams := request.ErrInvalidParams{Context: "StopTaskInput"}
8150	if s.Task == nil {
8151		invalidParams.Add(request.NewErrParamRequired("Task"))
8152	}
8153
8154	if invalidParams.Len() > 0 {
8155		return invalidParams
8156	}
8157	return nil
8158}
8159
8160// SetCluster sets the Cluster field's value.
8161func (s *StopTaskInput) SetCluster(v string) *StopTaskInput {
8162	s.Cluster = &v
8163	return s
8164}
8165
8166// SetReason sets the Reason field's value.
8167func (s *StopTaskInput) SetReason(v string) *StopTaskInput {
8168	s.Reason = &v
8169	return s
8170}
8171
8172// SetTask sets the Task field's value.
8173func (s *StopTaskInput) SetTask(v string) *StopTaskInput {
8174	s.Task = &v
8175	return s
8176}
8177
8178// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTaskResponse
8179type StopTaskOutput struct {
8180	_ struct{} `type:"structure"`
8181
8182	// The task that was stopped.
8183	Task *Task `locationName:"task" type:"structure"`
8184}
8185
8186// String returns the string representation
8187func (s StopTaskOutput) String() string {
8188	return awsutil.Prettify(s)
8189}
8190
8191// GoString returns the string representation
8192func (s StopTaskOutput) GoString() string {
8193	return s.String()
8194}
8195
8196// SetTask sets the Task field's value.
8197func (s *StopTaskOutput) SetTask(v *Task) *StopTaskOutput {
8198	s.Task = v
8199	return s
8200}
8201
8202// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChangeRequest
8203type SubmitContainerStateChangeInput struct {
8204	_ struct{} `type:"structure"`
8205
8206	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
8207	// the container.
8208	Cluster *string `locationName:"cluster" type:"string"`
8209
8210	// The name of the container.
8211	ContainerName *string `locationName:"containerName" type:"string"`
8212
8213	// The exit code returned for the state change request.
8214	ExitCode *int64 `locationName:"exitCode" type:"integer"`
8215
8216	// The network bindings of the container.
8217	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
8218
8219	// The reason for the state change request.
8220	Reason *string `locationName:"reason" type:"string"`
8221
8222	// The status of the state change request.
8223	Status *string `locationName:"status" type:"string"`
8224
8225	// The task ID or full Amazon Resource Name (ARN) of the task that hosts the
8226	// container.
8227	Task *string `locationName:"task" type:"string"`
8228}
8229
8230// String returns the string representation
8231func (s SubmitContainerStateChangeInput) String() string {
8232	return awsutil.Prettify(s)
8233}
8234
8235// GoString returns the string representation
8236func (s SubmitContainerStateChangeInput) GoString() string {
8237	return s.String()
8238}
8239
8240// SetCluster sets the Cluster field's value.
8241func (s *SubmitContainerStateChangeInput) SetCluster(v string) *SubmitContainerStateChangeInput {
8242	s.Cluster = &v
8243	return s
8244}
8245
8246// SetContainerName sets the ContainerName field's value.
8247func (s *SubmitContainerStateChangeInput) SetContainerName(v string) *SubmitContainerStateChangeInput {
8248	s.ContainerName = &v
8249	return s
8250}
8251
8252// SetExitCode sets the ExitCode field's value.
8253func (s *SubmitContainerStateChangeInput) SetExitCode(v int64) *SubmitContainerStateChangeInput {
8254	s.ExitCode = &v
8255	return s
8256}
8257
8258// SetNetworkBindings sets the NetworkBindings field's value.
8259func (s *SubmitContainerStateChangeInput) SetNetworkBindings(v []*NetworkBinding) *SubmitContainerStateChangeInput {
8260	s.NetworkBindings = v
8261	return s
8262}
8263
8264// SetReason sets the Reason field's value.
8265func (s *SubmitContainerStateChangeInput) SetReason(v string) *SubmitContainerStateChangeInput {
8266	s.Reason = &v
8267	return s
8268}
8269
8270// SetStatus sets the Status field's value.
8271func (s *SubmitContainerStateChangeInput) SetStatus(v string) *SubmitContainerStateChangeInput {
8272	s.Status = &v
8273	return s
8274}
8275
8276// SetTask sets the Task field's value.
8277func (s *SubmitContainerStateChangeInput) SetTask(v string) *SubmitContainerStateChangeInput {
8278	s.Task = &v
8279	return s
8280}
8281
8282// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChangeResponse
8283type SubmitContainerStateChangeOutput struct {
8284	_ struct{} `type:"structure"`
8285
8286	// Acknowledgement of the state change.
8287	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
8288}
8289
8290// String returns the string representation
8291func (s SubmitContainerStateChangeOutput) String() string {
8292	return awsutil.Prettify(s)
8293}
8294
8295// GoString returns the string representation
8296func (s SubmitContainerStateChangeOutput) GoString() string {
8297	return s.String()
8298}
8299
8300// SetAcknowledgment sets the Acknowledgment field's value.
8301func (s *SubmitContainerStateChangeOutput) SetAcknowledgment(v string) *SubmitContainerStateChangeOutput {
8302	s.Acknowledgment = &v
8303	return s
8304}
8305
8306// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChangeRequest
8307type SubmitTaskStateChangeInput struct {
8308	_ struct{} `type:"structure"`
8309
8310	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
8311	// the task.
8312	Cluster *string `locationName:"cluster" type:"string"`
8313
8314	// The reason for the state change request.
8315	Reason *string `locationName:"reason" type:"string"`
8316
8317	// The status of the state change request.
8318	Status *string `locationName:"status" type:"string"`
8319
8320	// The task ID or full Amazon Resource Name (ARN) of the task in the state change
8321	// request.
8322	Task *string `locationName:"task" type:"string"`
8323}
8324
8325// String returns the string representation
8326func (s SubmitTaskStateChangeInput) String() string {
8327	return awsutil.Prettify(s)
8328}
8329
8330// GoString returns the string representation
8331func (s SubmitTaskStateChangeInput) GoString() string {
8332	return s.String()
8333}
8334
8335// SetCluster sets the Cluster field's value.
8336func (s *SubmitTaskStateChangeInput) SetCluster(v string) *SubmitTaskStateChangeInput {
8337	s.Cluster = &v
8338	return s
8339}
8340
8341// SetReason sets the Reason field's value.
8342func (s *SubmitTaskStateChangeInput) SetReason(v string) *SubmitTaskStateChangeInput {
8343	s.Reason = &v
8344	return s
8345}
8346
8347// SetStatus sets the Status field's value.
8348func (s *SubmitTaskStateChangeInput) SetStatus(v string) *SubmitTaskStateChangeInput {
8349	s.Status = &v
8350	return s
8351}
8352
8353// SetTask sets the Task field's value.
8354func (s *SubmitTaskStateChangeInput) SetTask(v string) *SubmitTaskStateChangeInput {
8355	s.Task = &v
8356	return s
8357}
8358
8359// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChangeResponse
8360type SubmitTaskStateChangeOutput struct {
8361	_ struct{} `type:"structure"`
8362
8363	// Acknowledgement of the state change.
8364	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
8365}
8366
8367// String returns the string representation
8368func (s SubmitTaskStateChangeOutput) String() string {
8369	return awsutil.Prettify(s)
8370}
8371
8372// GoString returns the string representation
8373func (s SubmitTaskStateChangeOutput) GoString() string {
8374	return s.String()
8375}
8376
8377// SetAcknowledgment sets the Acknowledgment field's value.
8378func (s *SubmitTaskStateChangeOutput) SetAcknowledgment(v string) *SubmitTaskStateChangeOutput {
8379	s.Acknowledgment = &v
8380	return s
8381}
8382
8383// Details on a task in a cluster.
8384// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Task
8385type Task struct {
8386	_ struct{} `type:"structure"`
8387
8388	// The Amazon Resource Name (ARN) of the cluster that hosts the task.
8389	ClusterArn *string `locationName:"clusterArn" type:"string"`
8390
8391	// The Amazon Resource Name (ARN) of the container instances that host the task.
8392	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
8393
8394	// The containers associated with the task.
8395	Containers []*Container `locationName:"containers" type:"list"`
8396
8397	// The Unix timestamp for when the task was created (the task entered the PENDING
8398	// state).
8399	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"unix"`
8400
8401	// The desired status of the task.
8402	DesiredStatus *string `locationName:"desiredStatus" type:"string"`
8403
8404	// The name of the task group associated with the task.
8405	Group *string `locationName:"group" type:"string"`
8406
8407	// The last known status of the task.
8408	LastStatus *string `locationName:"lastStatus" type:"string"`
8409
8410	// One or more container overrides.
8411	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
8412
8413	// The Unix timestamp for when the task was started (the task transitioned from
8414	// the PENDING state to the RUNNING state).
8415	StartedAt *time.Time `locationName:"startedAt" type:"timestamp" timestampFormat:"unix"`
8416
8417	// The tag specified when a task is started. If the task is started by an Amazon
8418	// ECS service, then the startedBy parameter contains the deployment ID of the
8419	// service that starts it.
8420	StartedBy *string `locationName:"startedBy" type:"string"`
8421
8422	// The Unix timestamp for when the task was stopped (the task transitioned from
8423	// the RUNNING state to the STOPPED state).
8424	StoppedAt *time.Time `locationName:"stoppedAt" type:"timestamp" timestampFormat:"unix"`
8425
8426	// The reason the task was stopped.
8427	StoppedReason *string `locationName:"stoppedReason" type:"string"`
8428
8429	// The Amazon Resource Name (ARN) of the task.
8430	TaskArn *string `locationName:"taskArn" type:"string"`
8431
8432	// The Amazon Resource Name (ARN) of the task definition that creates the task.
8433	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
8434
8435	// The version counter for the task. Every time a task experiences a change
8436	// that triggers a CloudWatch event, the version counter is incremented. If
8437	// you are replicating your Amazon ECS task state with CloudWatch events, you
8438	// can compare the version of a task reported by the Amazon ECS APIs with the
8439	// version reported in CloudWatch events for the task (inside the detail object)
8440	// to verify that the version in your event stream is current.
8441	Version *int64 `locationName:"version" type:"long"`
8442}
8443
8444// String returns the string representation
8445func (s Task) String() string {
8446	return awsutil.Prettify(s)
8447}
8448
8449// GoString returns the string representation
8450func (s Task) GoString() string {
8451	return s.String()
8452}
8453
8454// SetClusterArn sets the ClusterArn field's value.
8455func (s *Task) SetClusterArn(v string) *Task {
8456	s.ClusterArn = &v
8457	return s
8458}
8459
8460// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
8461func (s *Task) SetContainerInstanceArn(v string) *Task {
8462	s.ContainerInstanceArn = &v
8463	return s
8464}
8465
8466// SetContainers sets the Containers field's value.
8467func (s *Task) SetContainers(v []*Container) *Task {
8468	s.Containers = v
8469	return s
8470}
8471
8472// SetCreatedAt sets the CreatedAt field's value.
8473func (s *Task) SetCreatedAt(v time.Time) *Task {
8474	s.CreatedAt = &v
8475	return s
8476}
8477
8478// SetDesiredStatus sets the DesiredStatus field's value.
8479func (s *Task) SetDesiredStatus(v string) *Task {
8480	s.DesiredStatus = &v
8481	return s
8482}
8483
8484// SetGroup sets the Group field's value.
8485func (s *Task) SetGroup(v string) *Task {
8486	s.Group = &v
8487	return s
8488}
8489
8490// SetLastStatus sets the LastStatus field's value.
8491func (s *Task) SetLastStatus(v string) *Task {
8492	s.LastStatus = &v
8493	return s
8494}
8495
8496// SetOverrides sets the Overrides field's value.
8497func (s *Task) SetOverrides(v *TaskOverride) *Task {
8498	s.Overrides = v
8499	return s
8500}
8501
8502// SetStartedAt sets the StartedAt field's value.
8503func (s *Task) SetStartedAt(v time.Time) *Task {
8504	s.StartedAt = &v
8505	return s
8506}
8507
8508// SetStartedBy sets the StartedBy field's value.
8509func (s *Task) SetStartedBy(v string) *Task {
8510	s.StartedBy = &v
8511	return s
8512}
8513
8514// SetStoppedAt sets the StoppedAt field's value.
8515func (s *Task) SetStoppedAt(v time.Time) *Task {
8516	s.StoppedAt = &v
8517	return s
8518}
8519
8520// SetStoppedReason sets the StoppedReason field's value.
8521func (s *Task) SetStoppedReason(v string) *Task {
8522	s.StoppedReason = &v
8523	return s
8524}
8525
8526// SetTaskArn sets the TaskArn field's value.
8527func (s *Task) SetTaskArn(v string) *Task {
8528	s.TaskArn = &v
8529	return s
8530}
8531
8532// SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
8533func (s *Task) SetTaskDefinitionArn(v string) *Task {
8534	s.TaskDefinitionArn = &v
8535	return s
8536}
8537
8538// SetVersion sets the Version field's value.
8539func (s *Task) SetVersion(v int64) *Task {
8540	s.Version = &v
8541	return s
8542}
8543
8544// Details of a task definition.
8545// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TaskDefinition
8546type TaskDefinition struct {
8547	_ struct{} `type:"structure"`
8548
8549	// A list of container definitions in JSON format that describe the different
8550	// containers that make up your task. For more information about container definition
8551	// parameters and defaults, see Amazon ECS Task Definitions (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
8552	// in the Amazon EC2 Container Service Developer Guide.
8553	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list"`
8554
8555	// The family of your task definition, used as the definition name.
8556	Family *string `locationName:"family" type:"string"`
8557
8558	// The Docker networking mode to use for the containers in the task. The valid
8559	// values are none, bridge, and host.
8560	//
8561	// If the network mode is none, the containers do not have external connectivity.
8562	// The default Docker network mode is bridge. The host network mode offers the
8563	// highest networking performance for containers because it uses the host network
8564	// stack instead of the virtualized network stack provided by the bridge mode.
8565	//
8566	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
8567	// in the Docker run reference.
8568	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
8569
8570	// An array of placement constraint objects to use for tasks.
8571	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
8572
8573	// The container instance attributes required by your task.
8574	RequiresAttributes []*Attribute `locationName:"requiresAttributes" type:"list"`
8575
8576	// The revision of the task in a particular family. The revision is a version
8577	// number of a task definition in a family. When you register a task definition
8578	// for the first time, the revision is 1; each time you register a new revision
8579	// of a task definition in the same family, the revision value always increases
8580	// by one (even if you have deregistered previous revisions in this family).
8581	Revision *int64 `locationName:"revision" type:"integer"`
8582
8583	// The status of the task definition.
8584	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
8585
8586	// The full Amazon Resource Name (ARN) of the task definition.
8587	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
8588
8589	// The Amazon Resource Name (ARN) of the IAM role that containers in this task
8590	// can assume. All containers in this task are granted the permissions that
8591	// are specified in this role.
8592	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
8593
8594	// The list of volumes in a task. For more information about volume definition
8595	// parameters and defaults, see Amazon ECS Task Definitions (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
8596	// in the Amazon EC2 Container Service Developer Guide.
8597	Volumes []*Volume `locationName:"volumes" type:"list"`
8598}
8599
8600// String returns the string representation
8601func (s TaskDefinition) String() string {
8602	return awsutil.Prettify(s)
8603}
8604
8605// GoString returns the string representation
8606func (s TaskDefinition) GoString() string {
8607	return s.String()
8608}
8609
8610// SetContainerDefinitions sets the ContainerDefinitions field's value.
8611func (s *TaskDefinition) SetContainerDefinitions(v []*ContainerDefinition) *TaskDefinition {
8612	s.ContainerDefinitions = v
8613	return s
8614}
8615
8616// SetFamily sets the Family field's value.
8617func (s *TaskDefinition) SetFamily(v string) *TaskDefinition {
8618	s.Family = &v
8619	return s
8620}
8621
8622// SetNetworkMode sets the NetworkMode field's value.
8623func (s *TaskDefinition) SetNetworkMode(v string) *TaskDefinition {
8624	s.NetworkMode = &v
8625	return s
8626}
8627
8628// SetPlacementConstraints sets the PlacementConstraints field's value.
8629func (s *TaskDefinition) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *TaskDefinition {
8630	s.PlacementConstraints = v
8631	return s
8632}
8633
8634// SetRequiresAttributes sets the RequiresAttributes field's value.
8635func (s *TaskDefinition) SetRequiresAttributes(v []*Attribute) *TaskDefinition {
8636	s.RequiresAttributes = v
8637	return s
8638}
8639
8640// SetRevision sets the Revision field's value.
8641func (s *TaskDefinition) SetRevision(v int64) *TaskDefinition {
8642	s.Revision = &v
8643	return s
8644}
8645
8646// SetStatus sets the Status field's value.
8647func (s *TaskDefinition) SetStatus(v string) *TaskDefinition {
8648	s.Status = &v
8649	return s
8650}
8651
8652// SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
8653func (s *TaskDefinition) SetTaskDefinitionArn(v string) *TaskDefinition {
8654	s.TaskDefinitionArn = &v
8655	return s
8656}
8657
8658// SetTaskRoleArn sets the TaskRoleArn field's value.
8659func (s *TaskDefinition) SetTaskRoleArn(v string) *TaskDefinition {
8660	s.TaskRoleArn = &v
8661	return s
8662}
8663
8664// SetVolumes sets the Volumes field's value.
8665func (s *TaskDefinition) SetVolumes(v []*Volume) *TaskDefinition {
8666	s.Volumes = v
8667	return s
8668}
8669
8670// An object representing a constraint on task placement in the task definition.
8671// For more information, see Task Placement Constraints (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
8672// in the Amazon EC2 Container Service Developer Guide.
8673// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TaskDefinitionPlacementConstraint
8674type TaskDefinitionPlacementConstraint struct {
8675	_ struct{} `type:"structure"`
8676
8677	// A cluster query language expression to apply to the constraint. For more
8678	// information, see Cluster Query Language (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
8679	// in the Amazon EC2 Container Service Developer Guide.
8680	Expression *string `locationName:"expression" type:"string"`
8681
8682	// The type of constraint. The DistinctInstance constraint ensures that each
8683	// task in a particular group is running on a different container instance.
8684	// The MemberOf constraint restricts selection to be from a group of valid candidates.
8685	Type *string `locationName:"type" type:"string" enum:"TaskDefinitionPlacementConstraintType"`
8686}
8687
8688// String returns the string representation
8689func (s TaskDefinitionPlacementConstraint) String() string {
8690	return awsutil.Prettify(s)
8691}
8692
8693// GoString returns the string representation
8694func (s TaskDefinitionPlacementConstraint) GoString() string {
8695	return s.String()
8696}
8697
8698// SetExpression sets the Expression field's value.
8699func (s *TaskDefinitionPlacementConstraint) SetExpression(v string) *TaskDefinitionPlacementConstraint {
8700	s.Expression = &v
8701	return s
8702}
8703
8704// SetType sets the Type field's value.
8705func (s *TaskDefinitionPlacementConstraint) SetType(v string) *TaskDefinitionPlacementConstraint {
8706	s.Type = &v
8707	return s
8708}
8709
8710// The overrides associated with a task.
8711// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TaskOverride
8712type TaskOverride struct {
8713	_ struct{} `type:"structure"`
8714
8715	// One or more container overrides sent to a task.
8716	ContainerOverrides []*ContainerOverride `locationName:"containerOverrides" type:"list"`
8717
8718	// The Amazon Resource Name (ARN) of the IAM role that containers in this task
8719	// can assume. All containers in this task are granted the permissions that
8720	// are specified in this role.
8721	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
8722}
8723
8724// String returns the string representation
8725func (s TaskOverride) String() string {
8726	return awsutil.Prettify(s)
8727}
8728
8729// GoString returns the string representation
8730func (s TaskOverride) GoString() string {
8731	return s.String()
8732}
8733
8734// SetContainerOverrides sets the ContainerOverrides field's value.
8735func (s *TaskOverride) SetContainerOverrides(v []*ContainerOverride) *TaskOverride {
8736	s.ContainerOverrides = v
8737	return s
8738}
8739
8740// SetTaskRoleArn sets the TaskRoleArn field's value.
8741func (s *TaskOverride) SetTaskRoleArn(v string) *TaskOverride {
8742	s.TaskRoleArn = &v
8743	return s
8744}
8745
8746// The ulimit settings to pass to the container.
8747// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Ulimit
8748type Ulimit struct {
8749	_ struct{} `type:"structure"`
8750
8751	// The hard limit for the ulimit type.
8752	//
8753	// HardLimit is a required field
8754	HardLimit *int64 `locationName:"hardLimit" type:"integer" required:"true"`
8755
8756	// The type of the ulimit.
8757	//
8758	// Name is a required field
8759	Name *string `locationName:"name" type:"string" required:"true" enum:"UlimitName"`
8760
8761	// The soft limit for the ulimit type.
8762	//
8763	// SoftLimit is a required field
8764	SoftLimit *int64 `locationName:"softLimit" type:"integer" required:"true"`
8765}
8766
8767// String returns the string representation
8768func (s Ulimit) String() string {
8769	return awsutil.Prettify(s)
8770}
8771
8772// GoString returns the string representation
8773func (s Ulimit) GoString() string {
8774	return s.String()
8775}
8776
8777// Validate inspects the fields of the type to determine if they are valid.
8778func (s *Ulimit) Validate() error {
8779	invalidParams := request.ErrInvalidParams{Context: "Ulimit"}
8780	if s.HardLimit == nil {
8781		invalidParams.Add(request.NewErrParamRequired("HardLimit"))
8782	}
8783	if s.Name == nil {
8784		invalidParams.Add(request.NewErrParamRequired("Name"))
8785	}
8786	if s.SoftLimit == nil {
8787		invalidParams.Add(request.NewErrParamRequired("SoftLimit"))
8788	}
8789
8790	if invalidParams.Len() > 0 {
8791		return invalidParams
8792	}
8793	return nil
8794}
8795
8796// SetHardLimit sets the HardLimit field's value.
8797func (s *Ulimit) SetHardLimit(v int64) *Ulimit {
8798	s.HardLimit = &v
8799	return s
8800}
8801
8802// SetName sets the Name field's value.
8803func (s *Ulimit) SetName(v string) *Ulimit {
8804	s.Name = &v
8805	return s
8806}
8807
8808// SetSoftLimit sets the SoftLimit field's value.
8809func (s *Ulimit) SetSoftLimit(v int64) *Ulimit {
8810	s.SoftLimit = &v
8811	return s
8812}
8813
8814// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgentRequest
8815type UpdateContainerAgentInput struct {
8816	_ struct{} `type:"structure"`
8817
8818	// The short name or full Amazon Resource Name (ARN) of the cluster that your
8819	// container instance is running on. If you do not specify a cluster, the default
8820	// cluster is assumed.
8821	Cluster *string `locationName:"cluster" type:"string"`
8822
8823	// The container instance ID or full Amazon Resource Name (ARN) entries for
8824	// the container instance on which you would like to update the Amazon ECS container
8825	// agent.
8826	//
8827	// ContainerInstance is a required field
8828	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
8829}
8830
8831// String returns the string representation
8832func (s UpdateContainerAgentInput) String() string {
8833	return awsutil.Prettify(s)
8834}
8835
8836// GoString returns the string representation
8837func (s UpdateContainerAgentInput) GoString() string {
8838	return s.String()
8839}
8840
8841// Validate inspects the fields of the type to determine if they are valid.
8842func (s *UpdateContainerAgentInput) Validate() error {
8843	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerAgentInput"}
8844	if s.ContainerInstance == nil {
8845		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
8846	}
8847
8848	if invalidParams.Len() > 0 {
8849		return invalidParams
8850	}
8851	return nil
8852}
8853
8854// SetCluster sets the Cluster field's value.
8855func (s *UpdateContainerAgentInput) SetCluster(v string) *UpdateContainerAgentInput {
8856	s.Cluster = &v
8857	return s
8858}
8859
8860// SetContainerInstance sets the ContainerInstance field's value.
8861func (s *UpdateContainerAgentInput) SetContainerInstance(v string) *UpdateContainerAgentInput {
8862	s.ContainerInstance = &v
8863	return s
8864}
8865
8866// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgentResponse
8867type UpdateContainerAgentOutput struct {
8868	_ struct{} `type:"structure"`
8869
8870	// The container instance for which the container agent was updated.
8871	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
8872}
8873
8874// String returns the string representation
8875func (s UpdateContainerAgentOutput) String() string {
8876	return awsutil.Prettify(s)
8877}
8878
8879// GoString returns the string representation
8880func (s UpdateContainerAgentOutput) GoString() string {
8881	return s.String()
8882}
8883
8884// SetContainerInstance sets the ContainerInstance field's value.
8885func (s *UpdateContainerAgentOutput) SetContainerInstance(v *ContainerInstance) *UpdateContainerAgentOutput {
8886	s.ContainerInstance = v
8887	return s
8888}
8889
8890// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesStateRequest
8891type UpdateContainerInstancesStateInput struct {
8892	_ struct{} `type:"structure"`
8893
8894	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
8895	// the container instance to update. If you do not specify a cluster, the default
8896	// cluster is assumed.
8897	Cluster *string `locationName:"cluster" type:"string"`
8898
8899	// A list of container instance IDs or full Amazon Resource Name (ARN) entries.
8900	//
8901	// ContainerInstances is a required field
8902	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
8903
8904	// The container instance state with which to update the container instance.
8905	//
8906	// Status is a required field
8907	Status *string `locationName:"status" type:"string" required:"true" enum:"ContainerInstanceStatus"`
8908}
8909
8910// String returns the string representation
8911func (s UpdateContainerInstancesStateInput) String() string {
8912	return awsutil.Prettify(s)
8913}
8914
8915// GoString returns the string representation
8916func (s UpdateContainerInstancesStateInput) GoString() string {
8917	return s.String()
8918}
8919
8920// Validate inspects the fields of the type to determine if they are valid.
8921func (s *UpdateContainerInstancesStateInput) Validate() error {
8922	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerInstancesStateInput"}
8923	if s.ContainerInstances == nil {
8924		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
8925	}
8926	if s.Status == nil {
8927		invalidParams.Add(request.NewErrParamRequired("Status"))
8928	}
8929
8930	if invalidParams.Len() > 0 {
8931		return invalidParams
8932	}
8933	return nil
8934}
8935
8936// SetCluster sets the Cluster field's value.
8937func (s *UpdateContainerInstancesStateInput) SetCluster(v string) *UpdateContainerInstancesStateInput {
8938	s.Cluster = &v
8939	return s
8940}
8941
8942// SetContainerInstances sets the ContainerInstances field's value.
8943func (s *UpdateContainerInstancesStateInput) SetContainerInstances(v []*string) *UpdateContainerInstancesStateInput {
8944	s.ContainerInstances = v
8945	return s
8946}
8947
8948// SetStatus sets the Status field's value.
8949func (s *UpdateContainerInstancesStateInput) SetStatus(v string) *UpdateContainerInstancesStateInput {
8950	s.Status = &v
8951	return s
8952}
8953
8954// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesStateResponse
8955type UpdateContainerInstancesStateOutput struct {
8956	_ struct{} `type:"structure"`
8957
8958	// The list of container instances.
8959	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
8960
8961	// Any failures associated with the call.
8962	Failures []*Failure `locationName:"failures" type:"list"`
8963}
8964
8965// String returns the string representation
8966func (s UpdateContainerInstancesStateOutput) String() string {
8967	return awsutil.Prettify(s)
8968}
8969
8970// GoString returns the string representation
8971func (s UpdateContainerInstancesStateOutput) GoString() string {
8972	return s.String()
8973}
8974
8975// SetContainerInstances sets the ContainerInstances field's value.
8976func (s *UpdateContainerInstancesStateOutput) SetContainerInstances(v []*ContainerInstance) *UpdateContainerInstancesStateOutput {
8977	s.ContainerInstances = v
8978	return s
8979}
8980
8981// SetFailures sets the Failures field's value.
8982func (s *UpdateContainerInstancesStateOutput) SetFailures(v []*Failure) *UpdateContainerInstancesStateOutput {
8983	s.Failures = v
8984	return s
8985}
8986
8987// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServiceRequest
8988type UpdateServiceInput struct {
8989	_ struct{} `type:"structure"`
8990
8991	// The short name or full Amazon Resource Name (ARN) of the cluster that your
8992	// service is running on. If you do not specify a cluster, the default cluster
8993	// is assumed.
8994	Cluster *string `locationName:"cluster" type:"string"`
8995
8996	// Optional deployment parameters that control how many tasks run during the
8997	// deployment and the ordering of stopping and starting tasks.
8998	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
8999
9000	// The number of instantiations of the task to place and keep running in your
9001	// service.
9002	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
9003
9004	// The name of the service to update.
9005	//
9006	// Service is a required field
9007	Service *string `locationName:"service" type:"string" required:"true"`
9008
9009	// The family and revision (family:revision) or full Amazon Resource Name (ARN)
9010	// of the task definition to run in your service. If a revision is not specified,
9011	// the latest ACTIVE revision is used. If you modify the task definition with
9012	// UpdateService, Amazon ECS spawns a task with the new version of the task
9013	// definition and then stops an old task after the new version is running.
9014	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
9015}
9016
9017// String returns the string representation
9018func (s UpdateServiceInput) String() string {
9019	return awsutil.Prettify(s)
9020}
9021
9022// GoString returns the string representation
9023func (s UpdateServiceInput) GoString() string {
9024	return s.String()
9025}
9026
9027// Validate inspects the fields of the type to determine if they are valid.
9028func (s *UpdateServiceInput) Validate() error {
9029	invalidParams := request.ErrInvalidParams{Context: "UpdateServiceInput"}
9030	if s.Service == nil {
9031		invalidParams.Add(request.NewErrParamRequired("Service"))
9032	}
9033
9034	if invalidParams.Len() > 0 {
9035		return invalidParams
9036	}
9037	return nil
9038}
9039
9040// SetCluster sets the Cluster field's value.
9041func (s *UpdateServiceInput) SetCluster(v string) *UpdateServiceInput {
9042	s.Cluster = &v
9043	return s
9044}
9045
9046// SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
9047func (s *UpdateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *UpdateServiceInput {
9048	s.DeploymentConfiguration = v
9049	return s
9050}
9051
9052// SetDesiredCount sets the DesiredCount field's value.
9053func (s *UpdateServiceInput) SetDesiredCount(v int64) *UpdateServiceInput {
9054	s.DesiredCount = &v
9055	return s
9056}
9057
9058// SetService sets the Service field's value.
9059func (s *UpdateServiceInput) SetService(v string) *UpdateServiceInput {
9060	s.Service = &v
9061	return s
9062}
9063
9064// SetTaskDefinition sets the TaskDefinition field's value.
9065func (s *UpdateServiceInput) SetTaskDefinition(v string) *UpdateServiceInput {
9066	s.TaskDefinition = &v
9067	return s
9068}
9069
9070// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServiceResponse
9071type UpdateServiceOutput struct {
9072	_ struct{} `type:"structure"`
9073
9074	// The full description of your service following the update call.
9075	Service *Service `locationName:"service" type:"structure"`
9076}
9077
9078// String returns the string representation
9079func (s UpdateServiceOutput) String() string {
9080	return awsutil.Prettify(s)
9081}
9082
9083// GoString returns the string representation
9084func (s UpdateServiceOutput) GoString() string {
9085	return s.String()
9086}
9087
9088// SetService sets the Service field's value.
9089func (s *UpdateServiceOutput) SetService(v *Service) *UpdateServiceOutput {
9090	s.Service = v
9091	return s
9092}
9093
9094// The Docker and Amazon ECS container agent version information about a container
9095// instance.
9096// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/VersionInfo
9097type VersionInfo struct {
9098	_ struct{} `type:"structure"`
9099
9100	// The Git commit hash for the Amazon ECS container agent build on the amazon-ecs-agent
9101	//  (https://github.com/aws/amazon-ecs-agent/commits/master) GitHub repository.
9102	AgentHash *string `locationName:"agentHash" type:"string"`
9103
9104	// The version number of the Amazon ECS container agent.
9105	AgentVersion *string `locationName:"agentVersion" type:"string"`
9106
9107	// The Docker version running on the container instance.
9108	DockerVersion *string `locationName:"dockerVersion" type:"string"`
9109}
9110
9111// String returns the string representation
9112func (s VersionInfo) String() string {
9113	return awsutil.Prettify(s)
9114}
9115
9116// GoString returns the string representation
9117func (s VersionInfo) GoString() string {
9118	return s.String()
9119}
9120
9121// SetAgentHash sets the AgentHash field's value.
9122func (s *VersionInfo) SetAgentHash(v string) *VersionInfo {
9123	s.AgentHash = &v
9124	return s
9125}
9126
9127// SetAgentVersion sets the AgentVersion field's value.
9128func (s *VersionInfo) SetAgentVersion(v string) *VersionInfo {
9129	s.AgentVersion = &v
9130	return s
9131}
9132
9133// SetDockerVersion sets the DockerVersion field's value.
9134func (s *VersionInfo) SetDockerVersion(v string) *VersionInfo {
9135	s.DockerVersion = &v
9136	return s
9137}
9138
9139// A data volume used in a task definition.
9140// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Volume
9141type Volume struct {
9142	_ struct{} `type:"structure"`
9143
9144	// The contents of the host parameter determine whether your data volume persists
9145	// on the host container instance and where it is stored. If the host parameter
9146	// is empty, then the Docker daemon assigns a host path for your data volume,
9147	// but the data is not guaranteed to persist after the containers associated
9148	// with it stop running.
9149	Host *HostVolumeProperties `locationName:"host" type:"structure"`
9150
9151	// The name of the volume. Up to 255 letters (uppercase and lowercase), numbers,
9152	// hyphens, and underscores are allowed. This name is referenced in the sourceVolume
9153	// parameter of container definition mountPoints.
9154	Name *string `locationName:"name" type:"string"`
9155}
9156
9157// String returns the string representation
9158func (s Volume) String() string {
9159	return awsutil.Prettify(s)
9160}
9161
9162// GoString returns the string representation
9163func (s Volume) GoString() string {
9164	return s.String()
9165}
9166
9167// SetHost sets the Host field's value.
9168func (s *Volume) SetHost(v *HostVolumeProperties) *Volume {
9169	s.Host = v
9170	return s
9171}
9172
9173// SetName sets the Name field's value.
9174func (s *Volume) SetName(v string) *Volume {
9175	s.Name = &v
9176	return s
9177}
9178
9179// Details on a data volume from another container in the same task definition.
9180// Please also see https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/VolumeFrom
9181type VolumeFrom struct {
9182	_ struct{} `type:"structure"`
9183
9184	// If this value is true, the container has read-only access to the volume.
9185	// If this value is false, then the container can write to the volume. The default
9186	// value is false.
9187	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
9188
9189	// The name of another container within the same task definition to mount volumes
9190	// from.
9191	SourceContainer *string `locationName:"sourceContainer" type:"string"`
9192}
9193
9194// String returns the string representation
9195func (s VolumeFrom) String() string {
9196	return awsutil.Prettify(s)
9197}
9198
9199// GoString returns the string representation
9200func (s VolumeFrom) GoString() string {
9201	return s.String()
9202}
9203
9204// SetReadOnly sets the ReadOnly field's value.
9205func (s *VolumeFrom) SetReadOnly(v bool) *VolumeFrom {
9206	s.ReadOnly = &v
9207	return s
9208}
9209
9210// SetSourceContainer sets the SourceContainer field's value.
9211func (s *VolumeFrom) SetSourceContainer(v string) *VolumeFrom {
9212	s.SourceContainer = &v
9213	return s
9214}
9215
9216const (
9217	// AgentUpdateStatusPending is a AgentUpdateStatus enum value
9218	AgentUpdateStatusPending = "PENDING"
9219
9220	// AgentUpdateStatusStaging is a AgentUpdateStatus enum value
9221	AgentUpdateStatusStaging = "STAGING"
9222
9223	// AgentUpdateStatusStaged is a AgentUpdateStatus enum value
9224	AgentUpdateStatusStaged = "STAGED"
9225
9226	// AgentUpdateStatusUpdating is a AgentUpdateStatus enum value
9227	AgentUpdateStatusUpdating = "UPDATING"
9228
9229	// AgentUpdateStatusUpdated is a AgentUpdateStatus enum value
9230	AgentUpdateStatusUpdated = "UPDATED"
9231
9232	// AgentUpdateStatusFailed is a AgentUpdateStatus enum value
9233	AgentUpdateStatusFailed = "FAILED"
9234)
9235
9236const (
9237	// ContainerInstanceStatusActive is a ContainerInstanceStatus enum value
9238	ContainerInstanceStatusActive = "ACTIVE"
9239
9240	// ContainerInstanceStatusDraining is a ContainerInstanceStatus enum value
9241	ContainerInstanceStatusDraining = "DRAINING"
9242)
9243
9244const (
9245	// DesiredStatusRunning is a DesiredStatus enum value
9246	DesiredStatusRunning = "RUNNING"
9247
9248	// DesiredStatusPending is a DesiredStatus enum value
9249	DesiredStatusPending = "PENDING"
9250
9251	// DesiredStatusStopped is a DesiredStatus enum value
9252	DesiredStatusStopped = "STOPPED"
9253)
9254
9255const (
9256	// LogDriverJsonFile is a LogDriver enum value
9257	LogDriverJsonFile = "json-file"
9258
9259	// LogDriverSyslog is a LogDriver enum value
9260	LogDriverSyslog = "syslog"
9261
9262	// LogDriverJournald is a LogDriver enum value
9263	LogDriverJournald = "journald"
9264
9265	// LogDriverGelf is a LogDriver enum value
9266	LogDriverGelf = "gelf"
9267
9268	// LogDriverFluentd is a LogDriver enum value
9269	LogDriverFluentd = "fluentd"
9270
9271	// LogDriverAwslogs is a LogDriver enum value
9272	LogDriverAwslogs = "awslogs"
9273
9274	// LogDriverSplunk is a LogDriver enum value
9275	LogDriverSplunk = "splunk"
9276)
9277
9278const (
9279	// NetworkModeBridge is a NetworkMode enum value
9280	NetworkModeBridge = "bridge"
9281
9282	// NetworkModeHost is a NetworkMode enum value
9283	NetworkModeHost = "host"
9284
9285	// NetworkModeNone is a NetworkMode enum value
9286	NetworkModeNone = "none"
9287)
9288
9289const (
9290	// PlacementConstraintTypeDistinctInstance is a PlacementConstraintType enum value
9291	PlacementConstraintTypeDistinctInstance = "distinctInstance"
9292
9293	// PlacementConstraintTypeMemberOf is a PlacementConstraintType enum value
9294	PlacementConstraintTypeMemberOf = "memberOf"
9295)
9296
9297const (
9298	// PlacementStrategyTypeRandom is a PlacementStrategyType enum value
9299	PlacementStrategyTypeRandom = "random"
9300
9301	// PlacementStrategyTypeSpread is a PlacementStrategyType enum value
9302	PlacementStrategyTypeSpread = "spread"
9303
9304	// PlacementStrategyTypeBinpack is a PlacementStrategyType enum value
9305	PlacementStrategyTypeBinpack = "binpack"
9306)
9307
9308const (
9309	// SortOrderAsc is a SortOrder enum value
9310	SortOrderAsc = "ASC"
9311
9312	// SortOrderDesc is a SortOrder enum value
9313	SortOrderDesc = "DESC"
9314)
9315
9316const (
9317	// TargetTypeContainerInstance is a TargetType enum value
9318	TargetTypeContainerInstance = "container-instance"
9319)
9320
9321const (
9322	// TaskDefinitionFamilyStatusActive is a TaskDefinitionFamilyStatus enum value
9323	TaskDefinitionFamilyStatusActive = "ACTIVE"
9324
9325	// TaskDefinitionFamilyStatusInactive is a TaskDefinitionFamilyStatus enum value
9326	TaskDefinitionFamilyStatusInactive = "INACTIVE"
9327
9328	// TaskDefinitionFamilyStatusAll is a TaskDefinitionFamilyStatus enum value
9329	TaskDefinitionFamilyStatusAll = "ALL"
9330)
9331
9332const (
9333	// TaskDefinitionPlacementConstraintTypeMemberOf is a TaskDefinitionPlacementConstraintType enum value
9334	TaskDefinitionPlacementConstraintTypeMemberOf = "memberOf"
9335)
9336
9337const (
9338	// TaskDefinitionStatusActive is a TaskDefinitionStatus enum value
9339	TaskDefinitionStatusActive = "ACTIVE"
9340
9341	// TaskDefinitionStatusInactive is a TaskDefinitionStatus enum value
9342	TaskDefinitionStatusInactive = "INACTIVE"
9343)
9344
9345const (
9346	// TransportProtocolTcp is a TransportProtocol enum value
9347	TransportProtocolTcp = "tcp"
9348
9349	// TransportProtocolUdp is a TransportProtocol enum value
9350	TransportProtocolUdp = "udp"
9351)
9352
9353const (
9354	// UlimitNameCore is a UlimitName enum value
9355	UlimitNameCore = "core"
9356
9357	// UlimitNameCpu is a UlimitName enum value
9358	UlimitNameCpu = "cpu"
9359
9360	// UlimitNameData is a UlimitName enum value
9361	UlimitNameData = "data"
9362
9363	// UlimitNameFsize is a UlimitName enum value
9364	UlimitNameFsize = "fsize"
9365
9366	// UlimitNameLocks is a UlimitName enum value
9367	UlimitNameLocks = "locks"
9368
9369	// UlimitNameMemlock is a UlimitName enum value
9370	UlimitNameMemlock = "memlock"
9371
9372	// UlimitNameMsgqueue is a UlimitName enum value
9373	UlimitNameMsgqueue = "msgqueue"
9374
9375	// UlimitNameNice is a UlimitName enum value
9376	UlimitNameNice = "nice"
9377
9378	// UlimitNameNofile is a UlimitName enum value
9379	UlimitNameNofile = "nofile"
9380
9381	// UlimitNameNproc is a UlimitName enum value
9382	UlimitNameNproc = "nproc"
9383
9384	// UlimitNameRss is a UlimitName enum value
9385	UlimitNameRss = "rss"
9386
9387	// UlimitNameRtprio is a UlimitName enum value
9388	UlimitNameRtprio = "rtprio"
9389
9390	// UlimitNameRttime is a UlimitName enum value
9391	UlimitNameRttime = "rttime"
9392
9393	// UlimitNameSigpending is a UlimitName enum value
9394	UlimitNameSigpending = "sigpending"
9395
9396	// UlimitNameStack is a UlimitName enum value
9397	UlimitNameStack = "stack"
9398)
9399