github.com/aavshr/aws-sdk-go@v1.41.3/service/ecs/api.go (about)

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package ecs
     4  
     5  import (
     6  	"fmt"
     7  	"time"
     8  
     9  	"github.com/aavshr/aws-sdk-go/aws"
    10  	"github.com/aavshr/aws-sdk-go/aws/awsutil"
    11  	"github.com/aavshr/aws-sdk-go/aws/request"
    12  	"github.com/aavshr/aws-sdk-go/private/protocol"
    13  	"github.com/aavshr/aws-sdk-go/private/protocol/jsonrpc"
    14  )
    15  
    16  const opCreateCapacityProvider = "CreateCapacityProvider"
    17  
    18  // CreateCapacityProviderRequest generates a "aws/request.Request" representing the
    19  // client's request for the CreateCapacityProvider operation. The "output" return
    20  // value will be populated with the request's response once the request completes
    21  // successfully.
    22  //
    23  // Use "Send" method on the returned Request to send the API call to the service.
    24  // the "output" return value is not valid until after Send returns without error.
    25  //
    26  // See CreateCapacityProvider for more information on using the CreateCapacityProvider
    27  // API call, and error handling.
    28  //
    29  // This method is useful when you want to inject custom logic or configuration
    30  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
    31  //
    32  //
    33  //    // Example sending a request using the CreateCapacityProviderRequest method.
    34  //    req, resp := client.CreateCapacityProviderRequest(params)
    35  //
    36  //    err := req.Send()
    37  //    if err == nil { // resp is now filled
    38  //        fmt.Println(resp)
    39  //    }
    40  //
    41  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCapacityProvider
    42  func (c *ECS) CreateCapacityProviderRequest(input *CreateCapacityProviderInput) (req *request.Request, output *CreateCapacityProviderOutput) {
    43  	op := &request.Operation{
    44  		Name:       opCreateCapacityProvider,
    45  		HTTPMethod: "POST",
    46  		HTTPPath:   "/",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &CreateCapacityProviderInput{}
    51  	}
    52  
    53  	output = &CreateCapacityProviderOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	return
    56  }
    57  
    58  // CreateCapacityProvider API operation for Amazon EC2 Container Service.
    59  //
    60  // Creates a new capacity provider. Capacity providers are associated with an
    61  // Amazon ECS cluster and are used in capacity provider strategies to facilitate
    62  // cluster auto scaling.
    63  //
    64  // Only capacity providers using an Auto Scaling group can be created. Amazon
    65  // ECS tasks on Fargate use the FARGATE and FARGATE_SPOT capacity providers
    66  // which are already created and available to all accounts in Regions supported
    67  // by Fargate.
    68  //
    69  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    70  // with awserr.Error's Code and Message methods to get detailed information about
    71  // the error.
    72  //
    73  // See the AWS API reference guide for Amazon EC2 Container Service's
    74  // API operation CreateCapacityProvider for usage and error information.
    75  //
    76  // Returned Error Types:
    77  //   * ServerException
    78  //   These errors are usually caused by a server issue.
    79  //
    80  //   * ClientException
    81  //   These errors are usually caused by a client action, such as using an action
    82  //   or resource on behalf of a user that doesn't have permissions to use the
    83  //   action or resource, or specifying an identifier that is not valid.
    84  //
    85  //   * InvalidParameterException
    86  //   The specified parameter is invalid. Review the available parameters for the
    87  //   API request.
    88  //
    89  //   * LimitExceededException
    90  //   The limit for the resource has been exceeded.
    91  //
    92  //   * UpdateInProgressException
    93  //   There is already a current Amazon ECS container agent update in progress
    94  //   on the specified container instance. If the container agent becomes disconnected
    95  //   while it is in a transitional stage, such as PENDING or STAGING, the update
    96  //   process can get stuck in that state. However, when the agent reconnects,
    97  //   it resumes where it stopped previously.
    98  //
    99  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCapacityProvider
   100  func (c *ECS) CreateCapacityProvider(input *CreateCapacityProviderInput) (*CreateCapacityProviderOutput, error) {
   101  	req, out := c.CreateCapacityProviderRequest(input)
   102  	return out, req.Send()
   103  }
   104  
   105  // CreateCapacityProviderWithContext is the same as CreateCapacityProvider with the addition of
   106  // the ability to pass a context and additional request options.
   107  //
   108  // See CreateCapacityProvider for details on how to use this API operation.
   109  //
   110  // The context must be non-nil and will be used for request cancellation. If
   111  // the context is nil a panic will occur. In the future the SDK may create
   112  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   113  // for more information on using Contexts.
   114  func (c *ECS) CreateCapacityProviderWithContext(ctx aws.Context, input *CreateCapacityProviderInput, opts ...request.Option) (*CreateCapacityProviderOutput, error) {
   115  	req, out := c.CreateCapacityProviderRequest(input)
   116  	req.SetContext(ctx)
   117  	req.ApplyOptions(opts...)
   118  	return out, req.Send()
   119  }
   120  
   121  const opCreateCluster = "CreateCluster"
   122  
   123  // CreateClusterRequest generates a "aws/request.Request" representing the
   124  // client's request for the CreateCluster operation. The "output" return
   125  // value will be populated with the request's response once the request completes
   126  // successfully.
   127  //
   128  // Use "Send" method on the returned Request to send the API call to the service.
   129  // the "output" return value is not valid until after Send returns without error.
   130  //
   131  // See CreateCluster for more information on using the CreateCluster
   132  // API call, and error handling.
   133  //
   134  // This method is useful when you want to inject custom logic or configuration
   135  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   136  //
   137  //
   138  //    // Example sending a request using the CreateClusterRequest method.
   139  //    req, resp := client.CreateClusterRequest(params)
   140  //
   141  //    err := req.Send()
   142  //    if err == nil { // resp is now filled
   143  //        fmt.Println(resp)
   144  //    }
   145  //
   146  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCluster
   147  func (c *ECS) CreateClusterRequest(input *CreateClusterInput) (req *request.Request, output *CreateClusterOutput) {
   148  	op := &request.Operation{
   149  		Name:       opCreateCluster,
   150  		HTTPMethod: "POST",
   151  		HTTPPath:   "/",
   152  	}
   153  
   154  	if input == nil {
   155  		input = &CreateClusterInput{}
   156  	}
   157  
   158  	output = &CreateClusterOutput{}
   159  	req = c.newRequest(op, input, output)
   160  	return
   161  }
   162  
   163  // CreateCluster API operation for Amazon EC2 Container Service.
   164  //
   165  // Creates a new Amazon ECS cluster. By default, your account receives a default
   166  // cluster when you launch your first container instance. However, you can create
   167  // your own cluster with a unique name with the CreateCluster action.
   168  //
   169  // When you call the CreateCluster API operation, Amazon ECS attempts to create
   170  // the Amazon ECS service-linked role for your account so that required resources
   171  // in other Amazon Web Services services can be managed on your behalf. However,
   172  // if the IAM user that makes the call does not have permissions to create the
   173  // service-linked role, it is not created. For more information, see Using Service-Linked
   174  // Roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
   175  // in the Amazon Elastic Container Service Developer Guide.
   176  //
   177  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   178  // with awserr.Error's Code and Message methods to get detailed information about
   179  // the error.
   180  //
   181  // See the AWS API reference guide for Amazon EC2 Container Service's
   182  // API operation CreateCluster for usage and error information.
   183  //
   184  // Returned Error Types:
   185  //   * ServerException
   186  //   These errors are usually caused by a server issue.
   187  //
   188  //   * ClientException
   189  //   These errors are usually caused by a client action, such as using an action
   190  //   or resource on behalf of a user that doesn't have permissions to use the
   191  //   action or resource, or specifying an identifier that is not valid.
   192  //
   193  //   * InvalidParameterException
   194  //   The specified parameter is invalid. Review the available parameters for the
   195  //   API request.
   196  //
   197  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCluster
   198  func (c *ECS) CreateCluster(input *CreateClusterInput) (*CreateClusterOutput, error) {
   199  	req, out := c.CreateClusterRequest(input)
   200  	return out, req.Send()
   201  }
   202  
   203  // CreateClusterWithContext is the same as CreateCluster with the addition of
   204  // the ability to pass a context and additional request options.
   205  //
   206  // See CreateCluster for details on how to use this API operation.
   207  //
   208  // The context must be non-nil and will be used for request cancellation. If
   209  // the context is nil a panic will occur. In the future the SDK may create
   210  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   211  // for more information on using Contexts.
   212  func (c *ECS) CreateClusterWithContext(ctx aws.Context, input *CreateClusterInput, opts ...request.Option) (*CreateClusterOutput, error) {
   213  	req, out := c.CreateClusterRequest(input)
   214  	req.SetContext(ctx)
   215  	req.ApplyOptions(opts...)
   216  	return out, req.Send()
   217  }
   218  
   219  const opCreateService = "CreateService"
   220  
   221  // CreateServiceRequest generates a "aws/request.Request" representing the
   222  // client's request for the CreateService operation. The "output" return
   223  // value will be populated with the request's response once the request completes
   224  // successfully.
   225  //
   226  // Use "Send" method on the returned Request to send the API call to the service.
   227  // the "output" return value is not valid until after Send returns without error.
   228  //
   229  // See CreateService for more information on using the CreateService
   230  // API call, and error handling.
   231  //
   232  // This method is useful when you want to inject custom logic or configuration
   233  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   234  //
   235  //
   236  //    // Example sending a request using the CreateServiceRequest method.
   237  //    req, resp := client.CreateServiceRequest(params)
   238  //
   239  //    err := req.Send()
   240  //    if err == nil { // resp is now filled
   241  //        fmt.Println(resp)
   242  //    }
   243  //
   244  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateService
   245  func (c *ECS) CreateServiceRequest(input *CreateServiceInput) (req *request.Request, output *CreateServiceOutput) {
   246  	op := &request.Operation{
   247  		Name:       opCreateService,
   248  		HTTPMethod: "POST",
   249  		HTTPPath:   "/",
   250  	}
   251  
   252  	if input == nil {
   253  		input = &CreateServiceInput{}
   254  	}
   255  
   256  	output = &CreateServiceOutput{}
   257  	req = c.newRequest(op, input, output)
   258  	return
   259  }
   260  
   261  // CreateService API operation for Amazon EC2 Container Service.
   262  //
   263  // Runs and maintains a desired number of tasks from a specified task definition.
   264  // If the number of tasks running in a service drops below the desiredCount,
   265  // Amazon ECS runs another copy of the task in the specified cluster. To update
   266  // an existing service, see the UpdateService action.
   267  //
   268  // In addition to maintaining the desired count of tasks in your service, you
   269  // can optionally run your service behind one or more load balancers. The load
   270  // balancers distribute traffic across the tasks that are associated with the
   271  // service. For more information, see Service Load Balancing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)
   272  // in the Amazon Elastic Container Service Developer Guide.
   273  //
   274  // Tasks for services that do not use a load balancer are considered healthy
   275  // if they're in the RUNNING state. Tasks for services that do use a load balancer
   276  // are considered healthy if they're in the RUNNING state and the container
   277  // instance that they're hosted on is reported as healthy by the load balancer.
   278  //
   279  // There are two service scheduler strategies available:
   280  //
   281  //    * REPLICA - The replica scheduling strategy places and maintains the desired
   282  //    number of tasks across your cluster. By default, the service scheduler
   283  //    spreads tasks across Availability Zones. You can use task placement strategies
   284  //    and constraints to customize task placement decisions. For more information,
   285  //    see Service Scheduler Concepts (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html)
   286  //    in the Amazon Elastic Container Service Developer Guide.
   287  //
   288  //    * DAEMON - The daemon scheduling strategy deploys exactly one task on
   289  //    each active container instance that meets all of the task placement constraints
   290  //    that you specify in your cluster. The service scheduler also evaluates
   291  //    the task placement constraints for running tasks and will stop tasks that
   292  //    do not meet the placement constraints. When using this strategy, you don't
   293  //    need to specify a desired number of tasks, a task placement strategy,
   294  //    or use Service Auto Scaling policies. For more information, see Service
   295  //    Scheduler Concepts (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html)
   296  //    in the Amazon Elastic Container Service Developer Guide.
   297  //
   298  // You can optionally specify a deployment configuration for your service. The
   299  // deployment is triggered by changing properties, such as the task definition
   300  // or the desired count of a service, with an UpdateService operation. The default
   301  // value for a replica service for minimumHealthyPercent is 100%. The default
   302  // value for a daemon service for minimumHealthyPercent is 0%.
   303  //
   304  // If a service is using the ECS deployment controller, the minimum healthy
   305  // percent represents a lower limit on the number of tasks in a service that
   306  // must remain in the RUNNING state during a deployment, as a percentage of
   307  // the desired number of tasks (rounded up to the nearest integer), and while
   308  // any container instances are in the DRAINING state if the service contains
   309  // tasks using the EC2 launch type. This parameter enables you to deploy without
   310  // using additional cluster capacity. For example, if your service has a desired
   311  // number of four tasks and a minimum healthy percent of 50%, the scheduler
   312  // might stop two existing tasks to free up cluster capacity before starting
   313  // two new tasks. Tasks for services that do not use a load balancer are considered
   314  // healthy if they're in the RUNNING state. Tasks for services that do use a
   315  // load balancer are considered healthy if they're in the RUNNING state and
   316  // they're reported as healthy by the load balancer. The default value for minimum
   317  // healthy percent is 100%.
   318  //
   319  // If a service is using the ECS deployment controller, the maximum percent
   320  // parameter represents an upper limit on the number of tasks in a service that
   321  // are allowed in the RUNNING or PENDING state during a deployment, as a percentage
   322  // of the desired number of tasks (rounded down to the nearest integer), and
   323  // while any container instances are in the DRAINING state if the service contains
   324  // tasks using the EC2 launch type. This parameter enables you to define the
   325  // deployment batch size. For example, if your service has a desired number
   326  // of four tasks and a maximum percent value of 200%, the scheduler may start
   327  // four new tasks before stopping the four older tasks (provided that the cluster
   328  // resources required to do this are available). The default value for maximum
   329  // percent is 200%.
   330  //
   331  // If a service is using either the CODE_DEPLOY or EXTERNAL deployment controller
   332  // types and tasks that use the EC2 launch type, the minimum healthy percent
   333  // and maximum percent values are used only to define the lower and upper limit
   334  // on the number of the tasks in the service that remain in the RUNNING state
   335  // while the container instances are in the DRAINING state. If the tasks in
   336  // the service use the Fargate launch type, the minimum healthy percent and
   337  // maximum percent values aren't used, although they're currently visible when
   338  // describing your service.
   339  //
   340  // When creating a service that uses the EXTERNAL deployment controller, you
   341  // can specify only parameters that aren't controlled at the task set level.
   342  // The only required parameter is the service name. You control your services
   343  // using the CreateTaskSet operation. For more information, see Amazon ECS Deployment
   344  // Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
   345  // in the Amazon Elastic Container Service Developer Guide.
   346  //
   347  // When the service scheduler launches new tasks, it determines task placement
   348  // in your cluster using the following logic:
   349  //
   350  //    * Determine which of the container instances in your cluster can support
   351  //    your service's task definition (for example, they have the required CPU,
   352  //    memory, ports, and container instance attributes).
   353  //
   354  //    * By default, the service scheduler attempts to balance tasks across Availability
   355  //    Zones in this manner (although you can choose a different placement strategy)
   356  //    with the placementStrategy parameter): Sort the valid container instances,
   357  //    giving priority to instances that have the fewest number of running tasks
   358  //    for this service in their respective Availability Zone. For example, if
   359  //    zone A has one running service task and zones B and C each have zero,
   360  //    valid container instances in either zone B or C are considered optimal
   361  //    for placement. Place the new service task on a valid container instance
   362  //    in an optimal Availability Zone (based on the previous steps), favoring
   363  //    container instances with the fewest number of running tasks for this service.
   364  //
   365  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   366  // with awserr.Error's Code and Message methods to get detailed information about
   367  // the error.
   368  //
   369  // See the AWS API reference guide for Amazon EC2 Container Service's
   370  // API operation CreateService for usage and error information.
   371  //
   372  // Returned Error Types:
   373  //   * ServerException
   374  //   These errors are usually caused by a server issue.
   375  //
   376  //   * ClientException
   377  //   These errors are usually caused by a client action, such as using an action
   378  //   or resource on behalf of a user that doesn't have permissions to use the
   379  //   action or resource, or specifying an identifier that is not valid.
   380  //
   381  //   * InvalidParameterException
   382  //   The specified parameter is invalid. Review the available parameters for the
   383  //   API request.
   384  //
   385  //   * ClusterNotFoundException
   386  //   The specified cluster could not be found. You can view your available clusters
   387  //   with ListClusters. Amazon ECS clusters are Region-specific.
   388  //
   389  //   * UnsupportedFeatureException
   390  //   The specified task is not supported in this Region.
   391  //
   392  //   * PlatformUnknownException
   393  //   The specified platform version does not exist.
   394  //
   395  //   * PlatformTaskDefinitionIncompatibilityException
   396  //   The specified platform version does not satisfy the task definition's required
   397  //   capabilities.
   398  //
   399  //   * AccessDeniedException
   400  //   You do not have authorization to perform the requested action.
   401  //
   402  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateService
   403  func (c *ECS) CreateService(input *CreateServiceInput) (*CreateServiceOutput, error) {
   404  	req, out := c.CreateServiceRequest(input)
   405  	return out, req.Send()
   406  }
   407  
   408  // CreateServiceWithContext is the same as CreateService with the addition of
   409  // the ability to pass a context and additional request options.
   410  //
   411  // See CreateService for details on how to use this API operation.
   412  //
   413  // The context must be non-nil and will be used for request cancellation. If
   414  // the context is nil a panic will occur. In the future the SDK may create
   415  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   416  // for more information on using Contexts.
   417  func (c *ECS) CreateServiceWithContext(ctx aws.Context, input *CreateServiceInput, opts ...request.Option) (*CreateServiceOutput, error) {
   418  	req, out := c.CreateServiceRequest(input)
   419  	req.SetContext(ctx)
   420  	req.ApplyOptions(opts...)
   421  	return out, req.Send()
   422  }
   423  
   424  const opCreateTaskSet = "CreateTaskSet"
   425  
   426  // CreateTaskSetRequest generates a "aws/request.Request" representing the
   427  // client's request for the CreateTaskSet operation. The "output" return
   428  // value will be populated with the request's response once the request completes
   429  // successfully.
   430  //
   431  // Use "Send" method on the returned Request to send the API call to the service.
   432  // the "output" return value is not valid until after Send returns without error.
   433  //
   434  // See CreateTaskSet for more information on using the CreateTaskSet
   435  // API call, and error handling.
   436  //
   437  // This method is useful when you want to inject custom logic or configuration
   438  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   439  //
   440  //
   441  //    // Example sending a request using the CreateTaskSetRequest method.
   442  //    req, resp := client.CreateTaskSetRequest(params)
   443  //
   444  //    err := req.Send()
   445  //    if err == nil { // resp is now filled
   446  //        fmt.Println(resp)
   447  //    }
   448  //
   449  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateTaskSet
   450  func (c *ECS) CreateTaskSetRequest(input *CreateTaskSetInput) (req *request.Request, output *CreateTaskSetOutput) {
   451  	op := &request.Operation{
   452  		Name:       opCreateTaskSet,
   453  		HTTPMethod: "POST",
   454  		HTTPPath:   "/",
   455  	}
   456  
   457  	if input == nil {
   458  		input = &CreateTaskSetInput{}
   459  	}
   460  
   461  	output = &CreateTaskSetOutput{}
   462  	req = c.newRequest(op, input, output)
   463  	return
   464  }
   465  
   466  // CreateTaskSet API operation for Amazon EC2 Container Service.
   467  //
   468  // Create a task set in the specified cluster and service. This is used when
   469  // a service uses the EXTERNAL deployment controller type. For more information,
   470  // see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
   471  // in the Amazon Elastic Container Service Developer Guide.
   472  //
   473  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   474  // with awserr.Error's Code and Message methods to get detailed information about
   475  // the error.
   476  //
   477  // See the AWS API reference guide for Amazon EC2 Container Service's
   478  // API operation CreateTaskSet for usage and error information.
   479  //
   480  // Returned Error Types:
   481  //   * ServerException
   482  //   These errors are usually caused by a server issue.
   483  //
   484  //   * ClientException
   485  //   These errors are usually caused by a client action, such as using an action
   486  //   or resource on behalf of a user that doesn't have permissions to use the
   487  //   action or resource, or specifying an identifier that is not valid.
   488  //
   489  //   * InvalidParameterException
   490  //   The specified parameter is invalid. Review the available parameters for the
   491  //   API request.
   492  //
   493  //   * ClusterNotFoundException
   494  //   The specified cluster could not be found. You can view your available clusters
   495  //   with ListClusters. Amazon ECS clusters are Region-specific.
   496  //
   497  //   * UnsupportedFeatureException
   498  //   The specified task is not supported in this Region.
   499  //
   500  //   * PlatformUnknownException
   501  //   The specified platform version does not exist.
   502  //
   503  //   * PlatformTaskDefinitionIncompatibilityException
   504  //   The specified platform version does not satisfy the task definition's required
   505  //   capabilities.
   506  //
   507  //   * AccessDeniedException
   508  //   You do not have authorization to perform the requested action.
   509  //
   510  //   * ServiceNotFoundException
   511  //   The specified service could not be found. You can view your available services
   512  //   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
   513  //
   514  //   * ServiceNotActiveException
   515  //   The specified service is not active. You can't update a service that is inactive.
   516  //   If you have previously deleted a service, you can re-create it with CreateService.
   517  //
   518  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateTaskSet
   519  func (c *ECS) CreateTaskSet(input *CreateTaskSetInput) (*CreateTaskSetOutput, error) {
   520  	req, out := c.CreateTaskSetRequest(input)
   521  	return out, req.Send()
   522  }
   523  
   524  // CreateTaskSetWithContext is the same as CreateTaskSet with the addition of
   525  // the ability to pass a context and additional request options.
   526  //
   527  // See CreateTaskSet for details on how to use this API operation.
   528  //
   529  // The context must be non-nil and will be used for request cancellation. If
   530  // the context is nil a panic will occur. In the future the SDK may create
   531  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   532  // for more information on using Contexts.
   533  func (c *ECS) CreateTaskSetWithContext(ctx aws.Context, input *CreateTaskSetInput, opts ...request.Option) (*CreateTaskSetOutput, error) {
   534  	req, out := c.CreateTaskSetRequest(input)
   535  	req.SetContext(ctx)
   536  	req.ApplyOptions(opts...)
   537  	return out, req.Send()
   538  }
   539  
   540  const opDeleteAccountSetting = "DeleteAccountSetting"
   541  
   542  // DeleteAccountSettingRequest generates a "aws/request.Request" representing the
   543  // client's request for the DeleteAccountSetting operation. The "output" return
   544  // value will be populated with the request's response once the request completes
   545  // successfully.
   546  //
   547  // Use "Send" method on the returned Request to send the API call to the service.
   548  // the "output" return value is not valid until after Send returns without error.
   549  //
   550  // See DeleteAccountSetting for more information on using the DeleteAccountSetting
   551  // API call, and error handling.
   552  //
   553  // This method is useful when you want to inject custom logic or configuration
   554  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   555  //
   556  //
   557  //    // Example sending a request using the DeleteAccountSettingRequest method.
   558  //    req, resp := client.DeleteAccountSettingRequest(params)
   559  //
   560  //    err := req.Send()
   561  //    if err == nil { // resp is now filled
   562  //        fmt.Println(resp)
   563  //    }
   564  //
   565  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAccountSetting
   566  func (c *ECS) DeleteAccountSettingRequest(input *DeleteAccountSettingInput) (req *request.Request, output *DeleteAccountSettingOutput) {
   567  	op := &request.Operation{
   568  		Name:       opDeleteAccountSetting,
   569  		HTTPMethod: "POST",
   570  		HTTPPath:   "/",
   571  	}
   572  
   573  	if input == nil {
   574  		input = &DeleteAccountSettingInput{}
   575  	}
   576  
   577  	output = &DeleteAccountSettingOutput{}
   578  	req = c.newRequest(op, input, output)
   579  	return
   580  }
   581  
   582  // DeleteAccountSetting API operation for Amazon EC2 Container Service.
   583  //
   584  // Disables an account setting for a specified IAM user, IAM role, or the root
   585  // user for an account.
   586  //
   587  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   588  // with awserr.Error's Code and Message methods to get detailed information about
   589  // the error.
   590  //
   591  // See the AWS API reference guide for Amazon EC2 Container Service's
   592  // API operation DeleteAccountSetting for usage and error information.
   593  //
   594  // Returned Error Types:
   595  //   * ServerException
   596  //   These errors are usually caused by a server issue.
   597  //
   598  //   * ClientException
   599  //   These errors are usually caused by a client action, such as using an action
   600  //   or resource on behalf of a user that doesn't have permissions to use the
   601  //   action or resource, or specifying an identifier that is not valid.
   602  //
   603  //   * InvalidParameterException
   604  //   The specified parameter is invalid. Review the available parameters for the
   605  //   API request.
   606  //
   607  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAccountSetting
   608  func (c *ECS) DeleteAccountSetting(input *DeleteAccountSettingInput) (*DeleteAccountSettingOutput, error) {
   609  	req, out := c.DeleteAccountSettingRequest(input)
   610  	return out, req.Send()
   611  }
   612  
   613  // DeleteAccountSettingWithContext is the same as DeleteAccountSetting with the addition of
   614  // the ability to pass a context and additional request options.
   615  //
   616  // See DeleteAccountSetting for details on how to use this API operation.
   617  //
   618  // The context must be non-nil and will be used for request cancellation. If
   619  // the context is nil a panic will occur. In the future the SDK may create
   620  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   621  // for more information on using Contexts.
   622  func (c *ECS) DeleteAccountSettingWithContext(ctx aws.Context, input *DeleteAccountSettingInput, opts ...request.Option) (*DeleteAccountSettingOutput, error) {
   623  	req, out := c.DeleteAccountSettingRequest(input)
   624  	req.SetContext(ctx)
   625  	req.ApplyOptions(opts...)
   626  	return out, req.Send()
   627  }
   628  
   629  const opDeleteAttributes = "DeleteAttributes"
   630  
   631  // DeleteAttributesRequest generates a "aws/request.Request" representing the
   632  // client's request for the DeleteAttributes operation. The "output" return
   633  // value will be populated with the request's response once the request completes
   634  // successfully.
   635  //
   636  // Use "Send" method on the returned Request to send the API call to the service.
   637  // the "output" return value is not valid until after Send returns without error.
   638  //
   639  // See DeleteAttributes for more information on using the DeleteAttributes
   640  // API call, and error handling.
   641  //
   642  // This method is useful when you want to inject custom logic or configuration
   643  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   644  //
   645  //
   646  //    // Example sending a request using the DeleteAttributesRequest method.
   647  //    req, resp := client.DeleteAttributesRequest(params)
   648  //
   649  //    err := req.Send()
   650  //    if err == nil { // resp is now filled
   651  //        fmt.Println(resp)
   652  //    }
   653  //
   654  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributes
   655  func (c *ECS) DeleteAttributesRequest(input *DeleteAttributesInput) (req *request.Request, output *DeleteAttributesOutput) {
   656  	op := &request.Operation{
   657  		Name:       opDeleteAttributes,
   658  		HTTPMethod: "POST",
   659  		HTTPPath:   "/",
   660  	}
   661  
   662  	if input == nil {
   663  		input = &DeleteAttributesInput{}
   664  	}
   665  
   666  	output = &DeleteAttributesOutput{}
   667  	req = c.newRequest(op, input, output)
   668  	return
   669  }
   670  
   671  // DeleteAttributes API operation for Amazon EC2 Container Service.
   672  //
   673  // Deletes one or more custom attributes from an Amazon ECS resource.
   674  //
   675  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   676  // with awserr.Error's Code and Message methods to get detailed information about
   677  // the error.
   678  //
   679  // See the AWS API reference guide for Amazon EC2 Container Service's
   680  // API operation DeleteAttributes for usage and error information.
   681  //
   682  // Returned Error Types:
   683  //   * ClusterNotFoundException
   684  //   The specified cluster could not be found. You can view your available clusters
   685  //   with ListClusters. Amazon ECS clusters are Region-specific.
   686  //
   687  //   * TargetNotFoundException
   688  //   The specified target could not be found. You can view your available container
   689  //   instances with ListContainerInstances. Amazon ECS container instances are
   690  //   cluster-specific and Region-specific.
   691  //
   692  //   * InvalidParameterException
   693  //   The specified parameter is invalid. Review the available parameters for the
   694  //   API request.
   695  //
   696  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributes
   697  func (c *ECS) DeleteAttributes(input *DeleteAttributesInput) (*DeleteAttributesOutput, error) {
   698  	req, out := c.DeleteAttributesRequest(input)
   699  	return out, req.Send()
   700  }
   701  
   702  // DeleteAttributesWithContext is the same as DeleteAttributes with the addition of
   703  // the ability to pass a context and additional request options.
   704  //
   705  // See DeleteAttributes for details on how to use this API operation.
   706  //
   707  // The context must be non-nil and will be used for request cancellation. If
   708  // the context is nil a panic will occur. In the future the SDK may create
   709  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   710  // for more information on using Contexts.
   711  func (c *ECS) DeleteAttributesWithContext(ctx aws.Context, input *DeleteAttributesInput, opts ...request.Option) (*DeleteAttributesOutput, error) {
   712  	req, out := c.DeleteAttributesRequest(input)
   713  	req.SetContext(ctx)
   714  	req.ApplyOptions(opts...)
   715  	return out, req.Send()
   716  }
   717  
   718  const opDeleteCapacityProvider = "DeleteCapacityProvider"
   719  
   720  // DeleteCapacityProviderRequest generates a "aws/request.Request" representing the
   721  // client's request for the DeleteCapacityProvider operation. The "output" return
   722  // value will be populated with the request's response once the request completes
   723  // successfully.
   724  //
   725  // Use "Send" method on the returned Request to send the API call to the service.
   726  // the "output" return value is not valid until after Send returns without error.
   727  //
   728  // See DeleteCapacityProvider for more information on using the DeleteCapacityProvider
   729  // API call, and error handling.
   730  //
   731  // This method is useful when you want to inject custom logic or configuration
   732  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   733  //
   734  //
   735  //    // Example sending a request using the DeleteCapacityProviderRequest method.
   736  //    req, resp := client.DeleteCapacityProviderRequest(params)
   737  //
   738  //    err := req.Send()
   739  //    if err == nil { // resp is now filled
   740  //        fmt.Println(resp)
   741  //    }
   742  //
   743  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCapacityProvider
   744  func (c *ECS) DeleteCapacityProviderRequest(input *DeleteCapacityProviderInput) (req *request.Request, output *DeleteCapacityProviderOutput) {
   745  	op := &request.Operation{
   746  		Name:       opDeleteCapacityProvider,
   747  		HTTPMethod: "POST",
   748  		HTTPPath:   "/",
   749  	}
   750  
   751  	if input == nil {
   752  		input = &DeleteCapacityProviderInput{}
   753  	}
   754  
   755  	output = &DeleteCapacityProviderOutput{}
   756  	req = c.newRequest(op, input, output)
   757  	return
   758  }
   759  
   760  // DeleteCapacityProvider API operation for Amazon EC2 Container Service.
   761  //
   762  // Deletes the specified capacity provider.
   763  //
   764  // The FARGATE and FARGATE_SPOT capacity providers are reserved and cannot be
   765  // deleted. You can disassociate them from a cluster using either the PutClusterCapacityProviders
   766  // API or by deleting the cluster.
   767  //
   768  // Prior to a capacity provider being deleted, the capacity provider must be
   769  // removed from the capacity provider strategy from all services. The UpdateService
   770  // API can be used to remove a capacity provider from a service's capacity provider
   771  // strategy. When updating a service, the forceNewDeployment option can be used
   772  // to ensure that any tasks using the Amazon EC2 instance capacity provided
   773  // by the capacity provider are transitioned to use the capacity from the remaining
   774  // capacity providers. Only capacity providers that are not associated with
   775  // a cluster can be deleted. To remove a capacity provider from a cluster, you
   776  // can either use PutClusterCapacityProviders or delete the cluster.
   777  //
   778  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   779  // with awserr.Error's Code and Message methods to get detailed information about
   780  // the error.
   781  //
   782  // See the AWS API reference guide for Amazon EC2 Container Service's
   783  // API operation DeleteCapacityProvider for usage and error information.
   784  //
   785  // Returned Error Types:
   786  //   * ServerException
   787  //   These errors are usually caused by a server issue.
   788  //
   789  //   * ClientException
   790  //   These errors are usually caused by a client action, such as using an action
   791  //   or resource on behalf of a user that doesn't have permissions to use the
   792  //   action or resource, or specifying an identifier that is not valid.
   793  //
   794  //   * InvalidParameterException
   795  //   The specified parameter is invalid. Review the available parameters for the
   796  //   API request.
   797  //
   798  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCapacityProvider
   799  func (c *ECS) DeleteCapacityProvider(input *DeleteCapacityProviderInput) (*DeleteCapacityProviderOutput, error) {
   800  	req, out := c.DeleteCapacityProviderRequest(input)
   801  	return out, req.Send()
   802  }
   803  
   804  // DeleteCapacityProviderWithContext is the same as DeleteCapacityProvider with the addition of
   805  // the ability to pass a context and additional request options.
   806  //
   807  // See DeleteCapacityProvider for details on how to use this API operation.
   808  //
   809  // The context must be non-nil and will be used for request cancellation. If
   810  // the context is nil a panic will occur. In the future the SDK may create
   811  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   812  // for more information on using Contexts.
   813  func (c *ECS) DeleteCapacityProviderWithContext(ctx aws.Context, input *DeleteCapacityProviderInput, opts ...request.Option) (*DeleteCapacityProviderOutput, error) {
   814  	req, out := c.DeleteCapacityProviderRequest(input)
   815  	req.SetContext(ctx)
   816  	req.ApplyOptions(opts...)
   817  	return out, req.Send()
   818  }
   819  
   820  const opDeleteCluster = "DeleteCluster"
   821  
   822  // DeleteClusterRequest generates a "aws/request.Request" representing the
   823  // client's request for the DeleteCluster operation. The "output" return
   824  // value will be populated with the request's response once the request completes
   825  // successfully.
   826  //
   827  // Use "Send" method on the returned Request to send the API call to the service.
   828  // the "output" return value is not valid until after Send returns without error.
   829  //
   830  // See DeleteCluster for more information on using the DeleteCluster
   831  // API call, and error handling.
   832  //
   833  // This method is useful when you want to inject custom logic or configuration
   834  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   835  //
   836  //
   837  //    // Example sending a request using the DeleteClusterRequest method.
   838  //    req, resp := client.DeleteClusterRequest(params)
   839  //
   840  //    err := req.Send()
   841  //    if err == nil { // resp is now filled
   842  //        fmt.Println(resp)
   843  //    }
   844  //
   845  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCluster
   846  func (c *ECS) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Request, output *DeleteClusterOutput) {
   847  	op := &request.Operation{
   848  		Name:       opDeleteCluster,
   849  		HTTPMethod: "POST",
   850  		HTTPPath:   "/",
   851  	}
   852  
   853  	if input == nil {
   854  		input = &DeleteClusterInput{}
   855  	}
   856  
   857  	output = &DeleteClusterOutput{}
   858  	req = c.newRequest(op, input, output)
   859  	return
   860  }
   861  
   862  // DeleteCluster API operation for Amazon EC2 Container Service.
   863  //
   864  // Deletes the specified cluster. The cluster will transition to the INACTIVE
   865  // state. Clusters with an INACTIVE status may remain discoverable in your account
   866  // for a period of time. However, this behavior is subject to change in the
   867  // future, so you should not rely on INACTIVE clusters persisting.
   868  //
   869  // You must deregister all container instances from this cluster before you
   870  // may delete it. You can list the container instances in a cluster with ListContainerInstances
   871  // and deregister them with DeregisterContainerInstance.
   872  //
   873  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   874  // with awserr.Error's Code and Message methods to get detailed information about
   875  // the error.
   876  //
   877  // See the AWS API reference guide for Amazon EC2 Container Service's
   878  // API operation DeleteCluster for usage and error information.
   879  //
   880  // Returned Error Types:
   881  //   * ServerException
   882  //   These errors are usually caused by a server issue.
   883  //
   884  //   * ClientException
   885  //   These errors are usually caused by a client action, such as using an action
   886  //   or resource on behalf of a user that doesn't have permissions to use the
   887  //   action or resource, or specifying an identifier that is not valid.
   888  //
   889  //   * InvalidParameterException
   890  //   The specified parameter is invalid. Review the available parameters for the
   891  //   API request.
   892  //
   893  //   * ClusterNotFoundException
   894  //   The specified cluster could not be found. You can view your available clusters
   895  //   with ListClusters. Amazon ECS clusters are Region-specific.
   896  //
   897  //   * ClusterContainsContainerInstancesException
   898  //   You cannot delete a cluster that has registered container instances. First,
   899  //   deregister the container instances before you can delete the cluster. For
   900  //   more information, see DeregisterContainerInstance.
   901  //
   902  //   * ClusterContainsServicesException
   903  //   You cannot delete a cluster that contains services. First, update the service
   904  //   to reduce its desired task count to 0 and then delete the service. For more
   905  //   information, see UpdateService and DeleteService.
   906  //
   907  //   * ClusterContainsTasksException
   908  //   You cannot delete a cluster that has active tasks.
   909  //
   910  //   * UpdateInProgressException
   911  //   There is already a current Amazon ECS container agent update in progress
   912  //   on the specified container instance. If the container agent becomes disconnected
   913  //   while it is in a transitional stage, such as PENDING or STAGING, the update
   914  //   process can get stuck in that state. However, when the agent reconnects,
   915  //   it resumes where it stopped previously.
   916  //
   917  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCluster
   918  func (c *ECS) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error) {
   919  	req, out := c.DeleteClusterRequest(input)
   920  	return out, req.Send()
   921  }
   922  
   923  // DeleteClusterWithContext is the same as DeleteCluster with the addition of
   924  // the ability to pass a context and additional request options.
   925  //
   926  // See DeleteCluster for details on how to use this API operation.
   927  //
   928  // The context must be non-nil and will be used for request cancellation. If
   929  // the context is nil a panic will occur. In the future the SDK may create
   930  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   931  // for more information on using Contexts.
   932  func (c *ECS) DeleteClusterWithContext(ctx aws.Context, input *DeleteClusterInput, opts ...request.Option) (*DeleteClusterOutput, error) {
   933  	req, out := c.DeleteClusterRequest(input)
   934  	req.SetContext(ctx)
   935  	req.ApplyOptions(opts...)
   936  	return out, req.Send()
   937  }
   938  
   939  const opDeleteService = "DeleteService"
   940  
   941  // DeleteServiceRequest generates a "aws/request.Request" representing the
   942  // client's request for the DeleteService operation. The "output" return
   943  // value will be populated with the request's response once the request completes
   944  // successfully.
   945  //
   946  // Use "Send" method on the returned Request to send the API call to the service.
   947  // the "output" return value is not valid until after Send returns without error.
   948  //
   949  // See DeleteService for more information on using the DeleteService
   950  // API call, and error handling.
   951  //
   952  // This method is useful when you want to inject custom logic or configuration
   953  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   954  //
   955  //
   956  //    // Example sending a request using the DeleteServiceRequest method.
   957  //    req, resp := client.DeleteServiceRequest(params)
   958  //
   959  //    err := req.Send()
   960  //    if err == nil { // resp is now filled
   961  //        fmt.Println(resp)
   962  //    }
   963  //
   964  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteService
   965  func (c *ECS) DeleteServiceRequest(input *DeleteServiceInput) (req *request.Request, output *DeleteServiceOutput) {
   966  	op := &request.Operation{
   967  		Name:       opDeleteService,
   968  		HTTPMethod: "POST",
   969  		HTTPPath:   "/",
   970  	}
   971  
   972  	if input == nil {
   973  		input = &DeleteServiceInput{}
   974  	}
   975  
   976  	output = &DeleteServiceOutput{}
   977  	req = c.newRequest(op, input, output)
   978  	return
   979  }
   980  
   981  // DeleteService API operation for Amazon EC2 Container Service.
   982  //
   983  // Deletes a specified service within a cluster. You can delete a service if
   984  // you have no running tasks in it and the desired task count is zero. If the
   985  // service is actively maintaining tasks, you cannot delete it, and you must
   986  // update the service to a desired task count of zero. For more information,
   987  // see UpdateService.
   988  //
   989  // When you delete a service, if there are still running tasks that require
   990  // cleanup, the service status moves from ACTIVE to DRAINING, and the service
   991  // is no longer visible in the console or in the ListServices API operation.
   992  // After all tasks have transitioned to either STOPPING or STOPPED status, the
   993  // service status moves from DRAINING to INACTIVE. Services in the DRAINING
   994  // or INACTIVE status can still be viewed with the DescribeServices API operation.
   995  // However, in the future, INACTIVE services may be cleaned up and purged from
   996  // Amazon ECS record keeping, and DescribeServices calls on those services return
   997  // a ServiceNotFoundException error.
   998  //
   999  // If you attempt to create a new service with the same name as an existing
  1000  // service in either ACTIVE or DRAINING status, you receive an error.
  1001  //
  1002  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1003  // with awserr.Error's Code and Message methods to get detailed information about
  1004  // the error.
  1005  //
  1006  // See the AWS API reference guide for Amazon EC2 Container Service's
  1007  // API operation DeleteService for usage and error information.
  1008  //
  1009  // Returned Error Types:
  1010  //   * ServerException
  1011  //   These errors are usually caused by a server issue.
  1012  //
  1013  //   * ClientException
  1014  //   These errors are usually caused by a client action, such as using an action
  1015  //   or resource on behalf of a user that doesn't have permissions to use the
  1016  //   action or resource, or specifying an identifier that is not valid.
  1017  //
  1018  //   * InvalidParameterException
  1019  //   The specified parameter is invalid. Review the available parameters for the
  1020  //   API request.
  1021  //
  1022  //   * ClusterNotFoundException
  1023  //   The specified cluster could not be found. You can view your available clusters
  1024  //   with ListClusters. Amazon ECS clusters are Region-specific.
  1025  //
  1026  //   * ServiceNotFoundException
  1027  //   The specified service could not be found. You can view your available services
  1028  //   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
  1029  //
  1030  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteService
  1031  func (c *ECS) DeleteService(input *DeleteServiceInput) (*DeleteServiceOutput, error) {
  1032  	req, out := c.DeleteServiceRequest(input)
  1033  	return out, req.Send()
  1034  }
  1035  
  1036  // DeleteServiceWithContext is the same as DeleteService with the addition of
  1037  // the ability to pass a context and additional request options.
  1038  //
  1039  // See DeleteService for details on how to use this API operation.
  1040  //
  1041  // The context must be non-nil and will be used for request cancellation. If
  1042  // the context is nil a panic will occur. In the future the SDK may create
  1043  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1044  // for more information on using Contexts.
  1045  func (c *ECS) DeleteServiceWithContext(ctx aws.Context, input *DeleteServiceInput, opts ...request.Option) (*DeleteServiceOutput, error) {
  1046  	req, out := c.DeleteServiceRequest(input)
  1047  	req.SetContext(ctx)
  1048  	req.ApplyOptions(opts...)
  1049  	return out, req.Send()
  1050  }
  1051  
  1052  const opDeleteTaskSet = "DeleteTaskSet"
  1053  
  1054  // DeleteTaskSetRequest generates a "aws/request.Request" representing the
  1055  // client's request for the DeleteTaskSet operation. The "output" return
  1056  // value will be populated with the request's response once the request completes
  1057  // successfully.
  1058  //
  1059  // Use "Send" method on the returned Request to send the API call to the service.
  1060  // the "output" return value is not valid until after Send returns without error.
  1061  //
  1062  // See DeleteTaskSet for more information on using the DeleteTaskSet
  1063  // API call, and error handling.
  1064  //
  1065  // This method is useful when you want to inject custom logic or configuration
  1066  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1067  //
  1068  //
  1069  //    // Example sending a request using the DeleteTaskSetRequest method.
  1070  //    req, resp := client.DeleteTaskSetRequest(params)
  1071  //
  1072  //    err := req.Send()
  1073  //    if err == nil { // resp is now filled
  1074  //        fmt.Println(resp)
  1075  //    }
  1076  //
  1077  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteTaskSet
  1078  func (c *ECS) DeleteTaskSetRequest(input *DeleteTaskSetInput) (req *request.Request, output *DeleteTaskSetOutput) {
  1079  	op := &request.Operation{
  1080  		Name:       opDeleteTaskSet,
  1081  		HTTPMethod: "POST",
  1082  		HTTPPath:   "/",
  1083  	}
  1084  
  1085  	if input == nil {
  1086  		input = &DeleteTaskSetInput{}
  1087  	}
  1088  
  1089  	output = &DeleteTaskSetOutput{}
  1090  	req = c.newRequest(op, input, output)
  1091  	return
  1092  }
  1093  
  1094  // DeleteTaskSet API operation for Amazon EC2 Container Service.
  1095  //
  1096  // Deletes a specified task set within a service. This is used when a service
  1097  // uses the EXTERNAL deployment controller type. For more information, see Amazon
  1098  // ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
  1099  // in the Amazon Elastic Container Service Developer Guide.
  1100  //
  1101  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1102  // with awserr.Error's Code and Message methods to get detailed information about
  1103  // the error.
  1104  //
  1105  // See the AWS API reference guide for Amazon EC2 Container Service's
  1106  // API operation DeleteTaskSet for usage and error information.
  1107  //
  1108  // Returned Error Types:
  1109  //   * ServerException
  1110  //   These errors are usually caused by a server issue.
  1111  //
  1112  //   * ClientException
  1113  //   These errors are usually caused by a client action, such as using an action
  1114  //   or resource on behalf of a user that doesn't have permissions to use the
  1115  //   action or resource, or specifying an identifier that is not valid.
  1116  //
  1117  //   * InvalidParameterException
  1118  //   The specified parameter is invalid. Review the available parameters for the
  1119  //   API request.
  1120  //
  1121  //   * ClusterNotFoundException
  1122  //   The specified cluster could not be found. You can view your available clusters
  1123  //   with ListClusters. Amazon ECS clusters are Region-specific.
  1124  //
  1125  //   * UnsupportedFeatureException
  1126  //   The specified task is not supported in this Region.
  1127  //
  1128  //   * AccessDeniedException
  1129  //   You do not have authorization to perform the requested action.
  1130  //
  1131  //   * ServiceNotFoundException
  1132  //   The specified service could not be found. You can view your available services
  1133  //   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
  1134  //
  1135  //   * ServiceNotActiveException
  1136  //   The specified service is not active. You can't update a service that is inactive.
  1137  //   If you have previously deleted a service, you can re-create it with CreateService.
  1138  //
  1139  //   * TaskSetNotFoundException
  1140  //   The specified task set could not be found. You can view your available task
  1141  //   sets with DescribeTaskSets. Task sets are specific to each cluster, service
  1142  //   and Region.
  1143  //
  1144  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteTaskSet
  1145  func (c *ECS) DeleteTaskSet(input *DeleteTaskSetInput) (*DeleteTaskSetOutput, error) {
  1146  	req, out := c.DeleteTaskSetRequest(input)
  1147  	return out, req.Send()
  1148  }
  1149  
  1150  // DeleteTaskSetWithContext is the same as DeleteTaskSet with the addition of
  1151  // the ability to pass a context and additional request options.
  1152  //
  1153  // See DeleteTaskSet for details on how to use this API operation.
  1154  //
  1155  // The context must be non-nil and will be used for request cancellation. If
  1156  // the context is nil a panic will occur. In the future the SDK may create
  1157  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1158  // for more information on using Contexts.
  1159  func (c *ECS) DeleteTaskSetWithContext(ctx aws.Context, input *DeleteTaskSetInput, opts ...request.Option) (*DeleteTaskSetOutput, error) {
  1160  	req, out := c.DeleteTaskSetRequest(input)
  1161  	req.SetContext(ctx)
  1162  	req.ApplyOptions(opts...)
  1163  	return out, req.Send()
  1164  }
  1165  
  1166  const opDeregisterContainerInstance = "DeregisterContainerInstance"
  1167  
  1168  // DeregisterContainerInstanceRequest generates a "aws/request.Request" representing the
  1169  // client's request for the DeregisterContainerInstance operation. The "output" return
  1170  // value will be populated with the request's response once the request completes
  1171  // successfully.
  1172  //
  1173  // Use "Send" method on the returned Request to send the API call to the service.
  1174  // the "output" return value is not valid until after Send returns without error.
  1175  //
  1176  // See DeregisterContainerInstance for more information on using the DeregisterContainerInstance
  1177  // API call, and error handling.
  1178  //
  1179  // This method is useful when you want to inject custom logic or configuration
  1180  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1181  //
  1182  //
  1183  //    // Example sending a request using the DeregisterContainerInstanceRequest method.
  1184  //    req, resp := client.DeregisterContainerInstanceRequest(params)
  1185  //
  1186  //    err := req.Send()
  1187  //    if err == nil { // resp is now filled
  1188  //        fmt.Println(resp)
  1189  //    }
  1190  //
  1191  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstance
  1192  func (c *ECS) DeregisterContainerInstanceRequest(input *DeregisterContainerInstanceInput) (req *request.Request, output *DeregisterContainerInstanceOutput) {
  1193  	op := &request.Operation{
  1194  		Name:       opDeregisterContainerInstance,
  1195  		HTTPMethod: "POST",
  1196  		HTTPPath:   "/",
  1197  	}
  1198  
  1199  	if input == nil {
  1200  		input = &DeregisterContainerInstanceInput{}
  1201  	}
  1202  
  1203  	output = &DeregisterContainerInstanceOutput{}
  1204  	req = c.newRequest(op, input, output)
  1205  	return
  1206  }
  1207  
  1208  // DeregisterContainerInstance API operation for Amazon EC2 Container Service.
  1209  //
  1210  // Deregisters an Amazon ECS container instance from the specified cluster.
  1211  // This instance is no longer available to run tasks.
  1212  //
  1213  // If you intend to use the container instance for some other purpose after
  1214  // deregistration, you should stop all of the tasks running on the container
  1215  // instance before deregistration. That prevents any orphaned tasks from consuming
  1216  // resources.
  1217  //
  1218  // Deregistering a container instance removes the instance from a cluster, but
  1219  // it does not terminate the EC2 instance. If you are finished using the instance,
  1220  // be sure to terminate it in the Amazon EC2 console to stop billing.
  1221  //
  1222  // If you terminate a running container instance, Amazon ECS automatically deregisters
  1223  // the instance from your cluster (stopped container instances or instances
  1224  // with disconnected agents are not automatically deregistered when terminated).
  1225  //
  1226  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1227  // with awserr.Error's Code and Message methods to get detailed information about
  1228  // the error.
  1229  //
  1230  // See the AWS API reference guide for Amazon EC2 Container Service's
  1231  // API operation DeregisterContainerInstance for usage and error information.
  1232  //
  1233  // Returned Error Types:
  1234  //   * ServerException
  1235  //   These errors are usually caused by a server issue.
  1236  //
  1237  //   * ClientException
  1238  //   These errors are usually caused by a client action, such as using an action
  1239  //   or resource on behalf of a user that doesn't have permissions to use the
  1240  //   action or resource, or specifying an identifier that is not valid.
  1241  //
  1242  //   * InvalidParameterException
  1243  //   The specified parameter is invalid. Review the available parameters for the
  1244  //   API request.
  1245  //
  1246  //   * ClusterNotFoundException
  1247  //   The specified cluster could not be found. You can view your available clusters
  1248  //   with ListClusters. Amazon ECS clusters are Region-specific.
  1249  //
  1250  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstance
  1251  func (c *ECS) DeregisterContainerInstance(input *DeregisterContainerInstanceInput) (*DeregisterContainerInstanceOutput, error) {
  1252  	req, out := c.DeregisterContainerInstanceRequest(input)
  1253  	return out, req.Send()
  1254  }
  1255  
  1256  // DeregisterContainerInstanceWithContext is the same as DeregisterContainerInstance with the addition of
  1257  // the ability to pass a context and additional request options.
  1258  //
  1259  // See DeregisterContainerInstance for details on how to use this API operation.
  1260  //
  1261  // The context must be non-nil and will be used for request cancellation. If
  1262  // the context is nil a panic will occur. In the future the SDK may create
  1263  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1264  // for more information on using Contexts.
  1265  func (c *ECS) DeregisterContainerInstanceWithContext(ctx aws.Context, input *DeregisterContainerInstanceInput, opts ...request.Option) (*DeregisterContainerInstanceOutput, error) {
  1266  	req, out := c.DeregisterContainerInstanceRequest(input)
  1267  	req.SetContext(ctx)
  1268  	req.ApplyOptions(opts...)
  1269  	return out, req.Send()
  1270  }
  1271  
  1272  const opDeregisterTaskDefinition = "DeregisterTaskDefinition"
  1273  
  1274  // DeregisterTaskDefinitionRequest generates a "aws/request.Request" representing the
  1275  // client's request for the DeregisterTaskDefinition operation. The "output" return
  1276  // value will be populated with the request's response once the request completes
  1277  // successfully.
  1278  //
  1279  // Use "Send" method on the returned Request to send the API call to the service.
  1280  // the "output" return value is not valid until after Send returns without error.
  1281  //
  1282  // See DeregisterTaskDefinition for more information on using the DeregisterTaskDefinition
  1283  // API call, and error handling.
  1284  //
  1285  // This method is useful when you want to inject custom logic or configuration
  1286  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1287  //
  1288  //
  1289  //    // Example sending a request using the DeregisterTaskDefinitionRequest method.
  1290  //    req, resp := client.DeregisterTaskDefinitionRequest(params)
  1291  //
  1292  //    err := req.Send()
  1293  //    if err == nil { // resp is now filled
  1294  //        fmt.Println(resp)
  1295  //    }
  1296  //
  1297  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinition
  1298  func (c *ECS) DeregisterTaskDefinitionRequest(input *DeregisterTaskDefinitionInput) (req *request.Request, output *DeregisterTaskDefinitionOutput) {
  1299  	op := &request.Operation{
  1300  		Name:       opDeregisterTaskDefinition,
  1301  		HTTPMethod: "POST",
  1302  		HTTPPath:   "/",
  1303  	}
  1304  
  1305  	if input == nil {
  1306  		input = &DeregisterTaskDefinitionInput{}
  1307  	}
  1308  
  1309  	output = &DeregisterTaskDefinitionOutput{}
  1310  	req = c.newRequest(op, input, output)
  1311  	return
  1312  }
  1313  
  1314  // DeregisterTaskDefinition API operation for Amazon EC2 Container Service.
  1315  //
  1316  // Deregisters the specified task definition by family and revision. Upon deregistration,
  1317  // the task definition is marked as INACTIVE. Existing tasks and services that
  1318  // reference an INACTIVE task definition continue to run without disruption.
  1319  // Existing services that reference an INACTIVE task definition can still scale
  1320  // up or down by modifying the service's desired count.
  1321  //
  1322  // You cannot use an INACTIVE task definition to run new tasks or create new
  1323  // services, and you cannot update an existing service to reference an INACTIVE
  1324  // task definition. However, there may be up to a 10-minute window following
  1325  // deregistration where these restrictions have not yet taken effect.
  1326  //
  1327  // At this time, INACTIVE task definitions remain discoverable in your account
  1328  // indefinitely. However, this behavior is subject to change in the future,
  1329  // so you should not rely on INACTIVE task definitions persisting beyond the
  1330  // lifecycle of any associated tasks and services.
  1331  //
  1332  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1333  // with awserr.Error's Code and Message methods to get detailed information about
  1334  // the error.
  1335  //
  1336  // See the AWS API reference guide for Amazon EC2 Container Service's
  1337  // API operation DeregisterTaskDefinition for usage and error information.
  1338  //
  1339  // Returned Error Types:
  1340  //   * ServerException
  1341  //   These errors are usually caused by a server issue.
  1342  //
  1343  //   * ClientException
  1344  //   These errors are usually caused by a client action, such as using an action
  1345  //   or resource on behalf of a user that doesn't have permissions to use the
  1346  //   action or resource, or specifying an identifier that is not valid.
  1347  //
  1348  //   * InvalidParameterException
  1349  //   The specified parameter is invalid. Review the available parameters for the
  1350  //   API request.
  1351  //
  1352  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinition
  1353  func (c *ECS) DeregisterTaskDefinition(input *DeregisterTaskDefinitionInput) (*DeregisterTaskDefinitionOutput, error) {
  1354  	req, out := c.DeregisterTaskDefinitionRequest(input)
  1355  	return out, req.Send()
  1356  }
  1357  
  1358  // DeregisterTaskDefinitionWithContext is the same as DeregisterTaskDefinition with the addition of
  1359  // the ability to pass a context and additional request options.
  1360  //
  1361  // See DeregisterTaskDefinition for details on how to use this API operation.
  1362  //
  1363  // The context must be non-nil and will be used for request cancellation. If
  1364  // the context is nil a panic will occur. In the future the SDK may create
  1365  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1366  // for more information on using Contexts.
  1367  func (c *ECS) DeregisterTaskDefinitionWithContext(ctx aws.Context, input *DeregisterTaskDefinitionInput, opts ...request.Option) (*DeregisterTaskDefinitionOutput, error) {
  1368  	req, out := c.DeregisterTaskDefinitionRequest(input)
  1369  	req.SetContext(ctx)
  1370  	req.ApplyOptions(opts...)
  1371  	return out, req.Send()
  1372  }
  1373  
  1374  const opDescribeCapacityProviders = "DescribeCapacityProviders"
  1375  
  1376  // DescribeCapacityProvidersRequest generates a "aws/request.Request" representing the
  1377  // client's request for the DescribeCapacityProviders operation. The "output" return
  1378  // value will be populated with the request's response once the request completes
  1379  // successfully.
  1380  //
  1381  // Use "Send" method on the returned Request to send the API call to the service.
  1382  // the "output" return value is not valid until after Send returns without error.
  1383  //
  1384  // See DescribeCapacityProviders for more information on using the DescribeCapacityProviders
  1385  // API call, and error handling.
  1386  //
  1387  // This method is useful when you want to inject custom logic or configuration
  1388  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1389  //
  1390  //
  1391  //    // Example sending a request using the DescribeCapacityProvidersRequest method.
  1392  //    req, resp := client.DescribeCapacityProvidersRequest(params)
  1393  //
  1394  //    err := req.Send()
  1395  //    if err == nil { // resp is now filled
  1396  //        fmt.Println(resp)
  1397  //    }
  1398  //
  1399  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeCapacityProviders
  1400  func (c *ECS) DescribeCapacityProvidersRequest(input *DescribeCapacityProvidersInput) (req *request.Request, output *DescribeCapacityProvidersOutput) {
  1401  	op := &request.Operation{
  1402  		Name:       opDescribeCapacityProviders,
  1403  		HTTPMethod: "POST",
  1404  		HTTPPath:   "/",
  1405  	}
  1406  
  1407  	if input == nil {
  1408  		input = &DescribeCapacityProvidersInput{}
  1409  	}
  1410  
  1411  	output = &DescribeCapacityProvidersOutput{}
  1412  	req = c.newRequest(op, input, output)
  1413  	return
  1414  }
  1415  
  1416  // DescribeCapacityProviders API operation for Amazon EC2 Container Service.
  1417  //
  1418  // Describes one or more of your capacity providers.
  1419  //
  1420  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1421  // with awserr.Error's Code and Message methods to get detailed information about
  1422  // the error.
  1423  //
  1424  // See the AWS API reference guide for Amazon EC2 Container Service's
  1425  // API operation DescribeCapacityProviders for usage and error information.
  1426  //
  1427  // Returned Error Types:
  1428  //   * ServerException
  1429  //   These errors are usually caused by a server issue.
  1430  //
  1431  //   * ClientException
  1432  //   These errors are usually caused by a client action, such as using an action
  1433  //   or resource on behalf of a user that doesn't have permissions to use the
  1434  //   action or resource, or specifying an identifier that is not valid.
  1435  //
  1436  //   * InvalidParameterException
  1437  //   The specified parameter is invalid. Review the available parameters for the
  1438  //   API request.
  1439  //
  1440  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeCapacityProviders
  1441  func (c *ECS) DescribeCapacityProviders(input *DescribeCapacityProvidersInput) (*DescribeCapacityProvidersOutput, error) {
  1442  	req, out := c.DescribeCapacityProvidersRequest(input)
  1443  	return out, req.Send()
  1444  }
  1445  
  1446  // DescribeCapacityProvidersWithContext is the same as DescribeCapacityProviders with the addition of
  1447  // the ability to pass a context and additional request options.
  1448  //
  1449  // See DescribeCapacityProviders for details on how to use this API operation.
  1450  //
  1451  // The context must be non-nil and will be used for request cancellation. If
  1452  // the context is nil a panic will occur. In the future the SDK may create
  1453  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1454  // for more information on using Contexts.
  1455  func (c *ECS) DescribeCapacityProvidersWithContext(ctx aws.Context, input *DescribeCapacityProvidersInput, opts ...request.Option) (*DescribeCapacityProvidersOutput, error) {
  1456  	req, out := c.DescribeCapacityProvidersRequest(input)
  1457  	req.SetContext(ctx)
  1458  	req.ApplyOptions(opts...)
  1459  	return out, req.Send()
  1460  }
  1461  
  1462  const opDescribeClusters = "DescribeClusters"
  1463  
  1464  // DescribeClustersRequest generates a "aws/request.Request" representing the
  1465  // client's request for the DescribeClusters operation. The "output" return
  1466  // value will be populated with the request's response once the request completes
  1467  // successfully.
  1468  //
  1469  // Use "Send" method on the returned Request to send the API call to the service.
  1470  // the "output" return value is not valid until after Send returns without error.
  1471  //
  1472  // See DescribeClusters for more information on using the DescribeClusters
  1473  // API call, and error handling.
  1474  //
  1475  // This method is useful when you want to inject custom logic or configuration
  1476  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1477  //
  1478  //
  1479  //    // Example sending a request using the DescribeClustersRequest method.
  1480  //    req, resp := client.DescribeClustersRequest(params)
  1481  //
  1482  //    err := req.Send()
  1483  //    if err == nil { // resp is now filled
  1484  //        fmt.Println(resp)
  1485  //    }
  1486  //
  1487  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClusters
  1488  func (c *ECS) DescribeClustersRequest(input *DescribeClustersInput) (req *request.Request, output *DescribeClustersOutput) {
  1489  	op := &request.Operation{
  1490  		Name:       opDescribeClusters,
  1491  		HTTPMethod: "POST",
  1492  		HTTPPath:   "/",
  1493  	}
  1494  
  1495  	if input == nil {
  1496  		input = &DescribeClustersInput{}
  1497  	}
  1498  
  1499  	output = &DescribeClustersOutput{}
  1500  	req = c.newRequest(op, input, output)
  1501  	return
  1502  }
  1503  
  1504  // DescribeClusters API operation for Amazon EC2 Container Service.
  1505  //
  1506  // Describes one or more of your clusters.
  1507  //
  1508  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1509  // with awserr.Error's Code and Message methods to get detailed information about
  1510  // the error.
  1511  //
  1512  // See the AWS API reference guide for Amazon EC2 Container Service's
  1513  // API operation DescribeClusters for usage and error information.
  1514  //
  1515  // Returned Error Types:
  1516  //   * ServerException
  1517  //   These errors are usually caused by a server issue.
  1518  //
  1519  //   * ClientException
  1520  //   These errors are usually caused by a client action, such as using an action
  1521  //   or resource on behalf of a user that doesn't have permissions to use the
  1522  //   action or resource, or specifying an identifier that is not valid.
  1523  //
  1524  //   * InvalidParameterException
  1525  //   The specified parameter is invalid. Review the available parameters for the
  1526  //   API request.
  1527  //
  1528  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClusters
  1529  func (c *ECS) DescribeClusters(input *DescribeClustersInput) (*DescribeClustersOutput, error) {
  1530  	req, out := c.DescribeClustersRequest(input)
  1531  	return out, req.Send()
  1532  }
  1533  
  1534  // DescribeClustersWithContext is the same as DescribeClusters with the addition of
  1535  // the ability to pass a context and additional request options.
  1536  //
  1537  // See DescribeClusters for details on how to use this API operation.
  1538  //
  1539  // The context must be non-nil and will be used for request cancellation. If
  1540  // the context is nil a panic will occur. In the future the SDK may create
  1541  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1542  // for more information on using Contexts.
  1543  func (c *ECS) DescribeClustersWithContext(ctx aws.Context, input *DescribeClustersInput, opts ...request.Option) (*DescribeClustersOutput, error) {
  1544  	req, out := c.DescribeClustersRequest(input)
  1545  	req.SetContext(ctx)
  1546  	req.ApplyOptions(opts...)
  1547  	return out, req.Send()
  1548  }
  1549  
  1550  const opDescribeContainerInstances = "DescribeContainerInstances"
  1551  
  1552  // DescribeContainerInstancesRequest generates a "aws/request.Request" representing the
  1553  // client's request for the DescribeContainerInstances operation. The "output" return
  1554  // value will be populated with the request's response once the request completes
  1555  // successfully.
  1556  //
  1557  // Use "Send" method on the returned Request to send the API call to the service.
  1558  // the "output" return value is not valid until after Send returns without error.
  1559  //
  1560  // See DescribeContainerInstances for more information on using the DescribeContainerInstances
  1561  // API call, and error handling.
  1562  //
  1563  // This method is useful when you want to inject custom logic or configuration
  1564  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1565  //
  1566  //
  1567  //    // Example sending a request using the DescribeContainerInstancesRequest method.
  1568  //    req, resp := client.DescribeContainerInstancesRequest(params)
  1569  //
  1570  //    err := req.Send()
  1571  //    if err == nil { // resp is now filled
  1572  //        fmt.Println(resp)
  1573  //    }
  1574  //
  1575  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstances
  1576  func (c *ECS) DescribeContainerInstancesRequest(input *DescribeContainerInstancesInput) (req *request.Request, output *DescribeContainerInstancesOutput) {
  1577  	op := &request.Operation{
  1578  		Name:       opDescribeContainerInstances,
  1579  		HTTPMethod: "POST",
  1580  		HTTPPath:   "/",
  1581  	}
  1582  
  1583  	if input == nil {
  1584  		input = &DescribeContainerInstancesInput{}
  1585  	}
  1586  
  1587  	output = &DescribeContainerInstancesOutput{}
  1588  	req = c.newRequest(op, input, output)
  1589  	return
  1590  }
  1591  
  1592  // DescribeContainerInstances API operation for Amazon EC2 Container Service.
  1593  //
  1594  // Describes one or more container instances. Returns metadata about each container
  1595  // instance requested.
  1596  //
  1597  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1598  // with awserr.Error's Code and Message methods to get detailed information about
  1599  // the error.
  1600  //
  1601  // See the AWS API reference guide for Amazon EC2 Container Service's
  1602  // API operation DescribeContainerInstances for usage and error information.
  1603  //
  1604  // Returned Error Types:
  1605  //   * ServerException
  1606  //   These errors are usually caused by a server issue.
  1607  //
  1608  //   * ClientException
  1609  //   These errors are usually caused by a client action, such as using an action
  1610  //   or resource on behalf of a user that doesn't have permissions to use the
  1611  //   action or resource, or specifying an identifier that is not valid.
  1612  //
  1613  //   * InvalidParameterException
  1614  //   The specified parameter is invalid. Review the available parameters for the
  1615  //   API request.
  1616  //
  1617  //   * ClusterNotFoundException
  1618  //   The specified cluster could not be found. You can view your available clusters
  1619  //   with ListClusters. Amazon ECS clusters are Region-specific.
  1620  //
  1621  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstances
  1622  func (c *ECS) DescribeContainerInstances(input *DescribeContainerInstancesInput) (*DescribeContainerInstancesOutput, error) {
  1623  	req, out := c.DescribeContainerInstancesRequest(input)
  1624  	return out, req.Send()
  1625  }
  1626  
  1627  // DescribeContainerInstancesWithContext is the same as DescribeContainerInstances with the addition of
  1628  // the ability to pass a context and additional request options.
  1629  //
  1630  // See DescribeContainerInstances for details on how to use this API operation.
  1631  //
  1632  // The context must be non-nil and will be used for request cancellation. If
  1633  // the context is nil a panic will occur. In the future the SDK may create
  1634  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1635  // for more information on using Contexts.
  1636  func (c *ECS) DescribeContainerInstancesWithContext(ctx aws.Context, input *DescribeContainerInstancesInput, opts ...request.Option) (*DescribeContainerInstancesOutput, error) {
  1637  	req, out := c.DescribeContainerInstancesRequest(input)
  1638  	req.SetContext(ctx)
  1639  	req.ApplyOptions(opts...)
  1640  	return out, req.Send()
  1641  }
  1642  
  1643  const opDescribeServices = "DescribeServices"
  1644  
  1645  // DescribeServicesRequest generates a "aws/request.Request" representing the
  1646  // client's request for the DescribeServices operation. The "output" return
  1647  // value will be populated with the request's response once the request completes
  1648  // successfully.
  1649  //
  1650  // Use "Send" method on the returned Request to send the API call to the service.
  1651  // the "output" return value is not valid until after Send returns without error.
  1652  //
  1653  // See DescribeServices for more information on using the DescribeServices
  1654  // API call, and error handling.
  1655  //
  1656  // This method is useful when you want to inject custom logic or configuration
  1657  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1658  //
  1659  //
  1660  //    // Example sending a request using the DescribeServicesRequest method.
  1661  //    req, resp := client.DescribeServicesRequest(params)
  1662  //
  1663  //    err := req.Send()
  1664  //    if err == nil { // resp is now filled
  1665  //        fmt.Println(resp)
  1666  //    }
  1667  //
  1668  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServices
  1669  func (c *ECS) DescribeServicesRequest(input *DescribeServicesInput) (req *request.Request, output *DescribeServicesOutput) {
  1670  	op := &request.Operation{
  1671  		Name:       opDescribeServices,
  1672  		HTTPMethod: "POST",
  1673  		HTTPPath:   "/",
  1674  	}
  1675  
  1676  	if input == nil {
  1677  		input = &DescribeServicesInput{}
  1678  	}
  1679  
  1680  	output = &DescribeServicesOutput{}
  1681  	req = c.newRequest(op, input, output)
  1682  	return
  1683  }
  1684  
  1685  // DescribeServices API operation for Amazon EC2 Container Service.
  1686  //
  1687  // Describes the specified services running in your cluster.
  1688  //
  1689  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1690  // with awserr.Error's Code and Message methods to get detailed information about
  1691  // the error.
  1692  //
  1693  // See the AWS API reference guide for Amazon EC2 Container Service's
  1694  // API operation DescribeServices for usage and error information.
  1695  //
  1696  // Returned Error Types:
  1697  //   * ServerException
  1698  //   These errors are usually caused by a server issue.
  1699  //
  1700  //   * ClientException
  1701  //   These errors are usually caused by a client action, such as using an action
  1702  //   or resource on behalf of a user that doesn't have permissions to use the
  1703  //   action or resource, or specifying an identifier that is not valid.
  1704  //
  1705  //   * InvalidParameterException
  1706  //   The specified parameter is invalid. Review the available parameters for the
  1707  //   API request.
  1708  //
  1709  //   * ClusterNotFoundException
  1710  //   The specified cluster could not be found. You can view your available clusters
  1711  //   with ListClusters. Amazon ECS clusters are Region-specific.
  1712  //
  1713  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServices
  1714  func (c *ECS) DescribeServices(input *DescribeServicesInput) (*DescribeServicesOutput, error) {
  1715  	req, out := c.DescribeServicesRequest(input)
  1716  	return out, req.Send()
  1717  }
  1718  
  1719  // DescribeServicesWithContext is the same as DescribeServices with the addition of
  1720  // the ability to pass a context and additional request options.
  1721  //
  1722  // See DescribeServices for details on how to use this API operation.
  1723  //
  1724  // The context must be non-nil and will be used for request cancellation. If
  1725  // the context is nil a panic will occur. In the future the SDK may create
  1726  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1727  // for more information on using Contexts.
  1728  func (c *ECS) DescribeServicesWithContext(ctx aws.Context, input *DescribeServicesInput, opts ...request.Option) (*DescribeServicesOutput, error) {
  1729  	req, out := c.DescribeServicesRequest(input)
  1730  	req.SetContext(ctx)
  1731  	req.ApplyOptions(opts...)
  1732  	return out, req.Send()
  1733  }
  1734  
  1735  const opDescribeTaskDefinition = "DescribeTaskDefinition"
  1736  
  1737  // DescribeTaskDefinitionRequest generates a "aws/request.Request" representing the
  1738  // client's request for the DescribeTaskDefinition operation. The "output" return
  1739  // value will be populated with the request's response once the request completes
  1740  // successfully.
  1741  //
  1742  // Use "Send" method on the returned Request to send the API call to the service.
  1743  // the "output" return value is not valid until after Send returns without error.
  1744  //
  1745  // See DescribeTaskDefinition for more information on using the DescribeTaskDefinition
  1746  // API call, and error handling.
  1747  //
  1748  // This method is useful when you want to inject custom logic or configuration
  1749  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1750  //
  1751  //
  1752  //    // Example sending a request using the DescribeTaskDefinitionRequest method.
  1753  //    req, resp := client.DescribeTaskDefinitionRequest(params)
  1754  //
  1755  //    err := req.Send()
  1756  //    if err == nil { // resp is now filled
  1757  //        fmt.Println(resp)
  1758  //    }
  1759  //
  1760  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinition
  1761  func (c *ECS) DescribeTaskDefinitionRequest(input *DescribeTaskDefinitionInput) (req *request.Request, output *DescribeTaskDefinitionOutput) {
  1762  	op := &request.Operation{
  1763  		Name:       opDescribeTaskDefinition,
  1764  		HTTPMethod: "POST",
  1765  		HTTPPath:   "/",
  1766  	}
  1767  
  1768  	if input == nil {
  1769  		input = &DescribeTaskDefinitionInput{}
  1770  	}
  1771  
  1772  	output = &DescribeTaskDefinitionOutput{}
  1773  	req = c.newRequest(op, input, output)
  1774  	return
  1775  }
  1776  
  1777  // DescribeTaskDefinition API operation for Amazon EC2 Container Service.
  1778  //
  1779  // Describes a task definition. You can specify a family and revision to find
  1780  // information about a specific task definition, or you can simply specify the
  1781  // family to find the latest ACTIVE revision in that family.
  1782  //
  1783  // You can only describe INACTIVE task definitions while an active task or service
  1784  // references them.
  1785  //
  1786  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1787  // with awserr.Error's Code and Message methods to get detailed information about
  1788  // the error.
  1789  //
  1790  // See the AWS API reference guide for Amazon EC2 Container Service's
  1791  // API operation DescribeTaskDefinition for usage and error information.
  1792  //
  1793  // Returned Error Types:
  1794  //   * ServerException
  1795  //   These errors are usually caused by a server issue.
  1796  //
  1797  //   * ClientException
  1798  //   These errors are usually caused by a client action, such as using an action
  1799  //   or resource on behalf of a user that doesn't have permissions to use the
  1800  //   action or resource, or specifying an identifier that is not valid.
  1801  //
  1802  //   * InvalidParameterException
  1803  //   The specified parameter is invalid. Review the available parameters for the
  1804  //   API request.
  1805  //
  1806  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinition
  1807  func (c *ECS) DescribeTaskDefinition(input *DescribeTaskDefinitionInput) (*DescribeTaskDefinitionOutput, error) {
  1808  	req, out := c.DescribeTaskDefinitionRequest(input)
  1809  	return out, req.Send()
  1810  }
  1811  
  1812  // DescribeTaskDefinitionWithContext is the same as DescribeTaskDefinition with the addition of
  1813  // the ability to pass a context and additional request options.
  1814  //
  1815  // See DescribeTaskDefinition for details on how to use this API operation.
  1816  //
  1817  // The context must be non-nil and will be used for request cancellation. If
  1818  // the context is nil a panic will occur. In the future the SDK may create
  1819  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1820  // for more information on using Contexts.
  1821  func (c *ECS) DescribeTaskDefinitionWithContext(ctx aws.Context, input *DescribeTaskDefinitionInput, opts ...request.Option) (*DescribeTaskDefinitionOutput, error) {
  1822  	req, out := c.DescribeTaskDefinitionRequest(input)
  1823  	req.SetContext(ctx)
  1824  	req.ApplyOptions(opts...)
  1825  	return out, req.Send()
  1826  }
  1827  
  1828  const opDescribeTaskSets = "DescribeTaskSets"
  1829  
  1830  // DescribeTaskSetsRequest generates a "aws/request.Request" representing the
  1831  // client's request for the DescribeTaskSets operation. The "output" return
  1832  // value will be populated with the request's response once the request completes
  1833  // successfully.
  1834  //
  1835  // Use "Send" method on the returned Request to send the API call to the service.
  1836  // the "output" return value is not valid until after Send returns without error.
  1837  //
  1838  // See DescribeTaskSets for more information on using the DescribeTaskSets
  1839  // API call, and error handling.
  1840  //
  1841  // This method is useful when you want to inject custom logic or configuration
  1842  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1843  //
  1844  //
  1845  //    // Example sending a request using the DescribeTaskSetsRequest method.
  1846  //    req, resp := client.DescribeTaskSetsRequest(params)
  1847  //
  1848  //    err := req.Send()
  1849  //    if err == nil { // resp is now filled
  1850  //        fmt.Println(resp)
  1851  //    }
  1852  //
  1853  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskSets
  1854  func (c *ECS) DescribeTaskSetsRequest(input *DescribeTaskSetsInput) (req *request.Request, output *DescribeTaskSetsOutput) {
  1855  	op := &request.Operation{
  1856  		Name:       opDescribeTaskSets,
  1857  		HTTPMethod: "POST",
  1858  		HTTPPath:   "/",
  1859  	}
  1860  
  1861  	if input == nil {
  1862  		input = &DescribeTaskSetsInput{}
  1863  	}
  1864  
  1865  	output = &DescribeTaskSetsOutput{}
  1866  	req = c.newRequest(op, input, output)
  1867  	return
  1868  }
  1869  
  1870  // DescribeTaskSets API operation for Amazon EC2 Container Service.
  1871  //
  1872  // Describes the task sets in the specified cluster and service. This is used
  1873  // when a service uses the EXTERNAL deployment controller type. For more information,
  1874  // see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
  1875  // in the Amazon Elastic Container Service Developer Guide.
  1876  //
  1877  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1878  // with awserr.Error's Code and Message methods to get detailed information about
  1879  // the error.
  1880  //
  1881  // See the AWS API reference guide for Amazon EC2 Container Service's
  1882  // API operation DescribeTaskSets for usage and error information.
  1883  //
  1884  // Returned Error Types:
  1885  //   * ServerException
  1886  //   These errors are usually caused by a server issue.
  1887  //
  1888  //   * ClientException
  1889  //   These errors are usually caused by a client action, such as using an action
  1890  //   or resource on behalf of a user that doesn't have permissions to use the
  1891  //   action or resource, or specifying an identifier that is not valid.
  1892  //
  1893  //   * InvalidParameterException
  1894  //   The specified parameter is invalid. Review the available parameters for the
  1895  //   API request.
  1896  //
  1897  //   * ClusterNotFoundException
  1898  //   The specified cluster could not be found. You can view your available clusters
  1899  //   with ListClusters. Amazon ECS clusters are Region-specific.
  1900  //
  1901  //   * UnsupportedFeatureException
  1902  //   The specified task is not supported in this Region.
  1903  //
  1904  //   * AccessDeniedException
  1905  //   You do not have authorization to perform the requested action.
  1906  //
  1907  //   * ServiceNotFoundException
  1908  //   The specified service could not be found. You can view your available services
  1909  //   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
  1910  //
  1911  //   * ServiceNotActiveException
  1912  //   The specified service is not active. You can't update a service that is inactive.
  1913  //   If you have previously deleted a service, you can re-create it with CreateService.
  1914  //
  1915  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskSets
  1916  func (c *ECS) DescribeTaskSets(input *DescribeTaskSetsInput) (*DescribeTaskSetsOutput, error) {
  1917  	req, out := c.DescribeTaskSetsRequest(input)
  1918  	return out, req.Send()
  1919  }
  1920  
  1921  // DescribeTaskSetsWithContext is the same as DescribeTaskSets with the addition of
  1922  // the ability to pass a context and additional request options.
  1923  //
  1924  // See DescribeTaskSets for details on how to use this API operation.
  1925  //
  1926  // The context must be non-nil and will be used for request cancellation. If
  1927  // the context is nil a panic will occur. In the future the SDK may create
  1928  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1929  // for more information on using Contexts.
  1930  func (c *ECS) DescribeTaskSetsWithContext(ctx aws.Context, input *DescribeTaskSetsInput, opts ...request.Option) (*DescribeTaskSetsOutput, error) {
  1931  	req, out := c.DescribeTaskSetsRequest(input)
  1932  	req.SetContext(ctx)
  1933  	req.ApplyOptions(opts...)
  1934  	return out, req.Send()
  1935  }
  1936  
  1937  const opDescribeTasks = "DescribeTasks"
  1938  
  1939  // DescribeTasksRequest generates a "aws/request.Request" representing the
  1940  // client's request for the DescribeTasks operation. The "output" return
  1941  // value will be populated with the request's response once the request completes
  1942  // successfully.
  1943  //
  1944  // Use "Send" method on the returned Request to send the API call to the service.
  1945  // the "output" return value is not valid until after Send returns without error.
  1946  //
  1947  // See DescribeTasks for more information on using the DescribeTasks
  1948  // API call, and error handling.
  1949  //
  1950  // This method is useful when you want to inject custom logic or configuration
  1951  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1952  //
  1953  //
  1954  //    // Example sending a request using the DescribeTasksRequest method.
  1955  //    req, resp := client.DescribeTasksRequest(params)
  1956  //
  1957  //    err := req.Send()
  1958  //    if err == nil { // resp is now filled
  1959  //        fmt.Println(resp)
  1960  //    }
  1961  //
  1962  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasks
  1963  func (c *ECS) DescribeTasksRequest(input *DescribeTasksInput) (req *request.Request, output *DescribeTasksOutput) {
  1964  	op := &request.Operation{
  1965  		Name:       opDescribeTasks,
  1966  		HTTPMethod: "POST",
  1967  		HTTPPath:   "/",
  1968  	}
  1969  
  1970  	if input == nil {
  1971  		input = &DescribeTasksInput{}
  1972  	}
  1973  
  1974  	output = &DescribeTasksOutput{}
  1975  	req = c.newRequest(op, input, output)
  1976  	return
  1977  }
  1978  
  1979  // DescribeTasks API operation for Amazon EC2 Container Service.
  1980  //
  1981  // Describes a specified task or tasks.
  1982  //
  1983  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1984  // with awserr.Error's Code and Message methods to get detailed information about
  1985  // the error.
  1986  //
  1987  // See the AWS API reference guide for Amazon EC2 Container Service's
  1988  // API operation DescribeTasks for usage and error information.
  1989  //
  1990  // Returned Error Types:
  1991  //   * ServerException
  1992  //   These errors are usually caused by a server issue.
  1993  //
  1994  //   * ClientException
  1995  //   These errors are usually caused by a client action, such as using an action
  1996  //   or resource on behalf of a user that doesn't have permissions to use the
  1997  //   action or resource, or specifying an identifier that is not valid.
  1998  //
  1999  //   * InvalidParameterException
  2000  //   The specified parameter is invalid. Review the available parameters for the
  2001  //   API request.
  2002  //
  2003  //   * ClusterNotFoundException
  2004  //   The specified cluster could not be found. You can view your available clusters
  2005  //   with ListClusters. Amazon ECS clusters are Region-specific.
  2006  //
  2007  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasks
  2008  func (c *ECS) DescribeTasks(input *DescribeTasksInput) (*DescribeTasksOutput, error) {
  2009  	req, out := c.DescribeTasksRequest(input)
  2010  	return out, req.Send()
  2011  }
  2012  
  2013  // DescribeTasksWithContext is the same as DescribeTasks with the addition of
  2014  // the ability to pass a context and additional request options.
  2015  //
  2016  // See DescribeTasks for details on how to use this API operation.
  2017  //
  2018  // The context must be non-nil and will be used for request cancellation. If
  2019  // the context is nil a panic will occur. In the future the SDK may create
  2020  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2021  // for more information on using Contexts.
  2022  func (c *ECS) DescribeTasksWithContext(ctx aws.Context, input *DescribeTasksInput, opts ...request.Option) (*DescribeTasksOutput, error) {
  2023  	req, out := c.DescribeTasksRequest(input)
  2024  	req.SetContext(ctx)
  2025  	req.ApplyOptions(opts...)
  2026  	return out, req.Send()
  2027  }
  2028  
  2029  const opDiscoverPollEndpoint = "DiscoverPollEndpoint"
  2030  
  2031  // DiscoverPollEndpointRequest generates a "aws/request.Request" representing the
  2032  // client's request for the DiscoverPollEndpoint operation. The "output" return
  2033  // value will be populated with the request's response once the request completes
  2034  // successfully.
  2035  //
  2036  // Use "Send" method on the returned Request to send the API call to the service.
  2037  // the "output" return value is not valid until after Send returns without error.
  2038  //
  2039  // See DiscoverPollEndpoint for more information on using the DiscoverPollEndpoint
  2040  // API call, and error handling.
  2041  //
  2042  // This method is useful when you want to inject custom logic or configuration
  2043  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2044  //
  2045  //
  2046  //    // Example sending a request using the DiscoverPollEndpointRequest method.
  2047  //    req, resp := client.DiscoverPollEndpointRequest(params)
  2048  //
  2049  //    err := req.Send()
  2050  //    if err == nil { // resp is now filled
  2051  //        fmt.Println(resp)
  2052  //    }
  2053  //
  2054  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpoint
  2055  func (c *ECS) DiscoverPollEndpointRequest(input *DiscoverPollEndpointInput) (req *request.Request, output *DiscoverPollEndpointOutput) {
  2056  	op := &request.Operation{
  2057  		Name:       opDiscoverPollEndpoint,
  2058  		HTTPMethod: "POST",
  2059  		HTTPPath:   "/",
  2060  	}
  2061  
  2062  	if input == nil {
  2063  		input = &DiscoverPollEndpointInput{}
  2064  	}
  2065  
  2066  	output = &DiscoverPollEndpointOutput{}
  2067  	req = c.newRequest(op, input, output)
  2068  	return
  2069  }
  2070  
  2071  // DiscoverPollEndpoint API operation for Amazon EC2 Container Service.
  2072  //
  2073  //
  2074  // This action is only used by the Amazon ECS agent, and it is not intended
  2075  // for use outside of the agent.
  2076  //
  2077  // Returns an endpoint for the Amazon ECS agent to poll for updates.
  2078  //
  2079  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2080  // with awserr.Error's Code and Message methods to get detailed information about
  2081  // the error.
  2082  //
  2083  // See the AWS API reference guide for Amazon EC2 Container Service's
  2084  // API operation DiscoverPollEndpoint for usage and error information.
  2085  //
  2086  // Returned Error Types:
  2087  //   * ServerException
  2088  //   These errors are usually caused by a server issue.
  2089  //
  2090  //   * ClientException
  2091  //   These errors are usually caused by a client action, such as using an action
  2092  //   or resource on behalf of a user that doesn't have permissions to use the
  2093  //   action or resource, or specifying an identifier that is not valid.
  2094  //
  2095  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpoint
  2096  func (c *ECS) DiscoverPollEndpoint(input *DiscoverPollEndpointInput) (*DiscoverPollEndpointOutput, error) {
  2097  	req, out := c.DiscoverPollEndpointRequest(input)
  2098  	return out, req.Send()
  2099  }
  2100  
  2101  // DiscoverPollEndpointWithContext is the same as DiscoverPollEndpoint with the addition of
  2102  // the ability to pass a context and additional request options.
  2103  //
  2104  // See DiscoverPollEndpoint for details on how to use this API operation.
  2105  //
  2106  // The context must be non-nil and will be used for request cancellation. If
  2107  // the context is nil a panic will occur. In the future the SDK may create
  2108  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2109  // for more information on using Contexts.
  2110  func (c *ECS) DiscoverPollEndpointWithContext(ctx aws.Context, input *DiscoverPollEndpointInput, opts ...request.Option) (*DiscoverPollEndpointOutput, error) {
  2111  	req, out := c.DiscoverPollEndpointRequest(input)
  2112  	req.SetContext(ctx)
  2113  	req.ApplyOptions(opts...)
  2114  	return out, req.Send()
  2115  }
  2116  
  2117  const opExecuteCommand = "ExecuteCommand"
  2118  
  2119  // ExecuteCommandRequest generates a "aws/request.Request" representing the
  2120  // client's request for the ExecuteCommand operation. The "output" return
  2121  // value will be populated with the request's response once the request completes
  2122  // successfully.
  2123  //
  2124  // Use "Send" method on the returned Request to send the API call to the service.
  2125  // the "output" return value is not valid until after Send returns without error.
  2126  //
  2127  // See ExecuteCommand for more information on using the ExecuteCommand
  2128  // API call, and error handling.
  2129  //
  2130  // This method is useful when you want to inject custom logic or configuration
  2131  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2132  //
  2133  //
  2134  //    // Example sending a request using the ExecuteCommandRequest method.
  2135  //    req, resp := client.ExecuteCommandRequest(params)
  2136  //
  2137  //    err := req.Send()
  2138  //    if err == nil { // resp is now filled
  2139  //        fmt.Println(resp)
  2140  //    }
  2141  //
  2142  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ExecuteCommand
  2143  func (c *ECS) ExecuteCommandRequest(input *ExecuteCommandInput) (req *request.Request, output *ExecuteCommandOutput) {
  2144  	op := &request.Operation{
  2145  		Name:       opExecuteCommand,
  2146  		HTTPMethod: "POST",
  2147  		HTTPPath:   "/",
  2148  	}
  2149  
  2150  	if input == nil {
  2151  		input = &ExecuteCommandInput{}
  2152  	}
  2153  
  2154  	output = &ExecuteCommandOutput{}
  2155  	req = c.newRequest(op, input, output)
  2156  	return
  2157  }
  2158  
  2159  // ExecuteCommand API operation for Amazon EC2 Container Service.
  2160  //
  2161  // Runs a command remotely on a container within a task.
  2162  //
  2163  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2164  // with awserr.Error's Code and Message methods to get detailed information about
  2165  // the error.
  2166  //
  2167  // See the AWS API reference guide for Amazon EC2 Container Service's
  2168  // API operation ExecuteCommand for usage and error information.
  2169  //
  2170  // Returned Error Types:
  2171  //   * ServerException
  2172  //   These errors are usually caused by a server issue.
  2173  //
  2174  //   * ClientException
  2175  //   These errors are usually caused by a client action, such as using an action
  2176  //   or resource on behalf of a user that doesn't have permissions to use the
  2177  //   action or resource, or specifying an identifier that is not valid.
  2178  //
  2179  //   * InvalidParameterException
  2180  //   The specified parameter is invalid. Review the available parameters for the
  2181  //   API request.
  2182  //
  2183  //   * AccessDeniedException
  2184  //   You do not have authorization to perform the requested action.
  2185  //
  2186  //   * ClusterNotFoundException
  2187  //   The specified cluster could not be found. You can view your available clusters
  2188  //   with ListClusters. Amazon ECS clusters are Region-specific.
  2189  //
  2190  //   * TargetNotConnectedException
  2191  //   The target container is not properly configured with the execute command
  2192  //   agent or the container is no longer active or running.
  2193  //
  2194  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ExecuteCommand
  2195  func (c *ECS) ExecuteCommand(input *ExecuteCommandInput) (*ExecuteCommandOutput, error) {
  2196  	req, out := c.ExecuteCommandRequest(input)
  2197  	return out, req.Send()
  2198  }
  2199  
  2200  // ExecuteCommandWithContext is the same as ExecuteCommand with the addition of
  2201  // the ability to pass a context and additional request options.
  2202  //
  2203  // See ExecuteCommand for details on how to use this API operation.
  2204  //
  2205  // The context must be non-nil and will be used for request cancellation. If
  2206  // the context is nil a panic will occur. In the future the SDK may create
  2207  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2208  // for more information on using Contexts.
  2209  func (c *ECS) ExecuteCommandWithContext(ctx aws.Context, input *ExecuteCommandInput, opts ...request.Option) (*ExecuteCommandOutput, error) {
  2210  	req, out := c.ExecuteCommandRequest(input)
  2211  	req.SetContext(ctx)
  2212  	req.ApplyOptions(opts...)
  2213  	return out, req.Send()
  2214  }
  2215  
  2216  const opListAccountSettings = "ListAccountSettings"
  2217  
  2218  // ListAccountSettingsRequest generates a "aws/request.Request" representing the
  2219  // client's request for the ListAccountSettings operation. The "output" return
  2220  // value will be populated with the request's response once the request completes
  2221  // successfully.
  2222  //
  2223  // Use "Send" method on the returned Request to send the API call to the service.
  2224  // the "output" return value is not valid until after Send returns without error.
  2225  //
  2226  // See ListAccountSettings for more information on using the ListAccountSettings
  2227  // API call, and error handling.
  2228  //
  2229  // This method is useful when you want to inject custom logic or configuration
  2230  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2231  //
  2232  //
  2233  //    // Example sending a request using the ListAccountSettingsRequest method.
  2234  //    req, resp := client.ListAccountSettingsRequest(params)
  2235  //
  2236  //    err := req.Send()
  2237  //    if err == nil { // resp is now filled
  2238  //        fmt.Println(resp)
  2239  //    }
  2240  //
  2241  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAccountSettings
  2242  func (c *ECS) ListAccountSettingsRequest(input *ListAccountSettingsInput) (req *request.Request, output *ListAccountSettingsOutput) {
  2243  	op := &request.Operation{
  2244  		Name:       opListAccountSettings,
  2245  		HTTPMethod: "POST",
  2246  		HTTPPath:   "/",
  2247  		Paginator: &request.Paginator{
  2248  			InputTokens:     []string{"nextToken"},
  2249  			OutputTokens:    []string{"nextToken"},
  2250  			LimitToken:      "maxResults",
  2251  			TruncationToken: "",
  2252  		},
  2253  	}
  2254  
  2255  	if input == nil {
  2256  		input = &ListAccountSettingsInput{}
  2257  	}
  2258  
  2259  	output = &ListAccountSettingsOutput{}
  2260  	req = c.newRequest(op, input, output)
  2261  	return
  2262  }
  2263  
  2264  // ListAccountSettings API operation for Amazon EC2 Container Service.
  2265  //
  2266  // Lists the account settings for a specified principal.
  2267  //
  2268  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2269  // with awserr.Error's Code and Message methods to get detailed information about
  2270  // the error.
  2271  //
  2272  // See the AWS API reference guide for Amazon EC2 Container Service's
  2273  // API operation ListAccountSettings for usage and error information.
  2274  //
  2275  // Returned Error Types:
  2276  //   * ServerException
  2277  //   These errors are usually caused by a server issue.
  2278  //
  2279  //   * ClientException
  2280  //   These errors are usually caused by a client action, such as using an action
  2281  //   or resource on behalf of a user that doesn't have permissions to use the
  2282  //   action or resource, or specifying an identifier that is not valid.
  2283  //
  2284  //   * InvalidParameterException
  2285  //   The specified parameter is invalid. Review the available parameters for the
  2286  //   API request.
  2287  //
  2288  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAccountSettings
  2289  func (c *ECS) ListAccountSettings(input *ListAccountSettingsInput) (*ListAccountSettingsOutput, error) {
  2290  	req, out := c.ListAccountSettingsRequest(input)
  2291  	return out, req.Send()
  2292  }
  2293  
  2294  // ListAccountSettingsWithContext is the same as ListAccountSettings with the addition of
  2295  // the ability to pass a context and additional request options.
  2296  //
  2297  // See ListAccountSettings for details on how to use this API operation.
  2298  //
  2299  // The context must be non-nil and will be used for request cancellation. If
  2300  // the context is nil a panic will occur. In the future the SDK may create
  2301  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2302  // for more information on using Contexts.
  2303  func (c *ECS) ListAccountSettingsWithContext(ctx aws.Context, input *ListAccountSettingsInput, opts ...request.Option) (*ListAccountSettingsOutput, error) {
  2304  	req, out := c.ListAccountSettingsRequest(input)
  2305  	req.SetContext(ctx)
  2306  	req.ApplyOptions(opts...)
  2307  	return out, req.Send()
  2308  }
  2309  
  2310  // ListAccountSettingsPages iterates over the pages of a ListAccountSettings operation,
  2311  // calling the "fn" function with the response data for each page. To stop
  2312  // iterating, return false from the fn function.
  2313  //
  2314  // See ListAccountSettings method for more information on how to use this operation.
  2315  //
  2316  // Note: This operation can generate multiple requests to a service.
  2317  //
  2318  //    // Example iterating over at most 3 pages of a ListAccountSettings operation.
  2319  //    pageNum := 0
  2320  //    err := client.ListAccountSettingsPages(params,
  2321  //        func(page *ecs.ListAccountSettingsOutput, lastPage bool) bool {
  2322  //            pageNum++
  2323  //            fmt.Println(page)
  2324  //            return pageNum <= 3
  2325  //        })
  2326  //
  2327  func (c *ECS) ListAccountSettingsPages(input *ListAccountSettingsInput, fn func(*ListAccountSettingsOutput, bool) bool) error {
  2328  	return c.ListAccountSettingsPagesWithContext(aws.BackgroundContext(), input, fn)
  2329  }
  2330  
  2331  // ListAccountSettingsPagesWithContext same as ListAccountSettingsPages except
  2332  // it takes a Context and allows setting request options on the pages.
  2333  //
  2334  // The context must be non-nil and will be used for request cancellation. If
  2335  // the context is nil a panic will occur. In the future the SDK may create
  2336  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2337  // for more information on using Contexts.
  2338  func (c *ECS) ListAccountSettingsPagesWithContext(ctx aws.Context, input *ListAccountSettingsInput, fn func(*ListAccountSettingsOutput, bool) bool, opts ...request.Option) error {
  2339  	p := request.Pagination{
  2340  		NewRequest: func() (*request.Request, error) {
  2341  			var inCpy *ListAccountSettingsInput
  2342  			if input != nil {
  2343  				tmp := *input
  2344  				inCpy = &tmp
  2345  			}
  2346  			req, _ := c.ListAccountSettingsRequest(inCpy)
  2347  			req.SetContext(ctx)
  2348  			req.ApplyOptions(opts...)
  2349  			return req, nil
  2350  		},
  2351  	}
  2352  
  2353  	for p.Next() {
  2354  		if !fn(p.Page().(*ListAccountSettingsOutput), !p.HasNextPage()) {
  2355  			break
  2356  		}
  2357  	}
  2358  
  2359  	return p.Err()
  2360  }
  2361  
  2362  const opListAttributes = "ListAttributes"
  2363  
  2364  // ListAttributesRequest generates a "aws/request.Request" representing the
  2365  // client's request for the ListAttributes operation. The "output" return
  2366  // value will be populated with the request's response once the request completes
  2367  // successfully.
  2368  //
  2369  // Use "Send" method on the returned Request to send the API call to the service.
  2370  // the "output" return value is not valid until after Send returns without error.
  2371  //
  2372  // See ListAttributes for more information on using the ListAttributes
  2373  // API call, and error handling.
  2374  //
  2375  // This method is useful when you want to inject custom logic or configuration
  2376  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2377  //
  2378  //
  2379  //    // Example sending a request using the ListAttributesRequest method.
  2380  //    req, resp := client.ListAttributesRequest(params)
  2381  //
  2382  //    err := req.Send()
  2383  //    if err == nil { // resp is now filled
  2384  //        fmt.Println(resp)
  2385  //    }
  2386  //
  2387  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributes
  2388  func (c *ECS) ListAttributesRequest(input *ListAttributesInput) (req *request.Request, output *ListAttributesOutput) {
  2389  	op := &request.Operation{
  2390  		Name:       opListAttributes,
  2391  		HTTPMethod: "POST",
  2392  		HTTPPath:   "/",
  2393  		Paginator: &request.Paginator{
  2394  			InputTokens:     []string{"nextToken"},
  2395  			OutputTokens:    []string{"nextToken"},
  2396  			LimitToken:      "maxResults",
  2397  			TruncationToken: "",
  2398  		},
  2399  	}
  2400  
  2401  	if input == nil {
  2402  		input = &ListAttributesInput{}
  2403  	}
  2404  
  2405  	output = &ListAttributesOutput{}
  2406  	req = c.newRequest(op, input, output)
  2407  	return
  2408  }
  2409  
  2410  // ListAttributes API operation for Amazon EC2 Container Service.
  2411  //
  2412  // Lists the attributes for Amazon ECS resources within a specified target type
  2413  // and cluster. When you specify a target type and cluster, ListAttributes returns
  2414  // a list of attribute objects, one for each attribute on each resource. You
  2415  // can filter the list of results to a single attribute name to only return
  2416  // results that have that name. You can also filter the results by attribute
  2417  // name and value, for example, to see which container instances in a cluster
  2418  // are running a Linux AMI (ecs.os-type=linux).
  2419  //
  2420  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2421  // with awserr.Error's Code and Message methods to get detailed information about
  2422  // the error.
  2423  //
  2424  // See the AWS API reference guide for Amazon EC2 Container Service's
  2425  // API operation ListAttributes for usage and error information.
  2426  //
  2427  // Returned Error Types:
  2428  //   * ClusterNotFoundException
  2429  //   The specified cluster could not be found. You can view your available clusters
  2430  //   with ListClusters. Amazon ECS clusters are Region-specific.
  2431  //
  2432  //   * InvalidParameterException
  2433  //   The specified parameter is invalid. Review the available parameters for the
  2434  //   API request.
  2435  //
  2436  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributes
  2437  func (c *ECS) ListAttributes(input *ListAttributesInput) (*ListAttributesOutput, error) {
  2438  	req, out := c.ListAttributesRequest(input)
  2439  	return out, req.Send()
  2440  }
  2441  
  2442  // ListAttributesWithContext is the same as ListAttributes with the addition of
  2443  // the ability to pass a context and additional request options.
  2444  //
  2445  // See ListAttributes for details on how to use this API operation.
  2446  //
  2447  // The context must be non-nil and will be used for request cancellation. If
  2448  // the context is nil a panic will occur. In the future the SDK may create
  2449  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2450  // for more information on using Contexts.
  2451  func (c *ECS) ListAttributesWithContext(ctx aws.Context, input *ListAttributesInput, opts ...request.Option) (*ListAttributesOutput, error) {
  2452  	req, out := c.ListAttributesRequest(input)
  2453  	req.SetContext(ctx)
  2454  	req.ApplyOptions(opts...)
  2455  	return out, req.Send()
  2456  }
  2457  
  2458  // ListAttributesPages iterates over the pages of a ListAttributes operation,
  2459  // calling the "fn" function with the response data for each page. To stop
  2460  // iterating, return false from the fn function.
  2461  //
  2462  // See ListAttributes method for more information on how to use this operation.
  2463  //
  2464  // Note: This operation can generate multiple requests to a service.
  2465  //
  2466  //    // Example iterating over at most 3 pages of a ListAttributes operation.
  2467  //    pageNum := 0
  2468  //    err := client.ListAttributesPages(params,
  2469  //        func(page *ecs.ListAttributesOutput, lastPage bool) bool {
  2470  //            pageNum++
  2471  //            fmt.Println(page)
  2472  //            return pageNum <= 3
  2473  //        })
  2474  //
  2475  func (c *ECS) ListAttributesPages(input *ListAttributesInput, fn func(*ListAttributesOutput, bool) bool) error {
  2476  	return c.ListAttributesPagesWithContext(aws.BackgroundContext(), input, fn)
  2477  }
  2478  
  2479  // ListAttributesPagesWithContext same as ListAttributesPages except
  2480  // it takes a Context and allows setting request options on the pages.
  2481  //
  2482  // The context must be non-nil and will be used for request cancellation. If
  2483  // the context is nil a panic will occur. In the future the SDK may create
  2484  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2485  // for more information on using Contexts.
  2486  func (c *ECS) ListAttributesPagesWithContext(ctx aws.Context, input *ListAttributesInput, fn func(*ListAttributesOutput, bool) bool, opts ...request.Option) error {
  2487  	p := request.Pagination{
  2488  		NewRequest: func() (*request.Request, error) {
  2489  			var inCpy *ListAttributesInput
  2490  			if input != nil {
  2491  				tmp := *input
  2492  				inCpy = &tmp
  2493  			}
  2494  			req, _ := c.ListAttributesRequest(inCpy)
  2495  			req.SetContext(ctx)
  2496  			req.ApplyOptions(opts...)
  2497  			return req, nil
  2498  		},
  2499  	}
  2500  
  2501  	for p.Next() {
  2502  		if !fn(p.Page().(*ListAttributesOutput), !p.HasNextPage()) {
  2503  			break
  2504  		}
  2505  	}
  2506  
  2507  	return p.Err()
  2508  }
  2509  
  2510  const opListClusters = "ListClusters"
  2511  
  2512  // ListClustersRequest generates a "aws/request.Request" representing the
  2513  // client's request for the ListClusters operation. The "output" return
  2514  // value will be populated with the request's response once the request completes
  2515  // successfully.
  2516  //
  2517  // Use "Send" method on the returned Request to send the API call to the service.
  2518  // the "output" return value is not valid until after Send returns without error.
  2519  //
  2520  // See ListClusters for more information on using the ListClusters
  2521  // API call, and error handling.
  2522  //
  2523  // This method is useful when you want to inject custom logic or configuration
  2524  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2525  //
  2526  //
  2527  //    // Example sending a request using the ListClustersRequest method.
  2528  //    req, resp := client.ListClustersRequest(params)
  2529  //
  2530  //    err := req.Send()
  2531  //    if err == nil { // resp is now filled
  2532  //        fmt.Println(resp)
  2533  //    }
  2534  //
  2535  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClusters
  2536  func (c *ECS) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
  2537  	op := &request.Operation{
  2538  		Name:       opListClusters,
  2539  		HTTPMethod: "POST",
  2540  		HTTPPath:   "/",
  2541  		Paginator: &request.Paginator{
  2542  			InputTokens:     []string{"nextToken"},
  2543  			OutputTokens:    []string{"nextToken"},
  2544  			LimitToken:      "maxResults",
  2545  			TruncationToken: "",
  2546  		},
  2547  	}
  2548  
  2549  	if input == nil {
  2550  		input = &ListClustersInput{}
  2551  	}
  2552  
  2553  	output = &ListClustersOutput{}
  2554  	req = c.newRequest(op, input, output)
  2555  	return
  2556  }
  2557  
  2558  // ListClusters API operation for Amazon EC2 Container Service.
  2559  //
  2560  // Returns a list of existing clusters.
  2561  //
  2562  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2563  // with awserr.Error's Code and Message methods to get detailed information about
  2564  // the error.
  2565  //
  2566  // See the AWS API reference guide for Amazon EC2 Container Service's
  2567  // API operation ListClusters for usage and error information.
  2568  //
  2569  // Returned Error Types:
  2570  //   * ServerException
  2571  //   These errors are usually caused by a server issue.
  2572  //
  2573  //   * ClientException
  2574  //   These errors are usually caused by a client action, such as using an action
  2575  //   or resource on behalf of a user that doesn't have permissions to use the
  2576  //   action or resource, or specifying an identifier that is not valid.
  2577  //
  2578  //   * InvalidParameterException
  2579  //   The specified parameter is invalid. Review the available parameters for the
  2580  //   API request.
  2581  //
  2582  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClusters
  2583  func (c *ECS) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
  2584  	req, out := c.ListClustersRequest(input)
  2585  	return out, req.Send()
  2586  }
  2587  
  2588  // ListClustersWithContext is the same as ListClusters with the addition of
  2589  // the ability to pass a context and additional request options.
  2590  //
  2591  // See ListClusters for details on how to use this API operation.
  2592  //
  2593  // The context must be non-nil and will be used for request cancellation. If
  2594  // the context is nil a panic will occur. In the future the SDK may create
  2595  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2596  // for more information on using Contexts.
  2597  func (c *ECS) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
  2598  	req, out := c.ListClustersRequest(input)
  2599  	req.SetContext(ctx)
  2600  	req.ApplyOptions(opts...)
  2601  	return out, req.Send()
  2602  }
  2603  
  2604  // ListClustersPages iterates over the pages of a ListClusters operation,
  2605  // calling the "fn" function with the response data for each page. To stop
  2606  // iterating, return false from the fn function.
  2607  //
  2608  // See ListClusters method for more information on how to use this operation.
  2609  //
  2610  // Note: This operation can generate multiple requests to a service.
  2611  //
  2612  //    // Example iterating over at most 3 pages of a ListClusters operation.
  2613  //    pageNum := 0
  2614  //    err := client.ListClustersPages(params,
  2615  //        func(page *ecs.ListClustersOutput, lastPage bool) bool {
  2616  //            pageNum++
  2617  //            fmt.Println(page)
  2618  //            return pageNum <= 3
  2619  //        })
  2620  //
  2621  func (c *ECS) ListClustersPages(input *ListClustersInput, fn func(*ListClustersOutput, bool) bool) error {
  2622  	return c.ListClustersPagesWithContext(aws.BackgroundContext(), input, fn)
  2623  }
  2624  
  2625  // ListClustersPagesWithContext same as ListClustersPages except
  2626  // it takes a Context and allows setting request options on the pages.
  2627  //
  2628  // The context must be non-nil and will be used for request cancellation. If
  2629  // the context is nil a panic will occur. In the future the SDK may create
  2630  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2631  // for more information on using Contexts.
  2632  func (c *ECS) ListClustersPagesWithContext(ctx aws.Context, input *ListClustersInput, fn func(*ListClustersOutput, bool) bool, opts ...request.Option) error {
  2633  	p := request.Pagination{
  2634  		NewRequest: func() (*request.Request, error) {
  2635  			var inCpy *ListClustersInput
  2636  			if input != nil {
  2637  				tmp := *input
  2638  				inCpy = &tmp
  2639  			}
  2640  			req, _ := c.ListClustersRequest(inCpy)
  2641  			req.SetContext(ctx)
  2642  			req.ApplyOptions(opts...)
  2643  			return req, nil
  2644  		},
  2645  	}
  2646  
  2647  	for p.Next() {
  2648  		if !fn(p.Page().(*ListClustersOutput), !p.HasNextPage()) {
  2649  			break
  2650  		}
  2651  	}
  2652  
  2653  	return p.Err()
  2654  }
  2655  
  2656  const opListContainerInstances = "ListContainerInstances"
  2657  
  2658  // ListContainerInstancesRequest generates a "aws/request.Request" representing the
  2659  // client's request for the ListContainerInstances operation. The "output" return
  2660  // value will be populated with the request's response once the request completes
  2661  // successfully.
  2662  //
  2663  // Use "Send" method on the returned Request to send the API call to the service.
  2664  // the "output" return value is not valid until after Send returns without error.
  2665  //
  2666  // See ListContainerInstances for more information on using the ListContainerInstances
  2667  // API call, and error handling.
  2668  //
  2669  // This method is useful when you want to inject custom logic or configuration
  2670  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2671  //
  2672  //
  2673  //    // Example sending a request using the ListContainerInstancesRequest method.
  2674  //    req, resp := client.ListContainerInstancesRequest(params)
  2675  //
  2676  //    err := req.Send()
  2677  //    if err == nil { // resp is now filled
  2678  //        fmt.Println(resp)
  2679  //    }
  2680  //
  2681  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstances
  2682  func (c *ECS) ListContainerInstancesRequest(input *ListContainerInstancesInput) (req *request.Request, output *ListContainerInstancesOutput) {
  2683  	op := &request.Operation{
  2684  		Name:       opListContainerInstances,
  2685  		HTTPMethod: "POST",
  2686  		HTTPPath:   "/",
  2687  		Paginator: &request.Paginator{
  2688  			InputTokens:     []string{"nextToken"},
  2689  			OutputTokens:    []string{"nextToken"},
  2690  			LimitToken:      "maxResults",
  2691  			TruncationToken: "",
  2692  		},
  2693  	}
  2694  
  2695  	if input == nil {
  2696  		input = &ListContainerInstancesInput{}
  2697  	}
  2698  
  2699  	output = &ListContainerInstancesOutput{}
  2700  	req = c.newRequest(op, input, output)
  2701  	return
  2702  }
  2703  
  2704  // ListContainerInstances API operation for Amazon EC2 Container Service.
  2705  //
  2706  // Returns a list of container instances in a specified cluster. You can filter
  2707  // the results of a ListContainerInstances operation with cluster query language
  2708  // statements inside the filter parameter. For more information, see Cluster
  2709  // Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
  2710  // in the Amazon Elastic Container Service Developer Guide.
  2711  //
  2712  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2713  // with awserr.Error's Code and Message methods to get detailed information about
  2714  // the error.
  2715  //
  2716  // See the AWS API reference guide for Amazon EC2 Container Service's
  2717  // API operation ListContainerInstances for usage and error information.
  2718  //
  2719  // Returned Error Types:
  2720  //   * ServerException
  2721  //   These errors are usually caused by a server issue.
  2722  //
  2723  //   * ClientException
  2724  //   These errors are usually caused by a client action, such as using an action
  2725  //   or resource on behalf of a user that doesn't have permissions to use the
  2726  //   action or resource, or specifying an identifier that is not valid.
  2727  //
  2728  //   * InvalidParameterException
  2729  //   The specified parameter is invalid. Review the available parameters for the
  2730  //   API request.
  2731  //
  2732  //   * ClusterNotFoundException
  2733  //   The specified cluster could not be found. You can view your available clusters
  2734  //   with ListClusters. Amazon ECS clusters are Region-specific.
  2735  //
  2736  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstances
  2737  func (c *ECS) ListContainerInstances(input *ListContainerInstancesInput) (*ListContainerInstancesOutput, error) {
  2738  	req, out := c.ListContainerInstancesRequest(input)
  2739  	return out, req.Send()
  2740  }
  2741  
  2742  // ListContainerInstancesWithContext is the same as ListContainerInstances with the addition of
  2743  // the ability to pass a context and additional request options.
  2744  //
  2745  // See ListContainerInstances for details on how to use this API operation.
  2746  //
  2747  // The context must be non-nil and will be used for request cancellation. If
  2748  // the context is nil a panic will occur. In the future the SDK may create
  2749  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2750  // for more information on using Contexts.
  2751  func (c *ECS) ListContainerInstancesWithContext(ctx aws.Context, input *ListContainerInstancesInput, opts ...request.Option) (*ListContainerInstancesOutput, error) {
  2752  	req, out := c.ListContainerInstancesRequest(input)
  2753  	req.SetContext(ctx)
  2754  	req.ApplyOptions(opts...)
  2755  	return out, req.Send()
  2756  }
  2757  
  2758  // ListContainerInstancesPages iterates over the pages of a ListContainerInstances operation,
  2759  // calling the "fn" function with the response data for each page. To stop
  2760  // iterating, return false from the fn function.
  2761  //
  2762  // See ListContainerInstances method for more information on how to use this operation.
  2763  //
  2764  // Note: This operation can generate multiple requests to a service.
  2765  //
  2766  //    // Example iterating over at most 3 pages of a ListContainerInstances operation.
  2767  //    pageNum := 0
  2768  //    err := client.ListContainerInstancesPages(params,
  2769  //        func(page *ecs.ListContainerInstancesOutput, lastPage bool) bool {
  2770  //            pageNum++
  2771  //            fmt.Println(page)
  2772  //            return pageNum <= 3
  2773  //        })
  2774  //
  2775  func (c *ECS) ListContainerInstancesPages(input *ListContainerInstancesInput, fn func(*ListContainerInstancesOutput, bool) bool) error {
  2776  	return c.ListContainerInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
  2777  }
  2778  
  2779  // ListContainerInstancesPagesWithContext same as ListContainerInstancesPages except
  2780  // it takes a Context and allows setting request options on the pages.
  2781  //
  2782  // The context must be non-nil and will be used for request cancellation. If
  2783  // the context is nil a panic will occur. In the future the SDK may create
  2784  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2785  // for more information on using Contexts.
  2786  func (c *ECS) ListContainerInstancesPagesWithContext(ctx aws.Context, input *ListContainerInstancesInput, fn func(*ListContainerInstancesOutput, bool) bool, opts ...request.Option) error {
  2787  	p := request.Pagination{
  2788  		NewRequest: func() (*request.Request, error) {
  2789  			var inCpy *ListContainerInstancesInput
  2790  			if input != nil {
  2791  				tmp := *input
  2792  				inCpy = &tmp
  2793  			}
  2794  			req, _ := c.ListContainerInstancesRequest(inCpy)
  2795  			req.SetContext(ctx)
  2796  			req.ApplyOptions(opts...)
  2797  			return req, nil
  2798  		},
  2799  	}
  2800  
  2801  	for p.Next() {
  2802  		if !fn(p.Page().(*ListContainerInstancesOutput), !p.HasNextPage()) {
  2803  			break
  2804  		}
  2805  	}
  2806  
  2807  	return p.Err()
  2808  }
  2809  
  2810  const opListServices = "ListServices"
  2811  
  2812  // ListServicesRequest generates a "aws/request.Request" representing the
  2813  // client's request for the ListServices operation. The "output" return
  2814  // value will be populated with the request's response once the request completes
  2815  // successfully.
  2816  //
  2817  // Use "Send" method on the returned Request to send the API call to the service.
  2818  // the "output" return value is not valid until after Send returns without error.
  2819  //
  2820  // See ListServices for more information on using the ListServices
  2821  // API call, and error handling.
  2822  //
  2823  // This method is useful when you want to inject custom logic or configuration
  2824  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2825  //
  2826  //
  2827  //    // Example sending a request using the ListServicesRequest method.
  2828  //    req, resp := client.ListServicesRequest(params)
  2829  //
  2830  //    err := req.Send()
  2831  //    if err == nil { // resp is now filled
  2832  //        fmt.Println(resp)
  2833  //    }
  2834  //
  2835  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServices
  2836  func (c *ECS) ListServicesRequest(input *ListServicesInput) (req *request.Request, output *ListServicesOutput) {
  2837  	op := &request.Operation{
  2838  		Name:       opListServices,
  2839  		HTTPMethod: "POST",
  2840  		HTTPPath:   "/",
  2841  		Paginator: &request.Paginator{
  2842  			InputTokens:     []string{"nextToken"},
  2843  			OutputTokens:    []string{"nextToken"},
  2844  			LimitToken:      "maxResults",
  2845  			TruncationToken: "",
  2846  		},
  2847  	}
  2848  
  2849  	if input == nil {
  2850  		input = &ListServicesInput{}
  2851  	}
  2852  
  2853  	output = &ListServicesOutput{}
  2854  	req = c.newRequest(op, input, output)
  2855  	return
  2856  }
  2857  
  2858  // ListServices API operation for Amazon EC2 Container Service.
  2859  //
  2860  // Returns a list of services. You can filter the results by cluster, launch
  2861  // type, and scheduling strategy.
  2862  //
  2863  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2864  // with awserr.Error's Code and Message methods to get detailed information about
  2865  // the error.
  2866  //
  2867  // See the AWS API reference guide for Amazon EC2 Container Service's
  2868  // API operation ListServices for usage and error information.
  2869  //
  2870  // Returned Error Types:
  2871  //   * ServerException
  2872  //   These errors are usually caused by a server issue.
  2873  //
  2874  //   * ClientException
  2875  //   These errors are usually caused by a client action, such as using an action
  2876  //   or resource on behalf of a user that doesn't have permissions to use the
  2877  //   action or resource, or specifying an identifier that is not valid.
  2878  //
  2879  //   * InvalidParameterException
  2880  //   The specified parameter is invalid. Review the available parameters for the
  2881  //   API request.
  2882  //
  2883  //   * ClusterNotFoundException
  2884  //   The specified cluster could not be found. You can view your available clusters
  2885  //   with ListClusters. Amazon ECS clusters are Region-specific.
  2886  //
  2887  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServices
  2888  func (c *ECS) ListServices(input *ListServicesInput) (*ListServicesOutput, error) {
  2889  	req, out := c.ListServicesRequest(input)
  2890  	return out, req.Send()
  2891  }
  2892  
  2893  // ListServicesWithContext is the same as ListServices with the addition of
  2894  // the ability to pass a context and additional request options.
  2895  //
  2896  // See ListServices for details on how to use this API operation.
  2897  //
  2898  // The context must be non-nil and will be used for request cancellation. If
  2899  // the context is nil a panic will occur. In the future the SDK may create
  2900  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2901  // for more information on using Contexts.
  2902  func (c *ECS) ListServicesWithContext(ctx aws.Context, input *ListServicesInput, opts ...request.Option) (*ListServicesOutput, error) {
  2903  	req, out := c.ListServicesRequest(input)
  2904  	req.SetContext(ctx)
  2905  	req.ApplyOptions(opts...)
  2906  	return out, req.Send()
  2907  }
  2908  
  2909  // ListServicesPages iterates over the pages of a ListServices operation,
  2910  // calling the "fn" function with the response data for each page. To stop
  2911  // iterating, return false from the fn function.
  2912  //
  2913  // See ListServices method for more information on how to use this operation.
  2914  //
  2915  // Note: This operation can generate multiple requests to a service.
  2916  //
  2917  //    // Example iterating over at most 3 pages of a ListServices operation.
  2918  //    pageNum := 0
  2919  //    err := client.ListServicesPages(params,
  2920  //        func(page *ecs.ListServicesOutput, lastPage bool) bool {
  2921  //            pageNum++
  2922  //            fmt.Println(page)
  2923  //            return pageNum <= 3
  2924  //        })
  2925  //
  2926  func (c *ECS) ListServicesPages(input *ListServicesInput, fn func(*ListServicesOutput, bool) bool) error {
  2927  	return c.ListServicesPagesWithContext(aws.BackgroundContext(), input, fn)
  2928  }
  2929  
  2930  // ListServicesPagesWithContext same as ListServicesPages except
  2931  // it takes a Context and allows setting request options on the pages.
  2932  //
  2933  // The context must be non-nil and will be used for request cancellation. If
  2934  // the context is nil a panic will occur. In the future the SDK may create
  2935  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2936  // for more information on using Contexts.
  2937  func (c *ECS) ListServicesPagesWithContext(ctx aws.Context, input *ListServicesInput, fn func(*ListServicesOutput, bool) bool, opts ...request.Option) error {
  2938  	p := request.Pagination{
  2939  		NewRequest: func() (*request.Request, error) {
  2940  			var inCpy *ListServicesInput
  2941  			if input != nil {
  2942  				tmp := *input
  2943  				inCpy = &tmp
  2944  			}
  2945  			req, _ := c.ListServicesRequest(inCpy)
  2946  			req.SetContext(ctx)
  2947  			req.ApplyOptions(opts...)
  2948  			return req, nil
  2949  		},
  2950  	}
  2951  
  2952  	for p.Next() {
  2953  		if !fn(p.Page().(*ListServicesOutput), !p.HasNextPage()) {
  2954  			break
  2955  		}
  2956  	}
  2957  
  2958  	return p.Err()
  2959  }
  2960  
  2961  const opListTagsForResource = "ListTagsForResource"
  2962  
  2963  // ListTagsForResourceRequest generates a "aws/request.Request" representing the
  2964  // client's request for the ListTagsForResource operation. The "output" return
  2965  // value will be populated with the request's response once the request completes
  2966  // successfully.
  2967  //
  2968  // Use "Send" method on the returned Request to send the API call to the service.
  2969  // the "output" return value is not valid until after Send returns without error.
  2970  //
  2971  // See ListTagsForResource for more information on using the ListTagsForResource
  2972  // API call, and error handling.
  2973  //
  2974  // This method is useful when you want to inject custom logic or configuration
  2975  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2976  //
  2977  //
  2978  //    // Example sending a request using the ListTagsForResourceRequest method.
  2979  //    req, resp := client.ListTagsForResourceRequest(params)
  2980  //
  2981  //    err := req.Send()
  2982  //    if err == nil { // resp is now filled
  2983  //        fmt.Println(resp)
  2984  //    }
  2985  //
  2986  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTagsForResource
  2987  func (c *ECS) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
  2988  	op := &request.Operation{
  2989  		Name:       opListTagsForResource,
  2990  		HTTPMethod: "POST",
  2991  		HTTPPath:   "/",
  2992  	}
  2993  
  2994  	if input == nil {
  2995  		input = &ListTagsForResourceInput{}
  2996  	}
  2997  
  2998  	output = &ListTagsForResourceOutput{}
  2999  	req = c.newRequest(op, input, output)
  3000  	return
  3001  }
  3002  
  3003  // ListTagsForResource API operation for Amazon EC2 Container Service.
  3004  //
  3005  // List the tags for an Amazon ECS resource.
  3006  //
  3007  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3008  // with awserr.Error's Code and Message methods to get detailed information about
  3009  // the error.
  3010  //
  3011  // See the AWS API reference guide for Amazon EC2 Container Service's
  3012  // API operation ListTagsForResource for usage and error information.
  3013  //
  3014  // Returned Error Types:
  3015  //   * ServerException
  3016  //   These errors are usually caused by a server issue.
  3017  //
  3018  //   * ClientException
  3019  //   These errors are usually caused by a client action, such as using an action
  3020  //   or resource on behalf of a user that doesn't have permissions to use the
  3021  //   action or resource, or specifying an identifier that is not valid.
  3022  //
  3023  //   * ClusterNotFoundException
  3024  //   The specified cluster could not be found. You can view your available clusters
  3025  //   with ListClusters. Amazon ECS clusters are Region-specific.
  3026  //
  3027  //   * InvalidParameterException
  3028  //   The specified parameter is invalid. Review the available parameters for the
  3029  //   API request.
  3030  //
  3031  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTagsForResource
  3032  func (c *ECS) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
  3033  	req, out := c.ListTagsForResourceRequest(input)
  3034  	return out, req.Send()
  3035  }
  3036  
  3037  // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
  3038  // the ability to pass a context and additional request options.
  3039  //
  3040  // See ListTagsForResource for details on how to use this API operation.
  3041  //
  3042  // The context must be non-nil and will be used for request cancellation. If
  3043  // the context is nil a panic will occur. In the future the SDK may create
  3044  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3045  // for more information on using Contexts.
  3046  func (c *ECS) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
  3047  	req, out := c.ListTagsForResourceRequest(input)
  3048  	req.SetContext(ctx)
  3049  	req.ApplyOptions(opts...)
  3050  	return out, req.Send()
  3051  }
  3052  
  3053  const opListTaskDefinitionFamilies = "ListTaskDefinitionFamilies"
  3054  
  3055  // ListTaskDefinitionFamiliesRequest generates a "aws/request.Request" representing the
  3056  // client's request for the ListTaskDefinitionFamilies operation. The "output" return
  3057  // value will be populated with the request's response once the request completes
  3058  // successfully.
  3059  //
  3060  // Use "Send" method on the returned Request to send the API call to the service.
  3061  // the "output" return value is not valid until after Send returns without error.
  3062  //
  3063  // See ListTaskDefinitionFamilies for more information on using the ListTaskDefinitionFamilies
  3064  // API call, and error handling.
  3065  //
  3066  // This method is useful when you want to inject custom logic or configuration
  3067  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3068  //
  3069  //
  3070  //    // Example sending a request using the ListTaskDefinitionFamiliesRequest method.
  3071  //    req, resp := client.ListTaskDefinitionFamiliesRequest(params)
  3072  //
  3073  //    err := req.Send()
  3074  //    if err == nil { // resp is now filled
  3075  //        fmt.Println(resp)
  3076  //    }
  3077  //
  3078  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamilies
  3079  func (c *ECS) ListTaskDefinitionFamiliesRequest(input *ListTaskDefinitionFamiliesInput) (req *request.Request, output *ListTaskDefinitionFamiliesOutput) {
  3080  	op := &request.Operation{
  3081  		Name:       opListTaskDefinitionFamilies,
  3082  		HTTPMethod: "POST",
  3083  		HTTPPath:   "/",
  3084  		Paginator: &request.Paginator{
  3085  			InputTokens:     []string{"nextToken"},
  3086  			OutputTokens:    []string{"nextToken"},
  3087  			LimitToken:      "maxResults",
  3088  			TruncationToken: "",
  3089  		},
  3090  	}
  3091  
  3092  	if input == nil {
  3093  		input = &ListTaskDefinitionFamiliesInput{}
  3094  	}
  3095  
  3096  	output = &ListTaskDefinitionFamiliesOutput{}
  3097  	req = c.newRequest(op, input, output)
  3098  	return
  3099  }
  3100  
  3101  // ListTaskDefinitionFamilies API operation for Amazon EC2 Container Service.
  3102  //
  3103  // Returns a list of task definition families that are registered to your account
  3104  // (which may include task definition families that no longer have any ACTIVE
  3105  // task definition revisions).
  3106  //
  3107  // You can filter out task definition families that do not contain any ACTIVE
  3108  // task definition revisions by setting the status parameter to ACTIVE. You
  3109  // can also filter the results with the familyPrefix parameter.
  3110  //
  3111  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3112  // with awserr.Error's Code and Message methods to get detailed information about
  3113  // the error.
  3114  //
  3115  // See the AWS API reference guide for Amazon EC2 Container Service's
  3116  // API operation ListTaskDefinitionFamilies for usage and error information.
  3117  //
  3118  // Returned Error Types:
  3119  //   * ServerException
  3120  //   These errors are usually caused by a server issue.
  3121  //
  3122  //   * ClientException
  3123  //   These errors are usually caused by a client action, such as using an action
  3124  //   or resource on behalf of a user that doesn't have permissions to use the
  3125  //   action or resource, or specifying an identifier that is not valid.
  3126  //
  3127  //   * InvalidParameterException
  3128  //   The specified parameter is invalid. Review the available parameters for the
  3129  //   API request.
  3130  //
  3131  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamilies
  3132  func (c *ECS) ListTaskDefinitionFamilies(input *ListTaskDefinitionFamiliesInput) (*ListTaskDefinitionFamiliesOutput, error) {
  3133  	req, out := c.ListTaskDefinitionFamiliesRequest(input)
  3134  	return out, req.Send()
  3135  }
  3136  
  3137  // ListTaskDefinitionFamiliesWithContext is the same as ListTaskDefinitionFamilies with the addition of
  3138  // the ability to pass a context and additional request options.
  3139  //
  3140  // See ListTaskDefinitionFamilies for details on how to use this API operation.
  3141  //
  3142  // The context must be non-nil and will be used for request cancellation. If
  3143  // the context is nil a panic will occur. In the future the SDK may create
  3144  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3145  // for more information on using Contexts.
  3146  func (c *ECS) ListTaskDefinitionFamiliesWithContext(ctx aws.Context, input *ListTaskDefinitionFamiliesInput, opts ...request.Option) (*ListTaskDefinitionFamiliesOutput, error) {
  3147  	req, out := c.ListTaskDefinitionFamiliesRequest(input)
  3148  	req.SetContext(ctx)
  3149  	req.ApplyOptions(opts...)
  3150  	return out, req.Send()
  3151  }
  3152  
  3153  // ListTaskDefinitionFamiliesPages iterates over the pages of a ListTaskDefinitionFamilies operation,
  3154  // calling the "fn" function with the response data for each page. To stop
  3155  // iterating, return false from the fn function.
  3156  //
  3157  // See ListTaskDefinitionFamilies method for more information on how to use this operation.
  3158  //
  3159  // Note: This operation can generate multiple requests to a service.
  3160  //
  3161  //    // Example iterating over at most 3 pages of a ListTaskDefinitionFamilies operation.
  3162  //    pageNum := 0
  3163  //    err := client.ListTaskDefinitionFamiliesPages(params,
  3164  //        func(page *ecs.ListTaskDefinitionFamiliesOutput, lastPage bool) bool {
  3165  //            pageNum++
  3166  //            fmt.Println(page)
  3167  //            return pageNum <= 3
  3168  //        })
  3169  //
  3170  func (c *ECS) ListTaskDefinitionFamiliesPages(input *ListTaskDefinitionFamiliesInput, fn func(*ListTaskDefinitionFamiliesOutput, bool) bool) error {
  3171  	return c.ListTaskDefinitionFamiliesPagesWithContext(aws.BackgroundContext(), input, fn)
  3172  }
  3173  
  3174  // ListTaskDefinitionFamiliesPagesWithContext same as ListTaskDefinitionFamiliesPages except
  3175  // it takes a Context and allows setting request options on the pages.
  3176  //
  3177  // The context must be non-nil and will be used for request cancellation. If
  3178  // the context is nil a panic will occur. In the future the SDK may create
  3179  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3180  // for more information on using Contexts.
  3181  func (c *ECS) ListTaskDefinitionFamiliesPagesWithContext(ctx aws.Context, input *ListTaskDefinitionFamiliesInput, fn func(*ListTaskDefinitionFamiliesOutput, bool) bool, opts ...request.Option) error {
  3182  	p := request.Pagination{
  3183  		NewRequest: func() (*request.Request, error) {
  3184  			var inCpy *ListTaskDefinitionFamiliesInput
  3185  			if input != nil {
  3186  				tmp := *input
  3187  				inCpy = &tmp
  3188  			}
  3189  			req, _ := c.ListTaskDefinitionFamiliesRequest(inCpy)
  3190  			req.SetContext(ctx)
  3191  			req.ApplyOptions(opts...)
  3192  			return req, nil
  3193  		},
  3194  	}
  3195  
  3196  	for p.Next() {
  3197  		if !fn(p.Page().(*ListTaskDefinitionFamiliesOutput), !p.HasNextPage()) {
  3198  			break
  3199  		}
  3200  	}
  3201  
  3202  	return p.Err()
  3203  }
  3204  
  3205  const opListTaskDefinitions = "ListTaskDefinitions"
  3206  
  3207  // ListTaskDefinitionsRequest generates a "aws/request.Request" representing the
  3208  // client's request for the ListTaskDefinitions operation. The "output" return
  3209  // value will be populated with the request's response once the request completes
  3210  // successfully.
  3211  //
  3212  // Use "Send" method on the returned Request to send the API call to the service.
  3213  // the "output" return value is not valid until after Send returns without error.
  3214  //
  3215  // See ListTaskDefinitions for more information on using the ListTaskDefinitions
  3216  // API call, and error handling.
  3217  //
  3218  // This method is useful when you want to inject custom logic or configuration
  3219  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3220  //
  3221  //
  3222  //    // Example sending a request using the ListTaskDefinitionsRequest method.
  3223  //    req, resp := client.ListTaskDefinitionsRequest(params)
  3224  //
  3225  //    err := req.Send()
  3226  //    if err == nil { // resp is now filled
  3227  //        fmt.Println(resp)
  3228  //    }
  3229  //
  3230  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitions
  3231  func (c *ECS) ListTaskDefinitionsRequest(input *ListTaskDefinitionsInput) (req *request.Request, output *ListTaskDefinitionsOutput) {
  3232  	op := &request.Operation{
  3233  		Name:       opListTaskDefinitions,
  3234  		HTTPMethod: "POST",
  3235  		HTTPPath:   "/",
  3236  		Paginator: &request.Paginator{
  3237  			InputTokens:     []string{"nextToken"},
  3238  			OutputTokens:    []string{"nextToken"},
  3239  			LimitToken:      "maxResults",
  3240  			TruncationToken: "",
  3241  		},
  3242  	}
  3243  
  3244  	if input == nil {
  3245  		input = &ListTaskDefinitionsInput{}
  3246  	}
  3247  
  3248  	output = &ListTaskDefinitionsOutput{}
  3249  	req = c.newRequest(op, input, output)
  3250  	return
  3251  }
  3252  
  3253  // ListTaskDefinitions API operation for Amazon EC2 Container Service.
  3254  //
  3255  // Returns a list of task definitions that are registered to your account. You
  3256  // can filter the results by family name with the familyPrefix parameter or
  3257  // by status with the status parameter.
  3258  //
  3259  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3260  // with awserr.Error's Code and Message methods to get detailed information about
  3261  // the error.
  3262  //
  3263  // See the AWS API reference guide for Amazon EC2 Container Service's
  3264  // API operation ListTaskDefinitions for usage and error information.
  3265  //
  3266  // Returned Error Types:
  3267  //   * ServerException
  3268  //   These errors are usually caused by a server issue.
  3269  //
  3270  //   * ClientException
  3271  //   These errors are usually caused by a client action, such as using an action
  3272  //   or resource on behalf of a user that doesn't have permissions to use the
  3273  //   action or resource, or specifying an identifier that is not valid.
  3274  //
  3275  //   * InvalidParameterException
  3276  //   The specified parameter is invalid. Review the available parameters for the
  3277  //   API request.
  3278  //
  3279  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitions
  3280  func (c *ECS) ListTaskDefinitions(input *ListTaskDefinitionsInput) (*ListTaskDefinitionsOutput, error) {
  3281  	req, out := c.ListTaskDefinitionsRequest(input)
  3282  	return out, req.Send()
  3283  }
  3284  
  3285  // ListTaskDefinitionsWithContext is the same as ListTaskDefinitions with the addition of
  3286  // the ability to pass a context and additional request options.
  3287  //
  3288  // See ListTaskDefinitions for details on how to use this API operation.
  3289  //
  3290  // The context must be non-nil and will be used for request cancellation. If
  3291  // the context is nil a panic will occur. In the future the SDK may create
  3292  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3293  // for more information on using Contexts.
  3294  func (c *ECS) ListTaskDefinitionsWithContext(ctx aws.Context, input *ListTaskDefinitionsInput, opts ...request.Option) (*ListTaskDefinitionsOutput, error) {
  3295  	req, out := c.ListTaskDefinitionsRequest(input)
  3296  	req.SetContext(ctx)
  3297  	req.ApplyOptions(opts...)
  3298  	return out, req.Send()
  3299  }
  3300  
  3301  // ListTaskDefinitionsPages iterates over the pages of a ListTaskDefinitions operation,
  3302  // calling the "fn" function with the response data for each page. To stop
  3303  // iterating, return false from the fn function.
  3304  //
  3305  // See ListTaskDefinitions method for more information on how to use this operation.
  3306  //
  3307  // Note: This operation can generate multiple requests to a service.
  3308  //
  3309  //    // Example iterating over at most 3 pages of a ListTaskDefinitions operation.
  3310  //    pageNum := 0
  3311  //    err := client.ListTaskDefinitionsPages(params,
  3312  //        func(page *ecs.ListTaskDefinitionsOutput, lastPage bool) bool {
  3313  //            pageNum++
  3314  //            fmt.Println(page)
  3315  //            return pageNum <= 3
  3316  //        })
  3317  //
  3318  func (c *ECS) ListTaskDefinitionsPages(input *ListTaskDefinitionsInput, fn func(*ListTaskDefinitionsOutput, bool) bool) error {
  3319  	return c.ListTaskDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn)
  3320  }
  3321  
  3322  // ListTaskDefinitionsPagesWithContext same as ListTaskDefinitionsPages except
  3323  // it takes a Context and allows setting request options on the pages.
  3324  //
  3325  // The context must be non-nil and will be used for request cancellation. If
  3326  // the context is nil a panic will occur. In the future the SDK may create
  3327  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3328  // for more information on using Contexts.
  3329  func (c *ECS) ListTaskDefinitionsPagesWithContext(ctx aws.Context, input *ListTaskDefinitionsInput, fn func(*ListTaskDefinitionsOutput, bool) bool, opts ...request.Option) error {
  3330  	p := request.Pagination{
  3331  		NewRequest: func() (*request.Request, error) {
  3332  			var inCpy *ListTaskDefinitionsInput
  3333  			if input != nil {
  3334  				tmp := *input
  3335  				inCpy = &tmp
  3336  			}
  3337  			req, _ := c.ListTaskDefinitionsRequest(inCpy)
  3338  			req.SetContext(ctx)
  3339  			req.ApplyOptions(opts...)
  3340  			return req, nil
  3341  		},
  3342  	}
  3343  
  3344  	for p.Next() {
  3345  		if !fn(p.Page().(*ListTaskDefinitionsOutput), !p.HasNextPage()) {
  3346  			break
  3347  		}
  3348  	}
  3349  
  3350  	return p.Err()
  3351  }
  3352  
  3353  const opListTasks = "ListTasks"
  3354  
  3355  // ListTasksRequest generates a "aws/request.Request" representing the
  3356  // client's request for the ListTasks operation. The "output" return
  3357  // value will be populated with the request's response once the request completes
  3358  // successfully.
  3359  //
  3360  // Use "Send" method on the returned Request to send the API call to the service.
  3361  // the "output" return value is not valid until after Send returns without error.
  3362  //
  3363  // See ListTasks for more information on using the ListTasks
  3364  // API call, and error handling.
  3365  //
  3366  // This method is useful when you want to inject custom logic or configuration
  3367  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3368  //
  3369  //
  3370  //    // Example sending a request using the ListTasksRequest method.
  3371  //    req, resp := client.ListTasksRequest(params)
  3372  //
  3373  //    err := req.Send()
  3374  //    if err == nil { // resp is now filled
  3375  //        fmt.Println(resp)
  3376  //    }
  3377  //
  3378  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasks
  3379  func (c *ECS) ListTasksRequest(input *ListTasksInput) (req *request.Request, output *ListTasksOutput) {
  3380  	op := &request.Operation{
  3381  		Name:       opListTasks,
  3382  		HTTPMethod: "POST",
  3383  		HTTPPath:   "/",
  3384  		Paginator: &request.Paginator{
  3385  			InputTokens:     []string{"nextToken"},
  3386  			OutputTokens:    []string{"nextToken"},
  3387  			LimitToken:      "maxResults",
  3388  			TruncationToken: "",
  3389  		},
  3390  	}
  3391  
  3392  	if input == nil {
  3393  		input = &ListTasksInput{}
  3394  	}
  3395  
  3396  	output = &ListTasksOutput{}
  3397  	req = c.newRequest(op, input, output)
  3398  	return
  3399  }
  3400  
  3401  // ListTasks API operation for Amazon EC2 Container Service.
  3402  //
  3403  // Returns a list of tasks. You can filter the results by cluster, task definition
  3404  // family, container instance, launch type, what IAM principal started the task,
  3405  // or by the desired status of the task.
  3406  //
  3407  // Recently stopped tasks might appear in the returned results. Currently, stopped
  3408  // tasks appear in the returned results for at least one hour.
  3409  //
  3410  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3411  // with awserr.Error's Code and Message methods to get detailed information about
  3412  // the error.
  3413  //
  3414  // See the AWS API reference guide for Amazon EC2 Container Service's
  3415  // API operation ListTasks for usage and error information.
  3416  //
  3417  // Returned Error Types:
  3418  //   * ServerException
  3419  //   These errors are usually caused by a server issue.
  3420  //
  3421  //   * ClientException
  3422  //   These errors are usually caused by a client action, such as using an action
  3423  //   or resource on behalf of a user that doesn't have permissions to use the
  3424  //   action or resource, or specifying an identifier that is not valid.
  3425  //
  3426  //   * InvalidParameterException
  3427  //   The specified parameter is invalid. Review the available parameters for the
  3428  //   API request.
  3429  //
  3430  //   * ClusterNotFoundException
  3431  //   The specified cluster could not be found. You can view your available clusters
  3432  //   with ListClusters. Amazon ECS clusters are Region-specific.
  3433  //
  3434  //   * ServiceNotFoundException
  3435  //   The specified service could not be found. You can view your available services
  3436  //   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
  3437  //
  3438  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasks
  3439  func (c *ECS) ListTasks(input *ListTasksInput) (*ListTasksOutput, error) {
  3440  	req, out := c.ListTasksRequest(input)
  3441  	return out, req.Send()
  3442  }
  3443  
  3444  // ListTasksWithContext is the same as ListTasks with the addition of
  3445  // the ability to pass a context and additional request options.
  3446  //
  3447  // See ListTasks for details on how to use this API operation.
  3448  //
  3449  // The context must be non-nil and will be used for request cancellation. If
  3450  // the context is nil a panic will occur. In the future the SDK may create
  3451  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3452  // for more information on using Contexts.
  3453  func (c *ECS) ListTasksWithContext(ctx aws.Context, input *ListTasksInput, opts ...request.Option) (*ListTasksOutput, error) {
  3454  	req, out := c.ListTasksRequest(input)
  3455  	req.SetContext(ctx)
  3456  	req.ApplyOptions(opts...)
  3457  	return out, req.Send()
  3458  }
  3459  
  3460  // ListTasksPages iterates over the pages of a ListTasks operation,
  3461  // calling the "fn" function with the response data for each page. To stop
  3462  // iterating, return false from the fn function.
  3463  //
  3464  // See ListTasks method for more information on how to use this operation.
  3465  //
  3466  // Note: This operation can generate multiple requests to a service.
  3467  //
  3468  //    // Example iterating over at most 3 pages of a ListTasks operation.
  3469  //    pageNum := 0
  3470  //    err := client.ListTasksPages(params,
  3471  //        func(page *ecs.ListTasksOutput, lastPage bool) bool {
  3472  //            pageNum++
  3473  //            fmt.Println(page)
  3474  //            return pageNum <= 3
  3475  //        })
  3476  //
  3477  func (c *ECS) ListTasksPages(input *ListTasksInput, fn func(*ListTasksOutput, bool) bool) error {
  3478  	return c.ListTasksPagesWithContext(aws.BackgroundContext(), input, fn)
  3479  }
  3480  
  3481  // ListTasksPagesWithContext same as ListTasksPages except
  3482  // it takes a Context and allows setting request options on the pages.
  3483  //
  3484  // The context must be non-nil and will be used for request cancellation. If
  3485  // the context is nil a panic will occur. In the future the SDK may create
  3486  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3487  // for more information on using Contexts.
  3488  func (c *ECS) ListTasksPagesWithContext(ctx aws.Context, input *ListTasksInput, fn func(*ListTasksOutput, bool) bool, opts ...request.Option) error {
  3489  	p := request.Pagination{
  3490  		NewRequest: func() (*request.Request, error) {
  3491  			var inCpy *ListTasksInput
  3492  			if input != nil {
  3493  				tmp := *input
  3494  				inCpy = &tmp
  3495  			}
  3496  			req, _ := c.ListTasksRequest(inCpy)
  3497  			req.SetContext(ctx)
  3498  			req.ApplyOptions(opts...)
  3499  			return req, nil
  3500  		},
  3501  	}
  3502  
  3503  	for p.Next() {
  3504  		if !fn(p.Page().(*ListTasksOutput), !p.HasNextPage()) {
  3505  			break
  3506  		}
  3507  	}
  3508  
  3509  	return p.Err()
  3510  }
  3511  
  3512  const opPutAccountSetting = "PutAccountSetting"
  3513  
  3514  // PutAccountSettingRequest generates a "aws/request.Request" representing the
  3515  // client's request for the PutAccountSetting operation. The "output" return
  3516  // value will be populated with the request's response once the request completes
  3517  // successfully.
  3518  //
  3519  // Use "Send" method on the returned Request to send the API call to the service.
  3520  // the "output" return value is not valid until after Send returns without error.
  3521  //
  3522  // See PutAccountSetting for more information on using the PutAccountSetting
  3523  // API call, and error handling.
  3524  //
  3525  // This method is useful when you want to inject custom logic or configuration
  3526  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3527  //
  3528  //
  3529  //    // Example sending a request using the PutAccountSettingRequest method.
  3530  //    req, resp := client.PutAccountSettingRequest(params)
  3531  //
  3532  //    err := req.Send()
  3533  //    if err == nil { // resp is now filled
  3534  //        fmt.Println(resp)
  3535  //    }
  3536  //
  3537  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSetting
  3538  func (c *ECS) PutAccountSettingRequest(input *PutAccountSettingInput) (req *request.Request, output *PutAccountSettingOutput) {
  3539  	op := &request.Operation{
  3540  		Name:       opPutAccountSetting,
  3541  		HTTPMethod: "POST",
  3542  		HTTPPath:   "/",
  3543  	}
  3544  
  3545  	if input == nil {
  3546  		input = &PutAccountSettingInput{}
  3547  	}
  3548  
  3549  	output = &PutAccountSettingOutput{}
  3550  	req = c.newRequest(op, input, output)
  3551  	return
  3552  }
  3553  
  3554  // PutAccountSetting API operation for Amazon EC2 Container Service.
  3555  //
  3556  // Modifies an account setting. Account settings are set on a per-Region basis.
  3557  //
  3558  // If you change the account setting for the root user, the default settings
  3559  // for all of the IAM users and roles for which no individual account setting
  3560  // has been specified are reset. For more information, see Account Settings
  3561  // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html)
  3562  // in the Amazon Elastic Container Service Developer Guide.
  3563  //
  3564  // When serviceLongArnFormat, taskLongArnFormat, or containerInstanceLongArnFormat
  3565  // are specified, the Amazon Resource Name (ARN) and resource ID format of the
  3566  // resource type for a specified IAM user, IAM role, or the root user for an
  3567  // account is affected. The opt-in and opt-out account setting must be set for
  3568  // each Amazon ECS resource separately. The ARN and resource ID format of a
  3569  // resource will be defined by the opt-in status of the IAM user or role that
  3570  // created the resource. You must enable this setting to use Amazon ECS features
  3571  // such as resource tagging.
  3572  //
  3573  // When awsvpcTrunking is specified, the elastic network interface (ENI) limit
  3574  // for any new container instances that support the feature is changed. If awsvpcTrunking
  3575  // is enabled, any new container instances that support the feature are launched
  3576  // have the increased ENI limits available to them. For more information, see
  3577  // Elastic Network Interface Trunking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html)
  3578  // in the Amazon Elastic Container Service Developer Guide.
  3579  //
  3580  // When containerInsights is specified, the default setting indicating whether
  3581  // CloudWatch Container Insights is enabled for your clusters is changed. If
  3582  // containerInsights is enabled, any new clusters that are created will have
  3583  // Container Insights enabled unless you disable it during cluster creation.
  3584  // For more information, see CloudWatch Container Insights (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-container-insights.html)
  3585  // in the Amazon Elastic Container Service Developer Guide.
  3586  //
  3587  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3588  // with awserr.Error's Code and Message methods to get detailed information about
  3589  // the error.
  3590  //
  3591  // See the AWS API reference guide for Amazon EC2 Container Service's
  3592  // API operation PutAccountSetting for usage and error information.
  3593  //
  3594  // Returned Error Types:
  3595  //   * ServerException
  3596  //   These errors are usually caused by a server issue.
  3597  //
  3598  //   * ClientException
  3599  //   These errors are usually caused by a client action, such as using an action
  3600  //   or resource on behalf of a user that doesn't have permissions to use the
  3601  //   action or resource, or specifying an identifier that is not valid.
  3602  //
  3603  //   * InvalidParameterException
  3604  //   The specified parameter is invalid. Review the available parameters for the
  3605  //   API request.
  3606  //
  3607  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSetting
  3608  func (c *ECS) PutAccountSetting(input *PutAccountSettingInput) (*PutAccountSettingOutput, error) {
  3609  	req, out := c.PutAccountSettingRequest(input)
  3610  	return out, req.Send()
  3611  }
  3612  
  3613  // PutAccountSettingWithContext is the same as PutAccountSetting with the addition of
  3614  // the ability to pass a context and additional request options.
  3615  //
  3616  // See PutAccountSetting for details on how to use this API operation.
  3617  //
  3618  // The context must be non-nil and will be used for request cancellation. If
  3619  // the context is nil a panic will occur. In the future the SDK may create
  3620  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3621  // for more information on using Contexts.
  3622  func (c *ECS) PutAccountSettingWithContext(ctx aws.Context, input *PutAccountSettingInput, opts ...request.Option) (*PutAccountSettingOutput, error) {
  3623  	req, out := c.PutAccountSettingRequest(input)
  3624  	req.SetContext(ctx)
  3625  	req.ApplyOptions(opts...)
  3626  	return out, req.Send()
  3627  }
  3628  
  3629  const opPutAccountSettingDefault = "PutAccountSettingDefault"
  3630  
  3631  // PutAccountSettingDefaultRequest generates a "aws/request.Request" representing the
  3632  // client's request for the PutAccountSettingDefault operation. The "output" return
  3633  // value will be populated with the request's response once the request completes
  3634  // successfully.
  3635  //
  3636  // Use "Send" method on the returned Request to send the API call to the service.
  3637  // the "output" return value is not valid until after Send returns without error.
  3638  //
  3639  // See PutAccountSettingDefault for more information on using the PutAccountSettingDefault
  3640  // API call, and error handling.
  3641  //
  3642  // This method is useful when you want to inject custom logic or configuration
  3643  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3644  //
  3645  //
  3646  //    // Example sending a request using the PutAccountSettingDefaultRequest method.
  3647  //    req, resp := client.PutAccountSettingDefaultRequest(params)
  3648  //
  3649  //    err := req.Send()
  3650  //    if err == nil { // resp is now filled
  3651  //        fmt.Println(resp)
  3652  //    }
  3653  //
  3654  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSettingDefault
  3655  func (c *ECS) PutAccountSettingDefaultRequest(input *PutAccountSettingDefaultInput) (req *request.Request, output *PutAccountSettingDefaultOutput) {
  3656  	op := &request.Operation{
  3657  		Name:       opPutAccountSettingDefault,
  3658  		HTTPMethod: "POST",
  3659  		HTTPPath:   "/",
  3660  	}
  3661  
  3662  	if input == nil {
  3663  		input = &PutAccountSettingDefaultInput{}
  3664  	}
  3665  
  3666  	output = &PutAccountSettingDefaultOutput{}
  3667  	req = c.newRequest(op, input, output)
  3668  	return
  3669  }
  3670  
  3671  // PutAccountSettingDefault API operation for Amazon EC2 Container Service.
  3672  //
  3673  // Modifies an account setting for all IAM users on an account for whom no individual
  3674  // account setting has been specified. Account settings are set on a per-Region
  3675  // basis.
  3676  //
  3677  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3678  // with awserr.Error's Code and Message methods to get detailed information about
  3679  // the error.
  3680  //
  3681  // See the AWS API reference guide for Amazon EC2 Container Service's
  3682  // API operation PutAccountSettingDefault for usage and error information.
  3683  //
  3684  // Returned Error Types:
  3685  //   * ServerException
  3686  //   These errors are usually caused by a server issue.
  3687  //
  3688  //   * ClientException
  3689  //   These errors are usually caused by a client action, such as using an action
  3690  //   or resource on behalf of a user that doesn't have permissions to use the
  3691  //   action or resource, or specifying an identifier that is not valid.
  3692  //
  3693  //   * InvalidParameterException
  3694  //   The specified parameter is invalid. Review the available parameters for the
  3695  //   API request.
  3696  //
  3697  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAccountSettingDefault
  3698  func (c *ECS) PutAccountSettingDefault(input *PutAccountSettingDefaultInput) (*PutAccountSettingDefaultOutput, error) {
  3699  	req, out := c.PutAccountSettingDefaultRequest(input)
  3700  	return out, req.Send()
  3701  }
  3702  
  3703  // PutAccountSettingDefaultWithContext is the same as PutAccountSettingDefault with the addition of
  3704  // the ability to pass a context and additional request options.
  3705  //
  3706  // See PutAccountSettingDefault for details on how to use this API operation.
  3707  //
  3708  // The context must be non-nil and will be used for request cancellation. If
  3709  // the context is nil a panic will occur. In the future the SDK may create
  3710  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3711  // for more information on using Contexts.
  3712  func (c *ECS) PutAccountSettingDefaultWithContext(ctx aws.Context, input *PutAccountSettingDefaultInput, opts ...request.Option) (*PutAccountSettingDefaultOutput, error) {
  3713  	req, out := c.PutAccountSettingDefaultRequest(input)
  3714  	req.SetContext(ctx)
  3715  	req.ApplyOptions(opts...)
  3716  	return out, req.Send()
  3717  }
  3718  
  3719  const opPutAttributes = "PutAttributes"
  3720  
  3721  // PutAttributesRequest generates a "aws/request.Request" representing the
  3722  // client's request for the PutAttributes operation. The "output" return
  3723  // value will be populated with the request's response once the request completes
  3724  // successfully.
  3725  //
  3726  // Use "Send" method on the returned Request to send the API call to the service.
  3727  // the "output" return value is not valid until after Send returns without error.
  3728  //
  3729  // See PutAttributes for more information on using the PutAttributes
  3730  // API call, and error handling.
  3731  //
  3732  // This method is useful when you want to inject custom logic or configuration
  3733  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3734  //
  3735  //
  3736  //    // Example sending a request using the PutAttributesRequest method.
  3737  //    req, resp := client.PutAttributesRequest(params)
  3738  //
  3739  //    err := req.Send()
  3740  //    if err == nil { // resp is now filled
  3741  //        fmt.Println(resp)
  3742  //    }
  3743  //
  3744  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributes
  3745  func (c *ECS) PutAttributesRequest(input *PutAttributesInput) (req *request.Request, output *PutAttributesOutput) {
  3746  	op := &request.Operation{
  3747  		Name:       opPutAttributes,
  3748  		HTTPMethod: "POST",
  3749  		HTTPPath:   "/",
  3750  	}
  3751  
  3752  	if input == nil {
  3753  		input = &PutAttributesInput{}
  3754  	}
  3755  
  3756  	output = &PutAttributesOutput{}
  3757  	req = c.newRequest(op, input, output)
  3758  	return
  3759  }
  3760  
  3761  // PutAttributes API operation for Amazon EC2 Container Service.
  3762  //
  3763  // Create or update an attribute on an Amazon ECS resource. If the attribute
  3764  // does not exist, it is created. If the attribute exists, its value is replaced
  3765  // with the specified value. To delete an attribute, use DeleteAttributes. For
  3766  // more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
  3767  // in the Amazon Elastic Container Service Developer Guide.
  3768  //
  3769  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3770  // with awserr.Error's Code and Message methods to get detailed information about
  3771  // the error.
  3772  //
  3773  // See the AWS API reference guide for Amazon EC2 Container Service's
  3774  // API operation PutAttributes for usage and error information.
  3775  //
  3776  // Returned Error Types:
  3777  //   * ClusterNotFoundException
  3778  //   The specified cluster could not be found. You can view your available clusters
  3779  //   with ListClusters. Amazon ECS clusters are Region-specific.
  3780  //
  3781  //   * TargetNotFoundException
  3782  //   The specified target could not be found. You can view your available container
  3783  //   instances with ListContainerInstances. Amazon ECS container instances are
  3784  //   cluster-specific and Region-specific.
  3785  //
  3786  //   * AttributeLimitExceededException
  3787  //   You can apply up to 10 custom attributes per resource. You can view the attributes
  3788  //   of a resource with ListAttributes. You can remove existing attributes on
  3789  //   a resource with DeleteAttributes.
  3790  //
  3791  //   * InvalidParameterException
  3792  //   The specified parameter is invalid. Review the available parameters for the
  3793  //   API request.
  3794  //
  3795  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributes
  3796  func (c *ECS) PutAttributes(input *PutAttributesInput) (*PutAttributesOutput, error) {
  3797  	req, out := c.PutAttributesRequest(input)
  3798  	return out, req.Send()
  3799  }
  3800  
  3801  // PutAttributesWithContext is the same as PutAttributes with the addition of
  3802  // the ability to pass a context and additional request options.
  3803  //
  3804  // See PutAttributes for details on how to use this API operation.
  3805  //
  3806  // The context must be non-nil and will be used for request cancellation. If
  3807  // the context is nil a panic will occur. In the future the SDK may create
  3808  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3809  // for more information on using Contexts.
  3810  func (c *ECS) PutAttributesWithContext(ctx aws.Context, input *PutAttributesInput, opts ...request.Option) (*PutAttributesOutput, error) {
  3811  	req, out := c.PutAttributesRequest(input)
  3812  	req.SetContext(ctx)
  3813  	req.ApplyOptions(opts...)
  3814  	return out, req.Send()
  3815  }
  3816  
  3817  const opPutClusterCapacityProviders = "PutClusterCapacityProviders"
  3818  
  3819  // PutClusterCapacityProvidersRequest generates a "aws/request.Request" representing the
  3820  // client's request for the PutClusterCapacityProviders operation. The "output" return
  3821  // value will be populated with the request's response once the request completes
  3822  // successfully.
  3823  //
  3824  // Use "Send" method on the returned Request to send the API call to the service.
  3825  // the "output" return value is not valid until after Send returns without error.
  3826  //
  3827  // See PutClusterCapacityProviders for more information on using the PutClusterCapacityProviders
  3828  // API call, and error handling.
  3829  //
  3830  // This method is useful when you want to inject custom logic or configuration
  3831  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3832  //
  3833  //
  3834  //    // Example sending a request using the PutClusterCapacityProvidersRequest method.
  3835  //    req, resp := client.PutClusterCapacityProvidersRequest(params)
  3836  //
  3837  //    err := req.Send()
  3838  //    if err == nil { // resp is now filled
  3839  //        fmt.Println(resp)
  3840  //    }
  3841  //
  3842  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutClusterCapacityProviders
  3843  func (c *ECS) PutClusterCapacityProvidersRequest(input *PutClusterCapacityProvidersInput) (req *request.Request, output *PutClusterCapacityProvidersOutput) {
  3844  	op := &request.Operation{
  3845  		Name:       opPutClusterCapacityProviders,
  3846  		HTTPMethod: "POST",
  3847  		HTTPPath:   "/",
  3848  	}
  3849  
  3850  	if input == nil {
  3851  		input = &PutClusterCapacityProvidersInput{}
  3852  	}
  3853  
  3854  	output = &PutClusterCapacityProvidersOutput{}
  3855  	req = c.newRequest(op, input, output)
  3856  	return
  3857  }
  3858  
  3859  // PutClusterCapacityProviders API operation for Amazon EC2 Container Service.
  3860  //
  3861  // Modifies the available capacity providers and the default capacity provider
  3862  // strategy for a cluster.
  3863  //
  3864  // You must specify both the available capacity providers and a default capacity
  3865  // provider strategy for the cluster. If the specified cluster has existing
  3866  // capacity providers associated with it, you must specify all existing capacity
  3867  // providers in addition to any new ones you want to add. Any existing capacity
  3868  // providers associated with a cluster that are omitted from a PutClusterCapacityProviders
  3869  // API call will be disassociated with the cluster. You can only disassociate
  3870  // an existing capacity provider from a cluster if it's not being used by any
  3871  // existing tasks.
  3872  //
  3873  // When creating a service or running a task on a cluster, if no capacity provider
  3874  // or launch type is specified, then the cluster's default capacity provider
  3875  // strategy is used. It is recommended to define a default capacity provider
  3876  // strategy for your cluster, however you may specify an empty array ([]) to
  3877  // bypass defining a default strategy.
  3878  //
  3879  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3880  // with awserr.Error's Code and Message methods to get detailed information about
  3881  // the error.
  3882  //
  3883  // See the AWS API reference guide for Amazon EC2 Container Service's
  3884  // API operation PutClusterCapacityProviders for usage and error information.
  3885  //
  3886  // Returned Error Types:
  3887  //   * ServerException
  3888  //   These errors are usually caused by a server issue.
  3889  //
  3890  //   * ClientException
  3891  //   These errors are usually caused by a client action, such as using an action
  3892  //   or resource on behalf of a user that doesn't have permissions to use the
  3893  //   action or resource, or specifying an identifier that is not valid.
  3894  //
  3895  //   * InvalidParameterException
  3896  //   The specified parameter is invalid. Review the available parameters for the
  3897  //   API request.
  3898  //
  3899  //   * ClusterNotFoundException
  3900  //   The specified cluster could not be found. You can view your available clusters
  3901  //   with ListClusters. Amazon ECS clusters are Region-specific.
  3902  //
  3903  //   * ResourceInUseException
  3904  //   The specified resource is in-use and cannot be removed.
  3905  //
  3906  //   * UpdateInProgressException
  3907  //   There is already a current Amazon ECS container agent update in progress
  3908  //   on the specified container instance. If the container agent becomes disconnected
  3909  //   while it is in a transitional stage, such as PENDING or STAGING, the update
  3910  //   process can get stuck in that state. However, when the agent reconnects,
  3911  //   it resumes where it stopped previously.
  3912  //
  3913  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutClusterCapacityProviders
  3914  func (c *ECS) PutClusterCapacityProviders(input *PutClusterCapacityProvidersInput) (*PutClusterCapacityProvidersOutput, error) {
  3915  	req, out := c.PutClusterCapacityProvidersRequest(input)
  3916  	return out, req.Send()
  3917  }
  3918  
  3919  // PutClusterCapacityProvidersWithContext is the same as PutClusterCapacityProviders with the addition of
  3920  // the ability to pass a context and additional request options.
  3921  //
  3922  // See PutClusterCapacityProviders for details on how to use this API operation.
  3923  //
  3924  // The context must be non-nil and will be used for request cancellation. If
  3925  // the context is nil a panic will occur. In the future the SDK may create
  3926  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3927  // for more information on using Contexts.
  3928  func (c *ECS) PutClusterCapacityProvidersWithContext(ctx aws.Context, input *PutClusterCapacityProvidersInput, opts ...request.Option) (*PutClusterCapacityProvidersOutput, error) {
  3929  	req, out := c.PutClusterCapacityProvidersRequest(input)
  3930  	req.SetContext(ctx)
  3931  	req.ApplyOptions(opts...)
  3932  	return out, req.Send()
  3933  }
  3934  
  3935  const opRegisterContainerInstance = "RegisterContainerInstance"
  3936  
  3937  // RegisterContainerInstanceRequest generates a "aws/request.Request" representing the
  3938  // client's request for the RegisterContainerInstance operation. The "output" return
  3939  // value will be populated with the request's response once the request completes
  3940  // successfully.
  3941  //
  3942  // Use "Send" method on the returned Request to send the API call to the service.
  3943  // the "output" return value is not valid until after Send returns without error.
  3944  //
  3945  // See RegisterContainerInstance for more information on using the RegisterContainerInstance
  3946  // API call, and error handling.
  3947  //
  3948  // This method is useful when you want to inject custom logic or configuration
  3949  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3950  //
  3951  //
  3952  //    // Example sending a request using the RegisterContainerInstanceRequest method.
  3953  //    req, resp := client.RegisterContainerInstanceRequest(params)
  3954  //
  3955  //    err := req.Send()
  3956  //    if err == nil { // resp is now filled
  3957  //        fmt.Println(resp)
  3958  //    }
  3959  //
  3960  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstance
  3961  func (c *ECS) RegisterContainerInstanceRequest(input *RegisterContainerInstanceInput) (req *request.Request, output *RegisterContainerInstanceOutput) {
  3962  	op := &request.Operation{
  3963  		Name:       opRegisterContainerInstance,
  3964  		HTTPMethod: "POST",
  3965  		HTTPPath:   "/",
  3966  	}
  3967  
  3968  	if input == nil {
  3969  		input = &RegisterContainerInstanceInput{}
  3970  	}
  3971  
  3972  	output = &RegisterContainerInstanceOutput{}
  3973  	req = c.newRequest(op, input, output)
  3974  	return
  3975  }
  3976  
  3977  // RegisterContainerInstance API operation for Amazon EC2 Container Service.
  3978  //
  3979  //
  3980  // This action is only used by the Amazon ECS agent, and it is not intended
  3981  // for use outside of the agent.
  3982  //
  3983  // Registers an EC2 instance into the specified cluster. This instance becomes
  3984  // available to place containers on.
  3985  //
  3986  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3987  // with awserr.Error's Code and Message methods to get detailed information about
  3988  // the error.
  3989  //
  3990  // See the AWS API reference guide for Amazon EC2 Container Service's
  3991  // API operation RegisterContainerInstance for usage and error information.
  3992  //
  3993  // Returned Error Types:
  3994  //   * ServerException
  3995  //   These errors are usually caused by a server issue.
  3996  //
  3997  //   * ClientException
  3998  //   These errors are usually caused by a client action, such as using an action
  3999  //   or resource on behalf of a user that doesn't have permissions to use the
  4000  //   action or resource, or specifying an identifier that is not valid.
  4001  //
  4002  //   * InvalidParameterException
  4003  //   The specified parameter is invalid. Review the available parameters for the
  4004  //   API request.
  4005  //
  4006  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstance
  4007  func (c *ECS) RegisterContainerInstance(input *RegisterContainerInstanceInput) (*RegisterContainerInstanceOutput, error) {
  4008  	req, out := c.RegisterContainerInstanceRequest(input)
  4009  	return out, req.Send()
  4010  }
  4011  
  4012  // RegisterContainerInstanceWithContext is the same as RegisterContainerInstance with the addition of
  4013  // the ability to pass a context and additional request options.
  4014  //
  4015  // See RegisterContainerInstance for details on how to use this API operation.
  4016  //
  4017  // The context must be non-nil and will be used for request cancellation. If
  4018  // the context is nil a panic will occur. In the future the SDK may create
  4019  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4020  // for more information on using Contexts.
  4021  func (c *ECS) RegisterContainerInstanceWithContext(ctx aws.Context, input *RegisterContainerInstanceInput, opts ...request.Option) (*RegisterContainerInstanceOutput, error) {
  4022  	req, out := c.RegisterContainerInstanceRequest(input)
  4023  	req.SetContext(ctx)
  4024  	req.ApplyOptions(opts...)
  4025  	return out, req.Send()
  4026  }
  4027  
  4028  const opRegisterTaskDefinition = "RegisterTaskDefinition"
  4029  
  4030  // RegisterTaskDefinitionRequest generates a "aws/request.Request" representing the
  4031  // client's request for the RegisterTaskDefinition operation. The "output" return
  4032  // value will be populated with the request's response once the request completes
  4033  // successfully.
  4034  //
  4035  // Use "Send" method on the returned Request to send the API call to the service.
  4036  // the "output" return value is not valid until after Send returns without error.
  4037  //
  4038  // See RegisterTaskDefinition for more information on using the RegisterTaskDefinition
  4039  // API call, and error handling.
  4040  //
  4041  // This method is useful when you want to inject custom logic or configuration
  4042  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4043  //
  4044  //
  4045  //    // Example sending a request using the RegisterTaskDefinitionRequest method.
  4046  //    req, resp := client.RegisterTaskDefinitionRequest(params)
  4047  //
  4048  //    err := req.Send()
  4049  //    if err == nil { // resp is now filled
  4050  //        fmt.Println(resp)
  4051  //    }
  4052  //
  4053  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinition
  4054  func (c *ECS) RegisterTaskDefinitionRequest(input *RegisterTaskDefinitionInput) (req *request.Request, output *RegisterTaskDefinitionOutput) {
  4055  	op := &request.Operation{
  4056  		Name:       opRegisterTaskDefinition,
  4057  		HTTPMethod: "POST",
  4058  		HTTPPath:   "/",
  4059  	}
  4060  
  4061  	if input == nil {
  4062  		input = &RegisterTaskDefinitionInput{}
  4063  	}
  4064  
  4065  	output = &RegisterTaskDefinitionOutput{}
  4066  	req = c.newRequest(op, input, output)
  4067  	return
  4068  }
  4069  
  4070  // RegisterTaskDefinition API operation for Amazon EC2 Container Service.
  4071  //
  4072  // Registers a new task definition from the supplied family and containerDefinitions.
  4073  // Optionally, you can add data volumes to your containers with the volumes
  4074  // parameter. For more information about task definition parameters and defaults,
  4075  // see Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
  4076  // in the Amazon Elastic Container Service Developer Guide.
  4077  //
  4078  // You can specify an IAM role for your task with the taskRoleArn parameter.
  4079  // When you specify an IAM role for a task, its containers can then use the
  4080  // latest versions of the CLI or SDKs to make API requests to the Amazon Web
  4081  // Services services that are specified in the IAM policy associated with the
  4082  // role. For more information, see IAM Roles for Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
  4083  // in the Amazon Elastic Container Service Developer Guide.
  4084  //
  4085  // You can specify a Docker networking mode for the containers in your task
  4086  // definition with the networkMode parameter. The available network modes correspond
  4087  // to those described in Network settings (https://docs.docker.com/engine/reference/run/#/network-settings)
  4088  // in the Docker run reference. If you specify the awsvpc network mode, the
  4089  // task is allocated an elastic network interface, and you must specify a NetworkConfiguration
  4090  // when you create a service or run a task with the task definition. For more
  4091  // information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
  4092  // in the Amazon Elastic Container Service Developer Guide.
  4093  //
  4094  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4095  // with awserr.Error's Code and Message methods to get detailed information about
  4096  // the error.
  4097  //
  4098  // See the AWS API reference guide for Amazon EC2 Container Service's
  4099  // API operation RegisterTaskDefinition for usage and error information.
  4100  //
  4101  // Returned Error Types:
  4102  //   * ServerException
  4103  //   These errors are usually caused by a server issue.
  4104  //
  4105  //   * ClientException
  4106  //   These errors are usually caused by a client action, such as using an action
  4107  //   or resource on behalf of a user that doesn't have permissions to use the
  4108  //   action or resource, or specifying an identifier that is not valid.
  4109  //
  4110  //   * InvalidParameterException
  4111  //   The specified parameter is invalid. Review the available parameters for the
  4112  //   API request.
  4113  //
  4114  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinition
  4115  func (c *ECS) RegisterTaskDefinition(input *RegisterTaskDefinitionInput) (*RegisterTaskDefinitionOutput, error) {
  4116  	req, out := c.RegisterTaskDefinitionRequest(input)
  4117  	return out, req.Send()
  4118  }
  4119  
  4120  // RegisterTaskDefinitionWithContext is the same as RegisterTaskDefinition with the addition of
  4121  // the ability to pass a context and additional request options.
  4122  //
  4123  // See RegisterTaskDefinition for details on how to use this API operation.
  4124  //
  4125  // The context must be non-nil and will be used for request cancellation. If
  4126  // the context is nil a panic will occur. In the future the SDK may create
  4127  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4128  // for more information on using Contexts.
  4129  func (c *ECS) RegisterTaskDefinitionWithContext(ctx aws.Context, input *RegisterTaskDefinitionInput, opts ...request.Option) (*RegisterTaskDefinitionOutput, error) {
  4130  	req, out := c.RegisterTaskDefinitionRequest(input)
  4131  	req.SetContext(ctx)
  4132  	req.ApplyOptions(opts...)
  4133  	return out, req.Send()
  4134  }
  4135  
  4136  const opRunTask = "RunTask"
  4137  
  4138  // RunTaskRequest generates a "aws/request.Request" representing the
  4139  // client's request for the RunTask operation. The "output" return
  4140  // value will be populated with the request's response once the request completes
  4141  // successfully.
  4142  //
  4143  // Use "Send" method on the returned Request to send the API call to the service.
  4144  // the "output" return value is not valid until after Send returns without error.
  4145  //
  4146  // See RunTask for more information on using the RunTask
  4147  // API call, and error handling.
  4148  //
  4149  // This method is useful when you want to inject custom logic or configuration
  4150  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4151  //
  4152  //
  4153  //    // Example sending a request using the RunTaskRequest method.
  4154  //    req, resp := client.RunTaskRequest(params)
  4155  //
  4156  //    err := req.Send()
  4157  //    if err == nil { // resp is now filled
  4158  //        fmt.Println(resp)
  4159  //    }
  4160  //
  4161  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTask
  4162  func (c *ECS) RunTaskRequest(input *RunTaskInput) (req *request.Request, output *RunTaskOutput) {
  4163  	op := &request.Operation{
  4164  		Name:       opRunTask,
  4165  		HTTPMethod: "POST",
  4166  		HTTPPath:   "/",
  4167  	}
  4168  
  4169  	if input == nil {
  4170  		input = &RunTaskInput{}
  4171  	}
  4172  
  4173  	output = &RunTaskOutput{}
  4174  	req = c.newRequest(op, input, output)
  4175  	return
  4176  }
  4177  
  4178  // RunTask API operation for Amazon EC2 Container Service.
  4179  //
  4180  // Starts a new task using the specified task definition.
  4181  //
  4182  // You can allow Amazon ECS to place tasks for you, or you can customize how
  4183  // Amazon ECS places tasks using placement constraints and placement strategies.
  4184  // For more information, see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html)
  4185  // in the Amazon Elastic Container Service Developer Guide.
  4186  //
  4187  // Alternatively, you can use StartTask to use your own scheduler or place tasks
  4188  // manually on specific container instances.
  4189  //
  4190  // The Amazon ECS API follows an eventual consistency model, due to the distributed
  4191  // nature of the system supporting the API. This means that the result of an
  4192  // API command you run that affects your Amazon ECS resources might not be immediately
  4193  // visible to all subsequent commands you run. Keep this in mind when you carry
  4194  // out an API command that immediately follows a previous API command.
  4195  //
  4196  // To manage eventual consistency, you can do the following:
  4197  //
  4198  //    * Confirm the state of the resource before you run a command to modify
  4199  //    it. Run the DescribeTasks command using an exponential backoff algorithm
  4200  //    to ensure that you allow enough time for the previous command to propagate
  4201  //    through the system. To do this, run the DescribeTasks command repeatedly,
  4202  //    starting with a couple of seconds of wait time and increasing gradually
  4203  //    up to five minutes of wait time.
  4204  //
  4205  //    * Add wait time between subsequent commands, even if the DescribeTasks
  4206  //    command returns an accurate response. Apply an exponential backoff algorithm
  4207  //    starting with a couple of seconds of wait time, and increase gradually
  4208  //    up to about five minutes of wait time.
  4209  //
  4210  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4211  // with awserr.Error's Code and Message methods to get detailed information about
  4212  // the error.
  4213  //
  4214  // See the AWS API reference guide for Amazon EC2 Container Service's
  4215  // API operation RunTask for usage and error information.
  4216  //
  4217  // Returned Error Types:
  4218  //   * ServerException
  4219  //   These errors are usually caused by a server issue.
  4220  //
  4221  //   * ClientException
  4222  //   These errors are usually caused by a client action, such as using an action
  4223  //   or resource on behalf of a user that doesn't have permissions to use the
  4224  //   action or resource, or specifying an identifier that is not valid.
  4225  //
  4226  //   * InvalidParameterException
  4227  //   The specified parameter is invalid. Review the available parameters for the
  4228  //   API request.
  4229  //
  4230  //   * ClusterNotFoundException
  4231  //   The specified cluster could not be found. You can view your available clusters
  4232  //   with ListClusters. Amazon ECS clusters are Region-specific.
  4233  //
  4234  //   * UnsupportedFeatureException
  4235  //   The specified task is not supported in this Region.
  4236  //
  4237  //   * PlatformUnknownException
  4238  //   The specified platform version does not exist.
  4239  //
  4240  //   * PlatformTaskDefinitionIncompatibilityException
  4241  //   The specified platform version does not satisfy the task definition's required
  4242  //   capabilities.
  4243  //
  4244  //   * AccessDeniedException
  4245  //   You do not have authorization to perform the requested action.
  4246  //
  4247  //   * BlockedException
  4248  //   Your Amazon Web Services account has been blocked. For more information,
  4249  //   contact Amazon Web Services Support (http://aws.amazon.com/contact-us/).
  4250  //
  4251  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTask
  4252  func (c *ECS) RunTask(input *RunTaskInput) (*RunTaskOutput, error) {
  4253  	req, out := c.RunTaskRequest(input)
  4254  	return out, req.Send()
  4255  }
  4256  
  4257  // RunTaskWithContext is the same as RunTask with the addition of
  4258  // the ability to pass a context and additional request options.
  4259  //
  4260  // See RunTask for details on how to use this API operation.
  4261  //
  4262  // The context must be non-nil and will be used for request cancellation. If
  4263  // the context is nil a panic will occur. In the future the SDK may create
  4264  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4265  // for more information on using Contexts.
  4266  func (c *ECS) RunTaskWithContext(ctx aws.Context, input *RunTaskInput, opts ...request.Option) (*RunTaskOutput, error) {
  4267  	req, out := c.RunTaskRequest(input)
  4268  	req.SetContext(ctx)
  4269  	req.ApplyOptions(opts...)
  4270  	return out, req.Send()
  4271  }
  4272  
  4273  const opStartTask = "StartTask"
  4274  
  4275  // StartTaskRequest generates a "aws/request.Request" representing the
  4276  // client's request for the StartTask operation. The "output" return
  4277  // value will be populated with the request's response once the request completes
  4278  // successfully.
  4279  //
  4280  // Use "Send" method on the returned Request to send the API call to the service.
  4281  // the "output" return value is not valid until after Send returns without error.
  4282  //
  4283  // See StartTask for more information on using the StartTask
  4284  // API call, and error handling.
  4285  //
  4286  // This method is useful when you want to inject custom logic or configuration
  4287  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4288  //
  4289  //
  4290  //    // Example sending a request using the StartTaskRequest method.
  4291  //    req, resp := client.StartTaskRequest(params)
  4292  //
  4293  //    err := req.Send()
  4294  //    if err == nil { // resp is now filled
  4295  //        fmt.Println(resp)
  4296  //    }
  4297  //
  4298  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTask
  4299  func (c *ECS) StartTaskRequest(input *StartTaskInput) (req *request.Request, output *StartTaskOutput) {
  4300  	op := &request.Operation{
  4301  		Name:       opStartTask,
  4302  		HTTPMethod: "POST",
  4303  		HTTPPath:   "/",
  4304  	}
  4305  
  4306  	if input == nil {
  4307  		input = &StartTaskInput{}
  4308  	}
  4309  
  4310  	output = &StartTaskOutput{}
  4311  	req = c.newRequest(op, input, output)
  4312  	return
  4313  }
  4314  
  4315  // StartTask API operation for Amazon EC2 Container Service.
  4316  //
  4317  // Starts a new task from the specified task definition on the specified container
  4318  // instance or instances.
  4319  //
  4320  // Alternatively, you can use RunTask to place tasks for you. For more information,
  4321  // see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html)
  4322  // in the Amazon Elastic Container Service Developer Guide.
  4323  //
  4324  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4325  // with awserr.Error's Code and Message methods to get detailed information about
  4326  // the error.
  4327  //
  4328  // See the AWS API reference guide for Amazon EC2 Container Service's
  4329  // API operation StartTask for usage and error information.
  4330  //
  4331  // Returned Error Types:
  4332  //   * ServerException
  4333  //   These errors are usually caused by a server issue.
  4334  //
  4335  //   * ClientException
  4336  //   These errors are usually caused by a client action, such as using an action
  4337  //   or resource on behalf of a user that doesn't have permissions to use the
  4338  //   action or resource, or specifying an identifier that is not valid.
  4339  //
  4340  //   * InvalidParameterException
  4341  //   The specified parameter is invalid. Review the available parameters for the
  4342  //   API request.
  4343  //
  4344  //   * ClusterNotFoundException
  4345  //   The specified cluster could not be found. You can view your available clusters
  4346  //   with ListClusters. Amazon ECS clusters are Region-specific.
  4347  //
  4348  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTask
  4349  func (c *ECS) StartTask(input *StartTaskInput) (*StartTaskOutput, error) {
  4350  	req, out := c.StartTaskRequest(input)
  4351  	return out, req.Send()
  4352  }
  4353  
  4354  // StartTaskWithContext is the same as StartTask with the addition of
  4355  // the ability to pass a context and additional request options.
  4356  //
  4357  // See StartTask for details on how to use this API operation.
  4358  //
  4359  // The context must be non-nil and will be used for request cancellation. If
  4360  // the context is nil a panic will occur. In the future the SDK may create
  4361  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4362  // for more information on using Contexts.
  4363  func (c *ECS) StartTaskWithContext(ctx aws.Context, input *StartTaskInput, opts ...request.Option) (*StartTaskOutput, error) {
  4364  	req, out := c.StartTaskRequest(input)
  4365  	req.SetContext(ctx)
  4366  	req.ApplyOptions(opts...)
  4367  	return out, req.Send()
  4368  }
  4369  
  4370  const opStopTask = "StopTask"
  4371  
  4372  // StopTaskRequest generates a "aws/request.Request" representing the
  4373  // client's request for the StopTask operation. The "output" return
  4374  // value will be populated with the request's response once the request completes
  4375  // successfully.
  4376  //
  4377  // Use "Send" method on the returned Request to send the API call to the service.
  4378  // the "output" return value is not valid until after Send returns without error.
  4379  //
  4380  // See StopTask for more information on using the StopTask
  4381  // API call, and error handling.
  4382  //
  4383  // This method is useful when you want to inject custom logic or configuration
  4384  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4385  //
  4386  //
  4387  //    // Example sending a request using the StopTaskRequest method.
  4388  //    req, resp := client.StopTaskRequest(params)
  4389  //
  4390  //    err := req.Send()
  4391  //    if err == nil { // resp is now filled
  4392  //        fmt.Println(resp)
  4393  //    }
  4394  //
  4395  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTask
  4396  func (c *ECS) StopTaskRequest(input *StopTaskInput) (req *request.Request, output *StopTaskOutput) {
  4397  	op := &request.Operation{
  4398  		Name:       opStopTask,
  4399  		HTTPMethod: "POST",
  4400  		HTTPPath:   "/",
  4401  	}
  4402  
  4403  	if input == nil {
  4404  		input = &StopTaskInput{}
  4405  	}
  4406  
  4407  	output = &StopTaskOutput{}
  4408  	req = c.newRequest(op, input, output)
  4409  	return
  4410  }
  4411  
  4412  // StopTask API operation for Amazon EC2 Container Service.
  4413  //
  4414  // Stops a running task. Any tags associated with the task will be deleted.
  4415  //
  4416  // When StopTask is called on a task, the equivalent of docker stop is issued
  4417  // to the containers running in the task. This results in a SIGTERM value and
  4418  // a default 30-second timeout, after which the SIGKILL value is sent and the
  4419  // containers are forcibly stopped. If the container handles the SIGTERM value
  4420  // gracefully and exits within 30 seconds from receiving it, no SIGKILL value
  4421  // is sent.
  4422  //
  4423  // The default 30-second timeout can be configured on the Amazon ECS container
  4424  // agent with the ECS_CONTAINER_STOP_TIMEOUT variable. For more information,
  4425  // see Amazon ECS Container Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
  4426  // in the Amazon Elastic Container Service Developer Guide.
  4427  //
  4428  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4429  // with awserr.Error's Code and Message methods to get detailed information about
  4430  // the error.
  4431  //
  4432  // See the AWS API reference guide for Amazon EC2 Container Service's
  4433  // API operation StopTask for usage and error information.
  4434  //
  4435  // Returned Error Types:
  4436  //   * ServerException
  4437  //   These errors are usually caused by a server issue.
  4438  //
  4439  //   * ClientException
  4440  //   These errors are usually caused by a client action, such as using an action
  4441  //   or resource on behalf of a user that doesn't have permissions to use the
  4442  //   action or resource, or specifying an identifier that is not valid.
  4443  //
  4444  //   * InvalidParameterException
  4445  //   The specified parameter is invalid. Review the available parameters for the
  4446  //   API request.
  4447  //
  4448  //   * ClusterNotFoundException
  4449  //   The specified cluster could not be found. You can view your available clusters
  4450  //   with ListClusters. Amazon ECS clusters are Region-specific.
  4451  //
  4452  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTask
  4453  func (c *ECS) StopTask(input *StopTaskInput) (*StopTaskOutput, error) {
  4454  	req, out := c.StopTaskRequest(input)
  4455  	return out, req.Send()
  4456  }
  4457  
  4458  // StopTaskWithContext is the same as StopTask with the addition of
  4459  // the ability to pass a context and additional request options.
  4460  //
  4461  // See StopTask for details on how to use this API operation.
  4462  //
  4463  // The context must be non-nil and will be used for request cancellation. If
  4464  // the context is nil a panic will occur. In the future the SDK may create
  4465  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4466  // for more information on using Contexts.
  4467  func (c *ECS) StopTaskWithContext(ctx aws.Context, input *StopTaskInput, opts ...request.Option) (*StopTaskOutput, error) {
  4468  	req, out := c.StopTaskRequest(input)
  4469  	req.SetContext(ctx)
  4470  	req.ApplyOptions(opts...)
  4471  	return out, req.Send()
  4472  }
  4473  
  4474  const opSubmitAttachmentStateChanges = "SubmitAttachmentStateChanges"
  4475  
  4476  // SubmitAttachmentStateChangesRequest generates a "aws/request.Request" representing the
  4477  // client's request for the SubmitAttachmentStateChanges operation. The "output" return
  4478  // value will be populated with the request's response once the request completes
  4479  // successfully.
  4480  //
  4481  // Use "Send" method on the returned Request to send the API call to the service.
  4482  // the "output" return value is not valid until after Send returns without error.
  4483  //
  4484  // See SubmitAttachmentStateChanges for more information on using the SubmitAttachmentStateChanges
  4485  // API call, and error handling.
  4486  //
  4487  // This method is useful when you want to inject custom logic or configuration
  4488  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4489  //
  4490  //
  4491  //    // Example sending a request using the SubmitAttachmentStateChangesRequest method.
  4492  //    req, resp := client.SubmitAttachmentStateChangesRequest(params)
  4493  //
  4494  //    err := req.Send()
  4495  //    if err == nil { // resp is now filled
  4496  //        fmt.Println(resp)
  4497  //    }
  4498  //
  4499  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitAttachmentStateChanges
  4500  func (c *ECS) SubmitAttachmentStateChangesRequest(input *SubmitAttachmentStateChangesInput) (req *request.Request, output *SubmitAttachmentStateChangesOutput) {
  4501  	op := &request.Operation{
  4502  		Name:       opSubmitAttachmentStateChanges,
  4503  		HTTPMethod: "POST",
  4504  		HTTPPath:   "/",
  4505  	}
  4506  
  4507  	if input == nil {
  4508  		input = &SubmitAttachmentStateChangesInput{}
  4509  	}
  4510  
  4511  	output = &SubmitAttachmentStateChangesOutput{}
  4512  	req = c.newRequest(op, input, output)
  4513  	return
  4514  }
  4515  
  4516  // SubmitAttachmentStateChanges API operation for Amazon EC2 Container Service.
  4517  //
  4518  //
  4519  // This action is only used by the Amazon ECS agent, and it is not intended
  4520  // for use outside of the agent.
  4521  //
  4522  // Sent to acknowledge that an attachment changed states.
  4523  //
  4524  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4525  // with awserr.Error's Code and Message methods to get detailed information about
  4526  // the error.
  4527  //
  4528  // See the AWS API reference guide for Amazon EC2 Container Service's
  4529  // API operation SubmitAttachmentStateChanges for usage and error information.
  4530  //
  4531  // Returned Error Types:
  4532  //   * ServerException
  4533  //   These errors are usually caused by a server issue.
  4534  //
  4535  //   * ClientException
  4536  //   These errors are usually caused by a client action, such as using an action
  4537  //   or resource on behalf of a user that doesn't have permissions to use the
  4538  //   action or resource, or specifying an identifier that is not valid.
  4539  //
  4540  //   * AccessDeniedException
  4541  //   You do not have authorization to perform the requested action.
  4542  //
  4543  //   * InvalidParameterException
  4544  //   The specified parameter is invalid. Review the available parameters for the
  4545  //   API request.
  4546  //
  4547  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitAttachmentStateChanges
  4548  func (c *ECS) SubmitAttachmentStateChanges(input *SubmitAttachmentStateChangesInput) (*SubmitAttachmentStateChangesOutput, error) {
  4549  	req, out := c.SubmitAttachmentStateChangesRequest(input)
  4550  	return out, req.Send()
  4551  }
  4552  
  4553  // SubmitAttachmentStateChangesWithContext is the same as SubmitAttachmentStateChanges with the addition of
  4554  // the ability to pass a context and additional request options.
  4555  //
  4556  // See SubmitAttachmentStateChanges for details on how to use this API operation.
  4557  //
  4558  // The context must be non-nil and will be used for request cancellation. If
  4559  // the context is nil a panic will occur. In the future the SDK may create
  4560  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4561  // for more information on using Contexts.
  4562  func (c *ECS) SubmitAttachmentStateChangesWithContext(ctx aws.Context, input *SubmitAttachmentStateChangesInput, opts ...request.Option) (*SubmitAttachmentStateChangesOutput, error) {
  4563  	req, out := c.SubmitAttachmentStateChangesRequest(input)
  4564  	req.SetContext(ctx)
  4565  	req.ApplyOptions(opts...)
  4566  	return out, req.Send()
  4567  }
  4568  
  4569  const opSubmitContainerStateChange = "SubmitContainerStateChange"
  4570  
  4571  // SubmitContainerStateChangeRequest generates a "aws/request.Request" representing the
  4572  // client's request for the SubmitContainerStateChange operation. The "output" return
  4573  // value will be populated with the request's response once the request completes
  4574  // successfully.
  4575  //
  4576  // Use "Send" method on the returned Request to send the API call to the service.
  4577  // the "output" return value is not valid until after Send returns without error.
  4578  //
  4579  // See SubmitContainerStateChange for more information on using the SubmitContainerStateChange
  4580  // API call, and error handling.
  4581  //
  4582  // This method is useful when you want to inject custom logic or configuration
  4583  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4584  //
  4585  //
  4586  //    // Example sending a request using the SubmitContainerStateChangeRequest method.
  4587  //    req, resp := client.SubmitContainerStateChangeRequest(params)
  4588  //
  4589  //    err := req.Send()
  4590  //    if err == nil { // resp is now filled
  4591  //        fmt.Println(resp)
  4592  //    }
  4593  //
  4594  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChange
  4595  func (c *ECS) SubmitContainerStateChangeRequest(input *SubmitContainerStateChangeInput) (req *request.Request, output *SubmitContainerStateChangeOutput) {
  4596  	op := &request.Operation{
  4597  		Name:       opSubmitContainerStateChange,
  4598  		HTTPMethod: "POST",
  4599  		HTTPPath:   "/",
  4600  	}
  4601  
  4602  	if input == nil {
  4603  		input = &SubmitContainerStateChangeInput{}
  4604  	}
  4605  
  4606  	output = &SubmitContainerStateChangeOutput{}
  4607  	req = c.newRequest(op, input, output)
  4608  	return
  4609  }
  4610  
  4611  // SubmitContainerStateChange API operation for Amazon EC2 Container Service.
  4612  //
  4613  //
  4614  // This action is only used by the Amazon ECS agent, and it is not intended
  4615  // for use outside of the agent.
  4616  //
  4617  // Sent to acknowledge that a container changed states.
  4618  //
  4619  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4620  // with awserr.Error's Code and Message methods to get detailed information about
  4621  // the error.
  4622  //
  4623  // See the AWS API reference guide for Amazon EC2 Container Service's
  4624  // API operation SubmitContainerStateChange for usage and error information.
  4625  //
  4626  // Returned Error Types:
  4627  //   * ServerException
  4628  //   These errors are usually caused by a server issue.
  4629  //
  4630  //   * ClientException
  4631  //   These errors are usually caused by a client action, such as using an action
  4632  //   or resource on behalf of a user that doesn't have permissions to use the
  4633  //   action or resource, or specifying an identifier that is not valid.
  4634  //
  4635  //   * AccessDeniedException
  4636  //   You do not have authorization to perform the requested action.
  4637  //
  4638  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChange
  4639  func (c *ECS) SubmitContainerStateChange(input *SubmitContainerStateChangeInput) (*SubmitContainerStateChangeOutput, error) {
  4640  	req, out := c.SubmitContainerStateChangeRequest(input)
  4641  	return out, req.Send()
  4642  }
  4643  
  4644  // SubmitContainerStateChangeWithContext is the same as SubmitContainerStateChange with the addition of
  4645  // the ability to pass a context and additional request options.
  4646  //
  4647  // See SubmitContainerStateChange for details on how to use this API operation.
  4648  //
  4649  // The context must be non-nil and will be used for request cancellation. If
  4650  // the context is nil a panic will occur. In the future the SDK may create
  4651  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4652  // for more information on using Contexts.
  4653  func (c *ECS) SubmitContainerStateChangeWithContext(ctx aws.Context, input *SubmitContainerStateChangeInput, opts ...request.Option) (*SubmitContainerStateChangeOutput, error) {
  4654  	req, out := c.SubmitContainerStateChangeRequest(input)
  4655  	req.SetContext(ctx)
  4656  	req.ApplyOptions(opts...)
  4657  	return out, req.Send()
  4658  }
  4659  
  4660  const opSubmitTaskStateChange = "SubmitTaskStateChange"
  4661  
  4662  // SubmitTaskStateChangeRequest generates a "aws/request.Request" representing the
  4663  // client's request for the SubmitTaskStateChange operation. The "output" return
  4664  // value will be populated with the request's response once the request completes
  4665  // successfully.
  4666  //
  4667  // Use "Send" method on the returned Request to send the API call to the service.
  4668  // the "output" return value is not valid until after Send returns without error.
  4669  //
  4670  // See SubmitTaskStateChange for more information on using the SubmitTaskStateChange
  4671  // API call, and error handling.
  4672  //
  4673  // This method is useful when you want to inject custom logic or configuration
  4674  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4675  //
  4676  //
  4677  //    // Example sending a request using the SubmitTaskStateChangeRequest method.
  4678  //    req, resp := client.SubmitTaskStateChangeRequest(params)
  4679  //
  4680  //    err := req.Send()
  4681  //    if err == nil { // resp is now filled
  4682  //        fmt.Println(resp)
  4683  //    }
  4684  //
  4685  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChange
  4686  func (c *ECS) SubmitTaskStateChangeRequest(input *SubmitTaskStateChangeInput) (req *request.Request, output *SubmitTaskStateChangeOutput) {
  4687  	op := &request.Operation{
  4688  		Name:       opSubmitTaskStateChange,
  4689  		HTTPMethod: "POST",
  4690  		HTTPPath:   "/",
  4691  	}
  4692  
  4693  	if input == nil {
  4694  		input = &SubmitTaskStateChangeInput{}
  4695  	}
  4696  
  4697  	output = &SubmitTaskStateChangeOutput{}
  4698  	req = c.newRequest(op, input, output)
  4699  	return
  4700  }
  4701  
  4702  // SubmitTaskStateChange API operation for Amazon EC2 Container Service.
  4703  //
  4704  //
  4705  // This action is only used by the Amazon ECS agent, and it is not intended
  4706  // for use outside of the agent.
  4707  //
  4708  // Sent to acknowledge that a task changed states.
  4709  //
  4710  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4711  // with awserr.Error's Code and Message methods to get detailed information about
  4712  // the error.
  4713  //
  4714  // See the AWS API reference guide for Amazon EC2 Container Service's
  4715  // API operation SubmitTaskStateChange for usage and error information.
  4716  //
  4717  // Returned Error Types:
  4718  //   * ServerException
  4719  //   These errors are usually caused by a server issue.
  4720  //
  4721  //   * ClientException
  4722  //   These errors are usually caused by a client action, such as using an action
  4723  //   or resource on behalf of a user that doesn't have permissions to use the
  4724  //   action or resource, or specifying an identifier that is not valid.
  4725  //
  4726  //   * AccessDeniedException
  4727  //   You do not have authorization to perform the requested action.
  4728  //
  4729  //   * InvalidParameterException
  4730  //   The specified parameter is invalid. Review the available parameters for the
  4731  //   API request.
  4732  //
  4733  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChange
  4734  func (c *ECS) SubmitTaskStateChange(input *SubmitTaskStateChangeInput) (*SubmitTaskStateChangeOutput, error) {
  4735  	req, out := c.SubmitTaskStateChangeRequest(input)
  4736  	return out, req.Send()
  4737  }
  4738  
  4739  // SubmitTaskStateChangeWithContext is the same as SubmitTaskStateChange with the addition of
  4740  // the ability to pass a context and additional request options.
  4741  //
  4742  // See SubmitTaskStateChange for details on how to use this API operation.
  4743  //
  4744  // The context must be non-nil and will be used for request cancellation. If
  4745  // the context is nil a panic will occur. In the future the SDK may create
  4746  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4747  // for more information on using Contexts.
  4748  func (c *ECS) SubmitTaskStateChangeWithContext(ctx aws.Context, input *SubmitTaskStateChangeInput, opts ...request.Option) (*SubmitTaskStateChangeOutput, error) {
  4749  	req, out := c.SubmitTaskStateChangeRequest(input)
  4750  	req.SetContext(ctx)
  4751  	req.ApplyOptions(opts...)
  4752  	return out, req.Send()
  4753  }
  4754  
  4755  const opTagResource = "TagResource"
  4756  
  4757  // TagResourceRequest generates a "aws/request.Request" representing the
  4758  // client's request for the TagResource operation. The "output" return
  4759  // value will be populated with the request's response once the request completes
  4760  // successfully.
  4761  //
  4762  // Use "Send" method on the returned Request to send the API call to the service.
  4763  // the "output" return value is not valid until after Send returns without error.
  4764  //
  4765  // See TagResource for more information on using the TagResource
  4766  // API call, and error handling.
  4767  //
  4768  // This method is useful when you want to inject custom logic or configuration
  4769  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4770  //
  4771  //
  4772  //    // Example sending a request using the TagResourceRequest method.
  4773  //    req, resp := client.TagResourceRequest(params)
  4774  //
  4775  //    err := req.Send()
  4776  //    if err == nil { // resp is now filled
  4777  //        fmt.Println(resp)
  4778  //    }
  4779  //
  4780  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TagResource
  4781  func (c *ECS) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
  4782  	op := &request.Operation{
  4783  		Name:       opTagResource,
  4784  		HTTPMethod: "POST",
  4785  		HTTPPath:   "/",
  4786  	}
  4787  
  4788  	if input == nil {
  4789  		input = &TagResourceInput{}
  4790  	}
  4791  
  4792  	output = &TagResourceOutput{}
  4793  	req = c.newRequest(op, input, output)
  4794  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4795  	return
  4796  }
  4797  
  4798  // TagResource API operation for Amazon EC2 Container Service.
  4799  //
  4800  // Associates the specified tags to a resource with the specified resourceArn.
  4801  // If existing tags on a resource are not specified in the request parameters,
  4802  // they are not changed. When a resource is deleted, the tags associated with
  4803  // that resource are deleted as well.
  4804  //
  4805  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4806  // with awserr.Error's Code and Message methods to get detailed information about
  4807  // the error.
  4808  //
  4809  // See the AWS API reference guide for Amazon EC2 Container Service's
  4810  // API operation TagResource for usage and error information.
  4811  //
  4812  // Returned Error Types:
  4813  //   * ServerException
  4814  //   These errors are usually caused by a server issue.
  4815  //
  4816  //   * ClientException
  4817  //   These errors are usually caused by a client action, such as using an action
  4818  //   or resource on behalf of a user that doesn't have permissions to use the
  4819  //   action or resource, or specifying an identifier that is not valid.
  4820  //
  4821  //   * ClusterNotFoundException
  4822  //   The specified cluster could not be found. You can view your available clusters
  4823  //   with ListClusters. Amazon ECS clusters are Region-specific.
  4824  //
  4825  //   * ResourceNotFoundException
  4826  //   The specified resource could not be found.
  4827  //
  4828  //   * InvalidParameterException
  4829  //   The specified parameter is invalid. Review the available parameters for the
  4830  //   API request.
  4831  //
  4832  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TagResource
  4833  func (c *ECS) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
  4834  	req, out := c.TagResourceRequest(input)
  4835  	return out, req.Send()
  4836  }
  4837  
  4838  // TagResourceWithContext is the same as TagResource with the addition of
  4839  // the ability to pass a context and additional request options.
  4840  //
  4841  // See TagResource for details on how to use this API operation.
  4842  //
  4843  // The context must be non-nil and will be used for request cancellation. If
  4844  // the context is nil a panic will occur. In the future the SDK may create
  4845  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4846  // for more information on using Contexts.
  4847  func (c *ECS) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
  4848  	req, out := c.TagResourceRequest(input)
  4849  	req.SetContext(ctx)
  4850  	req.ApplyOptions(opts...)
  4851  	return out, req.Send()
  4852  }
  4853  
  4854  const opUntagResource = "UntagResource"
  4855  
  4856  // UntagResourceRequest generates a "aws/request.Request" representing the
  4857  // client's request for the UntagResource operation. The "output" return
  4858  // value will be populated with the request's response once the request completes
  4859  // successfully.
  4860  //
  4861  // Use "Send" method on the returned Request to send the API call to the service.
  4862  // the "output" return value is not valid until after Send returns without error.
  4863  //
  4864  // See UntagResource for more information on using the UntagResource
  4865  // API call, and error handling.
  4866  //
  4867  // This method is useful when you want to inject custom logic or configuration
  4868  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4869  //
  4870  //
  4871  //    // Example sending a request using the UntagResourceRequest method.
  4872  //    req, resp := client.UntagResourceRequest(params)
  4873  //
  4874  //    err := req.Send()
  4875  //    if err == nil { // resp is now filled
  4876  //        fmt.Println(resp)
  4877  //    }
  4878  //
  4879  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UntagResource
  4880  func (c *ECS) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
  4881  	op := &request.Operation{
  4882  		Name:       opUntagResource,
  4883  		HTTPMethod: "POST",
  4884  		HTTPPath:   "/",
  4885  	}
  4886  
  4887  	if input == nil {
  4888  		input = &UntagResourceInput{}
  4889  	}
  4890  
  4891  	output = &UntagResourceOutput{}
  4892  	req = c.newRequest(op, input, output)
  4893  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4894  	return
  4895  }
  4896  
  4897  // UntagResource API operation for Amazon EC2 Container Service.
  4898  //
  4899  // Deletes specified tags from a resource.
  4900  //
  4901  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4902  // with awserr.Error's Code and Message methods to get detailed information about
  4903  // the error.
  4904  //
  4905  // See the AWS API reference guide for Amazon EC2 Container Service's
  4906  // API operation UntagResource for usage and error information.
  4907  //
  4908  // Returned Error Types:
  4909  //   * ServerException
  4910  //   These errors are usually caused by a server issue.
  4911  //
  4912  //   * ClientException
  4913  //   These errors are usually caused by a client action, such as using an action
  4914  //   or resource on behalf of a user that doesn't have permissions to use the
  4915  //   action or resource, or specifying an identifier that is not valid.
  4916  //
  4917  //   * ClusterNotFoundException
  4918  //   The specified cluster could not be found. You can view your available clusters
  4919  //   with ListClusters. Amazon ECS clusters are Region-specific.
  4920  //
  4921  //   * ResourceNotFoundException
  4922  //   The specified resource could not be found.
  4923  //
  4924  //   * InvalidParameterException
  4925  //   The specified parameter is invalid. Review the available parameters for the
  4926  //   API request.
  4927  //
  4928  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UntagResource
  4929  func (c *ECS) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
  4930  	req, out := c.UntagResourceRequest(input)
  4931  	return out, req.Send()
  4932  }
  4933  
  4934  // UntagResourceWithContext is the same as UntagResource with the addition of
  4935  // the ability to pass a context and additional request options.
  4936  //
  4937  // See UntagResource for details on how to use this API operation.
  4938  //
  4939  // The context must be non-nil and will be used for request cancellation. If
  4940  // the context is nil a panic will occur. In the future the SDK may create
  4941  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4942  // for more information on using Contexts.
  4943  func (c *ECS) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
  4944  	req, out := c.UntagResourceRequest(input)
  4945  	req.SetContext(ctx)
  4946  	req.ApplyOptions(opts...)
  4947  	return out, req.Send()
  4948  }
  4949  
  4950  const opUpdateCapacityProvider = "UpdateCapacityProvider"
  4951  
  4952  // UpdateCapacityProviderRequest generates a "aws/request.Request" representing the
  4953  // client's request for the UpdateCapacityProvider operation. The "output" return
  4954  // value will be populated with the request's response once the request completes
  4955  // successfully.
  4956  //
  4957  // Use "Send" method on the returned Request to send the API call to the service.
  4958  // the "output" return value is not valid until after Send returns without error.
  4959  //
  4960  // See UpdateCapacityProvider for more information on using the UpdateCapacityProvider
  4961  // API call, and error handling.
  4962  //
  4963  // This method is useful when you want to inject custom logic or configuration
  4964  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4965  //
  4966  //
  4967  //    // Example sending a request using the UpdateCapacityProviderRequest method.
  4968  //    req, resp := client.UpdateCapacityProviderRequest(params)
  4969  //
  4970  //    err := req.Send()
  4971  //    if err == nil { // resp is now filled
  4972  //        fmt.Println(resp)
  4973  //    }
  4974  //
  4975  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateCapacityProvider
  4976  func (c *ECS) UpdateCapacityProviderRequest(input *UpdateCapacityProviderInput) (req *request.Request, output *UpdateCapacityProviderOutput) {
  4977  	op := &request.Operation{
  4978  		Name:       opUpdateCapacityProvider,
  4979  		HTTPMethod: "POST",
  4980  		HTTPPath:   "/",
  4981  	}
  4982  
  4983  	if input == nil {
  4984  		input = &UpdateCapacityProviderInput{}
  4985  	}
  4986  
  4987  	output = &UpdateCapacityProviderOutput{}
  4988  	req = c.newRequest(op, input, output)
  4989  	return
  4990  }
  4991  
  4992  // UpdateCapacityProvider API operation for Amazon EC2 Container Service.
  4993  //
  4994  // Modifies the parameters for a capacity provider.
  4995  //
  4996  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4997  // with awserr.Error's Code and Message methods to get detailed information about
  4998  // the error.
  4999  //
  5000  // See the AWS API reference guide for Amazon EC2 Container Service's
  5001  // API operation UpdateCapacityProvider for usage and error information.
  5002  //
  5003  // Returned Error Types:
  5004  //   * ServerException
  5005  //   These errors are usually caused by a server issue.
  5006  //
  5007  //   * ClientException
  5008  //   These errors are usually caused by a client action, such as using an action
  5009  //   or resource on behalf of a user that doesn't have permissions to use the
  5010  //   action or resource, or specifying an identifier that is not valid.
  5011  //
  5012  //   * InvalidParameterException
  5013  //   The specified parameter is invalid. Review the available parameters for the
  5014  //   API request.
  5015  //
  5016  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateCapacityProvider
  5017  func (c *ECS) UpdateCapacityProvider(input *UpdateCapacityProviderInput) (*UpdateCapacityProviderOutput, error) {
  5018  	req, out := c.UpdateCapacityProviderRequest(input)
  5019  	return out, req.Send()
  5020  }
  5021  
  5022  // UpdateCapacityProviderWithContext is the same as UpdateCapacityProvider with the addition of
  5023  // the ability to pass a context and additional request options.
  5024  //
  5025  // See UpdateCapacityProvider for details on how to use this API operation.
  5026  //
  5027  // The context must be non-nil and will be used for request cancellation. If
  5028  // the context is nil a panic will occur. In the future the SDK may create
  5029  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5030  // for more information on using Contexts.
  5031  func (c *ECS) UpdateCapacityProviderWithContext(ctx aws.Context, input *UpdateCapacityProviderInput, opts ...request.Option) (*UpdateCapacityProviderOutput, error) {
  5032  	req, out := c.UpdateCapacityProviderRequest(input)
  5033  	req.SetContext(ctx)
  5034  	req.ApplyOptions(opts...)
  5035  	return out, req.Send()
  5036  }
  5037  
  5038  const opUpdateCluster = "UpdateCluster"
  5039  
  5040  // UpdateClusterRequest generates a "aws/request.Request" representing the
  5041  // client's request for the UpdateCluster operation. The "output" return
  5042  // value will be populated with the request's response once the request completes
  5043  // successfully.
  5044  //
  5045  // Use "Send" method on the returned Request to send the API call to the service.
  5046  // the "output" return value is not valid until after Send returns without error.
  5047  //
  5048  // See UpdateCluster for more information on using the UpdateCluster
  5049  // API call, and error handling.
  5050  //
  5051  // This method is useful when you want to inject custom logic or configuration
  5052  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5053  //
  5054  //
  5055  //    // Example sending a request using the UpdateClusterRequest method.
  5056  //    req, resp := client.UpdateClusterRequest(params)
  5057  //
  5058  //    err := req.Send()
  5059  //    if err == nil { // resp is now filled
  5060  //        fmt.Println(resp)
  5061  //    }
  5062  //
  5063  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateCluster
  5064  func (c *ECS) UpdateClusterRequest(input *UpdateClusterInput) (req *request.Request, output *UpdateClusterOutput) {
  5065  	op := &request.Operation{
  5066  		Name:       opUpdateCluster,
  5067  		HTTPMethod: "POST",
  5068  		HTTPPath:   "/",
  5069  	}
  5070  
  5071  	if input == nil {
  5072  		input = &UpdateClusterInput{}
  5073  	}
  5074  
  5075  	output = &UpdateClusterOutput{}
  5076  	req = c.newRequest(op, input, output)
  5077  	return
  5078  }
  5079  
  5080  // UpdateCluster API operation for Amazon EC2 Container Service.
  5081  //
  5082  // Updates the cluster.
  5083  //
  5084  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5085  // with awserr.Error's Code and Message methods to get detailed information about
  5086  // the error.
  5087  //
  5088  // See the AWS API reference guide for Amazon EC2 Container Service's
  5089  // API operation UpdateCluster for usage and error information.
  5090  //
  5091  // Returned Error Types:
  5092  //   * ServerException
  5093  //   These errors are usually caused by a server issue.
  5094  //
  5095  //   * ClientException
  5096  //   These errors are usually caused by a client action, such as using an action
  5097  //   or resource on behalf of a user that doesn't have permissions to use the
  5098  //   action or resource, or specifying an identifier that is not valid.
  5099  //
  5100  //   * ClusterNotFoundException
  5101  //   The specified cluster could not be found. You can view your available clusters
  5102  //   with ListClusters. Amazon ECS clusters are Region-specific.
  5103  //
  5104  //   * InvalidParameterException
  5105  //   The specified parameter is invalid. Review the available parameters for the
  5106  //   API request.
  5107  //
  5108  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateCluster
  5109  func (c *ECS) UpdateCluster(input *UpdateClusterInput) (*UpdateClusterOutput, error) {
  5110  	req, out := c.UpdateClusterRequest(input)
  5111  	return out, req.Send()
  5112  }
  5113  
  5114  // UpdateClusterWithContext is the same as UpdateCluster with the addition of
  5115  // the ability to pass a context and additional request options.
  5116  //
  5117  // See UpdateCluster for details on how to use this API operation.
  5118  //
  5119  // The context must be non-nil and will be used for request cancellation. If
  5120  // the context is nil a panic will occur. In the future the SDK may create
  5121  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5122  // for more information on using Contexts.
  5123  func (c *ECS) UpdateClusterWithContext(ctx aws.Context, input *UpdateClusterInput, opts ...request.Option) (*UpdateClusterOutput, error) {
  5124  	req, out := c.UpdateClusterRequest(input)
  5125  	req.SetContext(ctx)
  5126  	req.ApplyOptions(opts...)
  5127  	return out, req.Send()
  5128  }
  5129  
  5130  const opUpdateClusterSettings = "UpdateClusterSettings"
  5131  
  5132  // UpdateClusterSettingsRequest generates a "aws/request.Request" representing the
  5133  // client's request for the UpdateClusterSettings operation. The "output" return
  5134  // value will be populated with the request's response once the request completes
  5135  // successfully.
  5136  //
  5137  // Use "Send" method on the returned Request to send the API call to the service.
  5138  // the "output" return value is not valid until after Send returns without error.
  5139  //
  5140  // See UpdateClusterSettings for more information on using the UpdateClusterSettings
  5141  // API call, and error handling.
  5142  //
  5143  // This method is useful when you want to inject custom logic or configuration
  5144  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5145  //
  5146  //
  5147  //    // Example sending a request using the UpdateClusterSettingsRequest method.
  5148  //    req, resp := client.UpdateClusterSettingsRequest(params)
  5149  //
  5150  //    err := req.Send()
  5151  //    if err == nil { // resp is now filled
  5152  //        fmt.Println(resp)
  5153  //    }
  5154  //
  5155  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateClusterSettings
  5156  func (c *ECS) UpdateClusterSettingsRequest(input *UpdateClusterSettingsInput) (req *request.Request, output *UpdateClusterSettingsOutput) {
  5157  	op := &request.Operation{
  5158  		Name:       opUpdateClusterSettings,
  5159  		HTTPMethod: "POST",
  5160  		HTTPPath:   "/",
  5161  	}
  5162  
  5163  	if input == nil {
  5164  		input = &UpdateClusterSettingsInput{}
  5165  	}
  5166  
  5167  	output = &UpdateClusterSettingsOutput{}
  5168  	req = c.newRequest(op, input, output)
  5169  	return
  5170  }
  5171  
  5172  // UpdateClusterSettings API operation for Amazon EC2 Container Service.
  5173  //
  5174  // Modifies the settings to use for a cluster.
  5175  //
  5176  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5177  // with awserr.Error's Code and Message methods to get detailed information about
  5178  // the error.
  5179  //
  5180  // See the AWS API reference guide for Amazon EC2 Container Service's
  5181  // API operation UpdateClusterSettings for usage and error information.
  5182  //
  5183  // Returned Error Types:
  5184  //   * ServerException
  5185  //   These errors are usually caused by a server issue.
  5186  //
  5187  //   * ClientException
  5188  //   These errors are usually caused by a client action, such as using an action
  5189  //   or resource on behalf of a user that doesn't have permissions to use the
  5190  //   action or resource, or specifying an identifier that is not valid.
  5191  //
  5192  //   * ClusterNotFoundException
  5193  //   The specified cluster could not be found. You can view your available clusters
  5194  //   with ListClusters. Amazon ECS clusters are Region-specific.
  5195  //
  5196  //   * InvalidParameterException
  5197  //   The specified parameter is invalid. Review the available parameters for the
  5198  //   API request.
  5199  //
  5200  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateClusterSettings
  5201  func (c *ECS) UpdateClusterSettings(input *UpdateClusterSettingsInput) (*UpdateClusterSettingsOutput, error) {
  5202  	req, out := c.UpdateClusterSettingsRequest(input)
  5203  	return out, req.Send()
  5204  }
  5205  
  5206  // UpdateClusterSettingsWithContext is the same as UpdateClusterSettings with the addition of
  5207  // the ability to pass a context and additional request options.
  5208  //
  5209  // See UpdateClusterSettings for details on how to use this API operation.
  5210  //
  5211  // The context must be non-nil and will be used for request cancellation. If
  5212  // the context is nil a panic will occur. In the future the SDK may create
  5213  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5214  // for more information on using Contexts.
  5215  func (c *ECS) UpdateClusterSettingsWithContext(ctx aws.Context, input *UpdateClusterSettingsInput, opts ...request.Option) (*UpdateClusterSettingsOutput, error) {
  5216  	req, out := c.UpdateClusterSettingsRequest(input)
  5217  	req.SetContext(ctx)
  5218  	req.ApplyOptions(opts...)
  5219  	return out, req.Send()
  5220  }
  5221  
  5222  const opUpdateContainerAgent = "UpdateContainerAgent"
  5223  
  5224  // UpdateContainerAgentRequest generates a "aws/request.Request" representing the
  5225  // client's request for the UpdateContainerAgent operation. The "output" return
  5226  // value will be populated with the request's response once the request completes
  5227  // successfully.
  5228  //
  5229  // Use "Send" method on the returned Request to send the API call to the service.
  5230  // the "output" return value is not valid until after Send returns without error.
  5231  //
  5232  // See UpdateContainerAgent for more information on using the UpdateContainerAgent
  5233  // API call, and error handling.
  5234  //
  5235  // This method is useful when you want to inject custom logic or configuration
  5236  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5237  //
  5238  //
  5239  //    // Example sending a request using the UpdateContainerAgentRequest method.
  5240  //    req, resp := client.UpdateContainerAgentRequest(params)
  5241  //
  5242  //    err := req.Send()
  5243  //    if err == nil { // resp is now filled
  5244  //        fmt.Println(resp)
  5245  //    }
  5246  //
  5247  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
  5248  func (c *ECS) UpdateContainerAgentRequest(input *UpdateContainerAgentInput) (req *request.Request, output *UpdateContainerAgentOutput) {
  5249  	op := &request.Operation{
  5250  		Name:       opUpdateContainerAgent,
  5251  		HTTPMethod: "POST",
  5252  		HTTPPath:   "/",
  5253  	}
  5254  
  5255  	if input == nil {
  5256  		input = &UpdateContainerAgentInput{}
  5257  	}
  5258  
  5259  	output = &UpdateContainerAgentOutput{}
  5260  	req = c.newRequest(op, input, output)
  5261  	return
  5262  }
  5263  
  5264  // UpdateContainerAgent API operation for Amazon EC2 Container Service.
  5265  //
  5266  // Updates the Amazon ECS container agent on a specified container instance.
  5267  // Updating the Amazon ECS container agent does not interrupt running tasks
  5268  // or services on the container instance. The process for updating the agent
  5269  // differs depending on whether your container instance was launched with the
  5270  // Amazon ECS-optimized AMI or another operating system.
  5271  //
  5272  // The UpdateContainerAgent API isn't supported for container instances using
  5273  // the Amazon ECS-optimized Amazon Linux 2 (arm64) AMI. To update the container
  5274  // agent, you can update the ecs-init package which will update the agent. For
  5275  // more information, see Updating the Amazon ECS container agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/agent-update-ecs-ami.html)
  5276  // in the Amazon Elastic Container Service Developer Guide.
  5277  //
  5278  // The UpdateContainerAgent API requires an Amazon ECS-optimized AMI or Amazon
  5279  // Linux AMI with the ecs-init service installed and running. For help updating
  5280  // the Amazon ECS container agent on other operating systems, see Manually updating
  5281  // the Amazon ECS container agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html#manually_update_agent)
  5282  // in the Amazon Elastic Container Service Developer Guide.
  5283  //
  5284  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5285  // with awserr.Error's Code and Message methods to get detailed information about
  5286  // the error.
  5287  //
  5288  // See the AWS API reference guide for Amazon EC2 Container Service's
  5289  // API operation UpdateContainerAgent for usage and error information.
  5290  //
  5291  // Returned Error Types:
  5292  //   * ServerException
  5293  //   These errors are usually caused by a server issue.
  5294  //
  5295  //   * ClientException
  5296  //   These errors are usually caused by a client action, such as using an action
  5297  //   or resource on behalf of a user that doesn't have permissions to use the
  5298  //   action or resource, or specifying an identifier that is not valid.
  5299  //
  5300  //   * InvalidParameterException
  5301  //   The specified parameter is invalid. Review the available parameters for the
  5302  //   API request.
  5303  //
  5304  //   * ClusterNotFoundException
  5305  //   The specified cluster could not be found. You can view your available clusters
  5306  //   with ListClusters. Amazon ECS clusters are Region-specific.
  5307  //
  5308  //   * UpdateInProgressException
  5309  //   There is already a current Amazon ECS container agent update in progress
  5310  //   on the specified container instance. If the container agent becomes disconnected
  5311  //   while it is in a transitional stage, such as PENDING or STAGING, the update
  5312  //   process can get stuck in that state. However, when the agent reconnects,
  5313  //   it resumes where it stopped previously.
  5314  //
  5315  //   * NoUpdateAvailableException
  5316  //   There is no update available for this Amazon ECS container agent. This could
  5317  //   be because the agent is already running the latest version, or it is so old
  5318  //   that there is no update path to the current version.
  5319  //
  5320  //   * MissingVersionException
  5321  //   Amazon ECS is unable to determine the current version of the Amazon ECS container
  5322  //   agent on the container instance and does not have enough information to proceed
  5323  //   with an update. This could be because the agent running on the container
  5324  //   instance is an older or custom version that does not use our version information.
  5325  //
  5326  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgent
  5327  func (c *ECS) UpdateContainerAgent(input *UpdateContainerAgentInput) (*UpdateContainerAgentOutput, error) {
  5328  	req, out := c.UpdateContainerAgentRequest(input)
  5329  	return out, req.Send()
  5330  }
  5331  
  5332  // UpdateContainerAgentWithContext is the same as UpdateContainerAgent with the addition of
  5333  // the ability to pass a context and additional request options.
  5334  //
  5335  // See UpdateContainerAgent for details on how to use this API operation.
  5336  //
  5337  // The context must be non-nil and will be used for request cancellation. If
  5338  // the context is nil a panic will occur. In the future the SDK may create
  5339  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5340  // for more information on using Contexts.
  5341  func (c *ECS) UpdateContainerAgentWithContext(ctx aws.Context, input *UpdateContainerAgentInput, opts ...request.Option) (*UpdateContainerAgentOutput, error) {
  5342  	req, out := c.UpdateContainerAgentRequest(input)
  5343  	req.SetContext(ctx)
  5344  	req.ApplyOptions(opts...)
  5345  	return out, req.Send()
  5346  }
  5347  
  5348  const opUpdateContainerInstancesState = "UpdateContainerInstancesState"
  5349  
  5350  // UpdateContainerInstancesStateRequest generates a "aws/request.Request" representing the
  5351  // client's request for the UpdateContainerInstancesState operation. The "output" return
  5352  // value will be populated with the request's response once the request completes
  5353  // successfully.
  5354  //
  5355  // Use "Send" method on the returned Request to send the API call to the service.
  5356  // the "output" return value is not valid until after Send returns without error.
  5357  //
  5358  // See UpdateContainerInstancesState for more information on using the UpdateContainerInstancesState
  5359  // API call, and error handling.
  5360  //
  5361  // This method is useful when you want to inject custom logic or configuration
  5362  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5363  //
  5364  //
  5365  //    // Example sending a request using the UpdateContainerInstancesStateRequest method.
  5366  //    req, resp := client.UpdateContainerInstancesStateRequest(params)
  5367  //
  5368  //    err := req.Send()
  5369  //    if err == nil { // resp is now filled
  5370  //        fmt.Println(resp)
  5371  //    }
  5372  //
  5373  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
  5374  func (c *ECS) UpdateContainerInstancesStateRequest(input *UpdateContainerInstancesStateInput) (req *request.Request, output *UpdateContainerInstancesStateOutput) {
  5375  	op := &request.Operation{
  5376  		Name:       opUpdateContainerInstancesState,
  5377  		HTTPMethod: "POST",
  5378  		HTTPPath:   "/",
  5379  	}
  5380  
  5381  	if input == nil {
  5382  		input = &UpdateContainerInstancesStateInput{}
  5383  	}
  5384  
  5385  	output = &UpdateContainerInstancesStateOutput{}
  5386  	req = c.newRequest(op, input, output)
  5387  	return
  5388  }
  5389  
  5390  // UpdateContainerInstancesState API operation for Amazon EC2 Container Service.
  5391  //
  5392  // Modifies the status of an Amazon ECS container instance.
  5393  //
  5394  // Once a container instance has reached an ACTIVE state, you can change the
  5395  // status of a container instance to DRAINING to manually remove an instance
  5396  // from a cluster, for example to perform system updates, update the Docker
  5397  // daemon, or scale down the cluster size.
  5398  //
  5399  // A container instance cannot be changed to DRAINING until it has reached an
  5400  // ACTIVE status. If the instance is in any other status, an error will be received.
  5401  //
  5402  // When you set a container instance to DRAINING, Amazon ECS prevents new tasks
  5403  // from being scheduled for placement on the container instance and replacement
  5404  // service tasks are started on other container instances in the cluster if
  5405  // the resources are available. Service tasks on the container instance that
  5406  // are in the PENDING state are stopped immediately.
  5407  //
  5408  // Service tasks on the container instance that are in the RUNNING state are
  5409  // stopped and replaced according to the service's deployment configuration
  5410  // parameters, minimumHealthyPercent and maximumPercent. You can change the
  5411  // deployment configuration of your service using UpdateService.
  5412  //
  5413  //    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
  5414  //    temporarily during task replacement. For example, desiredCount is four
  5415  //    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
  5416  //    before starting two new tasks. If the minimum is 100%, the service scheduler
  5417  //    can't remove existing tasks until the replacement tasks are considered
  5418  //    healthy. Tasks for services that do not use a load balancer are considered
  5419  //    healthy if they are in the RUNNING state. Tasks for services that use
  5420  //    a load balancer are considered healthy if they are in the RUNNING state
  5421  //    and the container instance they are hosted on is reported as healthy by
  5422  //    the load balancer.
  5423  //
  5424  //    * The maximumPercent parameter represents an upper limit on the number
  5425  //    of running tasks during task replacement, which enables you to define
  5426  //    the replacement batch size. For example, if desiredCount is four tasks,
  5427  //    a maximum of 200% starts four new tasks before stopping the four tasks
  5428  //    to be drained, provided that the cluster resources required to do this
  5429  //    are available. If the maximum is 100%, then replacement tasks can't start
  5430  //    until the draining tasks have stopped.
  5431  //
  5432  // Any PENDING or RUNNING tasks that do not belong to a service are not affected.
  5433  // You must wait for them to finish or stop them manually.
  5434  //
  5435  // A container instance has completed draining when it has no more RUNNING tasks.
  5436  // You can verify this using ListTasks.
  5437  //
  5438  // When a container instance has been drained, you can set a container instance
  5439  // to ACTIVE status and once it has reached that status the Amazon ECS scheduler
  5440  // can begin scheduling tasks on the instance again.
  5441  //
  5442  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5443  // with awserr.Error's Code and Message methods to get detailed information about
  5444  // the error.
  5445  //
  5446  // See the AWS API reference guide for Amazon EC2 Container Service's
  5447  // API operation UpdateContainerInstancesState for usage and error information.
  5448  //
  5449  // Returned Error Types:
  5450  //   * ServerException
  5451  //   These errors are usually caused by a server issue.
  5452  //
  5453  //   * ClientException
  5454  //   These errors are usually caused by a client action, such as using an action
  5455  //   or resource on behalf of a user that doesn't have permissions to use the
  5456  //   action or resource, or specifying an identifier that is not valid.
  5457  //
  5458  //   * InvalidParameterException
  5459  //   The specified parameter is invalid. Review the available parameters for the
  5460  //   API request.
  5461  //
  5462  //   * ClusterNotFoundException
  5463  //   The specified cluster could not be found. You can view your available clusters
  5464  //   with ListClusters. Amazon ECS clusters are Region-specific.
  5465  //
  5466  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesState
  5467  func (c *ECS) UpdateContainerInstancesState(input *UpdateContainerInstancesStateInput) (*UpdateContainerInstancesStateOutput, error) {
  5468  	req, out := c.UpdateContainerInstancesStateRequest(input)
  5469  	return out, req.Send()
  5470  }
  5471  
  5472  // UpdateContainerInstancesStateWithContext is the same as UpdateContainerInstancesState with the addition of
  5473  // the ability to pass a context and additional request options.
  5474  //
  5475  // See UpdateContainerInstancesState for details on how to use this API operation.
  5476  //
  5477  // The context must be non-nil and will be used for request cancellation. If
  5478  // the context is nil a panic will occur. In the future the SDK may create
  5479  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5480  // for more information on using Contexts.
  5481  func (c *ECS) UpdateContainerInstancesStateWithContext(ctx aws.Context, input *UpdateContainerInstancesStateInput, opts ...request.Option) (*UpdateContainerInstancesStateOutput, error) {
  5482  	req, out := c.UpdateContainerInstancesStateRequest(input)
  5483  	req.SetContext(ctx)
  5484  	req.ApplyOptions(opts...)
  5485  	return out, req.Send()
  5486  }
  5487  
  5488  const opUpdateService = "UpdateService"
  5489  
  5490  // UpdateServiceRequest generates a "aws/request.Request" representing the
  5491  // client's request for the UpdateService operation. The "output" return
  5492  // value will be populated with the request's response once the request completes
  5493  // successfully.
  5494  //
  5495  // Use "Send" method on the returned Request to send the API call to the service.
  5496  // the "output" return value is not valid until after Send returns without error.
  5497  //
  5498  // See UpdateService for more information on using the UpdateService
  5499  // API call, and error handling.
  5500  //
  5501  // This method is useful when you want to inject custom logic or configuration
  5502  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5503  //
  5504  //
  5505  //    // Example sending a request using the UpdateServiceRequest method.
  5506  //    req, resp := client.UpdateServiceRequest(params)
  5507  //
  5508  //    err := req.Send()
  5509  //    if err == nil { // resp is now filled
  5510  //        fmt.Println(resp)
  5511  //    }
  5512  //
  5513  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
  5514  func (c *ECS) UpdateServiceRequest(input *UpdateServiceInput) (req *request.Request, output *UpdateServiceOutput) {
  5515  	op := &request.Operation{
  5516  		Name:       opUpdateService,
  5517  		HTTPMethod: "POST",
  5518  		HTTPPath:   "/",
  5519  	}
  5520  
  5521  	if input == nil {
  5522  		input = &UpdateServiceInput{}
  5523  	}
  5524  
  5525  	output = &UpdateServiceOutput{}
  5526  	req = c.newRequest(op, input, output)
  5527  	return
  5528  }
  5529  
  5530  // UpdateService API operation for Amazon EC2 Container Service.
  5531  //
  5532  //
  5533  // Updating the task placement strategies and constraints on an Amazon ECS service
  5534  // remains in preview and is a Beta Service as defined by and subject to the
  5535  // Beta Service Participation Service Terms located at https://aws.amazon.com/service-terms
  5536  // (https://aws.amazon.com/service-terms) ("Beta Terms"). These Beta Terms apply
  5537  // to your participation in this preview.
  5538  //
  5539  // Modifies the parameters of a service.
  5540  //
  5541  // For services using the rolling update (ECS) deployment controller, the desired
  5542  // count, deployment configuration, network configuration, task placement constraints
  5543  // and strategies, or task definition used can be updated.
  5544  //
  5545  // For services using the blue/green (CODE_DEPLOY) deployment controller, only
  5546  // the desired count, deployment configuration, task placement constraints and
  5547  // strategies, and health check grace period can be updated using this API.
  5548  // If the network configuration, platform version, or task definition need to
  5549  // be updated, a new CodeDeploy deployment should be created. For more information,
  5550  // see CreateDeployment (https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html)
  5551  // in the CodeDeploy API Reference.
  5552  //
  5553  // For services using an external deployment controller, you can update only
  5554  // the desired count, task placement constraints and strategies, and health
  5555  // check grace period using this API. If the launch type, load balancer, network
  5556  // configuration, platform version, or task definition need to be updated, you
  5557  // should create a new task set. For more information, see CreateTaskSet.
  5558  //
  5559  // You can add to or subtract from the number of instantiations of a task definition
  5560  // in a service by specifying the cluster that the service is running in and
  5561  // a new desiredCount parameter.
  5562  //
  5563  // If you have updated the Docker image of your application, you can create
  5564  // a new task definition with that image and deploy it to your service. The
  5565  // service scheduler uses the minimum healthy percent and maximum percent parameters
  5566  // (in the service's deployment configuration) to determine the deployment strategy.
  5567  //
  5568  // If your updated Docker image uses the same tag as what is in the existing
  5569  // task definition for your service (for example, my_image:latest), you do not
  5570  // need to create a new revision of your task definition. You can update the
  5571  // service using the forceNewDeployment option. The new tasks launched by the
  5572  // deployment pull the current image/tag combination from your repository when
  5573  // they start.
  5574  //
  5575  // You can also update the deployment configuration of a service. When a deployment
  5576  // is triggered by updating the task definition of a service, the service scheduler
  5577  // uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent,
  5578  // to determine the deployment strategy.
  5579  //
  5580  //    * If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount
  5581  //    temporarily during a deployment. For example, if desiredCount is four
  5582  //    tasks, a minimum of 50% allows the scheduler to stop two existing tasks
  5583  //    before starting two new tasks. Tasks for services that do not use a load
  5584  //    balancer are considered healthy if they are in the RUNNING state. Tasks
  5585  //    for services that use a load balancer are considered healthy if they are
  5586  //    in the RUNNING state and the container instance they are hosted on is
  5587  //    reported as healthy by the load balancer.
  5588  //
  5589  //    * The maximumPercent parameter represents an upper limit on the number
  5590  //    of running tasks during a deployment, which enables you to define the
  5591  //    deployment batch size. For example, if desiredCount is four tasks, a maximum
  5592  //    of 200% starts four new tasks before stopping the four older tasks (provided
  5593  //    that the cluster resources required to do this are available).
  5594  //
  5595  // When UpdateService stops a task during a deployment, the equivalent of docker
  5596  // stop is issued to the containers running in the task. This results in a SIGTERM
  5597  // and a 30-second timeout, after which SIGKILL is sent and the containers are
  5598  // forcibly stopped. If the container handles the SIGTERM gracefully and exits
  5599  // within 30 seconds from receiving it, no SIGKILL is sent.
  5600  //
  5601  // When the service scheduler launches new tasks, it determines task placement
  5602  // in your cluster with the following logic:
  5603  //
  5604  //    * Determine which of the container instances in your cluster can support
  5605  //    your service's task definition (for example, they have the required CPU,
  5606  //    memory, ports, and container instance attributes).
  5607  //
  5608  //    * By default, the service scheduler attempts to balance tasks across Availability
  5609  //    Zones in this manner (although you can choose a different placement strategy):
  5610  //    Sort the valid container instances by the fewest number of running tasks
  5611  //    for this service in the same Availability Zone as the instance. For example,
  5612  //    if zone A has one running service task and zones B and C each have zero,
  5613  //    valid container instances in either zone B or C are considered optimal
  5614  //    for placement. Place the new service task on a valid container instance
  5615  //    in an optimal Availability Zone (based on the previous steps), favoring
  5616  //    container instances with the fewest number of running tasks for this service.
  5617  //
  5618  // When the service scheduler stops running tasks, it attempts to maintain balance
  5619  // across the Availability Zones in your cluster using the following logic:
  5620  //
  5621  //    * Sort the container instances by the largest number of running tasks
  5622  //    for this service in the same Availability Zone as the instance. For example,
  5623  //    if zone A has one running service task and zones B and C each have two,
  5624  //    container instances in either zone B or C are considered optimal for termination.
  5625  //
  5626  //    * Stop the task on a container instance in an optimal Availability Zone
  5627  //    (based on the previous steps), favoring container instances with the largest
  5628  //    number of running tasks for this service.
  5629  //
  5630  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5631  // with awserr.Error's Code and Message methods to get detailed information about
  5632  // the error.
  5633  //
  5634  // See the AWS API reference guide for Amazon EC2 Container Service's
  5635  // API operation UpdateService for usage and error information.
  5636  //
  5637  // Returned Error Types:
  5638  //   * ServerException
  5639  //   These errors are usually caused by a server issue.
  5640  //
  5641  //   * ClientException
  5642  //   These errors are usually caused by a client action, such as using an action
  5643  //   or resource on behalf of a user that doesn't have permissions to use the
  5644  //   action or resource, or specifying an identifier that is not valid.
  5645  //
  5646  //   * InvalidParameterException
  5647  //   The specified parameter is invalid. Review the available parameters for the
  5648  //   API request.
  5649  //
  5650  //   * ClusterNotFoundException
  5651  //   The specified cluster could not be found. You can view your available clusters
  5652  //   with ListClusters. Amazon ECS clusters are Region-specific.
  5653  //
  5654  //   * ServiceNotFoundException
  5655  //   The specified service could not be found. You can view your available services
  5656  //   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
  5657  //
  5658  //   * ServiceNotActiveException
  5659  //   The specified service is not active. You can't update a service that is inactive.
  5660  //   If you have previously deleted a service, you can re-create it with CreateService.
  5661  //
  5662  //   * PlatformUnknownException
  5663  //   The specified platform version does not exist.
  5664  //
  5665  //   * PlatformTaskDefinitionIncompatibilityException
  5666  //   The specified platform version does not satisfy the task definition's required
  5667  //   capabilities.
  5668  //
  5669  //   * AccessDeniedException
  5670  //   You do not have authorization to perform the requested action.
  5671  //
  5672  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateService
  5673  func (c *ECS) UpdateService(input *UpdateServiceInput) (*UpdateServiceOutput, error) {
  5674  	req, out := c.UpdateServiceRequest(input)
  5675  	return out, req.Send()
  5676  }
  5677  
  5678  // UpdateServiceWithContext is the same as UpdateService with the addition of
  5679  // the ability to pass a context and additional request options.
  5680  //
  5681  // See UpdateService for details on how to use this API operation.
  5682  //
  5683  // The context must be non-nil and will be used for request cancellation. If
  5684  // the context is nil a panic will occur. In the future the SDK may create
  5685  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5686  // for more information on using Contexts.
  5687  func (c *ECS) UpdateServiceWithContext(ctx aws.Context, input *UpdateServiceInput, opts ...request.Option) (*UpdateServiceOutput, error) {
  5688  	req, out := c.UpdateServiceRequest(input)
  5689  	req.SetContext(ctx)
  5690  	req.ApplyOptions(opts...)
  5691  	return out, req.Send()
  5692  }
  5693  
  5694  const opUpdateServicePrimaryTaskSet = "UpdateServicePrimaryTaskSet"
  5695  
  5696  // UpdateServicePrimaryTaskSetRequest generates a "aws/request.Request" representing the
  5697  // client's request for the UpdateServicePrimaryTaskSet operation. The "output" return
  5698  // value will be populated with the request's response once the request completes
  5699  // successfully.
  5700  //
  5701  // Use "Send" method on the returned Request to send the API call to the service.
  5702  // the "output" return value is not valid until after Send returns without error.
  5703  //
  5704  // See UpdateServicePrimaryTaskSet for more information on using the UpdateServicePrimaryTaskSet
  5705  // API call, and error handling.
  5706  //
  5707  // This method is useful when you want to inject custom logic or configuration
  5708  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5709  //
  5710  //
  5711  //    // Example sending a request using the UpdateServicePrimaryTaskSetRequest method.
  5712  //    req, resp := client.UpdateServicePrimaryTaskSetRequest(params)
  5713  //
  5714  //    err := req.Send()
  5715  //    if err == nil { // resp is now filled
  5716  //        fmt.Println(resp)
  5717  //    }
  5718  //
  5719  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServicePrimaryTaskSet
  5720  func (c *ECS) UpdateServicePrimaryTaskSetRequest(input *UpdateServicePrimaryTaskSetInput) (req *request.Request, output *UpdateServicePrimaryTaskSetOutput) {
  5721  	op := &request.Operation{
  5722  		Name:       opUpdateServicePrimaryTaskSet,
  5723  		HTTPMethod: "POST",
  5724  		HTTPPath:   "/",
  5725  	}
  5726  
  5727  	if input == nil {
  5728  		input = &UpdateServicePrimaryTaskSetInput{}
  5729  	}
  5730  
  5731  	output = &UpdateServicePrimaryTaskSetOutput{}
  5732  	req = c.newRequest(op, input, output)
  5733  	return
  5734  }
  5735  
  5736  // UpdateServicePrimaryTaskSet API operation for Amazon EC2 Container Service.
  5737  //
  5738  // Modifies which task set in a service is the primary task set. Any parameters
  5739  // that are updated on the primary task set in a service will transition to
  5740  // the service. This is used when a service uses the EXTERNAL deployment controller
  5741  // type. For more information, see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
  5742  // in the Amazon Elastic Container Service Developer Guide.
  5743  //
  5744  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5745  // with awserr.Error's Code and Message methods to get detailed information about
  5746  // the error.
  5747  //
  5748  // See the AWS API reference guide for Amazon EC2 Container Service's
  5749  // API operation UpdateServicePrimaryTaskSet for usage and error information.
  5750  //
  5751  // Returned Error Types:
  5752  //   * ServerException
  5753  //   These errors are usually caused by a server issue.
  5754  //
  5755  //   * ClientException
  5756  //   These errors are usually caused by a client action, such as using an action
  5757  //   or resource on behalf of a user that doesn't have permissions to use the
  5758  //   action or resource, or specifying an identifier that is not valid.
  5759  //
  5760  //   * InvalidParameterException
  5761  //   The specified parameter is invalid. Review the available parameters for the
  5762  //   API request.
  5763  //
  5764  //   * ClusterNotFoundException
  5765  //   The specified cluster could not be found. You can view your available clusters
  5766  //   with ListClusters. Amazon ECS clusters are Region-specific.
  5767  //
  5768  //   * UnsupportedFeatureException
  5769  //   The specified task is not supported in this Region.
  5770  //
  5771  //   * ServiceNotFoundException
  5772  //   The specified service could not be found. You can view your available services
  5773  //   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
  5774  //
  5775  //   * ServiceNotActiveException
  5776  //   The specified service is not active. You can't update a service that is inactive.
  5777  //   If you have previously deleted a service, you can re-create it with CreateService.
  5778  //
  5779  //   * TaskSetNotFoundException
  5780  //   The specified task set could not be found. You can view your available task
  5781  //   sets with DescribeTaskSets. Task sets are specific to each cluster, service
  5782  //   and Region.
  5783  //
  5784  //   * AccessDeniedException
  5785  //   You do not have authorization to perform the requested action.
  5786  //
  5787  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServicePrimaryTaskSet
  5788  func (c *ECS) UpdateServicePrimaryTaskSet(input *UpdateServicePrimaryTaskSetInput) (*UpdateServicePrimaryTaskSetOutput, error) {
  5789  	req, out := c.UpdateServicePrimaryTaskSetRequest(input)
  5790  	return out, req.Send()
  5791  }
  5792  
  5793  // UpdateServicePrimaryTaskSetWithContext is the same as UpdateServicePrimaryTaskSet with the addition of
  5794  // the ability to pass a context and additional request options.
  5795  //
  5796  // See UpdateServicePrimaryTaskSet for details on how to use this API operation.
  5797  //
  5798  // The context must be non-nil and will be used for request cancellation. If
  5799  // the context is nil a panic will occur. In the future the SDK may create
  5800  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5801  // for more information on using Contexts.
  5802  func (c *ECS) UpdateServicePrimaryTaskSetWithContext(ctx aws.Context, input *UpdateServicePrimaryTaskSetInput, opts ...request.Option) (*UpdateServicePrimaryTaskSetOutput, error) {
  5803  	req, out := c.UpdateServicePrimaryTaskSetRequest(input)
  5804  	req.SetContext(ctx)
  5805  	req.ApplyOptions(opts...)
  5806  	return out, req.Send()
  5807  }
  5808  
  5809  const opUpdateTaskSet = "UpdateTaskSet"
  5810  
  5811  // UpdateTaskSetRequest generates a "aws/request.Request" representing the
  5812  // client's request for the UpdateTaskSet operation. The "output" return
  5813  // value will be populated with the request's response once the request completes
  5814  // successfully.
  5815  //
  5816  // Use "Send" method on the returned Request to send the API call to the service.
  5817  // the "output" return value is not valid until after Send returns without error.
  5818  //
  5819  // See UpdateTaskSet for more information on using the UpdateTaskSet
  5820  // API call, and error handling.
  5821  //
  5822  // This method is useful when you want to inject custom logic or configuration
  5823  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5824  //
  5825  //
  5826  //    // Example sending a request using the UpdateTaskSetRequest method.
  5827  //    req, resp := client.UpdateTaskSetRequest(params)
  5828  //
  5829  //    err := req.Send()
  5830  //    if err == nil { // resp is now filled
  5831  //        fmt.Println(resp)
  5832  //    }
  5833  //
  5834  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskSet
  5835  func (c *ECS) UpdateTaskSetRequest(input *UpdateTaskSetInput) (req *request.Request, output *UpdateTaskSetOutput) {
  5836  	op := &request.Operation{
  5837  		Name:       opUpdateTaskSet,
  5838  		HTTPMethod: "POST",
  5839  		HTTPPath:   "/",
  5840  	}
  5841  
  5842  	if input == nil {
  5843  		input = &UpdateTaskSetInput{}
  5844  	}
  5845  
  5846  	output = &UpdateTaskSetOutput{}
  5847  	req = c.newRequest(op, input, output)
  5848  	return
  5849  }
  5850  
  5851  // UpdateTaskSet API operation for Amazon EC2 Container Service.
  5852  //
  5853  // Modifies a task set. This is used when a service uses the EXTERNAL deployment
  5854  // controller type. For more information, see Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
  5855  // in the Amazon Elastic Container Service Developer Guide.
  5856  //
  5857  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5858  // with awserr.Error's Code and Message methods to get detailed information about
  5859  // the error.
  5860  //
  5861  // See the AWS API reference guide for Amazon EC2 Container Service's
  5862  // API operation UpdateTaskSet for usage and error information.
  5863  //
  5864  // Returned Error Types:
  5865  //   * ServerException
  5866  //   These errors are usually caused by a server issue.
  5867  //
  5868  //   * ClientException
  5869  //   These errors are usually caused by a client action, such as using an action
  5870  //   or resource on behalf of a user that doesn't have permissions to use the
  5871  //   action or resource, or specifying an identifier that is not valid.
  5872  //
  5873  //   * InvalidParameterException
  5874  //   The specified parameter is invalid. Review the available parameters for the
  5875  //   API request.
  5876  //
  5877  //   * ClusterNotFoundException
  5878  //   The specified cluster could not be found. You can view your available clusters
  5879  //   with ListClusters. Amazon ECS clusters are Region-specific.
  5880  //
  5881  //   * UnsupportedFeatureException
  5882  //   The specified task is not supported in this Region.
  5883  //
  5884  //   * AccessDeniedException
  5885  //   You do not have authorization to perform the requested action.
  5886  //
  5887  //   * ServiceNotFoundException
  5888  //   The specified service could not be found. You can view your available services
  5889  //   with ListServices. Amazon ECS services are cluster-specific and Region-specific.
  5890  //
  5891  //   * ServiceNotActiveException
  5892  //   The specified service is not active. You can't update a service that is inactive.
  5893  //   If you have previously deleted a service, you can re-create it with CreateService.
  5894  //
  5895  //   * TaskSetNotFoundException
  5896  //   The specified task set could not be found. You can view your available task
  5897  //   sets with DescribeTaskSets. Task sets are specific to each cluster, service
  5898  //   and Region.
  5899  //
  5900  // See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskSet
  5901  func (c *ECS) UpdateTaskSet(input *UpdateTaskSetInput) (*UpdateTaskSetOutput, error) {
  5902  	req, out := c.UpdateTaskSetRequest(input)
  5903  	return out, req.Send()
  5904  }
  5905  
  5906  // UpdateTaskSetWithContext is the same as UpdateTaskSet with the addition of
  5907  // the ability to pass a context and additional request options.
  5908  //
  5909  // See UpdateTaskSet for details on how to use this API operation.
  5910  //
  5911  // The context must be non-nil and will be used for request cancellation. If
  5912  // the context is nil a panic will occur. In the future the SDK may create
  5913  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5914  // for more information on using Contexts.
  5915  func (c *ECS) UpdateTaskSetWithContext(ctx aws.Context, input *UpdateTaskSetInput, opts ...request.Option) (*UpdateTaskSetOutput, error) {
  5916  	req, out := c.UpdateTaskSetRequest(input)
  5917  	req.SetContext(ctx)
  5918  	req.ApplyOptions(opts...)
  5919  	return out, req.Send()
  5920  }
  5921  
  5922  // You do not have authorization to perform the requested action.
  5923  type AccessDeniedException struct {
  5924  	_            struct{}                  `type:"structure"`
  5925  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5926  
  5927  	Message_ *string `locationName:"message" type:"string"`
  5928  }
  5929  
  5930  // String returns the string representation.
  5931  //
  5932  // API parameter values that are decorated as "sensitive" in the API will not
  5933  // be included in the string output. The member name will be present, but the
  5934  // value will be replaced with "sensitive".
  5935  func (s AccessDeniedException) String() string {
  5936  	return awsutil.Prettify(s)
  5937  }
  5938  
  5939  // GoString returns the string representation.
  5940  //
  5941  // API parameter values that are decorated as "sensitive" in the API will not
  5942  // be included in the string output. The member name will be present, but the
  5943  // value will be replaced with "sensitive".
  5944  func (s AccessDeniedException) GoString() string {
  5945  	return s.String()
  5946  }
  5947  
  5948  func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
  5949  	return &AccessDeniedException{
  5950  		RespMetadata: v,
  5951  	}
  5952  }
  5953  
  5954  // Code returns the exception type name.
  5955  func (s *AccessDeniedException) Code() string {
  5956  	return "AccessDeniedException"
  5957  }
  5958  
  5959  // Message returns the exception's message.
  5960  func (s *AccessDeniedException) Message() string {
  5961  	if s.Message_ != nil {
  5962  		return *s.Message_
  5963  	}
  5964  	return ""
  5965  }
  5966  
  5967  // OrigErr always returns nil, satisfies awserr.Error interface.
  5968  func (s *AccessDeniedException) OrigErr() error {
  5969  	return nil
  5970  }
  5971  
  5972  func (s *AccessDeniedException) Error() string {
  5973  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5974  }
  5975  
  5976  // Status code returns the HTTP status code for the request's response error.
  5977  func (s *AccessDeniedException) StatusCode() int {
  5978  	return s.RespMetadata.StatusCode
  5979  }
  5980  
  5981  // RequestID returns the service's response RequestID for request.
  5982  func (s *AccessDeniedException) RequestID() string {
  5983  	return s.RespMetadata.RequestID
  5984  }
  5985  
  5986  // An object representing a container instance or task attachment.
  5987  type Attachment struct {
  5988  	_ struct{} `type:"structure"`
  5989  
  5990  	// Details of the attachment. For elastic network interfaces, this includes
  5991  	// the network interface ID, the MAC address, the subnet ID, and the private
  5992  	// IPv4 address.
  5993  	Details []*KeyValuePair `locationName:"details" type:"list"`
  5994  
  5995  	// The unique identifier for the attachment.
  5996  	Id *string `locationName:"id" type:"string"`
  5997  
  5998  	// The status of the attachment. Valid values are PRECREATED, CREATED, ATTACHING,
  5999  	// ATTACHED, DETACHING, DETACHED, and DELETED.
  6000  	Status *string `locationName:"status" type:"string"`
  6001  
  6002  	// The type of the attachment, such as ElasticNetworkInterface.
  6003  	Type *string `locationName:"type" type:"string"`
  6004  }
  6005  
  6006  // String returns the string representation.
  6007  //
  6008  // API parameter values that are decorated as "sensitive" in the API will not
  6009  // be included in the string output. The member name will be present, but the
  6010  // value will be replaced with "sensitive".
  6011  func (s Attachment) String() string {
  6012  	return awsutil.Prettify(s)
  6013  }
  6014  
  6015  // GoString returns the string representation.
  6016  //
  6017  // API parameter values that are decorated as "sensitive" in the API will not
  6018  // be included in the string output. The member name will be present, but the
  6019  // value will be replaced with "sensitive".
  6020  func (s Attachment) GoString() string {
  6021  	return s.String()
  6022  }
  6023  
  6024  // SetDetails sets the Details field's value.
  6025  func (s *Attachment) SetDetails(v []*KeyValuePair) *Attachment {
  6026  	s.Details = v
  6027  	return s
  6028  }
  6029  
  6030  // SetId sets the Id field's value.
  6031  func (s *Attachment) SetId(v string) *Attachment {
  6032  	s.Id = &v
  6033  	return s
  6034  }
  6035  
  6036  // SetStatus sets the Status field's value.
  6037  func (s *Attachment) SetStatus(v string) *Attachment {
  6038  	s.Status = &v
  6039  	return s
  6040  }
  6041  
  6042  // SetType sets the Type field's value.
  6043  func (s *Attachment) SetType(v string) *Attachment {
  6044  	s.Type = &v
  6045  	return s
  6046  }
  6047  
  6048  // An object representing a change in state for a task attachment.
  6049  type AttachmentStateChange struct {
  6050  	_ struct{} `type:"structure"`
  6051  
  6052  	// The Amazon Resource Name (ARN) of the attachment.
  6053  	//
  6054  	// AttachmentArn is a required field
  6055  	AttachmentArn *string `locationName:"attachmentArn" type:"string" required:"true"`
  6056  
  6057  	// The status of the attachment.
  6058  	//
  6059  	// Status is a required field
  6060  	Status *string `locationName:"status" type:"string" required:"true"`
  6061  }
  6062  
  6063  // String returns the string representation.
  6064  //
  6065  // API parameter values that are decorated as "sensitive" in the API will not
  6066  // be included in the string output. The member name will be present, but the
  6067  // value will be replaced with "sensitive".
  6068  func (s AttachmentStateChange) String() string {
  6069  	return awsutil.Prettify(s)
  6070  }
  6071  
  6072  // GoString returns the string representation.
  6073  //
  6074  // API parameter values that are decorated as "sensitive" in the API will not
  6075  // be included in the string output. The member name will be present, but the
  6076  // value will be replaced with "sensitive".
  6077  func (s AttachmentStateChange) GoString() string {
  6078  	return s.String()
  6079  }
  6080  
  6081  // Validate inspects the fields of the type to determine if they are valid.
  6082  func (s *AttachmentStateChange) Validate() error {
  6083  	invalidParams := request.ErrInvalidParams{Context: "AttachmentStateChange"}
  6084  	if s.AttachmentArn == nil {
  6085  		invalidParams.Add(request.NewErrParamRequired("AttachmentArn"))
  6086  	}
  6087  	if s.Status == nil {
  6088  		invalidParams.Add(request.NewErrParamRequired("Status"))
  6089  	}
  6090  
  6091  	if invalidParams.Len() > 0 {
  6092  		return invalidParams
  6093  	}
  6094  	return nil
  6095  }
  6096  
  6097  // SetAttachmentArn sets the AttachmentArn field's value.
  6098  func (s *AttachmentStateChange) SetAttachmentArn(v string) *AttachmentStateChange {
  6099  	s.AttachmentArn = &v
  6100  	return s
  6101  }
  6102  
  6103  // SetStatus sets the Status field's value.
  6104  func (s *AttachmentStateChange) SetStatus(v string) *AttachmentStateChange {
  6105  	s.Status = &v
  6106  	return s
  6107  }
  6108  
  6109  // An attribute is a name-value pair associated with an Amazon ECS object. Attributes
  6110  // enable you to extend the Amazon ECS data model by adding custom metadata
  6111  // to your resources. For more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
  6112  // in the Amazon Elastic Container Service Developer Guide.
  6113  type Attribute struct {
  6114  	_ struct{} `type:"structure"`
  6115  
  6116  	// The name of the attribute. The name must contain between 1 and 128 characters
  6117  	// and name may contain letters (uppercase and lowercase), numbers, hyphens,
  6118  	// underscores, forward slashes, back slashes, or periods.
  6119  	//
  6120  	// Name is a required field
  6121  	Name *string `locationName:"name" type:"string" required:"true"`
  6122  
  6123  	// The ID of the target. You can specify the short form ID for a resource or
  6124  	// the full Amazon Resource Name (ARN).
  6125  	TargetId *string `locationName:"targetId" type:"string"`
  6126  
  6127  	// The type of the target with which to attach the attribute. This parameter
  6128  	// is required if you use the short form ID for a resource instead of the full
  6129  	// ARN.
  6130  	TargetType *string `locationName:"targetType" type:"string" enum:"TargetType"`
  6131  
  6132  	// The value of the attribute. The value must contain between 1 and 128 characters
  6133  	// and may contain letters (uppercase and lowercase), numbers, hyphens, underscores,
  6134  	// periods, at signs (@), forward slashes, back slashes, colons, or spaces.
  6135  	// The value cannot contain any leading or trailing whitespace.
  6136  	Value *string `locationName:"value" type:"string"`
  6137  }
  6138  
  6139  // String returns the string representation.
  6140  //
  6141  // API parameter values that are decorated as "sensitive" in the API will not
  6142  // be included in the string output. The member name will be present, but the
  6143  // value will be replaced with "sensitive".
  6144  func (s Attribute) String() string {
  6145  	return awsutil.Prettify(s)
  6146  }
  6147  
  6148  // GoString returns the string representation.
  6149  //
  6150  // API parameter values that are decorated as "sensitive" in the API will not
  6151  // be included in the string output. The member name will be present, but the
  6152  // value will be replaced with "sensitive".
  6153  func (s Attribute) GoString() string {
  6154  	return s.String()
  6155  }
  6156  
  6157  // Validate inspects the fields of the type to determine if they are valid.
  6158  func (s *Attribute) Validate() error {
  6159  	invalidParams := request.ErrInvalidParams{Context: "Attribute"}
  6160  	if s.Name == nil {
  6161  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6162  	}
  6163  
  6164  	if invalidParams.Len() > 0 {
  6165  		return invalidParams
  6166  	}
  6167  	return nil
  6168  }
  6169  
  6170  // SetName sets the Name field's value.
  6171  func (s *Attribute) SetName(v string) *Attribute {
  6172  	s.Name = &v
  6173  	return s
  6174  }
  6175  
  6176  // SetTargetId sets the TargetId field's value.
  6177  func (s *Attribute) SetTargetId(v string) *Attribute {
  6178  	s.TargetId = &v
  6179  	return s
  6180  }
  6181  
  6182  // SetTargetType sets the TargetType field's value.
  6183  func (s *Attribute) SetTargetType(v string) *Attribute {
  6184  	s.TargetType = &v
  6185  	return s
  6186  }
  6187  
  6188  // SetValue sets the Value field's value.
  6189  func (s *Attribute) SetValue(v string) *Attribute {
  6190  	s.Value = &v
  6191  	return s
  6192  }
  6193  
  6194  // You can apply up to 10 custom attributes per resource. You can view the attributes
  6195  // of a resource with ListAttributes. You can remove existing attributes on
  6196  // a resource with DeleteAttributes.
  6197  type AttributeLimitExceededException struct {
  6198  	_            struct{}                  `type:"structure"`
  6199  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6200  
  6201  	Message_ *string `locationName:"message" type:"string"`
  6202  }
  6203  
  6204  // String returns the string representation.
  6205  //
  6206  // API parameter values that are decorated as "sensitive" in the API will not
  6207  // be included in the string output. The member name will be present, but the
  6208  // value will be replaced with "sensitive".
  6209  func (s AttributeLimitExceededException) String() string {
  6210  	return awsutil.Prettify(s)
  6211  }
  6212  
  6213  // GoString returns the string representation.
  6214  //
  6215  // API parameter values that are decorated as "sensitive" in the API will not
  6216  // be included in the string output. The member name will be present, but the
  6217  // value will be replaced with "sensitive".
  6218  func (s AttributeLimitExceededException) GoString() string {
  6219  	return s.String()
  6220  }
  6221  
  6222  func newErrorAttributeLimitExceededException(v protocol.ResponseMetadata) error {
  6223  	return &AttributeLimitExceededException{
  6224  		RespMetadata: v,
  6225  	}
  6226  }
  6227  
  6228  // Code returns the exception type name.
  6229  func (s *AttributeLimitExceededException) Code() string {
  6230  	return "AttributeLimitExceededException"
  6231  }
  6232  
  6233  // Message returns the exception's message.
  6234  func (s *AttributeLimitExceededException) Message() string {
  6235  	if s.Message_ != nil {
  6236  		return *s.Message_
  6237  	}
  6238  	return ""
  6239  }
  6240  
  6241  // OrigErr always returns nil, satisfies awserr.Error interface.
  6242  func (s *AttributeLimitExceededException) OrigErr() error {
  6243  	return nil
  6244  }
  6245  
  6246  func (s *AttributeLimitExceededException) Error() string {
  6247  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6248  }
  6249  
  6250  // Status code returns the HTTP status code for the request's response error.
  6251  func (s *AttributeLimitExceededException) StatusCode() int {
  6252  	return s.RespMetadata.StatusCode
  6253  }
  6254  
  6255  // RequestID returns the service's response RequestID for request.
  6256  func (s *AttributeLimitExceededException) RequestID() string {
  6257  	return s.RespMetadata.RequestID
  6258  }
  6259  
  6260  // The details of the Auto Scaling group for the capacity provider.
  6261  type AutoScalingGroupProvider struct {
  6262  	_ struct{} `type:"structure"`
  6263  
  6264  	// The Amazon Resource Name (ARN) that identifies the Auto Scaling group.
  6265  	//
  6266  	// AutoScalingGroupArn is a required field
  6267  	AutoScalingGroupArn *string `locationName:"autoScalingGroupArn" type:"string" required:"true"`
  6268  
  6269  	// The managed scaling settings for the Auto Scaling group capacity provider.
  6270  	ManagedScaling *ManagedScaling `locationName:"managedScaling" type:"structure"`
  6271  
  6272  	// The managed termination protection setting to use for the Auto Scaling group
  6273  	// capacity provider. This determines whether the Auto Scaling group has managed
  6274  	// termination protection.
  6275  	//
  6276  	// When using managed termination protection, managed scaling must also be used
  6277  	// otherwise managed termination protection will not work.
  6278  	//
  6279  	// When managed termination protection is enabled, Amazon ECS prevents the Amazon
  6280  	// EC2 instances in an Auto Scaling group that contain tasks from being terminated
  6281  	// during a scale-in action. The Auto Scaling group and each instance in the
  6282  	// Auto Scaling group must have instance protection from scale-in actions enabled
  6283  	// as well. For more information, see Instance Protection (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
  6284  	// in the Auto Scaling User Guide.
  6285  	//
  6286  	// When managed termination protection is disabled, your Amazon EC2 instances
  6287  	// are not protected from termination when the Auto Scaling group scales in.
  6288  	ManagedTerminationProtection *string `locationName:"managedTerminationProtection" type:"string" enum:"ManagedTerminationProtection"`
  6289  }
  6290  
  6291  // String returns the string representation.
  6292  //
  6293  // API parameter values that are decorated as "sensitive" in the API will not
  6294  // be included in the string output. The member name will be present, but the
  6295  // value will be replaced with "sensitive".
  6296  func (s AutoScalingGroupProvider) String() string {
  6297  	return awsutil.Prettify(s)
  6298  }
  6299  
  6300  // GoString returns the string representation.
  6301  //
  6302  // API parameter values that are decorated as "sensitive" in the API will not
  6303  // be included in the string output. The member name will be present, but the
  6304  // value will be replaced with "sensitive".
  6305  func (s AutoScalingGroupProvider) GoString() string {
  6306  	return s.String()
  6307  }
  6308  
  6309  // Validate inspects the fields of the type to determine if they are valid.
  6310  func (s *AutoScalingGroupProvider) Validate() error {
  6311  	invalidParams := request.ErrInvalidParams{Context: "AutoScalingGroupProvider"}
  6312  	if s.AutoScalingGroupArn == nil {
  6313  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupArn"))
  6314  	}
  6315  	if s.ManagedScaling != nil {
  6316  		if err := s.ManagedScaling.Validate(); err != nil {
  6317  			invalidParams.AddNested("ManagedScaling", err.(request.ErrInvalidParams))
  6318  		}
  6319  	}
  6320  
  6321  	if invalidParams.Len() > 0 {
  6322  		return invalidParams
  6323  	}
  6324  	return nil
  6325  }
  6326  
  6327  // SetAutoScalingGroupArn sets the AutoScalingGroupArn field's value.
  6328  func (s *AutoScalingGroupProvider) SetAutoScalingGroupArn(v string) *AutoScalingGroupProvider {
  6329  	s.AutoScalingGroupArn = &v
  6330  	return s
  6331  }
  6332  
  6333  // SetManagedScaling sets the ManagedScaling field's value.
  6334  func (s *AutoScalingGroupProvider) SetManagedScaling(v *ManagedScaling) *AutoScalingGroupProvider {
  6335  	s.ManagedScaling = v
  6336  	return s
  6337  }
  6338  
  6339  // SetManagedTerminationProtection sets the ManagedTerminationProtection field's value.
  6340  func (s *AutoScalingGroupProvider) SetManagedTerminationProtection(v string) *AutoScalingGroupProvider {
  6341  	s.ManagedTerminationProtection = &v
  6342  	return s
  6343  }
  6344  
  6345  // The details of the Auto Scaling group capacity provider to update.
  6346  type AutoScalingGroupProviderUpdate struct {
  6347  	_ struct{} `type:"structure"`
  6348  
  6349  	// The managed scaling settings for the Auto Scaling group capacity provider.
  6350  	ManagedScaling *ManagedScaling `locationName:"managedScaling" type:"structure"`
  6351  
  6352  	// The managed termination protection setting to use for the Auto Scaling group
  6353  	// capacity provider. This determines whether the Auto Scaling group has managed
  6354  	// termination protection.
  6355  	//
  6356  	// When using managed termination protection, managed scaling must also be used
  6357  	// otherwise managed termination protection will not work.
  6358  	//
  6359  	// When managed termination protection is enabled, Amazon ECS prevents the Amazon
  6360  	// EC2 instances in an Auto Scaling group that contain tasks from being terminated
  6361  	// during a scale-in action. The Auto Scaling group and each instance in the
  6362  	// Auto Scaling group must have instance protection from scale-in actions enabled
  6363  	// as well. For more information, see Instance Protection (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
  6364  	// in the Auto Scaling User Guide.
  6365  	//
  6366  	// When managed termination protection is disabled, your Amazon EC2 instances
  6367  	// are not protected from termination when the Auto Scaling group scales in.
  6368  	ManagedTerminationProtection *string `locationName:"managedTerminationProtection" type:"string" enum:"ManagedTerminationProtection"`
  6369  }
  6370  
  6371  // String returns the string representation.
  6372  //
  6373  // API parameter values that are decorated as "sensitive" in the API will not
  6374  // be included in the string output. The member name will be present, but the
  6375  // value will be replaced with "sensitive".
  6376  func (s AutoScalingGroupProviderUpdate) String() string {
  6377  	return awsutil.Prettify(s)
  6378  }
  6379  
  6380  // GoString returns the string representation.
  6381  //
  6382  // API parameter values that are decorated as "sensitive" in the API will not
  6383  // be included in the string output. The member name will be present, but the
  6384  // value will be replaced with "sensitive".
  6385  func (s AutoScalingGroupProviderUpdate) GoString() string {
  6386  	return s.String()
  6387  }
  6388  
  6389  // Validate inspects the fields of the type to determine if they are valid.
  6390  func (s *AutoScalingGroupProviderUpdate) Validate() error {
  6391  	invalidParams := request.ErrInvalidParams{Context: "AutoScalingGroupProviderUpdate"}
  6392  	if s.ManagedScaling != nil {
  6393  		if err := s.ManagedScaling.Validate(); err != nil {
  6394  			invalidParams.AddNested("ManagedScaling", err.(request.ErrInvalidParams))
  6395  		}
  6396  	}
  6397  
  6398  	if invalidParams.Len() > 0 {
  6399  		return invalidParams
  6400  	}
  6401  	return nil
  6402  }
  6403  
  6404  // SetManagedScaling sets the ManagedScaling field's value.
  6405  func (s *AutoScalingGroupProviderUpdate) SetManagedScaling(v *ManagedScaling) *AutoScalingGroupProviderUpdate {
  6406  	s.ManagedScaling = v
  6407  	return s
  6408  }
  6409  
  6410  // SetManagedTerminationProtection sets the ManagedTerminationProtection field's value.
  6411  func (s *AutoScalingGroupProviderUpdate) SetManagedTerminationProtection(v string) *AutoScalingGroupProviderUpdate {
  6412  	s.ManagedTerminationProtection = &v
  6413  	return s
  6414  }
  6415  
  6416  // An object representing the networking details for a task or service.
  6417  type AwsVpcConfiguration struct {
  6418  	_ struct{} `type:"structure"`
  6419  
  6420  	// Whether the task's elastic network interface receives a public IP address.
  6421  	// The default value is DISABLED.
  6422  	AssignPublicIp *string `locationName:"assignPublicIp" type:"string" enum:"AssignPublicIp"`
  6423  
  6424  	// The IDs of the security groups associated with the task or service. If you
  6425  	// do not specify a security group, the default security group for the VPC is
  6426  	// used. There is a limit of 5 security groups that can be specified per AwsVpcConfiguration.
  6427  	//
  6428  	// All specified security groups must be from the same VPC.
  6429  	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
  6430  
  6431  	// The IDs of the subnets associated with the task or service. There is a limit
  6432  	// of 16 subnets that can be specified per AwsVpcConfiguration.
  6433  	//
  6434  	// All specified subnets must be from the same VPC.
  6435  	//
  6436  	// Subnets is a required field
  6437  	Subnets []*string `locationName:"subnets" type:"list" required:"true"`
  6438  }
  6439  
  6440  // String returns the string representation.
  6441  //
  6442  // API parameter values that are decorated as "sensitive" in the API will not
  6443  // be included in the string output. The member name will be present, but the
  6444  // value will be replaced with "sensitive".
  6445  func (s AwsVpcConfiguration) String() string {
  6446  	return awsutil.Prettify(s)
  6447  }
  6448  
  6449  // GoString returns the string representation.
  6450  //
  6451  // API parameter values that are decorated as "sensitive" in the API will not
  6452  // be included in the string output. The member name will be present, but the
  6453  // value will be replaced with "sensitive".
  6454  func (s AwsVpcConfiguration) GoString() string {
  6455  	return s.String()
  6456  }
  6457  
  6458  // Validate inspects the fields of the type to determine if they are valid.
  6459  func (s *AwsVpcConfiguration) Validate() error {
  6460  	invalidParams := request.ErrInvalidParams{Context: "AwsVpcConfiguration"}
  6461  	if s.Subnets == nil {
  6462  		invalidParams.Add(request.NewErrParamRequired("Subnets"))
  6463  	}
  6464  
  6465  	if invalidParams.Len() > 0 {
  6466  		return invalidParams
  6467  	}
  6468  	return nil
  6469  }
  6470  
  6471  // SetAssignPublicIp sets the AssignPublicIp field's value.
  6472  func (s *AwsVpcConfiguration) SetAssignPublicIp(v string) *AwsVpcConfiguration {
  6473  	s.AssignPublicIp = &v
  6474  	return s
  6475  }
  6476  
  6477  // SetSecurityGroups sets the SecurityGroups field's value.
  6478  func (s *AwsVpcConfiguration) SetSecurityGroups(v []*string) *AwsVpcConfiguration {
  6479  	s.SecurityGroups = v
  6480  	return s
  6481  }
  6482  
  6483  // SetSubnets sets the Subnets field's value.
  6484  func (s *AwsVpcConfiguration) SetSubnets(v []*string) *AwsVpcConfiguration {
  6485  	s.Subnets = v
  6486  	return s
  6487  }
  6488  
  6489  // Your Amazon Web Services account has been blocked. For more information,
  6490  // contact Amazon Web Services Support (http://aws.amazon.com/contact-us/).
  6491  type BlockedException struct {
  6492  	_            struct{}                  `type:"structure"`
  6493  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6494  
  6495  	Message_ *string `locationName:"message" type:"string"`
  6496  }
  6497  
  6498  // String returns the string representation.
  6499  //
  6500  // API parameter values that are decorated as "sensitive" in the API will not
  6501  // be included in the string output. The member name will be present, but the
  6502  // value will be replaced with "sensitive".
  6503  func (s BlockedException) String() string {
  6504  	return awsutil.Prettify(s)
  6505  }
  6506  
  6507  // GoString returns the string representation.
  6508  //
  6509  // API parameter values that are decorated as "sensitive" in the API will not
  6510  // be included in the string output. The member name will be present, but the
  6511  // value will be replaced with "sensitive".
  6512  func (s BlockedException) GoString() string {
  6513  	return s.String()
  6514  }
  6515  
  6516  func newErrorBlockedException(v protocol.ResponseMetadata) error {
  6517  	return &BlockedException{
  6518  		RespMetadata: v,
  6519  	}
  6520  }
  6521  
  6522  // Code returns the exception type name.
  6523  func (s *BlockedException) Code() string {
  6524  	return "BlockedException"
  6525  }
  6526  
  6527  // Message returns the exception's message.
  6528  func (s *BlockedException) Message() string {
  6529  	if s.Message_ != nil {
  6530  		return *s.Message_
  6531  	}
  6532  	return ""
  6533  }
  6534  
  6535  // OrigErr always returns nil, satisfies awserr.Error interface.
  6536  func (s *BlockedException) OrigErr() error {
  6537  	return nil
  6538  }
  6539  
  6540  func (s *BlockedException) Error() string {
  6541  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6542  }
  6543  
  6544  // Status code returns the HTTP status code for the request's response error.
  6545  func (s *BlockedException) StatusCode() int {
  6546  	return s.RespMetadata.StatusCode
  6547  }
  6548  
  6549  // RequestID returns the service's response RequestID for request.
  6550  func (s *BlockedException) RequestID() string {
  6551  	return s.RespMetadata.RequestID
  6552  }
  6553  
  6554  // The details of a capacity provider.
  6555  type CapacityProvider struct {
  6556  	_ struct{} `type:"structure"`
  6557  
  6558  	// The Auto Scaling group settings for the capacity provider.
  6559  	AutoScalingGroupProvider *AutoScalingGroupProvider `locationName:"autoScalingGroupProvider" type:"structure"`
  6560  
  6561  	// The Amazon Resource Name (ARN) that identifies the capacity provider.
  6562  	CapacityProviderArn *string `locationName:"capacityProviderArn" type:"string"`
  6563  
  6564  	// The name of the capacity provider.
  6565  	Name *string `locationName:"name" type:"string"`
  6566  
  6567  	// The current status of the capacity provider. Only capacity providers in an
  6568  	// ACTIVE state can be used in a cluster. When a capacity provider is successfully
  6569  	// deleted, it will have an INACTIVE status.
  6570  	Status *string `locationName:"status" type:"string" enum:"CapacityProviderStatus"`
  6571  
  6572  	// The metadata that you apply to the capacity provider to help you categorize
  6573  	// and organize it. Each tag consists of a key and an optional value, both of
  6574  	// which you define.
  6575  	//
  6576  	// The following basic restrictions apply to tags:
  6577  	//
  6578  	//    * Maximum number of tags per resource - 50
  6579  	//
  6580  	//    * For each resource, each tag key must be unique, and each tag key can
  6581  	//    have only one value.
  6582  	//
  6583  	//    * Maximum key length - 128 Unicode characters in UTF-8
  6584  	//
  6585  	//    * Maximum value length - 256 Unicode characters in UTF-8
  6586  	//
  6587  	//    * If your tagging schema is used across multiple services and resources,
  6588  	//    remember that other services may have restrictions on allowed characters.
  6589  	//    Generally allowed characters are: letters, numbers, and spaces representable
  6590  	//    in UTF-8, and the following characters: + - = . _ : / @.
  6591  	//
  6592  	//    * Tag keys and values are case-sensitive.
  6593  	//
  6594  	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
  6595  	//    as a prefix for either keys or values as it is reserved for Amazon Web
  6596  	//    Services use. You cannot edit or delete tag keys or values with this prefix.
  6597  	//    Tags with this prefix do not count against your tags per resource limit.
  6598  	Tags []*Tag `locationName:"tags" type:"list"`
  6599  
  6600  	// The update status of the capacity provider. The following are the possible
  6601  	// states that will be returned.
  6602  	//
  6603  	// DELETE_IN_PROGRESS
  6604  	//
  6605  	// The capacity provider is in the process of being deleted.
  6606  	//
  6607  	// DELETE_COMPLETE
  6608  	//
  6609  	// The capacity provider has been successfully deleted and will have an INACTIVE
  6610  	// status.
  6611  	//
  6612  	// DELETE_FAILED
  6613  	//
  6614  	// The capacity provider was unable to be deleted. The update status reason
  6615  	// will provide further details about why the delete failed.
  6616  	UpdateStatus *string `locationName:"updateStatus" type:"string" enum:"CapacityProviderUpdateStatus"`
  6617  
  6618  	// The update status reason. This provides further details about the update
  6619  	// status for the capacity provider.
  6620  	UpdateStatusReason *string `locationName:"updateStatusReason" type:"string"`
  6621  }
  6622  
  6623  // String returns the string representation.
  6624  //
  6625  // API parameter values that are decorated as "sensitive" in the API will not
  6626  // be included in the string output. The member name will be present, but the
  6627  // value will be replaced with "sensitive".
  6628  func (s CapacityProvider) String() string {
  6629  	return awsutil.Prettify(s)
  6630  }
  6631  
  6632  // GoString returns the string representation.
  6633  //
  6634  // API parameter values that are decorated as "sensitive" in the API will not
  6635  // be included in the string output. The member name will be present, but the
  6636  // value will be replaced with "sensitive".
  6637  func (s CapacityProvider) GoString() string {
  6638  	return s.String()
  6639  }
  6640  
  6641  // SetAutoScalingGroupProvider sets the AutoScalingGroupProvider field's value.
  6642  func (s *CapacityProvider) SetAutoScalingGroupProvider(v *AutoScalingGroupProvider) *CapacityProvider {
  6643  	s.AutoScalingGroupProvider = v
  6644  	return s
  6645  }
  6646  
  6647  // SetCapacityProviderArn sets the CapacityProviderArn field's value.
  6648  func (s *CapacityProvider) SetCapacityProviderArn(v string) *CapacityProvider {
  6649  	s.CapacityProviderArn = &v
  6650  	return s
  6651  }
  6652  
  6653  // SetName sets the Name field's value.
  6654  func (s *CapacityProvider) SetName(v string) *CapacityProvider {
  6655  	s.Name = &v
  6656  	return s
  6657  }
  6658  
  6659  // SetStatus sets the Status field's value.
  6660  func (s *CapacityProvider) SetStatus(v string) *CapacityProvider {
  6661  	s.Status = &v
  6662  	return s
  6663  }
  6664  
  6665  // SetTags sets the Tags field's value.
  6666  func (s *CapacityProvider) SetTags(v []*Tag) *CapacityProvider {
  6667  	s.Tags = v
  6668  	return s
  6669  }
  6670  
  6671  // SetUpdateStatus sets the UpdateStatus field's value.
  6672  func (s *CapacityProvider) SetUpdateStatus(v string) *CapacityProvider {
  6673  	s.UpdateStatus = &v
  6674  	return s
  6675  }
  6676  
  6677  // SetUpdateStatusReason sets the UpdateStatusReason field's value.
  6678  func (s *CapacityProvider) SetUpdateStatusReason(v string) *CapacityProvider {
  6679  	s.UpdateStatusReason = &v
  6680  	return s
  6681  }
  6682  
  6683  // The details of a capacity provider strategy. A capacity provider strategy
  6684  // can be set when using the RunTask or CreateCluster APIs or as the default
  6685  // capacity provider strategy for a cluster with the CreateCluster API.
  6686  //
  6687  // Only capacity providers that are already associated with a cluster and have
  6688  // an ACTIVE or UPDATING status can be used in a capacity provider strategy.
  6689  // The PutClusterCapacityProviders API is used to associate a capacity provider
  6690  // with a cluster.
  6691  //
  6692  // If specifying a capacity provider that uses an Auto Scaling group, the capacity
  6693  // provider must already be created. New Auto Scaling group capacity providers
  6694  // can be created with the CreateCapacityProvider API operation.
  6695  //
  6696  // To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
  6697  // capacity providers. The Fargate capacity providers are available to all accounts
  6698  // and only need to be associated with a cluster to be used in a capacity provider
  6699  // strategy.
  6700  //
  6701  // A capacity provider strategy may contain a maximum of 6 capacity providers.
  6702  type CapacityProviderStrategyItem struct {
  6703  	_ struct{} `type:"structure"`
  6704  
  6705  	// The base value designates how many tasks, at a minimum, to run on the specified
  6706  	// capacity provider. Only one capacity provider in a capacity provider strategy
  6707  	// can have a base defined. If no value is specified, the default value of 0
  6708  	// is used.
  6709  	Base *int64 `locationName:"base" type:"integer"`
  6710  
  6711  	// The short name of the capacity provider.
  6712  	//
  6713  	// CapacityProvider is a required field
  6714  	CapacityProvider *string `locationName:"capacityProvider" type:"string" required:"true"`
  6715  
  6716  	// The weight value designates the relative percentage of the total number of
  6717  	// tasks launched that should use the specified capacity provider. The weight
  6718  	// value is taken into consideration after the base value, if defined, is satisfied.
  6719  	//
  6720  	// If no weight value is specified, the default value of 0 is used. When multiple
  6721  	// capacity providers are specified within a capacity provider strategy, at
  6722  	// least one of the capacity providers must have a weight value greater than
  6723  	// zero and any capacity providers with a weight of 0 will not be used to place
  6724  	// tasks. If you specify multiple capacity providers in a strategy that all
  6725  	// have a weight of 0, any RunTask or CreateService actions using the capacity
  6726  	// provider strategy will fail.
  6727  	//
  6728  	// An example scenario for using weights is defining a strategy that contains
  6729  	// two capacity providers and both have a weight of 1, then when the base is
  6730  	// satisfied, the tasks will be split evenly across the two capacity providers.
  6731  	// Using that same logic, if you specify a weight of 1 for capacityProviderA
  6732  	// and a weight of 4 for capacityProviderB, then for every one task that is
  6733  	// run using capacityProviderA, four tasks would use capacityProviderB.
  6734  	Weight *int64 `locationName:"weight" type:"integer"`
  6735  }
  6736  
  6737  // String returns the string representation.
  6738  //
  6739  // API parameter values that are decorated as "sensitive" in the API will not
  6740  // be included in the string output. The member name will be present, but the
  6741  // value will be replaced with "sensitive".
  6742  func (s CapacityProviderStrategyItem) String() string {
  6743  	return awsutil.Prettify(s)
  6744  }
  6745  
  6746  // GoString returns the string representation.
  6747  //
  6748  // API parameter values that are decorated as "sensitive" in the API will not
  6749  // be included in the string output. The member name will be present, but the
  6750  // value will be replaced with "sensitive".
  6751  func (s CapacityProviderStrategyItem) GoString() string {
  6752  	return s.String()
  6753  }
  6754  
  6755  // Validate inspects the fields of the type to determine if they are valid.
  6756  func (s *CapacityProviderStrategyItem) Validate() error {
  6757  	invalidParams := request.ErrInvalidParams{Context: "CapacityProviderStrategyItem"}
  6758  	if s.CapacityProvider == nil {
  6759  		invalidParams.Add(request.NewErrParamRequired("CapacityProvider"))
  6760  	}
  6761  
  6762  	if invalidParams.Len() > 0 {
  6763  		return invalidParams
  6764  	}
  6765  	return nil
  6766  }
  6767  
  6768  // SetBase sets the Base field's value.
  6769  func (s *CapacityProviderStrategyItem) SetBase(v int64) *CapacityProviderStrategyItem {
  6770  	s.Base = &v
  6771  	return s
  6772  }
  6773  
  6774  // SetCapacityProvider sets the CapacityProvider field's value.
  6775  func (s *CapacityProviderStrategyItem) SetCapacityProvider(v string) *CapacityProviderStrategyItem {
  6776  	s.CapacityProvider = &v
  6777  	return s
  6778  }
  6779  
  6780  // SetWeight sets the Weight field's value.
  6781  func (s *CapacityProviderStrategyItem) SetWeight(v int64) *CapacityProviderStrategyItem {
  6782  	s.Weight = &v
  6783  	return s
  6784  }
  6785  
  6786  // These errors are usually caused by a client action, such as using an action
  6787  // or resource on behalf of a user that doesn't have permissions to use the
  6788  // action or resource, or specifying an identifier that is not valid.
  6789  type ClientException struct {
  6790  	_            struct{}                  `type:"structure"`
  6791  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6792  
  6793  	Message_ *string `locationName:"message" type:"string"`
  6794  }
  6795  
  6796  // String returns the string representation.
  6797  //
  6798  // API parameter values that are decorated as "sensitive" in the API will not
  6799  // be included in the string output. The member name will be present, but the
  6800  // value will be replaced with "sensitive".
  6801  func (s ClientException) String() string {
  6802  	return awsutil.Prettify(s)
  6803  }
  6804  
  6805  // GoString returns the string representation.
  6806  //
  6807  // API parameter values that are decorated as "sensitive" in the API will not
  6808  // be included in the string output. The member name will be present, but the
  6809  // value will be replaced with "sensitive".
  6810  func (s ClientException) GoString() string {
  6811  	return s.String()
  6812  }
  6813  
  6814  func newErrorClientException(v protocol.ResponseMetadata) error {
  6815  	return &ClientException{
  6816  		RespMetadata: v,
  6817  	}
  6818  }
  6819  
  6820  // Code returns the exception type name.
  6821  func (s *ClientException) Code() string {
  6822  	return "ClientException"
  6823  }
  6824  
  6825  // Message returns the exception's message.
  6826  func (s *ClientException) Message() string {
  6827  	if s.Message_ != nil {
  6828  		return *s.Message_
  6829  	}
  6830  	return ""
  6831  }
  6832  
  6833  // OrigErr always returns nil, satisfies awserr.Error interface.
  6834  func (s *ClientException) OrigErr() error {
  6835  	return nil
  6836  }
  6837  
  6838  func (s *ClientException) Error() string {
  6839  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6840  }
  6841  
  6842  // Status code returns the HTTP status code for the request's response error.
  6843  func (s *ClientException) StatusCode() int {
  6844  	return s.RespMetadata.StatusCode
  6845  }
  6846  
  6847  // RequestID returns the service's response RequestID for request.
  6848  func (s *ClientException) RequestID() string {
  6849  	return s.RespMetadata.RequestID
  6850  }
  6851  
  6852  // A regional grouping of one or more container instances on which you can run
  6853  // task requests. Each account receives a default cluster the first time you
  6854  // use the Amazon ECS service, but you may also create other clusters. Clusters
  6855  // may contain more than one instance type simultaneously.
  6856  type Cluster struct {
  6857  	_ struct{} `type:"structure"`
  6858  
  6859  	// The number of services that are running on the cluster in an ACTIVE state.
  6860  	// You can view these services with ListServices.
  6861  	ActiveServicesCount *int64 `locationName:"activeServicesCount" type:"integer"`
  6862  
  6863  	// The resources attached to a cluster. When using a capacity provider with
  6864  	// a cluster, the Auto Scaling plan that is created will be returned as a cluster
  6865  	// attachment.
  6866  	Attachments []*Attachment `locationName:"attachments" type:"list"`
  6867  
  6868  	// The status of the capacity providers associated with the cluster. The following
  6869  	// are the states that will be returned:
  6870  	//
  6871  	// UPDATE_IN_PROGRESS
  6872  	//
  6873  	// The available capacity providers for the cluster are updating. This occurs
  6874  	// when the Auto Scaling plan is provisioning or deprovisioning.
  6875  	//
  6876  	// UPDATE_COMPLETE
  6877  	//
  6878  	// The capacity providers have successfully updated.
  6879  	//
  6880  	// UPDATE_FAILED
  6881  	//
  6882  	// The capacity provider updates failed.
  6883  	AttachmentsStatus *string `locationName:"attachmentsStatus" type:"string"`
  6884  
  6885  	// The capacity providers associated with the cluster.
  6886  	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
  6887  
  6888  	// The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains
  6889  	// the arn:aws:ecs namespace, followed by the Region of the cluster, the Amazon
  6890  	// Web Services account ID of the cluster owner, the cluster namespace, and
  6891  	// then the cluster name. For example, arn:aws:ecs:region:012345678910:cluster/test.
  6892  	ClusterArn *string `locationName:"clusterArn" type:"string"`
  6893  
  6894  	// A user-generated string that you use to identify your cluster.
  6895  	ClusterName *string `locationName:"clusterName" type:"string"`
  6896  
  6897  	// The execute command configuration for the cluster.
  6898  	Configuration *ClusterConfiguration `locationName:"configuration" type:"structure"`
  6899  
  6900  	// The default capacity provider strategy for the cluster. When services or
  6901  	// tasks are run in the cluster with no launch type or capacity provider strategy
  6902  	// specified, the default capacity provider strategy is used.
  6903  	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list"`
  6904  
  6905  	// The number of tasks in the cluster that are in the PENDING state.
  6906  	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
  6907  
  6908  	// The number of container instances registered into the cluster. This includes
  6909  	// container instances in both ACTIVE and DRAINING status.
  6910  	RegisteredContainerInstancesCount *int64 `locationName:"registeredContainerInstancesCount" type:"integer"`
  6911  
  6912  	// The number of tasks in the cluster that are in the RUNNING state.
  6913  	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
  6914  
  6915  	// The settings for the cluster. This parameter indicates whether CloudWatch
  6916  	// Container Insights is enabled or disabled for a cluster.
  6917  	Settings []*ClusterSetting `locationName:"settings" type:"list"`
  6918  
  6919  	// Additional information about your clusters that are separated by launch type,
  6920  	// including:
  6921  	//
  6922  	//    * runningEC2TasksCount
  6923  	//
  6924  	//    * RunningFargateTasksCount
  6925  	//
  6926  	//    * pendingEC2TasksCount
  6927  	//
  6928  	//    * pendingFargateTasksCount
  6929  	//
  6930  	//    * activeEC2ServiceCount
  6931  	//
  6932  	//    * activeFargateServiceCount
  6933  	//
  6934  	//    * drainingEC2ServiceCount
  6935  	//
  6936  	//    * drainingFargateServiceCount
  6937  	Statistics []*KeyValuePair `locationName:"statistics" type:"list"`
  6938  
  6939  	// The status of the cluster. The following are the possible states that will
  6940  	// be returned.
  6941  	//
  6942  	// ACTIVE
  6943  	//
  6944  	// The cluster is ready to accept tasks and if applicable you can register container
  6945  	// instances with the cluster.
  6946  	//
  6947  	// PROVISIONING
  6948  	//
  6949  	// The cluster has capacity providers associated with it and the resources needed
  6950  	// for the capacity provider are being created.
  6951  	//
  6952  	// DEPROVISIONING
  6953  	//
  6954  	// The cluster has capacity providers associated with it and the resources needed
  6955  	// for the capacity provider are being deleted.
  6956  	//
  6957  	// FAILED
  6958  	//
  6959  	// The cluster has capacity providers associated with it and the resources needed
  6960  	// for the capacity provider have failed to create.
  6961  	//
  6962  	// INACTIVE
  6963  	//
  6964  	// The cluster has been deleted. Clusters with an INACTIVE status may remain
  6965  	// discoverable in your account for a period of time. However, this behavior
  6966  	// is subject to change in the future, so you should not rely on INACTIVE clusters
  6967  	// persisting.
  6968  	Status *string `locationName:"status" type:"string"`
  6969  
  6970  	// The metadata that you apply to the cluster to help you categorize and organize
  6971  	// them. Each tag consists of a key and an optional value, both of which you
  6972  	// define.
  6973  	//
  6974  	// The following basic restrictions apply to tags:
  6975  	//
  6976  	//    * Maximum number of tags per resource - 50
  6977  	//
  6978  	//    * For each resource, each tag key must be unique, and each tag key can
  6979  	//    have only one value.
  6980  	//
  6981  	//    * Maximum key length - 128 Unicode characters in UTF-8
  6982  	//
  6983  	//    * Maximum value length - 256 Unicode characters in UTF-8
  6984  	//
  6985  	//    * If your tagging schema is used across multiple services and resources,
  6986  	//    remember that other services may have restrictions on allowed characters.
  6987  	//    Generally allowed characters are: letters, numbers, and spaces representable
  6988  	//    in UTF-8, and the following characters: + - = . _ : / @.
  6989  	//
  6990  	//    * Tag keys and values are case-sensitive.
  6991  	//
  6992  	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
  6993  	//    as a prefix for either keys or values as it is reserved for Amazon Web
  6994  	//    Services use. You cannot edit or delete tag keys or values with this prefix.
  6995  	//    Tags with this prefix do not count against your tags per resource limit.
  6996  	Tags []*Tag `locationName:"tags" type:"list"`
  6997  }
  6998  
  6999  // String returns the string representation.
  7000  //
  7001  // API parameter values that are decorated as "sensitive" in the API will not
  7002  // be included in the string output. The member name will be present, but the
  7003  // value will be replaced with "sensitive".
  7004  func (s Cluster) String() string {
  7005  	return awsutil.Prettify(s)
  7006  }
  7007  
  7008  // GoString returns the string representation.
  7009  //
  7010  // API parameter values that are decorated as "sensitive" in the API will not
  7011  // be included in the string output. The member name will be present, but the
  7012  // value will be replaced with "sensitive".
  7013  func (s Cluster) GoString() string {
  7014  	return s.String()
  7015  }
  7016  
  7017  // SetActiveServicesCount sets the ActiveServicesCount field's value.
  7018  func (s *Cluster) SetActiveServicesCount(v int64) *Cluster {
  7019  	s.ActiveServicesCount = &v
  7020  	return s
  7021  }
  7022  
  7023  // SetAttachments sets the Attachments field's value.
  7024  func (s *Cluster) SetAttachments(v []*Attachment) *Cluster {
  7025  	s.Attachments = v
  7026  	return s
  7027  }
  7028  
  7029  // SetAttachmentsStatus sets the AttachmentsStatus field's value.
  7030  func (s *Cluster) SetAttachmentsStatus(v string) *Cluster {
  7031  	s.AttachmentsStatus = &v
  7032  	return s
  7033  }
  7034  
  7035  // SetCapacityProviders sets the CapacityProviders field's value.
  7036  func (s *Cluster) SetCapacityProviders(v []*string) *Cluster {
  7037  	s.CapacityProviders = v
  7038  	return s
  7039  }
  7040  
  7041  // SetClusterArn sets the ClusterArn field's value.
  7042  func (s *Cluster) SetClusterArn(v string) *Cluster {
  7043  	s.ClusterArn = &v
  7044  	return s
  7045  }
  7046  
  7047  // SetClusterName sets the ClusterName field's value.
  7048  func (s *Cluster) SetClusterName(v string) *Cluster {
  7049  	s.ClusterName = &v
  7050  	return s
  7051  }
  7052  
  7053  // SetConfiguration sets the Configuration field's value.
  7054  func (s *Cluster) SetConfiguration(v *ClusterConfiguration) *Cluster {
  7055  	s.Configuration = v
  7056  	return s
  7057  }
  7058  
  7059  // SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
  7060  func (s *Cluster) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Cluster {
  7061  	s.DefaultCapacityProviderStrategy = v
  7062  	return s
  7063  }
  7064  
  7065  // SetPendingTasksCount sets the PendingTasksCount field's value.
  7066  func (s *Cluster) SetPendingTasksCount(v int64) *Cluster {
  7067  	s.PendingTasksCount = &v
  7068  	return s
  7069  }
  7070  
  7071  // SetRegisteredContainerInstancesCount sets the RegisteredContainerInstancesCount field's value.
  7072  func (s *Cluster) SetRegisteredContainerInstancesCount(v int64) *Cluster {
  7073  	s.RegisteredContainerInstancesCount = &v
  7074  	return s
  7075  }
  7076  
  7077  // SetRunningTasksCount sets the RunningTasksCount field's value.
  7078  func (s *Cluster) SetRunningTasksCount(v int64) *Cluster {
  7079  	s.RunningTasksCount = &v
  7080  	return s
  7081  }
  7082  
  7083  // SetSettings sets the Settings field's value.
  7084  func (s *Cluster) SetSettings(v []*ClusterSetting) *Cluster {
  7085  	s.Settings = v
  7086  	return s
  7087  }
  7088  
  7089  // SetStatistics sets the Statistics field's value.
  7090  func (s *Cluster) SetStatistics(v []*KeyValuePair) *Cluster {
  7091  	s.Statistics = v
  7092  	return s
  7093  }
  7094  
  7095  // SetStatus sets the Status field's value.
  7096  func (s *Cluster) SetStatus(v string) *Cluster {
  7097  	s.Status = &v
  7098  	return s
  7099  }
  7100  
  7101  // SetTags sets the Tags field's value.
  7102  func (s *Cluster) SetTags(v []*Tag) *Cluster {
  7103  	s.Tags = v
  7104  	return s
  7105  }
  7106  
  7107  // The execute command configuration for the cluster.
  7108  type ClusterConfiguration struct {
  7109  	_ struct{} `type:"structure"`
  7110  
  7111  	// The details of the execute command configuration.
  7112  	ExecuteCommandConfiguration *ExecuteCommandConfiguration `locationName:"executeCommandConfiguration" type:"structure"`
  7113  }
  7114  
  7115  // String returns the string representation.
  7116  //
  7117  // API parameter values that are decorated as "sensitive" in the API will not
  7118  // be included in the string output. The member name will be present, but the
  7119  // value will be replaced with "sensitive".
  7120  func (s ClusterConfiguration) String() string {
  7121  	return awsutil.Prettify(s)
  7122  }
  7123  
  7124  // GoString returns the string representation.
  7125  //
  7126  // API parameter values that are decorated as "sensitive" in the API will not
  7127  // be included in the string output. The member name will be present, but the
  7128  // value will be replaced with "sensitive".
  7129  func (s ClusterConfiguration) GoString() string {
  7130  	return s.String()
  7131  }
  7132  
  7133  // SetExecuteCommandConfiguration sets the ExecuteCommandConfiguration field's value.
  7134  func (s *ClusterConfiguration) SetExecuteCommandConfiguration(v *ExecuteCommandConfiguration) *ClusterConfiguration {
  7135  	s.ExecuteCommandConfiguration = v
  7136  	return s
  7137  }
  7138  
  7139  // You cannot delete a cluster that has registered container instances. First,
  7140  // deregister the container instances before you can delete the cluster. For
  7141  // more information, see DeregisterContainerInstance.
  7142  type ClusterContainsContainerInstancesException struct {
  7143  	_            struct{}                  `type:"structure"`
  7144  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7145  
  7146  	Message_ *string `locationName:"message" type:"string"`
  7147  }
  7148  
  7149  // String returns the string representation.
  7150  //
  7151  // API parameter values that are decorated as "sensitive" in the API will not
  7152  // be included in the string output. The member name will be present, but the
  7153  // value will be replaced with "sensitive".
  7154  func (s ClusterContainsContainerInstancesException) String() string {
  7155  	return awsutil.Prettify(s)
  7156  }
  7157  
  7158  // GoString returns the string representation.
  7159  //
  7160  // API parameter values that are decorated as "sensitive" in the API will not
  7161  // be included in the string output. The member name will be present, but the
  7162  // value will be replaced with "sensitive".
  7163  func (s ClusterContainsContainerInstancesException) GoString() string {
  7164  	return s.String()
  7165  }
  7166  
  7167  func newErrorClusterContainsContainerInstancesException(v protocol.ResponseMetadata) error {
  7168  	return &ClusterContainsContainerInstancesException{
  7169  		RespMetadata: v,
  7170  	}
  7171  }
  7172  
  7173  // Code returns the exception type name.
  7174  func (s *ClusterContainsContainerInstancesException) Code() string {
  7175  	return "ClusterContainsContainerInstancesException"
  7176  }
  7177  
  7178  // Message returns the exception's message.
  7179  func (s *ClusterContainsContainerInstancesException) Message() string {
  7180  	if s.Message_ != nil {
  7181  		return *s.Message_
  7182  	}
  7183  	return ""
  7184  }
  7185  
  7186  // OrigErr always returns nil, satisfies awserr.Error interface.
  7187  func (s *ClusterContainsContainerInstancesException) OrigErr() error {
  7188  	return nil
  7189  }
  7190  
  7191  func (s *ClusterContainsContainerInstancesException) Error() string {
  7192  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7193  }
  7194  
  7195  // Status code returns the HTTP status code for the request's response error.
  7196  func (s *ClusterContainsContainerInstancesException) StatusCode() int {
  7197  	return s.RespMetadata.StatusCode
  7198  }
  7199  
  7200  // RequestID returns the service's response RequestID for request.
  7201  func (s *ClusterContainsContainerInstancesException) RequestID() string {
  7202  	return s.RespMetadata.RequestID
  7203  }
  7204  
  7205  // You cannot delete a cluster that contains services. First, update the service
  7206  // to reduce its desired task count to 0 and then delete the service. For more
  7207  // information, see UpdateService and DeleteService.
  7208  type ClusterContainsServicesException struct {
  7209  	_            struct{}                  `type:"structure"`
  7210  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7211  
  7212  	Message_ *string `locationName:"message" type:"string"`
  7213  }
  7214  
  7215  // String returns the string representation.
  7216  //
  7217  // API parameter values that are decorated as "sensitive" in the API will not
  7218  // be included in the string output. The member name will be present, but the
  7219  // value will be replaced with "sensitive".
  7220  func (s ClusterContainsServicesException) String() string {
  7221  	return awsutil.Prettify(s)
  7222  }
  7223  
  7224  // GoString returns the string representation.
  7225  //
  7226  // API parameter values that are decorated as "sensitive" in the API will not
  7227  // be included in the string output. The member name will be present, but the
  7228  // value will be replaced with "sensitive".
  7229  func (s ClusterContainsServicesException) GoString() string {
  7230  	return s.String()
  7231  }
  7232  
  7233  func newErrorClusterContainsServicesException(v protocol.ResponseMetadata) error {
  7234  	return &ClusterContainsServicesException{
  7235  		RespMetadata: v,
  7236  	}
  7237  }
  7238  
  7239  // Code returns the exception type name.
  7240  func (s *ClusterContainsServicesException) Code() string {
  7241  	return "ClusterContainsServicesException"
  7242  }
  7243  
  7244  // Message returns the exception's message.
  7245  func (s *ClusterContainsServicesException) Message() string {
  7246  	if s.Message_ != nil {
  7247  		return *s.Message_
  7248  	}
  7249  	return ""
  7250  }
  7251  
  7252  // OrigErr always returns nil, satisfies awserr.Error interface.
  7253  func (s *ClusterContainsServicesException) OrigErr() error {
  7254  	return nil
  7255  }
  7256  
  7257  func (s *ClusterContainsServicesException) Error() string {
  7258  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7259  }
  7260  
  7261  // Status code returns the HTTP status code for the request's response error.
  7262  func (s *ClusterContainsServicesException) StatusCode() int {
  7263  	return s.RespMetadata.StatusCode
  7264  }
  7265  
  7266  // RequestID returns the service's response RequestID for request.
  7267  func (s *ClusterContainsServicesException) RequestID() string {
  7268  	return s.RespMetadata.RequestID
  7269  }
  7270  
  7271  // You cannot delete a cluster that has active tasks.
  7272  type ClusterContainsTasksException struct {
  7273  	_            struct{}                  `type:"structure"`
  7274  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7275  
  7276  	Message_ *string `locationName:"message" type:"string"`
  7277  }
  7278  
  7279  // String returns the string representation.
  7280  //
  7281  // API parameter values that are decorated as "sensitive" in the API will not
  7282  // be included in the string output. The member name will be present, but the
  7283  // value will be replaced with "sensitive".
  7284  func (s ClusterContainsTasksException) String() string {
  7285  	return awsutil.Prettify(s)
  7286  }
  7287  
  7288  // GoString returns the string representation.
  7289  //
  7290  // API parameter values that are decorated as "sensitive" in the API will not
  7291  // be included in the string output. The member name will be present, but the
  7292  // value will be replaced with "sensitive".
  7293  func (s ClusterContainsTasksException) GoString() string {
  7294  	return s.String()
  7295  }
  7296  
  7297  func newErrorClusterContainsTasksException(v protocol.ResponseMetadata) error {
  7298  	return &ClusterContainsTasksException{
  7299  		RespMetadata: v,
  7300  	}
  7301  }
  7302  
  7303  // Code returns the exception type name.
  7304  func (s *ClusterContainsTasksException) Code() string {
  7305  	return "ClusterContainsTasksException"
  7306  }
  7307  
  7308  // Message returns the exception's message.
  7309  func (s *ClusterContainsTasksException) Message() string {
  7310  	if s.Message_ != nil {
  7311  		return *s.Message_
  7312  	}
  7313  	return ""
  7314  }
  7315  
  7316  // OrigErr always returns nil, satisfies awserr.Error interface.
  7317  func (s *ClusterContainsTasksException) OrigErr() error {
  7318  	return nil
  7319  }
  7320  
  7321  func (s *ClusterContainsTasksException) Error() string {
  7322  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7323  }
  7324  
  7325  // Status code returns the HTTP status code for the request's response error.
  7326  func (s *ClusterContainsTasksException) StatusCode() int {
  7327  	return s.RespMetadata.StatusCode
  7328  }
  7329  
  7330  // RequestID returns the service's response RequestID for request.
  7331  func (s *ClusterContainsTasksException) RequestID() string {
  7332  	return s.RespMetadata.RequestID
  7333  }
  7334  
  7335  // The specified cluster could not be found. You can view your available clusters
  7336  // with ListClusters. Amazon ECS clusters are Region-specific.
  7337  type ClusterNotFoundException struct {
  7338  	_            struct{}                  `type:"structure"`
  7339  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7340  
  7341  	Message_ *string `locationName:"message" type:"string"`
  7342  }
  7343  
  7344  // String returns the string representation.
  7345  //
  7346  // API parameter values that are decorated as "sensitive" in the API will not
  7347  // be included in the string output. The member name will be present, but the
  7348  // value will be replaced with "sensitive".
  7349  func (s ClusterNotFoundException) String() string {
  7350  	return awsutil.Prettify(s)
  7351  }
  7352  
  7353  // GoString returns the string representation.
  7354  //
  7355  // API parameter values that are decorated as "sensitive" in the API will not
  7356  // be included in the string output. The member name will be present, but the
  7357  // value will be replaced with "sensitive".
  7358  func (s ClusterNotFoundException) GoString() string {
  7359  	return s.String()
  7360  }
  7361  
  7362  func newErrorClusterNotFoundException(v protocol.ResponseMetadata) error {
  7363  	return &ClusterNotFoundException{
  7364  		RespMetadata: v,
  7365  	}
  7366  }
  7367  
  7368  // Code returns the exception type name.
  7369  func (s *ClusterNotFoundException) Code() string {
  7370  	return "ClusterNotFoundException"
  7371  }
  7372  
  7373  // Message returns the exception's message.
  7374  func (s *ClusterNotFoundException) Message() string {
  7375  	if s.Message_ != nil {
  7376  		return *s.Message_
  7377  	}
  7378  	return ""
  7379  }
  7380  
  7381  // OrigErr always returns nil, satisfies awserr.Error interface.
  7382  func (s *ClusterNotFoundException) OrigErr() error {
  7383  	return nil
  7384  }
  7385  
  7386  func (s *ClusterNotFoundException) Error() string {
  7387  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7388  }
  7389  
  7390  // Status code returns the HTTP status code for the request's response error.
  7391  func (s *ClusterNotFoundException) StatusCode() int {
  7392  	return s.RespMetadata.StatusCode
  7393  }
  7394  
  7395  // RequestID returns the service's response RequestID for request.
  7396  func (s *ClusterNotFoundException) RequestID() string {
  7397  	return s.RespMetadata.RequestID
  7398  }
  7399  
  7400  // The settings to use when creating a cluster. This parameter is used to enable
  7401  // CloudWatch Container Insights for a cluster.
  7402  type ClusterSetting struct {
  7403  	_ struct{} `type:"structure"`
  7404  
  7405  	// The name of the cluster setting. The only supported value is containerInsights.
  7406  	Name *string `locationName:"name" type:"string" enum:"ClusterSettingName"`
  7407  
  7408  	// The value to set for the cluster setting. The supported values are enabled
  7409  	// and disabled. If enabled is specified, CloudWatch Container Insights will
  7410  	// be enabled for the cluster, otherwise it will be disabled unless the containerInsights
  7411  	// account setting is enabled. If a cluster value is specified, it will override
  7412  	// the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.
  7413  	Value *string `locationName:"value" type:"string"`
  7414  }
  7415  
  7416  // String returns the string representation.
  7417  //
  7418  // API parameter values that are decorated as "sensitive" in the API will not
  7419  // be included in the string output. The member name will be present, but the
  7420  // value will be replaced with "sensitive".
  7421  func (s ClusterSetting) String() string {
  7422  	return awsutil.Prettify(s)
  7423  }
  7424  
  7425  // GoString returns the string representation.
  7426  //
  7427  // API parameter values that are decorated as "sensitive" in the API will not
  7428  // be included in the string output. The member name will be present, but the
  7429  // value will be replaced with "sensitive".
  7430  func (s ClusterSetting) GoString() string {
  7431  	return s.String()
  7432  }
  7433  
  7434  // SetName sets the Name field's value.
  7435  func (s *ClusterSetting) SetName(v string) *ClusterSetting {
  7436  	s.Name = &v
  7437  	return s
  7438  }
  7439  
  7440  // SetValue sets the Value field's value.
  7441  func (s *ClusterSetting) SetValue(v string) *ClusterSetting {
  7442  	s.Value = &v
  7443  	return s
  7444  }
  7445  
  7446  // A Docker container that is part of a task.
  7447  type Container struct {
  7448  	_ struct{} `type:"structure"`
  7449  
  7450  	// The Amazon Resource Name (ARN) of the container.
  7451  	ContainerArn *string `locationName:"containerArn" type:"string"`
  7452  
  7453  	// The number of CPU units set for the container. The value will be 0 if no
  7454  	// value was specified in the container definition when the task definition
  7455  	// was registered.
  7456  	Cpu *string `locationName:"cpu" type:"string"`
  7457  
  7458  	// The exit code returned from the container.
  7459  	ExitCode *int64 `locationName:"exitCode" type:"integer"`
  7460  
  7461  	// The IDs of each GPU assigned to the container.
  7462  	GpuIds []*string `locationName:"gpuIds" type:"list"`
  7463  
  7464  	// The health status of the container. If health checks are not configured for
  7465  	// this container in its task definition, then it reports the health status
  7466  	// as UNKNOWN.
  7467  	HealthStatus *string `locationName:"healthStatus" type:"string" enum:"HealthStatus"`
  7468  
  7469  	// The image used for the container.
  7470  	Image *string `locationName:"image" type:"string"`
  7471  
  7472  	// The container image manifest digest.
  7473  	//
  7474  	// The imageDigest is only returned if the container is using an image hosted
  7475  	// in Amazon ECR, otherwise it is omitted.
  7476  	ImageDigest *string `locationName:"imageDigest" type:"string"`
  7477  
  7478  	// The last known status of the container.
  7479  	LastStatus *string `locationName:"lastStatus" type:"string"`
  7480  
  7481  	// The details of any Amazon ECS managed agents associated with the container.
  7482  	ManagedAgents []*ManagedAgent `locationName:"managedAgents" type:"list"`
  7483  
  7484  	// The hard limit (in MiB) of memory set for the container.
  7485  	Memory *string `locationName:"memory" type:"string"`
  7486  
  7487  	// The soft limit (in MiB) of memory set for the container.
  7488  	MemoryReservation *string `locationName:"memoryReservation" type:"string"`
  7489  
  7490  	// The name of the container.
  7491  	Name *string `locationName:"name" type:"string"`
  7492  
  7493  	// The network bindings associated with the container.
  7494  	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
  7495  
  7496  	// The network interfaces associated with the container.
  7497  	NetworkInterfaces []*NetworkInterface `locationName:"networkInterfaces" type:"list"`
  7498  
  7499  	// A short (255 max characters) human-readable string to provide additional
  7500  	// details about a running or stopped container.
  7501  	Reason *string `locationName:"reason" type:"string"`
  7502  
  7503  	// The ID of the Docker container.
  7504  	RuntimeId *string `locationName:"runtimeId" type:"string"`
  7505  
  7506  	// The ARN of the task.
  7507  	TaskArn *string `locationName:"taskArn" type:"string"`
  7508  }
  7509  
  7510  // String returns the string representation.
  7511  //
  7512  // API parameter values that are decorated as "sensitive" in the API will not
  7513  // be included in the string output. The member name will be present, but the
  7514  // value will be replaced with "sensitive".
  7515  func (s Container) String() string {
  7516  	return awsutil.Prettify(s)
  7517  }
  7518  
  7519  // GoString returns the string representation.
  7520  //
  7521  // API parameter values that are decorated as "sensitive" in the API will not
  7522  // be included in the string output. The member name will be present, but the
  7523  // value will be replaced with "sensitive".
  7524  func (s Container) GoString() string {
  7525  	return s.String()
  7526  }
  7527  
  7528  // SetContainerArn sets the ContainerArn field's value.
  7529  func (s *Container) SetContainerArn(v string) *Container {
  7530  	s.ContainerArn = &v
  7531  	return s
  7532  }
  7533  
  7534  // SetCpu sets the Cpu field's value.
  7535  func (s *Container) SetCpu(v string) *Container {
  7536  	s.Cpu = &v
  7537  	return s
  7538  }
  7539  
  7540  // SetExitCode sets the ExitCode field's value.
  7541  func (s *Container) SetExitCode(v int64) *Container {
  7542  	s.ExitCode = &v
  7543  	return s
  7544  }
  7545  
  7546  // SetGpuIds sets the GpuIds field's value.
  7547  func (s *Container) SetGpuIds(v []*string) *Container {
  7548  	s.GpuIds = v
  7549  	return s
  7550  }
  7551  
  7552  // SetHealthStatus sets the HealthStatus field's value.
  7553  func (s *Container) SetHealthStatus(v string) *Container {
  7554  	s.HealthStatus = &v
  7555  	return s
  7556  }
  7557  
  7558  // SetImage sets the Image field's value.
  7559  func (s *Container) SetImage(v string) *Container {
  7560  	s.Image = &v
  7561  	return s
  7562  }
  7563  
  7564  // SetImageDigest sets the ImageDigest field's value.
  7565  func (s *Container) SetImageDigest(v string) *Container {
  7566  	s.ImageDigest = &v
  7567  	return s
  7568  }
  7569  
  7570  // SetLastStatus sets the LastStatus field's value.
  7571  func (s *Container) SetLastStatus(v string) *Container {
  7572  	s.LastStatus = &v
  7573  	return s
  7574  }
  7575  
  7576  // SetManagedAgents sets the ManagedAgents field's value.
  7577  func (s *Container) SetManagedAgents(v []*ManagedAgent) *Container {
  7578  	s.ManagedAgents = v
  7579  	return s
  7580  }
  7581  
  7582  // SetMemory sets the Memory field's value.
  7583  func (s *Container) SetMemory(v string) *Container {
  7584  	s.Memory = &v
  7585  	return s
  7586  }
  7587  
  7588  // SetMemoryReservation sets the MemoryReservation field's value.
  7589  func (s *Container) SetMemoryReservation(v string) *Container {
  7590  	s.MemoryReservation = &v
  7591  	return s
  7592  }
  7593  
  7594  // SetName sets the Name field's value.
  7595  func (s *Container) SetName(v string) *Container {
  7596  	s.Name = &v
  7597  	return s
  7598  }
  7599  
  7600  // SetNetworkBindings sets the NetworkBindings field's value.
  7601  func (s *Container) SetNetworkBindings(v []*NetworkBinding) *Container {
  7602  	s.NetworkBindings = v
  7603  	return s
  7604  }
  7605  
  7606  // SetNetworkInterfaces sets the NetworkInterfaces field's value.
  7607  func (s *Container) SetNetworkInterfaces(v []*NetworkInterface) *Container {
  7608  	s.NetworkInterfaces = v
  7609  	return s
  7610  }
  7611  
  7612  // SetReason sets the Reason field's value.
  7613  func (s *Container) SetReason(v string) *Container {
  7614  	s.Reason = &v
  7615  	return s
  7616  }
  7617  
  7618  // SetRuntimeId sets the RuntimeId field's value.
  7619  func (s *Container) SetRuntimeId(v string) *Container {
  7620  	s.RuntimeId = &v
  7621  	return s
  7622  }
  7623  
  7624  // SetTaskArn sets the TaskArn field's value.
  7625  func (s *Container) SetTaskArn(v string) *Container {
  7626  	s.TaskArn = &v
  7627  	return s
  7628  }
  7629  
  7630  // Container definitions are used in task definitions to describe the different
  7631  // containers that are launched as part of a task.
  7632  type ContainerDefinition struct {
  7633  	_ struct{} `type:"structure"`
  7634  
  7635  	// The command that is passed to the container. This parameter maps to Cmd in
  7636  	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  7637  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  7638  	// and the COMMAND parameter to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  7639  	// For more information, see https://docs.docker.com/engine/reference/builder/#cmd
  7640  	// (https://docs.docker.com/engine/reference/builder/#cmd). If there are multiple
  7641  	// arguments, each argument should be a separated string in the array.
  7642  	Command []*string `locationName:"command" type:"list"`
  7643  
  7644  	// The number of cpu units reserved for the container. This parameter maps to
  7645  	// CpuShares in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  7646  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  7647  	// and the --cpu-shares option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  7648  	//
  7649  	// This field is optional for tasks using the Fargate launch type, and the only
  7650  	// requirement is that the total amount of CPU reserved for all containers within
  7651  	// a task be lower than the task-level cpu value.
  7652  	//
  7653  	// You can determine the number of CPU units that are available per EC2 instance
  7654  	// type by multiplying the vCPUs listed for that instance type on the Amazon
  7655  	// EC2 Instances (http://aws.amazon.com/ec2/instance-types/) detail page by
  7656  	// 1,024.
  7657  	//
  7658  	// Linux containers share unallocated CPU units with other containers on the
  7659  	// container instance with the same ratio as their allocated amount. For example,
  7660  	// if you run a single-container task on a single-core instance type with 512
  7661  	// CPU units specified for that container, and that is the only task running
  7662  	// on the container instance, that container could use the full 1,024 CPU unit
  7663  	// share at any given time. However, if you launched another copy of the same
  7664  	// task on that container instance, each task would be guaranteed a minimum
  7665  	// of 512 CPU units when needed, and each container could float to higher CPU
  7666  	// usage if the other container was not using it, but if both tasks were 100%
  7667  	// active all of the time, they would be limited to 512 CPU units.
  7668  	//
  7669  	// On Linux container instances, the Docker daemon on the container instance
  7670  	// uses the CPU value to calculate the relative CPU share ratios for running
  7671  	// containers. For more information, see CPU share constraint (https://docs.docker.com/engine/reference/run/#cpu-share-constraint)
  7672  	// in the Docker documentation. The minimum valid CPU share value that the Linux
  7673  	// kernel allows is 2. However, the CPU parameter is not required, and you can
  7674  	// use CPU values below 2 in your container definitions. For CPU values below
  7675  	// 2 (including null), the behavior varies based on your Amazon ECS container
  7676  	// agent version:
  7677  	//
  7678  	//    * Agent versions less than or equal to 1.1.0: Null and zero CPU values
  7679  	//    are passed to Docker as 0, which Docker then converts to 1,024 CPU shares.
  7680  	//    CPU values of 1 are passed to Docker as 1, which the Linux kernel converts
  7681  	//    to two CPU shares.
  7682  	//
  7683  	//    * Agent versions greater than or equal to 1.2.0: Null, zero, and CPU values
  7684  	//    of 1 are passed to Docker as 2.
  7685  	//
  7686  	// On Windows container instances, the CPU limit is enforced as an absolute
  7687  	// limit, or a quota. Windows containers only have access to the specified amount
  7688  	// of CPU that is described in the task definition. A null or zero CPU value
  7689  	// is passed to Docker as 0, which Windows interprets as 1% of one CPU.
  7690  	Cpu *int64 `locationName:"cpu" type:"integer"`
  7691  
  7692  	// The dependencies defined for container startup and shutdown. A container
  7693  	// can contain multiple dependencies. When a dependency is defined for container
  7694  	// startup, for container shutdown it is reversed.
  7695  	//
  7696  	// For tasks using the EC2 launch type, the container instances require at least
  7697  	// version 1.26.0 of the container agent to enable container dependencies. However,
  7698  	// we recommend using the latest container agent version. For information about
  7699  	// checking your agent version and updating to the latest version, see Updating
  7700  	// the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
  7701  	// in the Amazon Elastic Container Service Developer Guide. If you are using
  7702  	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
  7703  	// of the ecs-init package. If your container instances are launched from version
  7704  	// 20190301 or later, then they contain the required versions of the container
  7705  	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
  7706  	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
  7707  	// in the Amazon Elastic Container Service Developer Guide.
  7708  	//
  7709  	// For tasks using the Fargate launch type, the task or service requires platform
  7710  	// version 1.3.0 or later.
  7711  	DependsOn []*ContainerDependency `locationName:"dependsOn" type:"list"`
  7712  
  7713  	// When this parameter is true, networking is disabled within the container.
  7714  	// This parameter maps to NetworkDisabled in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  7715  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/).
  7716  	//
  7717  	// This parameter is not supported for Windows containers.
  7718  	DisableNetworking *bool `locationName:"disableNetworking" type:"boolean"`
  7719  
  7720  	// A list of DNS search domains that are presented to the container. This parameter
  7721  	// maps to DnsSearch in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  7722  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  7723  	// and the --dns-search option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  7724  	//
  7725  	// This parameter is not supported for Windows containers.
  7726  	DnsSearchDomains []*string `locationName:"dnsSearchDomains" type:"list"`
  7727  
  7728  	// A list of DNS servers that are presented to the container. This parameter
  7729  	// maps to Dns in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  7730  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  7731  	// and the --dns option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  7732  	//
  7733  	// This parameter is not supported for Windows containers.
  7734  	DnsServers []*string `locationName:"dnsServers" type:"list"`
  7735  
  7736  	// A key/value map of labels to add to the container. This parameter maps to
  7737  	// Labels in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  7738  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  7739  	// and the --label option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  7740  	// This parameter requires version 1.18 of the Docker Remote API or greater
  7741  	// on your container instance. To check the Docker Remote API version on your
  7742  	// container instance, log in to your container instance and run the following
  7743  	// command: sudo docker version --format '{{.Server.APIVersion}}'
  7744  	DockerLabels map[string]*string `locationName:"dockerLabels" type:"map"`
  7745  
  7746  	// A list of strings to provide custom labels for SELinux and AppArmor multi-level
  7747  	// security systems. This field is not valid for containers in tasks using the
  7748  	// Fargate launch type.
  7749  	//
  7750  	// With Windows containers, this parameter can be used to reference a credential
  7751  	// spec file when configuring a container for Active Directory authentication.
  7752  	// For more information, see Using gMSAs for Windows Containers (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html)
  7753  	// in the Amazon Elastic Container Service Developer Guide.
  7754  	//
  7755  	// This parameter maps to SecurityOpt in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  7756  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  7757  	// and the --security-opt option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  7758  	//
  7759  	// The Amazon ECS container agent running on a container instance must register
  7760  	// with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment
  7761  	// variables before containers placed on that instance can use these security
  7762  	// options. For more information, see Amazon ECS Container Agent Configuration
  7763  	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
  7764  	// in the Amazon Elastic Container Service Developer Guide.
  7765  	//
  7766  	// For more information about valid values, see Docker Run Security Configuration
  7767  	// (https://docs.docker.com/engine/reference/run/#security-configuration).
  7768  	//
  7769  	// Valid values: "no-new-privileges" | "apparmor:PROFILE" | "label:value" |
  7770  	// "credentialspec:CredentialSpecFilePath"
  7771  	DockerSecurityOptions []*string `locationName:"dockerSecurityOptions" type:"list"`
  7772  
  7773  	//
  7774  	// Early versions of the Amazon ECS container agent do not properly handle entryPoint
  7775  	// parameters. If you have problems using entryPoint, update your container
  7776  	// agent or enter your commands and arguments as command array items instead.
  7777  	//
  7778  	// The entry point that is passed to the container. This parameter maps to Entrypoint
  7779  	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  7780  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  7781  	// and the --entrypoint option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  7782  	// For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint
  7783  	// (https://docs.docker.com/engine/reference/builder/#entrypoint).
  7784  	EntryPoint []*string `locationName:"entryPoint" type:"list"`
  7785  
  7786  	// The environment variables to pass to a container. This parameter maps to
  7787  	// Env in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  7788  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  7789  	// and the --env option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  7790  	//
  7791  	// We do not recommend using plaintext environment variables for sensitive information,
  7792  	// such as credential data.
  7793  	Environment []*KeyValuePair `locationName:"environment" type:"list"`
  7794  
  7795  	// A list of files containing the environment variables to pass to a container.
  7796  	// This parameter maps to the --env-file option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  7797  	//
  7798  	// You can specify up to ten environment files. The file must have a .env file
  7799  	// extension. Each line in an environment file should contain an environment
  7800  	// variable in VARIABLE=VALUE format. Lines beginning with # are treated as
  7801  	// comments and are ignored. For more information on the environment variable
  7802  	// file syntax, see Declare default environment variables in file (https://docs.docker.com/compose/env-file/).
  7803  	//
  7804  	// If there are environment variables specified using the environment parameter
  7805  	// in a container definition, they take precedence over the variables contained
  7806  	// within an environment file. If multiple environment files are specified that
  7807  	// contain the same variable, they are processed from the top down. It is recommended
  7808  	// to use unique variable names. For more information, see Specifying Environment
  7809  	// Variables (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html)
  7810  	// in the Amazon Elastic Container Service Developer Guide.
  7811  	EnvironmentFiles []*EnvironmentFile `locationName:"environmentFiles" type:"list"`
  7812  
  7813  	// If the essential parameter of a container is marked as true, and that container
  7814  	// fails or stops for any reason, all other containers that are part of the
  7815  	// task are stopped. If the essential parameter of a container is marked as
  7816  	// false, then its failure does not affect the rest of the containers in a task.
  7817  	// If this parameter is omitted, a container is assumed to be essential.
  7818  	//
  7819  	// All tasks must have at least one essential container. If you have an application
  7820  	// that is composed of multiple containers, you should group containers that
  7821  	// are used for a common purpose into components, and separate the different
  7822  	// components into multiple task definitions. For more information, see Application
  7823  	// Architecture (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html)
  7824  	// in the Amazon Elastic Container Service Developer Guide.
  7825  	Essential *bool `locationName:"essential" type:"boolean"`
  7826  
  7827  	// A list of hostnames and IP address mappings to append to the /etc/hosts file
  7828  	// on the container. This parameter maps to ExtraHosts in the Create a container
  7829  	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
  7830  	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
  7831  	// the --add-host option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  7832  	//
  7833  	// This parameter is not supported for Windows containers or tasks that use
  7834  	// the awsvpc network mode.
  7835  	ExtraHosts []*HostEntry `locationName:"extraHosts" type:"list"`
  7836  
  7837  	// The FireLens configuration for the container. This is used to specify and
  7838  	// configure a log router for container logs. For more information, see Custom
  7839  	// Log Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
  7840  	// in the Amazon Elastic Container Service Developer Guide.
  7841  	FirelensConfiguration *FirelensConfiguration `locationName:"firelensConfiguration" type:"structure"`
  7842  
  7843  	// The container health check command and associated configuration parameters
  7844  	// for the container. This parameter maps to HealthCheck in the Create a container
  7845  	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
  7846  	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
  7847  	// the HEALTHCHECK parameter of docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  7848  	HealthCheck *HealthCheck `locationName:"healthCheck" type:"structure"`
  7849  
  7850  	// The hostname to use for your container. This parameter maps to Hostname in
  7851  	// the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  7852  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  7853  	// and the --hostname option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  7854  	//
  7855  	// The hostname parameter is not supported if you are using the awsvpc network
  7856  	// mode.
  7857  	Hostname *string `locationName:"hostname" type:"string"`
  7858  
  7859  	// The image used to start a container. This string is passed directly to the
  7860  	// Docker daemon. Images in the Docker Hub registry are available by default.
  7861  	// Other repositories are specified with either repository-url/image:tag or
  7862  	// repository-url/image@digest . Up to 255 letters (uppercase and lowercase),
  7863  	// numbers, hyphens, underscores, colons, periods, forward slashes, and number
  7864  	// signs are allowed. This parameter maps to Image in the Create a container
  7865  	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
  7866  	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
  7867  	// the IMAGE parameter of docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  7868  	//
  7869  	//    * When a new task starts, the Amazon ECS container agent pulls the latest
  7870  	//    version of the specified image and tag for the container to use. However,
  7871  	//    subsequent updates to a repository image are not propagated to already
  7872  	//    running tasks.
  7873  	//
  7874  	//    * Images in Amazon ECR repositories can be specified by either using the
  7875  	//    full registry/repository:tag or registry/repository@digest. For example,
  7876  	//    012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest
  7877  	//    or 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE.
  7878  	//
  7879  	//    * Images in official repositories on Docker Hub use a single name (for
  7880  	//    example, ubuntu or mongo).
  7881  	//
  7882  	//    * Images in other repositories on Docker Hub are qualified with an organization
  7883  	//    name (for example, amazon/amazon-ecs-agent).
  7884  	//
  7885  	//    * Images in other online repositories are qualified further by a domain
  7886  	//    name (for example, quay.io/assemblyline/ubuntu).
  7887  	Image *string `locationName:"image" type:"string"`
  7888  
  7889  	// When this parameter is true, this allows you to deploy containerized applications
  7890  	// that require stdin or a tty to be allocated. This parameter maps to OpenStdin
  7891  	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  7892  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  7893  	// and the --interactive option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  7894  	Interactive *bool `locationName:"interactive" type:"boolean"`
  7895  
  7896  	// The links parameter allows containers to communicate with each other without
  7897  	// the need for port mappings. This parameter is only supported if the network
  7898  	// mode of a task definition is bridge. The name:internalName construct is analogous
  7899  	// to name:alias in Docker links. Up to 255 letters (uppercase and lowercase),
  7900  	// numbers, underscores, and hyphens are allowed. For more information about
  7901  	// linking Docker containers, go to Legacy container links (https://docs.docker.com/network/links/)
  7902  	// in the Docker documentation. This parameter maps to Links in the Create a
  7903  	// container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  7904  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  7905  	// and the --link option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  7906  	//
  7907  	// This parameter is not supported for Windows containers.
  7908  	//
  7909  	// Containers that are collocated on a single container instance may be able
  7910  	// to communicate with each other without requiring links or host port mappings.
  7911  	// Network isolation is achieved on the container instance using security groups
  7912  	// and VPC settings.
  7913  	Links []*string `locationName:"links" type:"list"`
  7914  
  7915  	// Linux-specific modifications that are applied to the container, such as Linux
  7916  	// kernel capabilities. For more information see KernelCapabilities.
  7917  	//
  7918  	// This parameter is not supported for Windows containers.
  7919  	LinuxParameters *LinuxParameters `locationName:"linuxParameters" type:"structure"`
  7920  
  7921  	// The log configuration specification for the container.
  7922  	//
  7923  	// This parameter maps to LogConfig in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  7924  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  7925  	// and the --log-driver option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  7926  	// By default, containers use the same logging driver that the Docker daemon
  7927  	// uses. However the container may use a different logging driver than the Docker
  7928  	// daemon by specifying a log driver with this parameter in the container definition.
  7929  	// To use a different logging driver for a container, the log system must be
  7930  	// configured properly on the container instance (or on a different log server
  7931  	// for remote logging options). For more information on the options for different
  7932  	// supported log drivers, see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
  7933  	// in the Docker documentation.
  7934  	//
  7935  	// Amazon ECS currently supports a subset of the logging drivers available to
  7936  	// the Docker daemon (shown in the LogConfiguration data type). Additional log
  7937  	// drivers may be available in future releases of the Amazon ECS container agent.
  7938  	//
  7939  	// This parameter requires version 1.18 of the Docker Remote API or greater
  7940  	// on your container instance. To check the Docker Remote API version on your
  7941  	// container instance, log in to your container instance and run the following
  7942  	// command: sudo docker version --format '{{.Server.APIVersion}}'
  7943  	//
  7944  	// The Amazon ECS container agent running on a container instance must register
  7945  	// the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS
  7946  	// environment variable before containers placed on that instance can use these
  7947  	// log configuration options. For more information, see Amazon ECS Container
  7948  	// Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
  7949  	// in the Amazon Elastic Container Service Developer Guide.
  7950  	LogConfiguration *LogConfiguration `locationName:"logConfiguration" type:"structure"`
  7951  
  7952  	// The amount (in MiB) of memory to present to the container. If your container
  7953  	// attempts to exceed the memory specified here, the container is killed. The
  7954  	// total amount of memory reserved for all containers within a task must be
  7955  	// lower than the task memory value, if one is specified. This parameter maps
  7956  	// to Memory in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  7957  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  7958  	// and the --memory option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  7959  	//
  7960  	// If using the Fargate launch type, this parameter is optional.
  7961  	//
  7962  	// If using the EC2 launch type, you must specify either a task-level memory
  7963  	// value or a container-level memory value. If you specify both a container-level
  7964  	// memory and memoryReservation value, memory must be greater than memoryReservation.
  7965  	// If you specify memoryReservation, then that value is subtracted from the
  7966  	// available memory resources for the container instance on which the container
  7967  	// is placed. Otherwise, the value of memory is used.
  7968  	//
  7969  	// The Docker daemon reserves a minimum of 4 MiB of memory for a container,
  7970  	// so you should not specify fewer than 4 MiB of memory for your containers.
  7971  	Memory *int64 `locationName:"memory" type:"integer"`
  7972  
  7973  	// The soft limit (in MiB) of memory to reserve for the container. When system
  7974  	// memory is under heavy contention, Docker attempts to keep the container memory
  7975  	// to this soft limit. However, your container can consume more memory when
  7976  	// it needs to, up to either the hard limit specified with the memory parameter
  7977  	// (if applicable), or all of the available memory on the container instance,
  7978  	// whichever comes first. This parameter maps to MemoryReservation in the Create
  7979  	// a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  7980  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  7981  	// and the --memory-reservation option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  7982  	//
  7983  	// If a task-level memory value is not specified, you must specify a non-zero
  7984  	// integer for one or both of memory or memoryReservation in a container definition.
  7985  	// If you specify both, memory must be greater than memoryReservation. If you
  7986  	// specify memoryReservation, then that value is subtracted from the available
  7987  	// memory resources for the container instance on which the container is placed.
  7988  	// Otherwise, the value of memory is used.
  7989  	//
  7990  	// For example, if your container normally uses 128 MiB of memory, but occasionally
  7991  	// bursts to 256 MiB of memory for short periods of time, you can set a memoryReservation
  7992  	// of 128 MiB, and a memory hard limit of 300 MiB. This configuration would
  7993  	// allow the container to only reserve 128 MiB of memory from the remaining
  7994  	// resources on the container instance, but also allow the container to consume
  7995  	// more memory resources when needed.
  7996  	//
  7997  	// The Docker daemon reserves a minimum of 4 MiB of memory for a container,
  7998  	// so you should not specify fewer than 4 MiB of memory for your containers.
  7999  	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
  8000  
  8001  	// The mount points for data volumes in your container.
  8002  	//
  8003  	// This parameter maps to Volumes in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  8004  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  8005  	// and the --volume option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  8006  	//
  8007  	// Windows containers can mount whole directories on the same drive as $env:ProgramData.
  8008  	// Windows containers cannot mount directories on a different drive, and mount
  8009  	// point cannot be across drives.
  8010  	MountPoints []*MountPoint `locationName:"mountPoints" type:"list"`
  8011  
  8012  	// The name of a container. If you are linking multiple containers together
  8013  	// in a task definition, the name of one container can be entered in the links
  8014  	// of another container to connect the containers. Up to 255 letters (uppercase
  8015  	// and lowercase), numbers, underscores, and hyphens are allowed. This parameter
  8016  	// maps to name in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  8017  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  8018  	// and the --name option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  8019  	Name *string `locationName:"name" type:"string"`
  8020  
  8021  	// The list of port mappings for the container. Port mappings allow containers
  8022  	// to access ports on the host container instance to send or receive traffic.
  8023  	//
  8024  	// For task definitions that use the awsvpc network mode, you should only specify
  8025  	// the containerPort. The hostPort can be left blank or it must be the same
  8026  	// value as the containerPort.
  8027  	//
  8028  	// Port mappings on Windows use the NetNAT gateway address rather than localhost.
  8029  	// There is no loopback for port mappings on Windows, so you cannot access a
  8030  	// container's mapped port from the host itself.
  8031  	//
  8032  	// This parameter maps to PortBindings in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  8033  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  8034  	// and the --publish option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  8035  	// If the network mode of a task definition is set to none, then you can't specify
  8036  	// port mappings. If the network mode of a task definition is set to host, then
  8037  	// host ports must either be undefined or they must match the container port
  8038  	// in the port mapping.
  8039  	//
  8040  	// After a task reaches the RUNNING status, manual and automatic host and container
  8041  	// port assignments are visible in the Network Bindings section of a container
  8042  	// description for a selected task in the Amazon ECS console. The assignments
  8043  	// are also visible in the networkBindings section DescribeTasks responses.
  8044  	PortMappings []*PortMapping `locationName:"portMappings" type:"list"`
  8045  
  8046  	// When this parameter is true, the container is given elevated privileges on
  8047  	// the host container instance (similar to the root user). This parameter maps
  8048  	// to Privileged in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  8049  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  8050  	// and the --privileged option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  8051  	//
  8052  	// This parameter is not supported for Windows containers or tasks run on Fargate.
  8053  	Privileged *bool `locationName:"privileged" type:"boolean"`
  8054  
  8055  	// When this parameter is true, a TTY is allocated. This parameter maps to Tty
  8056  	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  8057  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  8058  	// and the --tty option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  8059  	PseudoTerminal *bool `locationName:"pseudoTerminal" type:"boolean"`
  8060  
  8061  	// When this parameter is true, the container is given read-only access to its
  8062  	// root file system. This parameter maps to ReadonlyRootfs in the Create a container
  8063  	// (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section
  8064  	// of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and
  8065  	// the --read-only option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  8066  	//
  8067  	// This parameter is not supported for Windows containers.
  8068  	ReadonlyRootFilesystem *bool `locationName:"readonlyRootFilesystem" type:"boolean"`
  8069  
  8070  	// The private repository authentication credentials to use.
  8071  	RepositoryCredentials *RepositoryCredentials `locationName:"repositoryCredentials" type:"structure"`
  8072  
  8073  	// The type and amount of a resource to assign to a container. The only supported
  8074  	// resource is a GPU.
  8075  	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
  8076  
  8077  	// The secrets to pass to the container. For more information, see Specifying
  8078  	// Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
  8079  	// in the Amazon Elastic Container Service Developer Guide.
  8080  	Secrets []*Secret `locationName:"secrets" type:"list"`
  8081  
  8082  	// Time duration (in seconds) to wait before giving up on resolving dependencies
  8083  	// for a container. For example, you specify two containers in a task definition
  8084  	// with containerA having a dependency on containerB reaching a COMPLETE, SUCCESS,
  8085  	// or HEALTHY status. If a startTimeout value is specified for containerB and
  8086  	// it does not reach the desired status within that time then containerA will
  8087  	// give up and not start. This results in the task transitioning to a STOPPED
  8088  	// state.
  8089  	//
  8090  	// When the ECS_CONTAINER_START_TIMEOUT container agent configuration variable
  8091  	// is used, it is enforced indendently from this start timeout value.
  8092  	//
  8093  	// For tasks using the Fargate launch type, this parameter requires that the
  8094  	// task or service uses platform version 1.3.0 or later.
  8095  	//
  8096  	// For tasks using the EC2 launch type, your container instances require at
  8097  	// least version 1.26.0 of the container agent to enable a container start timeout
  8098  	// value. However, we recommend using the latest container agent version. For
  8099  	// information about checking your agent version and updating to the latest
  8100  	// version, see Updating the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
  8101  	// in the Amazon Elastic Container Service Developer Guide. If you are using
  8102  	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
  8103  	// of the ecs-init package. If your container instances are launched from version
  8104  	// 20190301 or later, then they contain the required versions of the container
  8105  	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
  8106  	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
  8107  	// in the Amazon Elastic Container Service Developer Guide.
  8108  	StartTimeout *int64 `locationName:"startTimeout" type:"integer"`
  8109  
  8110  	// Time duration (in seconds) to wait before the container is forcefully killed
  8111  	// if it doesn't exit normally on its own.
  8112  	//
  8113  	// For tasks using the Fargate launch type, the task or service requires platform
  8114  	// version 1.3.0 or later. The max stop timeout value is 120 seconds and if
  8115  	// the parameter is not specified, the default value of 30 seconds is used.
  8116  	//
  8117  	// For tasks using the EC2 launch type, if the stopTimeout parameter is not
  8118  	// specified, the value set for the Amazon ECS container agent configuration
  8119  	// variable ECS_CONTAINER_STOP_TIMEOUT is used by default. If neither the stopTimeout
  8120  	// parameter or the ECS_CONTAINER_STOP_TIMEOUT agent configuration variable
  8121  	// are set, then the default values of 30 seconds for Linux containers and 30
  8122  	// seconds on Windows containers are used. Your container instances require
  8123  	// at least version 1.26.0 of the container agent to enable a container stop
  8124  	// timeout value. However, we recommend using the latest container agent version.
  8125  	// For information about checking your agent version and updating to the latest
  8126  	// version, see Updating the Amazon ECS Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
  8127  	// in the Amazon Elastic Container Service Developer Guide. If you are using
  8128  	// an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
  8129  	// of the ecs-init package. If your container instances are launched from version
  8130  	// 20190301 or later, then they contain the required versions of the container
  8131  	// agent and ecs-init. For more information, see Amazon ECS-optimized Linux
  8132  	// AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
  8133  	// in the Amazon Elastic Container Service Developer Guide.
  8134  	StopTimeout *int64 `locationName:"stopTimeout" type:"integer"`
  8135  
  8136  	// A list of namespaced kernel parameters to set in the container. This parameter
  8137  	// maps to Sysctls in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  8138  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  8139  	// and the --sysctl option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  8140  	//
  8141  	// It is not recommended that you specify network-related systemControls parameters
  8142  	// for multiple containers in a single task that also uses either the awsvpc
  8143  	// or host network modes. For tasks that use the awsvpc network mode, the container
  8144  	// that is started last determines which systemControls parameters take effect.
  8145  	// For tasks that use the host network mode, it changes the container instance's
  8146  	// namespaced kernel parameters as well as the containers.
  8147  	SystemControls []*SystemControl `locationName:"systemControls" type:"list"`
  8148  
  8149  	// A list of ulimits to set in the container. If a ulimit value is specified
  8150  	// in a task definition, it will override the default values set by Docker.
  8151  	// This parameter maps to Ulimits in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  8152  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  8153  	// and the --ulimit option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  8154  	// Valid naming values are displayed in the Ulimit data type.
  8155  	//
  8156  	// Amazon ECS tasks hosted on Fargate use the default resource limit values
  8157  	// set by the operating system with the exception of the nofile resource limit
  8158  	// parameter which Fargate overrides. The nofile resource limit sets a restriction
  8159  	// on the number of open files that a container can use. The default nofile
  8160  	// soft limit is 1024 and hard limit is 4096.
  8161  	//
  8162  	// This parameter requires version 1.18 of the Docker Remote API or greater
  8163  	// on your container instance. To check the Docker Remote API version on your
  8164  	// container instance, log in to your container instance and run the following
  8165  	// command: sudo docker version --format '{{.Server.APIVersion}}'
  8166  	//
  8167  	// This parameter is not supported for Windows containers.
  8168  	Ulimits []*Ulimit `locationName:"ulimits" type:"list"`
  8169  
  8170  	// The user to use inside the container. This parameter maps to User in the
  8171  	// Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  8172  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  8173  	// and the --user option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  8174  	//
  8175  	// When running tasks using the host network mode, you should not run containers
  8176  	// using the root user (UID 0). It is considered best practice to use a non-root
  8177  	// user.
  8178  	//
  8179  	// You can specify the user using the following formats. If specifying a UID
  8180  	// or GID, you must specify it as a positive integer.
  8181  	//
  8182  	//    * user
  8183  	//
  8184  	//    * user:group
  8185  	//
  8186  	//    * uid
  8187  	//
  8188  	//    * uid:gid
  8189  	//
  8190  	//    * user:gid
  8191  	//
  8192  	//    * uid:group
  8193  	//
  8194  	// This parameter is not supported for Windows containers.
  8195  	User *string `locationName:"user" type:"string"`
  8196  
  8197  	// Data volumes to mount from another container. This parameter maps to VolumesFrom
  8198  	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  8199  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  8200  	// and the --volumes-from option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  8201  	VolumesFrom []*VolumeFrom `locationName:"volumesFrom" type:"list"`
  8202  
  8203  	// The working directory in which to run commands inside the container. This
  8204  	// parameter maps to WorkingDir in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
  8205  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
  8206  	// and the --workdir option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
  8207  	WorkingDirectory *string `locationName:"workingDirectory" type:"string"`
  8208  }
  8209  
  8210  // String returns the string representation.
  8211  //
  8212  // API parameter values that are decorated as "sensitive" in the API will not
  8213  // be included in the string output. The member name will be present, but the
  8214  // value will be replaced with "sensitive".
  8215  func (s ContainerDefinition) String() string {
  8216  	return awsutil.Prettify(s)
  8217  }
  8218  
  8219  // GoString returns the string representation.
  8220  //
  8221  // API parameter values that are decorated as "sensitive" in the API will not
  8222  // be included in the string output. The member name will be present, but the
  8223  // value will be replaced with "sensitive".
  8224  func (s ContainerDefinition) GoString() string {
  8225  	return s.String()
  8226  }
  8227  
  8228  // Validate inspects the fields of the type to determine if they are valid.
  8229  func (s *ContainerDefinition) Validate() error {
  8230  	invalidParams := request.ErrInvalidParams{Context: "ContainerDefinition"}
  8231  	if s.DependsOn != nil {
  8232  		for i, v := range s.DependsOn {
  8233  			if v == nil {
  8234  				continue
  8235  			}
  8236  			if err := v.Validate(); err != nil {
  8237  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DependsOn", i), err.(request.ErrInvalidParams))
  8238  			}
  8239  		}
  8240  	}
  8241  	if s.EnvironmentFiles != nil {
  8242  		for i, v := range s.EnvironmentFiles {
  8243  			if v == nil {
  8244  				continue
  8245  			}
  8246  			if err := v.Validate(); err != nil {
  8247  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EnvironmentFiles", i), err.(request.ErrInvalidParams))
  8248  			}
  8249  		}
  8250  	}
  8251  	if s.ExtraHosts != nil {
  8252  		for i, v := range s.ExtraHosts {
  8253  			if v == nil {
  8254  				continue
  8255  			}
  8256  			if err := v.Validate(); err != nil {
  8257  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExtraHosts", i), err.(request.ErrInvalidParams))
  8258  			}
  8259  		}
  8260  	}
  8261  	if s.FirelensConfiguration != nil {
  8262  		if err := s.FirelensConfiguration.Validate(); err != nil {
  8263  			invalidParams.AddNested("FirelensConfiguration", err.(request.ErrInvalidParams))
  8264  		}
  8265  	}
  8266  	if s.HealthCheck != nil {
  8267  		if err := s.HealthCheck.Validate(); err != nil {
  8268  			invalidParams.AddNested("HealthCheck", err.(request.ErrInvalidParams))
  8269  		}
  8270  	}
  8271  	if s.LinuxParameters != nil {
  8272  		if err := s.LinuxParameters.Validate(); err != nil {
  8273  			invalidParams.AddNested("LinuxParameters", err.(request.ErrInvalidParams))
  8274  		}
  8275  	}
  8276  	if s.LogConfiguration != nil {
  8277  		if err := s.LogConfiguration.Validate(); err != nil {
  8278  			invalidParams.AddNested("LogConfiguration", err.(request.ErrInvalidParams))
  8279  		}
  8280  	}
  8281  	if s.RepositoryCredentials != nil {
  8282  		if err := s.RepositoryCredentials.Validate(); err != nil {
  8283  			invalidParams.AddNested("RepositoryCredentials", err.(request.ErrInvalidParams))
  8284  		}
  8285  	}
  8286  	if s.ResourceRequirements != nil {
  8287  		for i, v := range s.ResourceRequirements {
  8288  			if v == nil {
  8289  				continue
  8290  			}
  8291  			if err := v.Validate(); err != nil {
  8292  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
  8293  			}
  8294  		}
  8295  	}
  8296  	if s.Secrets != nil {
  8297  		for i, v := range s.Secrets {
  8298  			if v == nil {
  8299  				continue
  8300  			}
  8301  			if err := v.Validate(); err != nil {
  8302  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Secrets", i), err.(request.ErrInvalidParams))
  8303  			}
  8304  		}
  8305  	}
  8306  	if s.Ulimits != nil {
  8307  		for i, v := range s.Ulimits {
  8308  			if v == nil {
  8309  				continue
  8310  			}
  8311  			if err := v.Validate(); err != nil {
  8312  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Ulimits", i), err.(request.ErrInvalidParams))
  8313  			}
  8314  		}
  8315  	}
  8316  
  8317  	if invalidParams.Len() > 0 {
  8318  		return invalidParams
  8319  	}
  8320  	return nil
  8321  }
  8322  
  8323  // SetCommand sets the Command field's value.
  8324  func (s *ContainerDefinition) SetCommand(v []*string) *ContainerDefinition {
  8325  	s.Command = v
  8326  	return s
  8327  }
  8328  
  8329  // SetCpu sets the Cpu field's value.
  8330  func (s *ContainerDefinition) SetCpu(v int64) *ContainerDefinition {
  8331  	s.Cpu = &v
  8332  	return s
  8333  }
  8334  
  8335  // SetDependsOn sets the DependsOn field's value.
  8336  func (s *ContainerDefinition) SetDependsOn(v []*ContainerDependency) *ContainerDefinition {
  8337  	s.DependsOn = v
  8338  	return s
  8339  }
  8340  
  8341  // SetDisableNetworking sets the DisableNetworking field's value.
  8342  func (s *ContainerDefinition) SetDisableNetworking(v bool) *ContainerDefinition {
  8343  	s.DisableNetworking = &v
  8344  	return s
  8345  }
  8346  
  8347  // SetDnsSearchDomains sets the DnsSearchDomains field's value.
  8348  func (s *ContainerDefinition) SetDnsSearchDomains(v []*string) *ContainerDefinition {
  8349  	s.DnsSearchDomains = v
  8350  	return s
  8351  }
  8352  
  8353  // SetDnsServers sets the DnsServers field's value.
  8354  func (s *ContainerDefinition) SetDnsServers(v []*string) *ContainerDefinition {
  8355  	s.DnsServers = v
  8356  	return s
  8357  }
  8358  
  8359  // SetDockerLabels sets the DockerLabels field's value.
  8360  func (s *ContainerDefinition) SetDockerLabels(v map[string]*string) *ContainerDefinition {
  8361  	s.DockerLabels = v
  8362  	return s
  8363  }
  8364  
  8365  // SetDockerSecurityOptions sets the DockerSecurityOptions field's value.
  8366  func (s *ContainerDefinition) SetDockerSecurityOptions(v []*string) *ContainerDefinition {
  8367  	s.DockerSecurityOptions = v
  8368  	return s
  8369  }
  8370  
  8371  // SetEntryPoint sets the EntryPoint field's value.
  8372  func (s *ContainerDefinition) SetEntryPoint(v []*string) *ContainerDefinition {
  8373  	s.EntryPoint = v
  8374  	return s
  8375  }
  8376  
  8377  // SetEnvironment sets the Environment field's value.
  8378  func (s *ContainerDefinition) SetEnvironment(v []*KeyValuePair) *ContainerDefinition {
  8379  	s.Environment = v
  8380  	return s
  8381  }
  8382  
  8383  // SetEnvironmentFiles sets the EnvironmentFiles field's value.
  8384  func (s *ContainerDefinition) SetEnvironmentFiles(v []*EnvironmentFile) *ContainerDefinition {
  8385  	s.EnvironmentFiles = v
  8386  	return s
  8387  }
  8388  
  8389  // SetEssential sets the Essential field's value.
  8390  func (s *ContainerDefinition) SetEssential(v bool) *ContainerDefinition {
  8391  	s.Essential = &v
  8392  	return s
  8393  }
  8394  
  8395  // SetExtraHosts sets the ExtraHosts field's value.
  8396  func (s *ContainerDefinition) SetExtraHosts(v []*HostEntry) *ContainerDefinition {
  8397  	s.ExtraHosts = v
  8398  	return s
  8399  }
  8400  
  8401  // SetFirelensConfiguration sets the FirelensConfiguration field's value.
  8402  func (s *ContainerDefinition) SetFirelensConfiguration(v *FirelensConfiguration) *ContainerDefinition {
  8403  	s.FirelensConfiguration = v
  8404  	return s
  8405  }
  8406  
  8407  // SetHealthCheck sets the HealthCheck field's value.
  8408  func (s *ContainerDefinition) SetHealthCheck(v *HealthCheck) *ContainerDefinition {
  8409  	s.HealthCheck = v
  8410  	return s
  8411  }
  8412  
  8413  // SetHostname sets the Hostname field's value.
  8414  func (s *ContainerDefinition) SetHostname(v string) *ContainerDefinition {
  8415  	s.Hostname = &v
  8416  	return s
  8417  }
  8418  
  8419  // SetImage sets the Image field's value.
  8420  func (s *ContainerDefinition) SetImage(v string) *ContainerDefinition {
  8421  	s.Image = &v
  8422  	return s
  8423  }
  8424  
  8425  // SetInteractive sets the Interactive field's value.
  8426  func (s *ContainerDefinition) SetInteractive(v bool) *ContainerDefinition {
  8427  	s.Interactive = &v
  8428  	return s
  8429  }
  8430  
  8431  // SetLinks sets the Links field's value.
  8432  func (s *ContainerDefinition) SetLinks(v []*string) *ContainerDefinition {
  8433  	s.Links = v
  8434  	return s
  8435  }
  8436  
  8437  // SetLinuxParameters sets the LinuxParameters field's value.
  8438  func (s *ContainerDefinition) SetLinuxParameters(v *LinuxParameters) *ContainerDefinition {
  8439  	s.LinuxParameters = v
  8440  	return s
  8441  }
  8442  
  8443  // SetLogConfiguration sets the LogConfiguration field's value.
  8444  func (s *ContainerDefinition) SetLogConfiguration(v *LogConfiguration) *ContainerDefinition {
  8445  	s.LogConfiguration = v
  8446  	return s
  8447  }
  8448  
  8449  // SetMemory sets the Memory field's value.
  8450  func (s *ContainerDefinition) SetMemory(v int64) *ContainerDefinition {
  8451  	s.Memory = &v
  8452  	return s
  8453  }
  8454  
  8455  // SetMemoryReservation sets the MemoryReservation field's value.
  8456  func (s *ContainerDefinition) SetMemoryReservation(v int64) *ContainerDefinition {
  8457  	s.MemoryReservation = &v
  8458  	return s
  8459  }
  8460  
  8461  // SetMountPoints sets the MountPoints field's value.
  8462  func (s *ContainerDefinition) SetMountPoints(v []*MountPoint) *ContainerDefinition {
  8463  	s.MountPoints = v
  8464  	return s
  8465  }
  8466  
  8467  // SetName sets the Name field's value.
  8468  func (s *ContainerDefinition) SetName(v string) *ContainerDefinition {
  8469  	s.Name = &v
  8470  	return s
  8471  }
  8472  
  8473  // SetPortMappings sets the PortMappings field's value.
  8474  func (s *ContainerDefinition) SetPortMappings(v []*PortMapping) *ContainerDefinition {
  8475  	s.PortMappings = v
  8476  	return s
  8477  }
  8478  
  8479  // SetPrivileged sets the Privileged field's value.
  8480  func (s *ContainerDefinition) SetPrivileged(v bool) *ContainerDefinition {
  8481  	s.Privileged = &v
  8482  	return s
  8483  }
  8484  
  8485  // SetPseudoTerminal sets the PseudoTerminal field's value.
  8486  func (s *ContainerDefinition) SetPseudoTerminal(v bool) *ContainerDefinition {
  8487  	s.PseudoTerminal = &v
  8488  	return s
  8489  }
  8490  
  8491  // SetReadonlyRootFilesystem sets the ReadonlyRootFilesystem field's value.
  8492  func (s *ContainerDefinition) SetReadonlyRootFilesystem(v bool) *ContainerDefinition {
  8493  	s.ReadonlyRootFilesystem = &v
  8494  	return s
  8495  }
  8496  
  8497  // SetRepositoryCredentials sets the RepositoryCredentials field's value.
  8498  func (s *ContainerDefinition) SetRepositoryCredentials(v *RepositoryCredentials) *ContainerDefinition {
  8499  	s.RepositoryCredentials = v
  8500  	return s
  8501  }
  8502  
  8503  // SetResourceRequirements sets the ResourceRequirements field's value.
  8504  func (s *ContainerDefinition) SetResourceRequirements(v []*ResourceRequirement) *ContainerDefinition {
  8505  	s.ResourceRequirements = v
  8506  	return s
  8507  }
  8508  
  8509  // SetSecrets sets the Secrets field's value.
  8510  func (s *ContainerDefinition) SetSecrets(v []*Secret) *ContainerDefinition {
  8511  	s.Secrets = v
  8512  	return s
  8513  }
  8514  
  8515  // SetStartTimeout sets the StartTimeout field's value.
  8516  func (s *ContainerDefinition) SetStartTimeout(v int64) *ContainerDefinition {
  8517  	s.StartTimeout = &v
  8518  	return s
  8519  }
  8520  
  8521  // SetStopTimeout sets the StopTimeout field's value.
  8522  func (s *ContainerDefinition) SetStopTimeout(v int64) *ContainerDefinition {
  8523  	s.StopTimeout = &v
  8524  	return s
  8525  }
  8526  
  8527  // SetSystemControls sets the SystemControls field's value.
  8528  func (s *ContainerDefinition) SetSystemControls(v []*SystemControl) *ContainerDefinition {
  8529  	s.SystemControls = v
  8530  	return s
  8531  }
  8532  
  8533  // SetUlimits sets the Ulimits field's value.
  8534  func (s *ContainerDefinition) SetUlimits(v []*Ulimit) *ContainerDefinition {
  8535  	s.Ulimits = v
  8536  	return s
  8537  }
  8538  
  8539  // SetUser sets the User field's value.
  8540  func (s *ContainerDefinition) SetUser(v string) *ContainerDefinition {
  8541  	s.User = &v
  8542  	return s
  8543  }
  8544  
  8545  // SetVolumesFrom sets the VolumesFrom field's value.
  8546  func (s *ContainerDefinition) SetVolumesFrom(v []*VolumeFrom) *ContainerDefinition {
  8547  	s.VolumesFrom = v
  8548  	return s
  8549  }
  8550  
  8551  // SetWorkingDirectory sets the WorkingDirectory field's value.
  8552  func (s *ContainerDefinition) SetWorkingDirectory(v string) *ContainerDefinition {
  8553  	s.WorkingDirectory = &v
  8554  	return s
  8555  }
  8556  
  8557  // The dependencies defined for container startup and shutdown. A container
  8558  // can contain multiple dependencies. When a dependency is defined for container
  8559  // startup, for container shutdown it is reversed.
  8560  //
  8561  // Your Amazon ECS container instances require at least version 1.26.0 of the
  8562  // container agent to enable container dependencies. However, we recommend using
  8563  // the latest container agent version. For information about checking your agent
  8564  // version and updating to the latest version, see Updating the Amazon ECS Container
  8565  // Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html)
  8566  // in the Amazon Elastic Container Service Developer Guide. If you are using
  8567  // an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1
  8568  // of the ecs-init package. If your container instances are launched from version
  8569  // 20190301 or later, then they contain the required versions of the container
  8570  // agent and ecs-init. For more information, see Amazon ECS-optimized Linux
  8571  // AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
  8572  // in the Amazon Elastic Container Service Developer Guide.
  8573  //
  8574  // For tasks using the Fargate launch type, this parameter requires that the
  8575  // task or service uses platform version 1.3.0 or later.
  8576  type ContainerDependency struct {
  8577  	_ struct{} `type:"structure"`
  8578  
  8579  	// The dependency condition of the container. The following are the available
  8580  	// conditions and their behavior:
  8581  	//
  8582  	//    * START - This condition emulates the behavior of links and volumes today.
  8583  	//    It validates that a dependent container is started before permitting other
  8584  	//    containers to start.
  8585  	//
  8586  	//    * COMPLETE - This condition validates that a dependent container runs
  8587  	//    to completion (exits) before permitting other containers to start. This
  8588  	//    can be useful for nonessential containers that run a script and then exit.
  8589  	//    This condition cannot be set on an essential container.
  8590  	//
  8591  	//    * SUCCESS - This condition is the same as COMPLETE, but it also requires
  8592  	//    that the container exits with a zero status. This condition cannot be
  8593  	//    set on an essential container.
  8594  	//
  8595  	//    * HEALTHY - This condition validates that the dependent container passes
  8596  	//    its Docker health check before permitting other containers to start. This
  8597  	//    requires that the dependent container has health checks configured. This
  8598  	//    condition is confirmed only at task startup.
  8599  	//
  8600  	// Condition is a required field
  8601  	Condition *string `locationName:"condition" type:"string" required:"true" enum:"ContainerCondition"`
  8602  
  8603  	// The name of a container.
  8604  	//
  8605  	// ContainerName is a required field
  8606  	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
  8607  }
  8608  
  8609  // String returns the string representation.
  8610  //
  8611  // API parameter values that are decorated as "sensitive" in the API will not
  8612  // be included in the string output. The member name will be present, but the
  8613  // value will be replaced with "sensitive".
  8614  func (s ContainerDependency) String() string {
  8615  	return awsutil.Prettify(s)
  8616  }
  8617  
  8618  // GoString returns the string representation.
  8619  //
  8620  // API parameter values that are decorated as "sensitive" in the API will not
  8621  // be included in the string output. The member name will be present, but the
  8622  // value will be replaced with "sensitive".
  8623  func (s ContainerDependency) GoString() string {
  8624  	return s.String()
  8625  }
  8626  
  8627  // Validate inspects the fields of the type to determine if they are valid.
  8628  func (s *ContainerDependency) Validate() error {
  8629  	invalidParams := request.ErrInvalidParams{Context: "ContainerDependency"}
  8630  	if s.Condition == nil {
  8631  		invalidParams.Add(request.NewErrParamRequired("Condition"))
  8632  	}
  8633  	if s.ContainerName == nil {
  8634  		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
  8635  	}
  8636  
  8637  	if invalidParams.Len() > 0 {
  8638  		return invalidParams
  8639  	}
  8640  	return nil
  8641  }
  8642  
  8643  // SetCondition sets the Condition field's value.
  8644  func (s *ContainerDependency) SetCondition(v string) *ContainerDependency {
  8645  	s.Condition = &v
  8646  	return s
  8647  }
  8648  
  8649  // SetContainerName sets the ContainerName field's value.
  8650  func (s *ContainerDependency) SetContainerName(v string) *ContainerDependency {
  8651  	s.ContainerName = &v
  8652  	return s
  8653  }
  8654  
  8655  // An EC2 instance that is running the Amazon ECS agent and has been registered
  8656  // with a cluster.
  8657  type ContainerInstance struct {
  8658  	_ struct{} `type:"structure"`
  8659  
  8660  	// This parameter returns true if the agent is connected to Amazon ECS. Registered
  8661  	// instances with an agent that may be unhealthy or stopped return false. Only
  8662  	// instances connected to an agent can accept placement requests.
  8663  	AgentConnected *bool `locationName:"agentConnected" type:"boolean"`
  8664  
  8665  	// The status of the most recent agent update. If an update has never been requested,
  8666  	// this value is NULL.
  8667  	AgentUpdateStatus *string `locationName:"agentUpdateStatus" type:"string" enum:"AgentUpdateStatus"`
  8668  
  8669  	// The resources attached to a container instance, such as elastic network interfaces.
  8670  	Attachments []*Attachment `locationName:"attachments" type:"list"`
  8671  
  8672  	// The attributes set for the container instance, either by the Amazon ECS container
  8673  	// agent at instance registration or manually with the PutAttributes operation.
  8674  	Attributes []*Attribute `locationName:"attributes" type:"list"`
  8675  
  8676  	// The capacity provider associated with the container instance.
  8677  	CapacityProviderName *string `locationName:"capacityProviderName" type:"string"`
  8678  
  8679  	// The Amazon Resource Name (ARN) of the container instance. The ARN contains
  8680  	// the arn:aws:ecs namespace, followed by the Region of the container instance,
  8681  	// the Amazon Web Services account ID of the container instance owner, the container-instance
  8682  	// namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
  8683  	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
  8684  
  8685  	// The ID of the container instance. For Amazon EC2 instances, this value is
  8686  	// the Amazon EC2 instance ID. For external instances, this value is the Amazon
  8687  	// Web Services Systems Manager managed instance ID.
  8688  	Ec2InstanceId *string `locationName:"ec2InstanceId" type:"string"`
  8689  
  8690  	// The number of tasks on the container instance that are in the PENDING status.
  8691  	PendingTasksCount *int64 `locationName:"pendingTasksCount" type:"integer"`
  8692  
  8693  	// The Unix timestamp for when the container instance was registered.
  8694  	RegisteredAt *time.Time `locationName:"registeredAt" type:"timestamp"`
  8695  
  8696  	// For CPU and memory resource types, this parameter describes the amount of
  8697  	// each resource that was available on the container instance when the container
  8698  	// agent registered it with Amazon ECS. This value represents the total amount
  8699  	// of CPU and memory that can be allocated on this container instance to tasks.
  8700  	// For port resource types, this parameter describes the ports that were reserved
  8701  	// by the Amazon ECS container agent when it registered the container instance
  8702  	// with Amazon ECS.
  8703  	RegisteredResources []*Resource `locationName:"registeredResources" type:"list"`
  8704  
  8705  	// For CPU and memory resource types, this parameter describes the remaining
  8706  	// CPU and memory that has not already been allocated to tasks and is therefore
  8707  	// available for new tasks. For port resource types, this parameter describes
  8708  	// the ports that were reserved by the Amazon ECS container agent (at instance
  8709  	// registration time) and any task containers that have reserved port mappings
  8710  	// on the host (with the host or bridge network mode). Any port that is not
  8711  	// specified here is available for new tasks.
  8712  	RemainingResources []*Resource `locationName:"remainingResources" type:"list"`
  8713  
  8714  	// The number of tasks on the container instance that are in the RUNNING status.
  8715  	RunningTasksCount *int64 `locationName:"runningTasksCount" type:"integer"`
  8716  
  8717  	// The status of the container instance. The valid values are REGISTERING, REGISTRATION_FAILED,
  8718  	// ACTIVE, INACTIVE, DEREGISTERING, or DRAINING.
  8719  	//
  8720  	// If your account has opted in to the awsvpcTrunking account setting, then
  8721  	// any newly registered container instance will transition to a REGISTERING
  8722  	// status while the trunk elastic network interface is provisioned for the instance.
  8723  	// If the registration fails, the instance will transition to a REGISTRATION_FAILED
  8724  	// status. You can describe the container instance and see the reason for failure
  8725  	// in the statusReason parameter. Once the container instance is terminated,
  8726  	// the instance transitions to a DEREGISTERING status while the trunk elastic
  8727  	// network interface is deprovisioned. The instance then transitions to an INACTIVE
  8728  	// status.
  8729  	//
  8730  	// The ACTIVE status indicates that the container instance can accept tasks.
  8731  	// The DRAINING indicates that new tasks are not placed on the container instance
  8732  	// and any service tasks running on the container instance are removed if possible.
  8733  	// For more information, see Container Instance Draining (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-draining.html)
  8734  	// in the Amazon Elastic Container Service Developer Guide.
  8735  	Status *string `locationName:"status" type:"string"`
  8736  
  8737  	// The reason that the container instance reached its current status.
  8738  	StatusReason *string `locationName:"statusReason" type:"string"`
  8739  
  8740  	// The metadata that you apply to the container instance to help you categorize
  8741  	// and organize them. Each tag consists of a key and an optional value, both
  8742  	// of which you define.
  8743  	//
  8744  	// The following basic restrictions apply to tags:
  8745  	//
  8746  	//    * Maximum number of tags per resource - 50
  8747  	//
  8748  	//    * For each resource, each tag key must be unique, and each tag key can
  8749  	//    have only one value.
  8750  	//
  8751  	//    * Maximum key length - 128 Unicode characters in UTF-8
  8752  	//
  8753  	//    * Maximum value length - 256 Unicode characters in UTF-8
  8754  	//
  8755  	//    * If your tagging schema is used across multiple services and resources,
  8756  	//    remember that other services may have restrictions on allowed characters.
  8757  	//    Generally allowed characters are: letters, numbers, and spaces representable
  8758  	//    in UTF-8, and the following characters: + - = . _ : / @.
  8759  	//
  8760  	//    * Tag keys and values are case-sensitive.
  8761  	//
  8762  	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
  8763  	//    as a prefix for either keys or values as it is reserved for Amazon Web
  8764  	//    Services use. You cannot edit or delete tag keys or values with this prefix.
  8765  	//    Tags with this prefix do not count against your tags per resource limit.
  8766  	Tags []*Tag `locationName:"tags" type:"list"`
  8767  
  8768  	// The version counter for the container instance. Every time a container instance
  8769  	// experiences a change that triggers a CloudWatch event, the version counter
  8770  	// is incremented. If you are replicating your Amazon ECS container instance
  8771  	// state with CloudWatch Events, you can compare the version of a container
  8772  	// instance reported by the Amazon ECS APIs with the version reported in CloudWatch
  8773  	// Events for the container instance (inside the detail object) to verify that
  8774  	// the version in your event stream is current.
  8775  	Version *int64 `locationName:"version" type:"long"`
  8776  
  8777  	// The version information for the Amazon ECS container agent and Docker daemon
  8778  	// running on the container instance.
  8779  	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
  8780  }
  8781  
  8782  // String returns the string representation.
  8783  //
  8784  // API parameter values that are decorated as "sensitive" in the API will not
  8785  // be included in the string output. The member name will be present, but the
  8786  // value will be replaced with "sensitive".
  8787  func (s ContainerInstance) String() string {
  8788  	return awsutil.Prettify(s)
  8789  }
  8790  
  8791  // GoString returns the string representation.
  8792  //
  8793  // API parameter values that are decorated as "sensitive" in the API will not
  8794  // be included in the string output. The member name will be present, but the
  8795  // value will be replaced with "sensitive".
  8796  func (s ContainerInstance) GoString() string {
  8797  	return s.String()
  8798  }
  8799  
  8800  // SetAgentConnected sets the AgentConnected field's value.
  8801  func (s *ContainerInstance) SetAgentConnected(v bool) *ContainerInstance {
  8802  	s.AgentConnected = &v
  8803  	return s
  8804  }
  8805  
  8806  // SetAgentUpdateStatus sets the AgentUpdateStatus field's value.
  8807  func (s *ContainerInstance) SetAgentUpdateStatus(v string) *ContainerInstance {
  8808  	s.AgentUpdateStatus = &v
  8809  	return s
  8810  }
  8811  
  8812  // SetAttachments sets the Attachments field's value.
  8813  func (s *ContainerInstance) SetAttachments(v []*Attachment) *ContainerInstance {
  8814  	s.Attachments = v
  8815  	return s
  8816  }
  8817  
  8818  // SetAttributes sets the Attributes field's value.
  8819  func (s *ContainerInstance) SetAttributes(v []*Attribute) *ContainerInstance {
  8820  	s.Attributes = v
  8821  	return s
  8822  }
  8823  
  8824  // SetCapacityProviderName sets the CapacityProviderName field's value.
  8825  func (s *ContainerInstance) SetCapacityProviderName(v string) *ContainerInstance {
  8826  	s.CapacityProviderName = &v
  8827  	return s
  8828  }
  8829  
  8830  // SetContainerInstanceArn sets the ContainerInstanceArn field's value.
  8831  func (s *ContainerInstance) SetContainerInstanceArn(v string) *ContainerInstance {
  8832  	s.ContainerInstanceArn = &v
  8833  	return s
  8834  }
  8835  
  8836  // SetEc2InstanceId sets the Ec2InstanceId field's value.
  8837  func (s *ContainerInstance) SetEc2InstanceId(v string) *ContainerInstance {
  8838  	s.Ec2InstanceId = &v
  8839  	return s
  8840  }
  8841  
  8842  // SetPendingTasksCount sets the PendingTasksCount field's value.
  8843  func (s *ContainerInstance) SetPendingTasksCount(v int64) *ContainerInstance {
  8844  	s.PendingTasksCount = &v
  8845  	return s
  8846  }
  8847  
  8848  // SetRegisteredAt sets the RegisteredAt field's value.
  8849  func (s *ContainerInstance) SetRegisteredAt(v time.Time) *ContainerInstance {
  8850  	s.RegisteredAt = &v
  8851  	return s
  8852  }
  8853  
  8854  // SetRegisteredResources sets the RegisteredResources field's value.
  8855  func (s *ContainerInstance) SetRegisteredResources(v []*Resource) *ContainerInstance {
  8856  	s.RegisteredResources = v
  8857  	return s
  8858  }
  8859  
  8860  // SetRemainingResources sets the RemainingResources field's value.
  8861  func (s *ContainerInstance) SetRemainingResources(v []*Resource) *ContainerInstance {
  8862  	s.RemainingResources = v
  8863  	return s
  8864  }
  8865  
  8866  // SetRunningTasksCount sets the RunningTasksCount field's value.
  8867  func (s *ContainerInstance) SetRunningTasksCount(v int64) *ContainerInstance {
  8868  	s.RunningTasksCount = &v
  8869  	return s
  8870  }
  8871  
  8872  // SetStatus sets the Status field's value.
  8873  func (s *ContainerInstance) SetStatus(v string) *ContainerInstance {
  8874  	s.Status = &v
  8875  	return s
  8876  }
  8877  
  8878  // SetStatusReason sets the StatusReason field's value.
  8879  func (s *ContainerInstance) SetStatusReason(v string) *ContainerInstance {
  8880  	s.StatusReason = &v
  8881  	return s
  8882  }
  8883  
  8884  // SetTags sets the Tags field's value.
  8885  func (s *ContainerInstance) SetTags(v []*Tag) *ContainerInstance {
  8886  	s.Tags = v
  8887  	return s
  8888  }
  8889  
  8890  // SetVersion sets the Version field's value.
  8891  func (s *ContainerInstance) SetVersion(v int64) *ContainerInstance {
  8892  	s.Version = &v
  8893  	return s
  8894  }
  8895  
  8896  // SetVersionInfo sets the VersionInfo field's value.
  8897  func (s *ContainerInstance) SetVersionInfo(v *VersionInfo) *ContainerInstance {
  8898  	s.VersionInfo = v
  8899  	return s
  8900  }
  8901  
  8902  // The overrides that should be sent to a container. An empty container override
  8903  // can be passed in. An example of an empty container override would be {"containerOverrides":
  8904  // [ ] }. If a non-empty container override is specified, the name parameter
  8905  // must be included.
  8906  type ContainerOverride struct {
  8907  	_ struct{} `type:"structure"`
  8908  
  8909  	// The command to send to the container that overrides the default command from
  8910  	// the Docker image or the task definition. You must also specify a container
  8911  	// name.
  8912  	Command []*string `locationName:"command" type:"list"`
  8913  
  8914  	// The number of cpu units reserved for the container, instead of the default
  8915  	// value from the task definition. You must also specify a container name.
  8916  	Cpu *int64 `locationName:"cpu" type:"integer"`
  8917  
  8918  	// The environment variables to send to the container. You can add new environment
  8919  	// variables, which are added to the container at launch, or you can override
  8920  	// the existing environment variables from the Docker image or the task definition.
  8921  	// You must also specify a container name.
  8922  	Environment []*KeyValuePair `locationName:"environment" type:"list"`
  8923  
  8924  	// A list of files containing the environment variables to pass to a container,
  8925  	// instead of the value from the container definition.
  8926  	EnvironmentFiles []*EnvironmentFile `locationName:"environmentFiles" type:"list"`
  8927  
  8928  	// The hard limit (in MiB) of memory to present to the container, instead of
  8929  	// the default value from the task definition. If your container attempts to
  8930  	// exceed the memory specified here, the container is killed. You must also
  8931  	// specify a container name.
  8932  	Memory *int64 `locationName:"memory" type:"integer"`
  8933  
  8934  	// The soft limit (in MiB) of memory to reserve for the container, instead of
  8935  	// the default value from the task definition. You must also specify a container
  8936  	// name.
  8937  	MemoryReservation *int64 `locationName:"memoryReservation" type:"integer"`
  8938  
  8939  	// The name of the container that receives the override. This parameter is required
  8940  	// if any override is specified.
  8941  	Name *string `locationName:"name" type:"string"`
  8942  
  8943  	// The type and amount of a resource to assign to a container, instead of the
  8944  	// default value from the task definition. The only supported resource is a
  8945  	// GPU.
  8946  	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
  8947  }
  8948  
  8949  // String returns the string representation.
  8950  //
  8951  // API parameter values that are decorated as "sensitive" in the API will not
  8952  // be included in the string output. The member name will be present, but the
  8953  // value will be replaced with "sensitive".
  8954  func (s ContainerOverride) String() string {
  8955  	return awsutil.Prettify(s)
  8956  }
  8957  
  8958  // GoString returns the string representation.
  8959  //
  8960  // API parameter values that are decorated as "sensitive" in the API will not
  8961  // be included in the string output. The member name will be present, but the
  8962  // value will be replaced with "sensitive".
  8963  func (s ContainerOverride) GoString() string {
  8964  	return s.String()
  8965  }
  8966  
  8967  // Validate inspects the fields of the type to determine if they are valid.
  8968  func (s *ContainerOverride) Validate() error {
  8969  	invalidParams := request.ErrInvalidParams{Context: "ContainerOverride"}
  8970  	if s.EnvironmentFiles != nil {
  8971  		for i, v := range s.EnvironmentFiles {
  8972  			if v == nil {
  8973  				continue
  8974  			}
  8975  			if err := v.Validate(); err != nil {
  8976  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EnvironmentFiles", i), err.(request.ErrInvalidParams))
  8977  			}
  8978  		}
  8979  	}
  8980  	if s.ResourceRequirements != nil {
  8981  		for i, v := range s.ResourceRequirements {
  8982  			if v == nil {
  8983  				continue
  8984  			}
  8985  			if err := v.Validate(); err != nil {
  8986  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
  8987  			}
  8988  		}
  8989  	}
  8990  
  8991  	if invalidParams.Len() > 0 {
  8992  		return invalidParams
  8993  	}
  8994  	return nil
  8995  }
  8996  
  8997  // SetCommand sets the Command field's value.
  8998  func (s *ContainerOverride) SetCommand(v []*string) *ContainerOverride {
  8999  	s.Command = v
  9000  	return s
  9001  }
  9002  
  9003  // SetCpu sets the Cpu field's value.
  9004  func (s *ContainerOverride) SetCpu(v int64) *ContainerOverride {
  9005  	s.Cpu = &v
  9006  	return s
  9007  }
  9008  
  9009  // SetEnvironment sets the Environment field's value.
  9010  func (s *ContainerOverride) SetEnvironment(v []*KeyValuePair) *ContainerOverride {
  9011  	s.Environment = v
  9012  	return s
  9013  }
  9014  
  9015  // SetEnvironmentFiles sets the EnvironmentFiles field's value.
  9016  func (s *ContainerOverride) SetEnvironmentFiles(v []*EnvironmentFile) *ContainerOverride {
  9017  	s.EnvironmentFiles = v
  9018  	return s
  9019  }
  9020  
  9021  // SetMemory sets the Memory field's value.
  9022  func (s *ContainerOverride) SetMemory(v int64) *ContainerOverride {
  9023  	s.Memory = &v
  9024  	return s
  9025  }
  9026  
  9027  // SetMemoryReservation sets the MemoryReservation field's value.
  9028  func (s *ContainerOverride) SetMemoryReservation(v int64) *ContainerOverride {
  9029  	s.MemoryReservation = &v
  9030  	return s
  9031  }
  9032  
  9033  // SetName sets the Name field's value.
  9034  func (s *ContainerOverride) SetName(v string) *ContainerOverride {
  9035  	s.Name = &v
  9036  	return s
  9037  }
  9038  
  9039  // SetResourceRequirements sets the ResourceRequirements field's value.
  9040  func (s *ContainerOverride) SetResourceRequirements(v []*ResourceRequirement) *ContainerOverride {
  9041  	s.ResourceRequirements = v
  9042  	return s
  9043  }
  9044  
  9045  // An object representing a change in state for a container.
  9046  type ContainerStateChange struct {
  9047  	_ struct{} `type:"structure"`
  9048  
  9049  	// The name of the container.
  9050  	ContainerName *string `locationName:"containerName" type:"string"`
  9051  
  9052  	// The exit code for the container, if the state change is a result of the container
  9053  	// exiting.
  9054  	ExitCode *int64 `locationName:"exitCode" type:"integer"`
  9055  
  9056  	// The container image SHA 256 digest.
  9057  	ImageDigest *string `locationName:"imageDigest" type:"string"`
  9058  
  9059  	// Any network bindings associated with the container.
  9060  	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
  9061  
  9062  	// The reason for the state change.
  9063  	Reason *string `locationName:"reason" type:"string"`
  9064  
  9065  	// The ID of the Docker container.
  9066  	RuntimeId *string `locationName:"runtimeId" type:"string"`
  9067  
  9068  	// The status of the container.
  9069  	Status *string `locationName:"status" type:"string"`
  9070  }
  9071  
  9072  // String returns the string representation.
  9073  //
  9074  // API parameter values that are decorated as "sensitive" in the API will not
  9075  // be included in the string output. The member name will be present, but the
  9076  // value will be replaced with "sensitive".
  9077  func (s ContainerStateChange) String() string {
  9078  	return awsutil.Prettify(s)
  9079  }
  9080  
  9081  // GoString returns the string representation.
  9082  //
  9083  // API parameter values that are decorated as "sensitive" in the API will not
  9084  // be included in the string output. The member name will be present, but the
  9085  // value will be replaced with "sensitive".
  9086  func (s ContainerStateChange) GoString() string {
  9087  	return s.String()
  9088  }
  9089  
  9090  // SetContainerName sets the ContainerName field's value.
  9091  func (s *ContainerStateChange) SetContainerName(v string) *ContainerStateChange {
  9092  	s.ContainerName = &v
  9093  	return s
  9094  }
  9095  
  9096  // SetExitCode sets the ExitCode field's value.
  9097  func (s *ContainerStateChange) SetExitCode(v int64) *ContainerStateChange {
  9098  	s.ExitCode = &v
  9099  	return s
  9100  }
  9101  
  9102  // SetImageDigest sets the ImageDigest field's value.
  9103  func (s *ContainerStateChange) SetImageDigest(v string) *ContainerStateChange {
  9104  	s.ImageDigest = &v
  9105  	return s
  9106  }
  9107  
  9108  // SetNetworkBindings sets the NetworkBindings field's value.
  9109  func (s *ContainerStateChange) SetNetworkBindings(v []*NetworkBinding) *ContainerStateChange {
  9110  	s.NetworkBindings = v
  9111  	return s
  9112  }
  9113  
  9114  // SetReason sets the Reason field's value.
  9115  func (s *ContainerStateChange) SetReason(v string) *ContainerStateChange {
  9116  	s.Reason = &v
  9117  	return s
  9118  }
  9119  
  9120  // SetRuntimeId sets the RuntimeId field's value.
  9121  func (s *ContainerStateChange) SetRuntimeId(v string) *ContainerStateChange {
  9122  	s.RuntimeId = &v
  9123  	return s
  9124  }
  9125  
  9126  // SetStatus sets the Status field's value.
  9127  func (s *ContainerStateChange) SetStatus(v string) *ContainerStateChange {
  9128  	s.Status = &v
  9129  	return s
  9130  }
  9131  
  9132  type CreateCapacityProviderInput struct {
  9133  	_ struct{} `type:"structure"`
  9134  
  9135  	// The details of the Auto Scaling group for the capacity provider.
  9136  	//
  9137  	// AutoScalingGroupProvider is a required field
  9138  	AutoScalingGroupProvider *AutoScalingGroupProvider `locationName:"autoScalingGroupProvider" type:"structure" required:"true"`
  9139  
  9140  	// The name of the capacity provider. Up to 255 characters are allowed, including
  9141  	// letters (upper and lowercase), numbers, underscores, and hyphens. The name
  9142  	// cannot be prefixed with "aws", "ecs", or "fargate".
  9143  	//
  9144  	// Name is a required field
  9145  	Name *string `locationName:"name" type:"string" required:"true"`
  9146  
  9147  	// The metadata that you apply to the capacity provider to help you categorize
  9148  	// and organize them. Each tag consists of a key and an optional value, both
  9149  	// of which you define.
  9150  	//
  9151  	// The following basic restrictions apply to tags:
  9152  	//
  9153  	//    * Maximum number of tags per resource - 50
  9154  	//
  9155  	//    * For each resource, each tag key must be unique, and each tag key can
  9156  	//    have only one value.
  9157  	//
  9158  	//    * Maximum key length - 128 Unicode characters in UTF-8
  9159  	//
  9160  	//    * Maximum value length - 256 Unicode characters in UTF-8
  9161  	//
  9162  	//    * If your tagging schema is used across multiple services and resources,
  9163  	//    remember that other services may have restrictions on allowed characters.
  9164  	//    Generally allowed characters are: letters, numbers, and spaces representable
  9165  	//    in UTF-8, and the following characters: + - = . _ : / @.
  9166  	//
  9167  	//    * Tag keys and values are case-sensitive.
  9168  	//
  9169  	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
  9170  	//    as a prefix for either keys or values as it is reserved for Amazon Web
  9171  	//    Services use. You cannot edit or delete tag keys or values with this prefix.
  9172  	//    Tags with this prefix do not count against your tags per resource limit.
  9173  	Tags []*Tag `locationName:"tags" type:"list"`
  9174  }
  9175  
  9176  // String returns the string representation.
  9177  //
  9178  // API parameter values that are decorated as "sensitive" in the API will not
  9179  // be included in the string output. The member name will be present, but the
  9180  // value will be replaced with "sensitive".
  9181  func (s CreateCapacityProviderInput) String() string {
  9182  	return awsutil.Prettify(s)
  9183  }
  9184  
  9185  // GoString returns the string representation.
  9186  //
  9187  // API parameter values that are decorated as "sensitive" in the API will not
  9188  // be included in the string output. The member name will be present, but the
  9189  // value will be replaced with "sensitive".
  9190  func (s CreateCapacityProviderInput) GoString() string {
  9191  	return s.String()
  9192  }
  9193  
  9194  // Validate inspects the fields of the type to determine if they are valid.
  9195  func (s *CreateCapacityProviderInput) Validate() error {
  9196  	invalidParams := request.ErrInvalidParams{Context: "CreateCapacityProviderInput"}
  9197  	if s.AutoScalingGroupProvider == nil {
  9198  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupProvider"))
  9199  	}
  9200  	if s.Name == nil {
  9201  		invalidParams.Add(request.NewErrParamRequired("Name"))
  9202  	}
  9203  	if s.AutoScalingGroupProvider != nil {
  9204  		if err := s.AutoScalingGroupProvider.Validate(); err != nil {
  9205  			invalidParams.AddNested("AutoScalingGroupProvider", err.(request.ErrInvalidParams))
  9206  		}
  9207  	}
  9208  	if s.Tags != nil {
  9209  		for i, v := range s.Tags {
  9210  			if v == nil {
  9211  				continue
  9212  			}
  9213  			if err := v.Validate(); err != nil {
  9214  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  9215  			}
  9216  		}
  9217  	}
  9218  
  9219  	if invalidParams.Len() > 0 {
  9220  		return invalidParams
  9221  	}
  9222  	return nil
  9223  }
  9224  
  9225  // SetAutoScalingGroupProvider sets the AutoScalingGroupProvider field's value.
  9226  func (s *CreateCapacityProviderInput) SetAutoScalingGroupProvider(v *AutoScalingGroupProvider) *CreateCapacityProviderInput {
  9227  	s.AutoScalingGroupProvider = v
  9228  	return s
  9229  }
  9230  
  9231  // SetName sets the Name field's value.
  9232  func (s *CreateCapacityProviderInput) SetName(v string) *CreateCapacityProviderInput {
  9233  	s.Name = &v
  9234  	return s
  9235  }
  9236  
  9237  // SetTags sets the Tags field's value.
  9238  func (s *CreateCapacityProviderInput) SetTags(v []*Tag) *CreateCapacityProviderInput {
  9239  	s.Tags = v
  9240  	return s
  9241  }
  9242  
  9243  type CreateCapacityProviderOutput struct {
  9244  	_ struct{} `type:"structure"`
  9245  
  9246  	// The full description of the new capacity provider.
  9247  	CapacityProvider *CapacityProvider `locationName:"capacityProvider" type:"structure"`
  9248  }
  9249  
  9250  // String returns the string representation.
  9251  //
  9252  // API parameter values that are decorated as "sensitive" in the API will not
  9253  // be included in the string output. The member name will be present, but the
  9254  // value will be replaced with "sensitive".
  9255  func (s CreateCapacityProviderOutput) String() string {
  9256  	return awsutil.Prettify(s)
  9257  }
  9258  
  9259  // GoString returns the string representation.
  9260  //
  9261  // API parameter values that are decorated as "sensitive" in the API will not
  9262  // be included in the string output. The member name will be present, but the
  9263  // value will be replaced with "sensitive".
  9264  func (s CreateCapacityProviderOutput) GoString() string {
  9265  	return s.String()
  9266  }
  9267  
  9268  // SetCapacityProvider sets the CapacityProvider field's value.
  9269  func (s *CreateCapacityProviderOutput) SetCapacityProvider(v *CapacityProvider) *CreateCapacityProviderOutput {
  9270  	s.CapacityProvider = v
  9271  	return s
  9272  }
  9273  
  9274  type CreateClusterInput struct {
  9275  	_ struct{} `type:"structure"`
  9276  
  9277  	// The short name of one or more capacity providers to associate with the cluster.
  9278  	// A capacity provider must be associated with a cluster before it can be included
  9279  	// as part of the default capacity provider strategy of the cluster or used
  9280  	// in a capacity provider strategy when calling the CreateService or RunTask
  9281  	// actions.
  9282  	//
  9283  	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
  9284  	// provider must already be created and not already associated with another
  9285  	// cluster. New Auto Scaling group capacity providers can be created with the
  9286  	// CreateCapacityProvider API operation.
  9287  	//
  9288  	// To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
  9289  	// capacity providers. The Fargate capacity providers are available to all accounts
  9290  	// and only need to be associated with a cluster to be used.
  9291  	//
  9292  	// The PutClusterCapacityProviders API operation is used to update the list
  9293  	// of available capacity providers for a cluster after the cluster is created.
  9294  	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
  9295  
  9296  	// The name of your cluster. If you do not specify a name for your cluster,
  9297  	// you create a cluster named default. Up to 255 letters (uppercase and lowercase),
  9298  	// numbers, underscores, and hyphens are allowed.
  9299  	ClusterName *string `locationName:"clusterName" type:"string"`
  9300  
  9301  	// The execute command configuration for the cluster.
  9302  	Configuration *ClusterConfiguration `locationName:"configuration" type:"structure"`
  9303  
  9304  	// The capacity provider strategy to set as the default for the cluster. When
  9305  	// a default capacity provider strategy is set for a cluster, when calling the
  9306  	// RunTask or CreateService APIs with no capacity provider strategy or launch
  9307  	// type specified, the default capacity provider strategy for the cluster is
  9308  	// used.
  9309  	//
  9310  	// If a default capacity provider strategy is not defined for a cluster during
  9311  	// creation, it can be defined later with the PutClusterCapacityProviders API
  9312  	// operation.
  9313  	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list"`
  9314  
  9315  	// The setting to use when creating a cluster. This parameter is used to enable
  9316  	// CloudWatch Container Insights for a cluster. If this value is specified,
  9317  	// it will override the containerInsights value set with PutAccountSetting or
  9318  	// PutAccountSettingDefault.
  9319  	Settings []*ClusterSetting `locationName:"settings" type:"list"`
  9320  
  9321  	// The metadata that you apply to the cluster to help you categorize and organize
  9322  	// them. Each tag consists of a key and an optional value, both of which you
  9323  	// define.
  9324  	//
  9325  	// The following basic restrictions apply to tags:
  9326  	//
  9327  	//    * Maximum number of tags per resource - 50
  9328  	//
  9329  	//    * For each resource, each tag key must be unique, and each tag key can
  9330  	//    have only one value.
  9331  	//
  9332  	//    * Maximum key length - 128 Unicode characters in UTF-8
  9333  	//
  9334  	//    * Maximum value length - 256 Unicode characters in UTF-8
  9335  	//
  9336  	//    * If your tagging schema is used across multiple services and resources,
  9337  	//    remember that other services may have restrictions on allowed characters.
  9338  	//    Generally allowed characters are: letters, numbers, and spaces representable
  9339  	//    in UTF-8, and the following characters: + - = . _ : / @.
  9340  	//
  9341  	//    * Tag keys and values are case-sensitive.
  9342  	//
  9343  	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
  9344  	//    as a prefix for either keys or values as it is reserved for Amazon Web
  9345  	//    Services use. You cannot edit or delete tag keys or values with this prefix.
  9346  	//    Tags with this prefix do not count against your tags per resource limit.
  9347  	Tags []*Tag `locationName:"tags" type:"list"`
  9348  }
  9349  
  9350  // String returns the string representation.
  9351  //
  9352  // API parameter values that are decorated as "sensitive" in the API will not
  9353  // be included in the string output. The member name will be present, but the
  9354  // value will be replaced with "sensitive".
  9355  func (s CreateClusterInput) String() string {
  9356  	return awsutil.Prettify(s)
  9357  }
  9358  
  9359  // GoString returns the string representation.
  9360  //
  9361  // API parameter values that are decorated as "sensitive" in the API will not
  9362  // be included in the string output. The member name will be present, but the
  9363  // value will be replaced with "sensitive".
  9364  func (s CreateClusterInput) GoString() string {
  9365  	return s.String()
  9366  }
  9367  
  9368  // Validate inspects the fields of the type to determine if they are valid.
  9369  func (s *CreateClusterInput) Validate() error {
  9370  	invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
  9371  	if s.DefaultCapacityProviderStrategy != nil {
  9372  		for i, v := range s.DefaultCapacityProviderStrategy {
  9373  			if v == nil {
  9374  				continue
  9375  			}
  9376  			if err := v.Validate(); err != nil {
  9377  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultCapacityProviderStrategy", i), err.(request.ErrInvalidParams))
  9378  			}
  9379  		}
  9380  	}
  9381  	if s.Tags != nil {
  9382  		for i, v := range s.Tags {
  9383  			if v == nil {
  9384  				continue
  9385  			}
  9386  			if err := v.Validate(); err != nil {
  9387  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  9388  			}
  9389  		}
  9390  	}
  9391  
  9392  	if invalidParams.Len() > 0 {
  9393  		return invalidParams
  9394  	}
  9395  	return nil
  9396  }
  9397  
  9398  // SetCapacityProviders sets the CapacityProviders field's value.
  9399  func (s *CreateClusterInput) SetCapacityProviders(v []*string) *CreateClusterInput {
  9400  	s.CapacityProviders = v
  9401  	return s
  9402  }
  9403  
  9404  // SetClusterName sets the ClusterName field's value.
  9405  func (s *CreateClusterInput) SetClusterName(v string) *CreateClusterInput {
  9406  	s.ClusterName = &v
  9407  	return s
  9408  }
  9409  
  9410  // SetConfiguration sets the Configuration field's value.
  9411  func (s *CreateClusterInput) SetConfiguration(v *ClusterConfiguration) *CreateClusterInput {
  9412  	s.Configuration = v
  9413  	return s
  9414  }
  9415  
  9416  // SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
  9417  func (s *CreateClusterInput) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateClusterInput {
  9418  	s.DefaultCapacityProviderStrategy = v
  9419  	return s
  9420  }
  9421  
  9422  // SetSettings sets the Settings field's value.
  9423  func (s *CreateClusterInput) SetSettings(v []*ClusterSetting) *CreateClusterInput {
  9424  	s.Settings = v
  9425  	return s
  9426  }
  9427  
  9428  // SetTags sets the Tags field's value.
  9429  func (s *CreateClusterInput) SetTags(v []*Tag) *CreateClusterInput {
  9430  	s.Tags = v
  9431  	return s
  9432  }
  9433  
  9434  type CreateClusterOutput struct {
  9435  	_ struct{} `type:"structure"`
  9436  
  9437  	// The full description of your new cluster.
  9438  	Cluster *Cluster `locationName:"cluster" type:"structure"`
  9439  }
  9440  
  9441  // String returns the string representation.
  9442  //
  9443  // API parameter values that are decorated as "sensitive" in the API will not
  9444  // be included in the string output. The member name will be present, but the
  9445  // value will be replaced with "sensitive".
  9446  func (s CreateClusterOutput) String() string {
  9447  	return awsutil.Prettify(s)
  9448  }
  9449  
  9450  // GoString returns the string representation.
  9451  //
  9452  // API parameter values that are decorated as "sensitive" in the API will not
  9453  // be included in the string output. The member name will be present, but the
  9454  // value will be replaced with "sensitive".
  9455  func (s CreateClusterOutput) GoString() string {
  9456  	return s.String()
  9457  }
  9458  
  9459  // SetCluster sets the Cluster field's value.
  9460  func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput {
  9461  	s.Cluster = v
  9462  	return s
  9463  }
  9464  
  9465  type CreateServiceInput struct {
  9466  	_ struct{} `type:"structure"`
  9467  
  9468  	// The capacity provider strategy to use for the service.
  9469  	//
  9470  	// If a capacityProviderStrategy is specified, the launchType parameter must
  9471  	// be omitted. If no capacityProviderStrategy or launchType is specified, the
  9472  	// defaultCapacityProviderStrategy for the cluster is used.
  9473  	//
  9474  	// A capacity provider strategy may contain a maximum of 6 capacity providers.
  9475  	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
  9476  
  9477  	// Unique, case-sensitive identifier that you provide to ensure the idempotency
  9478  	// of the request. Up to 32 ASCII characters are allowed.
  9479  	ClientToken *string `locationName:"clientToken" type:"string"`
  9480  
  9481  	// The short name or full Amazon Resource Name (ARN) of the cluster on which
  9482  	// to run your service. If you do not specify a cluster, the default cluster
  9483  	// is assumed.
  9484  	Cluster *string `locationName:"cluster" type:"string"`
  9485  
  9486  	// Optional deployment parameters that control how many tasks run during the
  9487  	// deployment and the ordering of stopping and starting tasks.
  9488  	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
  9489  
  9490  	// The deployment controller to use for the service. If no deployment controller
  9491  	// is specified, the default value of ECS is used.
  9492  	DeploymentController *DeploymentController `locationName:"deploymentController" type:"structure"`
  9493  
  9494  	// The number of instantiations of the specified task definition to place and
  9495  	// keep running on your cluster.
  9496  	//
  9497  	// This is required if schedulingStrategy is REPLICA or is not specified. If
  9498  	// schedulingStrategy is DAEMON then this is not required.
  9499  	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
  9500  
  9501  	// Specifies whether to enable Amazon ECS managed tags for the tasks within
  9502  	// the service. For more information, see Tagging Your Amazon ECS Resources
  9503  	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
  9504  	// in the Amazon Elastic Container Service Developer Guide.
  9505  	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
  9506  
  9507  	// Whether or not the execute command functionality is enabled for the service.
  9508  	// If true, this enables execute command functionality on all containers in
  9509  	// the service tasks.
  9510  	EnableExecuteCommand *bool `locationName:"enableExecuteCommand" type:"boolean"`
  9511  
  9512  	// The period of time, in seconds, that the Amazon ECS service scheduler should
  9513  	// ignore unhealthy Elastic Load Balancing target health checks after a task
  9514  	// has first started. This is only used when your service is configured to use
  9515  	// a load balancer. If your service has a load balancer defined and you don't
  9516  	// specify a health check grace period value, the default value of 0 is used.
  9517  	//
  9518  	// If your service's tasks take a while to start and respond to Elastic Load
  9519  	// Balancing health checks, you can specify a health check grace period of up
  9520  	// to 2,147,483,647 seconds. During that time, the Amazon ECS service scheduler
  9521  	// ignores health check status. This grace period can prevent the service scheduler
  9522  	// from marking tasks as unhealthy and stopping them before they have time to
  9523  	// come up.
  9524  	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
  9525  
  9526  	// The infrastructure on which to run your service. For more information, see
  9527  	// Amazon ECS launch types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
  9528  	// in the Amazon Elastic Container Service Developer Guide.
  9529  	//
  9530  	// The FARGATE launch type runs your tasks on Fargate On-Demand infrastructure.
  9531  	//
  9532  	// Fargate Spot infrastructure is available for use but a capacity provider
  9533  	// strategy must be used. For more information, see Fargate capacity providers
  9534  	// (https://docs.aws.amazon.com/AmazonECS/latest/userguide/fargate-capacity-providers.html)
  9535  	// in the Amazon ECS User Guide for Fargate.
  9536  	//
  9537  	// The EC2 launch type runs your tasks on Amazon EC2 instances registered to
  9538  	// your cluster.
  9539  	//
  9540  	// The EXTERNAL launch type runs your tasks on your on-premise server or virtual
  9541  	// machine (VM) capacity registered to your cluster.
  9542  	//
  9543  	// A service can use either a launch type or a capacity provider strategy. If
  9544  	// a launchType is specified, the capacityProviderStrategy parameter must be
  9545  	// omitted.
  9546  	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
  9547  
  9548  	// A load balancer object representing the load balancers to use with your service.
  9549  	// For more information, see Service Load Balancing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)
  9550  	// in the Amazon Elastic Container Service Developer Guide.
  9551  	//
  9552  	// If the service is using the rolling update (ECS) deployment controller and
  9553  	// using either an Application Load Balancer or Network Load Balancer, you must
  9554  	// specify one or more target group ARNs to attach to the service. The service-linked
  9555  	// role is required for services that make use of multiple target groups. For
  9556  	// more information, see Using service-linked roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
  9557  	// in the Amazon Elastic Container Service Developer Guide.
  9558  	//
  9559  	// If the service is using the CODE_DEPLOY deployment controller, the service
  9560  	// is required to use either an Application Load Balancer or Network Load Balancer.
  9561  	// When creating an CodeDeploy deployment group, you specify two target groups
  9562  	// (referred to as a targetGroupPair). During a deployment, CodeDeploy determines
  9563  	// which task set in your service has the status PRIMARY and associates one
  9564  	// target group with it, and then associates the other target group with the
  9565  	// replacement task set. The load balancer can also have up to two listeners:
  9566  	// a required listener for production traffic and an optional listener that
  9567  	// allows you perform validation tests with Lambda functions before routing
  9568  	// production traffic to it.
  9569  	//
  9570  	// After you create a service using the ECS deployment controller, the load
  9571  	// balancer name or target group ARN, container name, and container port specified
  9572  	// in the service definition are immutable. If you are using the CODE_DEPLOY
  9573  	// deployment controller, these values can be changed when updating the service.
  9574  	//
  9575  	// For Application Load Balancers and Network Load Balancers, this object must
  9576  	// contain the load balancer target group ARN, the container name (as it appears
  9577  	// in a container definition), and the container port to access from the load
  9578  	// balancer. The load balancer name parameter must be omitted. When a task from
  9579  	// this service is placed on a container instance, the container instance and
  9580  	// port combination is registered as a target in the target group specified
  9581  	// here.
  9582  	//
  9583  	// For Classic Load Balancers, this object must contain the load balancer name,
  9584  	// the container name (as it appears in a container definition), and the container
  9585  	// port to access from the load balancer. The target group ARN parameter must
  9586  	// be omitted. When a task from this service is placed on a container instance,
  9587  	// the container instance is registered with the load balancer specified here.
  9588  	//
  9589  	// Services with tasks that use the awsvpc network mode (for example, those
  9590  	// with the Fargate launch type) only support Application Load Balancers and
  9591  	// Network Load Balancers. Classic Load Balancers are not supported. Also, when
  9592  	// you create any target groups for these services, you must choose ip as the
  9593  	// target type, not instance, because tasks that use the awsvpc network mode
  9594  	// are associated with an elastic network interface, not an Amazon EC2 instance.
  9595  	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
  9596  
  9597  	// The network configuration for the service. This parameter is required for
  9598  	// task definitions that use the awsvpc network mode to receive their own elastic
  9599  	// network interface, and it is not supported for other network modes. For more
  9600  	// information, see Task networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
  9601  	// in the Amazon Elastic Container Service Developer Guide.
  9602  	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
  9603  
  9604  	// An array of placement constraint objects to use for tasks in your service.
  9605  	// You can specify a maximum of 10 constraints per task (this limit includes
  9606  	// constraints in the task definition and those specified at runtime).
  9607  	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
  9608  
  9609  	// The placement strategy objects to use for tasks in your service. You can
  9610  	// specify a maximum of 5 strategy rules per service.
  9611  	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
  9612  
  9613  	// The platform version that your tasks in the service are running on. A platform
  9614  	// version is specified only for tasks using the Fargate launch type. If one
  9615  	// isn't specified, the LATEST platform version is used by default. For more
  9616  	// information, see Fargate platform versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
  9617  	// in the Amazon Elastic Container Service Developer Guide.
  9618  	PlatformVersion *string `locationName:"platformVersion" type:"string"`
  9619  
  9620  	// Specifies whether to propagate the tags from the task definition or the service
  9621  	// to the tasks in the service. If no value is specified, the tags are not propagated.
  9622  	// Tags can only be propagated to the tasks within the service during service
  9623  	// creation. To add tags to a task after service creation, use the TagResource
  9624  	// API action.
  9625  	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
  9626  
  9627  	// The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon
  9628  	// ECS to make calls to your load balancer on your behalf. This parameter is
  9629  	// only permitted if you are using a load balancer with your service and your
  9630  	// task definition does not use the awsvpc network mode. If you specify the
  9631  	// role parameter, you must also specify a load balancer object with the loadBalancers
  9632  	// parameter.
  9633  	//
  9634  	// If your account has already created the Amazon ECS service-linked role, that
  9635  	// role is used by default for your service unless you specify a role here.
  9636  	// The service-linked role is required if your task definition uses the awsvpc
  9637  	// network mode or if the service is configured to use service discovery, an
  9638  	// external deployment controller, multiple target groups, or Elastic Inference
  9639  	// accelerators in which case you should not specify a role here. For more information,
  9640  	// see Using service-linked roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
  9641  	// in the Amazon Elastic Container Service Developer Guide.
  9642  	//
  9643  	// If your specified role has a path other than /, then you must either specify
  9644  	// the full role ARN (this is recommended) or prefix the role name with the
  9645  	// path. For example, if a role with the name bar has a path of /foo/ then you
  9646  	// would specify /foo/bar as the role name. For more information, see Friendly
  9647  	// names and paths (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names)
  9648  	// in the IAM User Guide.
  9649  	Role *string `locationName:"role" type:"string"`
  9650  
  9651  	// The scheduling strategy to use for the service. For more information, see
  9652  	// Services (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).
  9653  	//
  9654  	// There are two service scheduler strategies available:
  9655  	//
  9656  	//    * REPLICA-The replica scheduling strategy places and maintains the desired
  9657  	//    number of tasks across your cluster. By default, the service scheduler
  9658  	//    spreads tasks across Availability Zones. You can use task placement strategies
  9659  	//    and constraints to customize task placement decisions. This scheduler
  9660  	//    strategy is required if the service is using the CODE_DEPLOY or EXTERNAL
  9661  	//    deployment controller types.
  9662  	//
  9663  	//    * DAEMON-The daemon scheduling strategy deploys exactly one task on each
  9664  	//    active container instance that meets all of the task placement constraints
  9665  	//    that you specify in your cluster. The service scheduler also evaluates
  9666  	//    the task placement constraints for running tasks and will stop tasks that
  9667  	//    do not meet the placement constraints. When you're using this strategy,
  9668  	//    you don't need to specify a desired number of tasks, a task placement
  9669  	//    strategy, or use Service Auto Scaling policies. Tasks using the Fargate
  9670  	//    launch type or the CODE_DEPLOY or EXTERNAL deployment controller types
  9671  	//    don't support the DAEMON scheduling strategy.
  9672  	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
  9673  
  9674  	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
  9675  	// underscores, and hyphens are allowed. Service names must be unique within
  9676  	// a cluster, but you can have similarly named services in multiple clusters
  9677  	// within a Region or across multiple Regions.
  9678  	//
  9679  	// ServiceName is a required field
  9680  	ServiceName *string `locationName:"serviceName" type:"string" required:"true"`
  9681  
  9682  	// The details of the service discovery registry to associate with this service.
  9683  	// For more information, see Service discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
  9684  	//
  9685  	// Each service may be associated with one service registry. Multiple service
  9686  	// registries per service isn't supported.
  9687  	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
  9688  
  9689  	// The metadata that you apply to the service to help you categorize and organize
  9690  	// them. Each tag consists of a key and an optional value, both of which you
  9691  	// define. When a service is deleted, the tags are deleted as well.
  9692  	//
  9693  	// The following basic restrictions apply to tags:
  9694  	//
  9695  	//    * Maximum number of tags per resource - 50
  9696  	//
  9697  	//    * For each resource, each tag key must be unique, and each tag key can
  9698  	//    have only one value.
  9699  	//
  9700  	//    * Maximum key length - 128 Unicode characters in UTF-8
  9701  	//
  9702  	//    * Maximum value length - 256 Unicode characters in UTF-8
  9703  	//
  9704  	//    * If your tagging schema is used across multiple services and resources,
  9705  	//    remember that other services may have restrictions on allowed characters.
  9706  	//    Generally allowed characters are: letters, numbers, and spaces representable
  9707  	//    in UTF-8, and the following characters: + - = . _ : / @.
  9708  	//
  9709  	//    * Tag keys and values are case-sensitive.
  9710  	//
  9711  	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
  9712  	//    as a prefix for either keys or values as it is reserved for Amazon Web
  9713  	//    Services use. You cannot edit or delete tag keys or values with this prefix.
  9714  	//    Tags with this prefix do not count against your tags per resource limit.
  9715  	Tags []*Tag `locationName:"tags" type:"list"`
  9716  
  9717  	// The family and revision (family:revision) or full ARN of the task definition
  9718  	// to run in your service. If a revision is not specified, the latest ACTIVE
  9719  	// revision is used.
  9720  	//
  9721  	// A task definition must be specified if the service is using either the ECS
  9722  	// or CODE_DEPLOY deployment controllers.
  9723  	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
  9724  }
  9725  
  9726  // String returns the string representation.
  9727  //
  9728  // API parameter values that are decorated as "sensitive" in the API will not
  9729  // be included in the string output. The member name will be present, but the
  9730  // value will be replaced with "sensitive".
  9731  func (s CreateServiceInput) String() string {
  9732  	return awsutil.Prettify(s)
  9733  }
  9734  
  9735  // GoString returns the string representation.
  9736  //
  9737  // API parameter values that are decorated as "sensitive" in the API will not
  9738  // be included in the string output. The member name will be present, but the
  9739  // value will be replaced with "sensitive".
  9740  func (s CreateServiceInput) GoString() string {
  9741  	return s.String()
  9742  }
  9743  
  9744  // Validate inspects the fields of the type to determine if they are valid.
  9745  func (s *CreateServiceInput) Validate() error {
  9746  	invalidParams := request.ErrInvalidParams{Context: "CreateServiceInput"}
  9747  	if s.ServiceName == nil {
  9748  		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
  9749  	}
  9750  	if s.CapacityProviderStrategy != nil {
  9751  		for i, v := range s.CapacityProviderStrategy {
  9752  			if v == nil {
  9753  				continue
  9754  			}
  9755  			if err := v.Validate(); err != nil {
  9756  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
  9757  			}
  9758  		}
  9759  	}
  9760  	if s.DeploymentConfiguration != nil {
  9761  		if err := s.DeploymentConfiguration.Validate(); err != nil {
  9762  			invalidParams.AddNested("DeploymentConfiguration", err.(request.ErrInvalidParams))
  9763  		}
  9764  	}
  9765  	if s.DeploymentController != nil {
  9766  		if err := s.DeploymentController.Validate(); err != nil {
  9767  			invalidParams.AddNested("DeploymentController", err.(request.ErrInvalidParams))
  9768  		}
  9769  	}
  9770  	if s.NetworkConfiguration != nil {
  9771  		if err := s.NetworkConfiguration.Validate(); err != nil {
  9772  			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
  9773  		}
  9774  	}
  9775  	if s.Tags != nil {
  9776  		for i, v := range s.Tags {
  9777  			if v == nil {
  9778  				continue
  9779  			}
  9780  			if err := v.Validate(); err != nil {
  9781  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  9782  			}
  9783  		}
  9784  	}
  9785  
  9786  	if invalidParams.Len() > 0 {
  9787  		return invalidParams
  9788  	}
  9789  	return nil
  9790  }
  9791  
  9792  // SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
  9793  func (s *CreateServiceInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateServiceInput {
  9794  	s.CapacityProviderStrategy = v
  9795  	return s
  9796  }
  9797  
  9798  // SetClientToken sets the ClientToken field's value.
  9799  func (s *CreateServiceInput) SetClientToken(v string) *CreateServiceInput {
  9800  	s.ClientToken = &v
  9801  	return s
  9802  }
  9803  
  9804  // SetCluster sets the Cluster field's value.
  9805  func (s *CreateServiceInput) SetCluster(v string) *CreateServiceInput {
  9806  	s.Cluster = &v
  9807  	return s
  9808  }
  9809  
  9810  // SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
  9811  func (s *CreateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *CreateServiceInput {
  9812  	s.DeploymentConfiguration = v
  9813  	return s
  9814  }
  9815  
  9816  // SetDeploymentController sets the DeploymentController field's value.
  9817  func (s *CreateServiceInput) SetDeploymentController(v *DeploymentController) *CreateServiceInput {
  9818  	s.DeploymentController = v
  9819  	return s
  9820  }
  9821  
  9822  // SetDesiredCount sets the DesiredCount field's value.
  9823  func (s *CreateServiceInput) SetDesiredCount(v int64) *CreateServiceInput {
  9824  	s.DesiredCount = &v
  9825  	return s
  9826  }
  9827  
  9828  // SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
  9829  func (s *CreateServiceInput) SetEnableECSManagedTags(v bool) *CreateServiceInput {
  9830  	s.EnableECSManagedTags = &v
  9831  	return s
  9832  }
  9833  
  9834  // SetEnableExecuteCommand sets the EnableExecuteCommand field's value.
  9835  func (s *CreateServiceInput) SetEnableExecuteCommand(v bool) *CreateServiceInput {
  9836  	s.EnableExecuteCommand = &v
  9837  	return s
  9838  }
  9839  
  9840  // SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
  9841  func (s *CreateServiceInput) SetHealthCheckGracePeriodSeconds(v int64) *CreateServiceInput {
  9842  	s.HealthCheckGracePeriodSeconds = &v
  9843  	return s
  9844  }
  9845  
  9846  // SetLaunchType sets the LaunchType field's value.
  9847  func (s *CreateServiceInput) SetLaunchType(v string) *CreateServiceInput {
  9848  	s.LaunchType = &v
  9849  	return s
  9850  }
  9851  
  9852  // SetLoadBalancers sets the LoadBalancers field's value.
  9853  func (s *CreateServiceInput) SetLoadBalancers(v []*LoadBalancer) *CreateServiceInput {
  9854  	s.LoadBalancers = v
  9855  	return s
  9856  }
  9857  
  9858  // SetNetworkConfiguration sets the NetworkConfiguration field's value.
  9859  func (s *CreateServiceInput) SetNetworkConfiguration(v *NetworkConfiguration) *CreateServiceInput {
  9860  	s.NetworkConfiguration = v
  9861  	return s
  9862  }
  9863  
  9864  // SetPlacementConstraints sets the PlacementConstraints field's value.
  9865  func (s *CreateServiceInput) SetPlacementConstraints(v []*PlacementConstraint) *CreateServiceInput {
  9866  	s.PlacementConstraints = v
  9867  	return s
  9868  }
  9869  
  9870  // SetPlacementStrategy sets the PlacementStrategy field's value.
  9871  func (s *CreateServiceInput) SetPlacementStrategy(v []*PlacementStrategy) *CreateServiceInput {
  9872  	s.PlacementStrategy = v
  9873  	return s
  9874  }
  9875  
  9876  // SetPlatformVersion sets the PlatformVersion field's value.
  9877  func (s *CreateServiceInput) SetPlatformVersion(v string) *CreateServiceInput {
  9878  	s.PlatformVersion = &v
  9879  	return s
  9880  }
  9881  
  9882  // SetPropagateTags sets the PropagateTags field's value.
  9883  func (s *CreateServiceInput) SetPropagateTags(v string) *CreateServiceInput {
  9884  	s.PropagateTags = &v
  9885  	return s
  9886  }
  9887  
  9888  // SetRole sets the Role field's value.
  9889  func (s *CreateServiceInput) SetRole(v string) *CreateServiceInput {
  9890  	s.Role = &v
  9891  	return s
  9892  }
  9893  
  9894  // SetSchedulingStrategy sets the SchedulingStrategy field's value.
  9895  func (s *CreateServiceInput) SetSchedulingStrategy(v string) *CreateServiceInput {
  9896  	s.SchedulingStrategy = &v
  9897  	return s
  9898  }
  9899  
  9900  // SetServiceName sets the ServiceName field's value.
  9901  func (s *CreateServiceInput) SetServiceName(v string) *CreateServiceInput {
  9902  	s.ServiceName = &v
  9903  	return s
  9904  }
  9905  
  9906  // SetServiceRegistries sets the ServiceRegistries field's value.
  9907  func (s *CreateServiceInput) SetServiceRegistries(v []*ServiceRegistry) *CreateServiceInput {
  9908  	s.ServiceRegistries = v
  9909  	return s
  9910  }
  9911  
  9912  // SetTags sets the Tags field's value.
  9913  func (s *CreateServiceInput) SetTags(v []*Tag) *CreateServiceInput {
  9914  	s.Tags = v
  9915  	return s
  9916  }
  9917  
  9918  // SetTaskDefinition sets the TaskDefinition field's value.
  9919  func (s *CreateServiceInput) SetTaskDefinition(v string) *CreateServiceInput {
  9920  	s.TaskDefinition = &v
  9921  	return s
  9922  }
  9923  
  9924  type CreateServiceOutput struct {
  9925  	_ struct{} `type:"structure"`
  9926  
  9927  	// The full description of your service following the create call.
  9928  	//
  9929  	// A service will return either a capacityProviderStrategy or launchType parameter,
  9930  	// but not both, depending on which one was specified during creation.
  9931  	//
  9932  	// If a service is using the ECS deployment controller, the deploymentController
  9933  	// and taskSets parameters will not be returned.
  9934  	//
  9935  	// If the service is using the CODE_DEPLOY deployment controller, the deploymentController,
  9936  	// taskSets and deployments parameters will be returned, however the deployments
  9937  	// parameter will be an empty list.
  9938  	Service *Service `locationName:"service" type:"structure"`
  9939  }
  9940  
  9941  // String returns the string representation.
  9942  //
  9943  // API parameter values that are decorated as "sensitive" in the API will not
  9944  // be included in the string output. The member name will be present, but the
  9945  // value will be replaced with "sensitive".
  9946  func (s CreateServiceOutput) String() string {
  9947  	return awsutil.Prettify(s)
  9948  }
  9949  
  9950  // GoString returns the string representation.
  9951  //
  9952  // API parameter values that are decorated as "sensitive" in the API will not
  9953  // be included in the string output. The member name will be present, but the
  9954  // value will be replaced with "sensitive".
  9955  func (s CreateServiceOutput) GoString() string {
  9956  	return s.String()
  9957  }
  9958  
  9959  // SetService sets the Service field's value.
  9960  func (s *CreateServiceOutput) SetService(v *Service) *CreateServiceOutput {
  9961  	s.Service = v
  9962  	return s
  9963  }
  9964  
  9965  type CreateTaskSetInput struct {
  9966  	_ struct{} `type:"structure"`
  9967  
  9968  	// The capacity provider strategy to use for the task set.
  9969  	//
  9970  	// A capacity provider strategy consists of one or more capacity providers along
  9971  	// with the base and weight to assign to them. A capacity provider must be associated
  9972  	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
  9973  	// API is used to associate a capacity provider with a cluster. Only capacity
  9974  	// providers with an ACTIVE or UPDATING status can be used.
  9975  	//
  9976  	// If a capacityProviderStrategy is specified, the launchType parameter must
  9977  	// be omitted. If no capacityProviderStrategy or launchType is specified, the
  9978  	// defaultCapacityProviderStrategy for the cluster is used.
  9979  	//
  9980  	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
  9981  	// provider must already be created. New capacity providers can be created with
  9982  	// the CreateCapacityProvider API operation.
  9983  	//
  9984  	// To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
  9985  	// capacity providers. The Fargate capacity providers are available to all accounts
  9986  	// and only need to be associated with a cluster to be used.
  9987  	//
  9988  	// The PutClusterCapacityProviders API operation is used to update the list
  9989  	// of available capacity providers for a cluster after the cluster is created.
  9990  	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
  9991  
  9992  	// Unique, case-sensitive identifier that you provide to ensure the idempotency
  9993  	// of the request. Up to 32 ASCII characters are allowed.
  9994  	ClientToken *string `locationName:"clientToken" type:"string"`
  9995  
  9996  	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
  9997  	// the service to create the task set in.
  9998  	//
  9999  	// Cluster is a required field
 10000  	Cluster *string `locationName:"cluster" type:"string" required:"true"`
 10001  
 10002  	// An optional non-unique tag that identifies this task set in external systems.
 10003  	// If the task set is associated with a service discovery registry, the tasks
 10004  	// in this task set will have the ECS_TASK_SET_EXTERNAL_ID Cloud Map attribute
 10005  	// set to the provided value.
 10006  	ExternalId *string `locationName:"externalId" type:"string"`
 10007  
 10008  	// The launch type that new tasks in the task set will use. For more information,
 10009  	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
 10010  	// in the Amazon Elastic Container Service Developer Guide.
 10011  	//
 10012  	// If a launchType is specified, the capacityProviderStrategy parameter must
 10013  	// be omitted.
 10014  	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
 10015  
 10016  	// A load balancer object representing the load balancer to use with the task
 10017  	// set. The supported load balancer types are either an Application Load Balancer
 10018  	// or a Network Load Balancer.
 10019  	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
 10020  
 10021  	// An object representing the network configuration for a task set.
 10022  	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
 10023  
 10024  	// The platform version that the tasks in the task set should use. A platform
 10025  	// version is specified only for tasks using the Fargate launch type. If one
 10026  	// isn't specified, the LATEST platform version is used by default.
 10027  	PlatformVersion *string `locationName:"platformVersion" type:"string"`
 10028  
 10029  	// A floating-point percentage of the desired number of tasks to place and keep
 10030  	// running in the task set.
 10031  	Scale *Scale `locationName:"scale" type:"structure"`
 10032  
 10033  	// The short name or full Amazon Resource Name (ARN) of the service to create
 10034  	// the task set in.
 10035  	//
 10036  	// Service is a required field
 10037  	Service *string `locationName:"service" type:"string" required:"true"`
 10038  
 10039  	// The details of the service discovery registries to assign to this task set.
 10040  	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
 10041  	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
 10042  
 10043  	// The metadata that you apply to the task set to help you categorize and organize
 10044  	// them. Each tag consists of a key and an optional value, both of which you
 10045  	// define. When a service is deleted, the tags are deleted as well.
 10046  	//
 10047  	// The following basic restrictions apply to tags:
 10048  	//
 10049  	//    * Maximum number of tags per resource - 50
 10050  	//
 10051  	//    * For each resource, each tag key must be unique, and each tag key can
 10052  	//    have only one value.
 10053  	//
 10054  	//    * Maximum key length - 128 Unicode characters in UTF-8
 10055  	//
 10056  	//    * Maximum value length - 256 Unicode characters in UTF-8
 10057  	//
 10058  	//    * If your tagging schema is used across multiple services and resources,
 10059  	//    remember that other services may have restrictions on allowed characters.
 10060  	//    Generally allowed characters are: letters, numbers, and spaces representable
 10061  	//    in UTF-8, and the following characters: + - = . _ : / @.
 10062  	//
 10063  	//    * Tag keys and values are case-sensitive.
 10064  	//
 10065  	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
 10066  	//    as a prefix for either keys or values as it is reserved for Amazon Web
 10067  	//    Services use. You cannot edit or delete tag keys or values with this prefix.
 10068  	//    Tags with this prefix do not count against your tags per resource limit.
 10069  	Tags []*Tag `locationName:"tags" type:"list"`
 10070  
 10071  	// The task definition for the tasks in the task set to use.
 10072  	//
 10073  	// TaskDefinition is a required field
 10074  	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
 10075  }
 10076  
 10077  // String returns the string representation.
 10078  //
 10079  // API parameter values that are decorated as "sensitive" in the API will not
 10080  // be included in the string output. The member name will be present, but the
 10081  // value will be replaced with "sensitive".
 10082  func (s CreateTaskSetInput) String() string {
 10083  	return awsutil.Prettify(s)
 10084  }
 10085  
 10086  // GoString returns the string representation.
 10087  //
 10088  // API parameter values that are decorated as "sensitive" in the API will not
 10089  // be included in the string output. The member name will be present, but the
 10090  // value will be replaced with "sensitive".
 10091  func (s CreateTaskSetInput) GoString() string {
 10092  	return s.String()
 10093  }
 10094  
 10095  // Validate inspects the fields of the type to determine if they are valid.
 10096  func (s *CreateTaskSetInput) Validate() error {
 10097  	invalidParams := request.ErrInvalidParams{Context: "CreateTaskSetInput"}
 10098  	if s.Cluster == nil {
 10099  		invalidParams.Add(request.NewErrParamRequired("Cluster"))
 10100  	}
 10101  	if s.Service == nil {
 10102  		invalidParams.Add(request.NewErrParamRequired("Service"))
 10103  	}
 10104  	if s.TaskDefinition == nil {
 10105  		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
 10106  	}
 10107  	if s.CapacityProviderStrategy != nil {
 10108  		for i, v := range s.CapacityProviderStrategy {
 10109  			if v == nil {
 10110  				continue
 10111  			}
 10112  			if err := v.Validate(); err != nil {
 10113  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
 10114  			}
 10115  		}
 10116  	}
 10117  	if s.NetworkConfiguration != nil {
 10118  		if err := s.NetworkConfiguration.Validate(); err != nil {
 10119  			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
 10120  		}
 10121  	}
 10122  	if s.Tags != nil {
 10123  		for i, v := range s.Tags {
 10124  			if v == nil {
 10125  				continue
 10126  			}
 10127  			if err := v.Validate(); err != nil {
 10128  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 10129  			}
 10130  		}
 10131  	}
 10132  
 10133  	if invalidParams.Len() > 0 {
 10134  		return invalidParams
 10135  	}
 10136  	return nil
 10137  }
 10138  
 10139  // SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
 10140  func (s *CreateTaskSetInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateTaskSetInput {
 10141  	s.CapacityProviderStrategy = v
 10142  	return s
 10143  }
 10144  
 10145  // SetClientToken sets the ClientToken field's value.
 10146  func (s *CreateTaskSetInput) SetClientToken(v string) *CreateTaskSetInput {
 10147  	s.ClientToken = &v
 10148  	return s
 10149  }
 10150  
 10151  // SetCluster sets the Cluster field's value.
 10152  func (s *CreateTaskSetInput) SetCluster(v string) *CreateTaskSetInput {
 10153  	s.Cluster = &v
 10154  	return s
 10155  }
 10156  
 10157  // SetExternalId sets the ExternalId field's value.
 10158  func (s *CreateTaskSetInput) SetExternalId(v string) *CreateTaskSetInput {
 10159  	s.ExternalId = &v
 10160  	return s
 10161  }
 10162  
 10163  // SetLaunchType sets the LaunchType field's value.
 10164  func (s *CreateTaskSetInput) SetLaunchType(v string) *CreateTaskSetInput {
 10165  	s.LaunchType = &v
 10166  	return s
 10167  }
 10168  
 10169  // SetLoadBalancers sets the LoadBalancers field's value.
 10170  func (s *CreateTaskSetInput) SetLoadBalancers(v []*LoadBalancer) *CreateTaskSetInput {
 10171  	s.LoadBalancers = v
 10172  	return s
 10173  }
 10174  
 10175  // SetNetworkConfiguration sets the NetworkConfiguration field's value.
 10176  func (s *CreateTaskSetInput) SetNetworkConfiguration(v *NetworkConfiguration) *CreateTaskSetInput {
 10177  	s.NetworkConfiguration = v
 10178  	return s
 10179  }
 10180  
 10181  // SetPlatformVersion sets the PlatformVersion field's value.
 10182  func (s *CreateTaskSetInput) SetPlatformVersion(v string) *CreateTaskSetInput {
 10183  	s.PlatformVersion = &v
 10184  	return s
 10185  }
 10186  
 10187  // SetScale sets the Scale field's value.
 10188  func (s *CreateTaskSetInput) SetScale(v *Scale) *CreateTaskSetInput {
 10189  	s.Scale = v
 10190  	return s
 10191  }
 10192  
 10193  // SetService sets the Service field's value.
 10194  func (s *CreateTaskSetInput) SetService(v string) *CreateTaskSetInput {
 10195  	s.Service = &v
 10196  	return s
 10197  }
 10198  
 10199  // SetServiceRegistries sets the ServiceRegistries field's value.
 10200  func (s *CreateTaskSetInput) SetServiceRegistries(v []*ServiceRegistry) *CreateTaskSetInput {
 10201  	s.ServiceRegistries = v
 10202  	return s
 10203  }
 10204  
 10205  // SetTags sets the Tags field's value.
 10206  func (s *CreateTaskSetInput) SetTags(v []*Tag) *CreateTaskSetInput {
 10207  	s.Tags = v
 10208  	return s
 10209  }
 10210  
 10211  // SetTaskDefinition sets the TaskDefinition field's value.
 10212  func (s *CreateTaskSetInput) SetTaskDefinition(v string) *CreateTaskSetInput {
 10213  	s.TaskDefinition = &v
 10214  	return s
 10215  }
 10216  
 10217  type CreateTaskSetOutput struct {
 10218  	_ struct{} `type:"structure"`
 10219  
 10220  	// Information about a set of Amazon ECS tasks in either an CodeDeploy or an
 10221  	// EXTERNAL deployment. A task set includes details such as the desired number
 10222  	// of tasks, how many tasks are running, and whether the task set serves production
 10223  	// traffic.
 10224  	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
 10225  }
 10226  
 10227  // String returns the string representation.
 10228  //
 10229  // API parameter values that are decorated as "sensitive" in the API will not
 10230  // be included in the string output. The member name will be present, but the
 10231  // value will be replaced with "sensitive".
 10232  func (s CreateTaskSetOutput) String() string {
 10233  	return awsutil.Prettify(s)
 10234  }
 10235  
 10236  // GoString returns the string representation.
 10237  //
 10238  // API parameter values that are decorated as "sensitive" in the API will not
 10239  // be included in the string output. The member name will be present, but the
 10240  // value will be replaced with "sensitive".
 10241  func (s CreateTaskSetOutput) GoString() string {
 10242  	return s.String()
 10243  }
 10244  
 10245  // SetTaskSet sets the TaskSet field's value.
 10246  func (s *CreateTaskSetOutput) SetTaskSet(v *TaskSet) *CreateTaskSetOutput {
 10247  	s.TaskSet = v
 10248  	return s
 10249  }
 10250  
 10251  type DeleteAccountSettingInput struct {
 10252  	_ struct{} `type:"structure"`
 10253  
 10254  	// The resource name for which to disable the account setting. If serviceLongArnFormat
 10255  	// is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat
 10256  	// is specified, the ARN and resource ID for your Amazon ECS tasks is affected.
 10257  	// If containerInstanceLongArnFormat is specified, the ARN and resource ID for
 10258  	// your Amazon ECS container instances is affected. If awsvpcTrunking is specified,
 10259  	// the ENI limit for your Amazon ECS container instances is affected.
 10260  	//
 10261  	// Name is a required field
 10262  	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
 10263  
 10264  	// The ARN of the principal, which can be an IAM user, IAM role, or the root
 10265  	// user. If you specify the root user, it disables the account setting for all
 10266  	// IAM users, IAM roles, and the root user of the account unless an IAM user
 10267  	// or role explicitly overrides these settings. If this field is omitted, the
 10268  	// setting is changed only for the authenticated user.
 10269  	PrincipalArn *string `locationName:"principalArn" type:"string"`
 10270  }
 10271  
 10272  // String returns the string representation.
 10273  //
 10274  // API parameter values that are decorated as "sensitive" in the API will not
 10275  // be included in the string output. The member name will be present, but the
 10276  // value will be replaced with "sensitive".
 10277  func (s DeleteAccountSettingInput) String() string {
 10278  	return awsutil.Prettify(s)
 10279  }
 10280  
 10281  // GoString returns the string representation.
 10282  //
 10283  // API parameter values that are decorated as "sensitive" in the API will not
 10284  // be included in the string output. The member name will be present, but the
 10285  // value will be replaced with "sensitive".
 10286  func (s DeleteAccountSettingInput) GoString() string {
 10287  	return s.String()
 10288  }
 10289  
 10290  // Validate inspects the fields of the type to determine if they are valid.
 10291  func (s *DeleteAccountSettingInput) Validate() error {
 10292  	invalidParams := request.ErrInvalidParams{Context: "DeleteAccountSettingInput"}
 10293  	if s.Name == nil {
 10294  		invalidParams.Add(request.NewErrParamRequired("Name"))
 10295  	}
 10296  
 10297  	if invalidParams.Len() > 0 {
 10298  		return invalidParams
 10299  	}
 10300  	return nil
 10301  }
 10302  
 10303  // SetName sets the Name field's value.
 10304  func (s *DeleteAccountSettingInput) SetName(v string) *DeleteAccountSettingInput {
 10305  	s.Name = &v
 10306  	return s
 10307  }
 10308  
 10309  // SetPrincipalArn sets the PrincipalArn field's value.
 10310  func (s *DeleteAccountSettingInput) SetPrincipalArn(v string) *DeleteAccountSettingInput {
 10311  	s.PrincipalArn = &v
 10312  	return s
 10313  }
 10314  
 10315  type DeleteAccountSettingOutput struct {
 10316  	_ struct{} `type:"structure"`
 10317  
 10318  	// The account setting for the specified principal ARN.
 10319  	Setting *Setting `locationName:"setting" type:"structure"`
 10320  }
 10321  
 10322  // String returns the string representation.
 10323  //
 10324  // API parameter values that are decorated as "sensitive" in the API will not
 10325  // be included in the string output. The member name will be present, but the
 10326  // value will be replaced with "sensitive".
 10327  func (s DeleteAccountSettingOutput) String() string {
 10328  	return awsutil.Prettify(s)
 10329  }
 10330  
 10331  // GoString returns the string representation.
 10332  //
 10333  // API parameter values that are decorated as "sensitive" in the API will not
 10334  // be included in the string output. The member name will be present, but the
 10335  // value will be replaced with "sensitive".
 10336  func (s DeleteAccountSettingOutput) GoString() string {
 10337  	return s.String()
 10338  }
 10339  
 10340  // SetSetting sets the Setting field's value.
 10341  func (s *DeleteAccountSettingOutput) SetSetting(v *Setting) *DeleteAccountSettingOutput {
 10342  	s.Setting = v
 10343  	return s
 10344  }
 10345  
 10346  type DeleteAttributesInput struct {
 10347  	_ struct{} `type:"structure"`
 10348  
 10349  	// The attributes to delete from your resource. You can specify up to 10 attributes
 10350  	// per request. For custom attributes, specify the attribute name and target
 10351  	// ID, but do not specify the value. If you specify the target ID using the
 10352  	// short form, you must also specify the target type.
 10353  	//
 10354  	// Attributes is a required field
 10355  	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
 10356  
 10357  	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
 10358  	// the resource to delete attributes. If you do not specify a cluster, the default
 10359  	// cluster is assumed.
 10360  	Cluster *string `locationName:"cluster" type:"string"`
 10361  }
 10362  
 10363  // String returns the string representation.
 10364  //
 10365  // API parameter values that are decorated as "sensitive" in the API will not
 10366  // be included in the string output. The member name will be present, but the
 10367  // value will be replaced with "sensitive".
 10368  func (s DeleteAttributesInput) String() string {
 10369  	return awsutil.Prettify(s)
 10370  }
 10371  
 10372  // GoString returns the string representation.
 10373  //
 10374  // API parameter values that are decorated as "sensitive" in the API will not
 10375  // be included in the string output. The member name will be present, but the
 10376  // value will be replaced with "sensitive".
 10377  func (s DeleteAttributesInput) GoString() string {
 10378  	return s.String()
 10379  }
 10380  
 10381  // Validate inspects the fields of the type to determine if they are valid.
 10382  func (s *DeleteAttributesInput) Validate() error {
 10383  	invalidParams := request.ErrInvalidParams{Context: "DeleteAttributesInput"}
 10384  	if s.Attributes == nil {
 10385  		invalidParams.Add(request.NewErrParamRequired("Attributes"))
 10386  	}
 10387  	if s.Attributes != nil {
 10388  		for i, v := range s.Attributes {
 10389  			if v == nil {
 10390  				continue
 10391  			}
 10392  			if err := v.Validate(); err != nil {
 10393  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
 10394  			}
 10395  		}
 10396  	}
 10397  
 10398  	if invalidParams.Len() > 0 {
 10399  		return invalidParams
 10400  	}
 10401  	return nil
 10402  }
 10403  
 10404  // SetAttributes sets the Attributes field's value.
 10405  func (s *DeleteAttributesInput) SetAttributes(v []*Attribute) *DeleteAttributesInput {
 10406  	s.Attributes = v
 10407  	return s
 10408  }
 10409  
 10410  // SetCluster sets the Cluster field's value.
 10411  func (s *DeleteAttributesInput) SetCluster(v string) *DeleteAttributesInput {
 10412  	s.Cluster = &v
 10413  	return s
 10414  }
 10415  
 10416  type DeleteAttributesOutput struct {
 10417  	_ struct{} `type:"structure"`
 10418  
 10419  	// A list of attribute objects that were successfully deleted from your resource.
 10420  	Attributes []*Attribute `locationName:"attributes" type:"list"`
 10421  }
 10422  
 10423  // String returns the string representation.
 10424  //
 10425  // API parameter values that are decorated as "sensitive" in the API will not
 10426  // be included in the string output. The member name will be present, but the
 10427  // value will be replaced with "sensitive".
 10428  func (s DeleteAttributesOutput) String() string {
 10429  	return awsutil.Prettify(s)
 10430  }
 10431  
 10432  // GoString returns the string representation.
 10433  //
 10434  // API parameter values that are decorated as "sensitive" in the API will not
 10435  // be included in the string output. The member name will be present, but the
 10436  // value will be replaced with "sensitive".
 10437  func (s DeleteAttributesOutput) GoString() string {
 10438  	return s.String()
 10439  }
 10440  
 10441  // SetAttributes sets the Attributes field's value.
 10442  func (s *DeleteAttributesOutput) SetAttributes(v []*Attribute) *DeleteAttributesOutput {
 10443  	s.Attributes = v
 10444  	return s
 10445  }
 10446  
 10447  type DeleteCapacityProviderInput struct {
 10448  	_ struct{} `type:"structure"`
 10449  
 10450  	// The short name or full Amazon Resource Name (ARN) of the capacity provider
 10451  	// to delete.
 10452  	//
 10453  	// CapacityProvider is a required field
 10454  	CapacityProvider *string `locationName:"capacityProvider" type:"string" required:"true"`
 10455  }
 10456  
 10457  // String returns the string representation.
 10458  //
 10459  // API parameter values that are decorated as "sensitive" in the API will not
 10460  // be included in the string output. The member name will be present, but the
 10461  // value will be replaced with "sensitive".
 10462  func (s DeleteCapacityProviderInput) String() string {
 10463  	return awsutil.Prettify(s)
 10464  }
 10465  
 10466  // GoString returns the string representation.
 10467  //
 10468  // API parameter values that are decorated as "sensitive" in the API will not
 10469  // be included in the string output. The member name will be present, but the
 10470  // value will be replaced with "sensitive".
 10471  func (s DeleteCapacityProviderInput) GoString() string {
 10472  	return s.String()
 10473  }
 10474  
 10475  // Validate inspects the fields of the type to determine if they are valid.
 10476  func (s *DeleteCapacityProviderInput) Validate() error {
 10477  	invalidParams := request.ErrInvalidParams{Context: "DeleteCapacityProviderInput"}
 10478  	if s.CapacityProvider == nil {
 10479  		invalidParams.Add(request.NewErrParamRequired("CapacityProvider"))
 10480  	}
 10481  
 10482  	if invalidParams.Len() > 0 {
 10483  		return invalidParams
 10484  	}
 10485  	return nil
 10486  }
 10487  
 10488  // SetCapacityProvider sets the CapacityProvider field's value.
 10489  func (s *DeleteCapacityProviderInput) SetCapacityProvider(v string) *DeleteCapacityProviderInput {
 10490  	s.CapacityProvider = &v
 10491  	return s
 10492  }
 10493  
 10494  type DeleteCapacityProviderOutput struct {
 10495  	_ struct{} `type:"structure"`
 10496  
 10497  	// The details of the capacity provider.
 10498  	CapacityProvider *CapacityProvider `locationName:"capacityProvider" type:"structure"`
 10499  }
 10500  
 10501  // String returns the string representation.
 10502  //
 10503  // API parameter values that are decorated as "sensitive" in the API will not
 10504  // be included in the string output. The member name will be present, but the
 10505  // value will be replaced with "sensitive".
 10506  func (s DeleteCapacityProviderOutput) String() string {
 10507  	return awsutil.Prettify(s)
 10508  }
 10509  
 10510  // GoString returns the string representation.
 10511  //
 10512  // API parameter values that are decorated as "sensitive" in the API will not
 10513  // be included in the string output. The member name will be present, but the
 10514  // value will be replaced with "sensitive".
 10515  func (s DeleteCapacityProviderOutput) GoString() string {
 10516  	return s.String()
 10517  }
 10518  
 10519  // SetCapacityProvider sets the CapacityProvider field's value.
 10520  func (s *DeleteCapacityProviderOutput) SetCapacityProvider(v *CapacityProvider) *DeleteCapacityProviderOutput {
 10521  	s.CapacityProvider = v
 10522  	return s
 10523  }
 10524  
 10525  type DeleteClusterInput struct {
 10526  	_ struct{} `type:"structure"`
 10527  
 10528  	// The short name or full Amazon Resource Name (ARN) of the cluster to delete.
 10529  	//
 10530  	// Cluster is a required field
 10531  	Cluster *string `locationName:"cluster" type:"string" required:"true"`
 10532  }
 10533  
 10534  // String returns the string representation.
 10535  //
 10536  // API parameter values that are decorated as "sensitive" in the API will not
 10537  // be included in the string output. The member name will be present, but the
 10538  // value will be replaced with "sensitive".
 10539  func (s DeleteClusterInput) String() string {
 10540  	return awsutil.Prettify(s)
 10541  }
 10542  
 10543  // GoString returns the string representation.
 10544  //
 10545  // API parameter values that are decorated as "sensitive" in the API will not
 10546  // be included in the string output. The member name will be present, but the
 10547  // value will be replaced with "sensitive".
 10548  func (s DeleteClusterInput) GoString() string {
 10549  	return s.String()
 10550  }
 10551  
 10552  // Validate inspects the fields of the type to determine if they are valid.
 10553  func (s *DeleteClusterInput) Validate() error {
 10554  	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"}
 10555  	if s.Cluster == nil {
 10556  		invalidParams.Add(request.NewErrParamRequired("Cluster"))
 10557  	}
 10558  
 10559  	if invalidParams.Len() > 0 {
 10560  		return invalidParams
 10561  	}
 10562  	return nil
 10563  }
 10564  
 10565  // SetCluster sets the Cluster field's value.
 10566  func (s *DeleteClusterInput) SetCluster(v string) *DeleteClusterInput {
 10567  	s.Cluster = &v
 10568  	return s
 10569  }
 10570  
 10571  type DeleteClusterOutput struct {
 10572  	_ struct{} `type:"structure"`
 10573  
 10574  	// The full description of the deleted cluster.
 10575  	Cluster *Cluster `locationName:"cluster" type:"structure"`
 10576  }
 10577  
 10578  // String returns the string representation.
 10579  //
 10580  // API parameter values that are decorated as "sensitive" in the API will not
 10581  // be included in the string output. The member name will be present, but the
 10582  // value will be replaced with "sensitive".
 10583  func (s DeleteClusterOutput) String() string {
 10584  	return awsutil.Prettify(s)
 10585  }
 10586  
 10587  // GoString returns the string representation.
 10588  //
 10589  // API parameter values that are decorated as "sensitive" in the API will not
 10590  // be included in the string output. The member name will be present, but the
 10591  // value will be replaced with "sensitive".
 10592  func (s DeleteClusterOutput) GoString() string {
 10593  	return s.String()
 10594  }
 10595  
 10596  // SetCluster sets the Cluster field's value.
 10597  func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput {
 10598  	s.Cluster = v
 10599  	return s
 10600  }
 10601  
 10602  type DeleteServiceInput struct {
 10603  	_ struct{} `type:"structure"`
 10604  
 10605  	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
 10606  	// the service to delete. If you do not specify a cluster, the default cluster
 10607  	// is assumed.
 10608  	Cluster *string `locationName:"cluster" type:"string"`
 10609  
 10610  	// If true, allows you to delete a service even if it has not been scaled down
 10611  	// to zero tasks. It is only necessary to use this if the service is using the
 10612  	// REPLICA scheduling strategy.
 10613  	Force *bool `locationName:"force" type:"boolean"`
 10614  
 10615  	// The name of the service to delete.
 10616  	//
 10617  	// Service is a required field
 10618  	Service *string `locationName:"service" type:"string" required:"true"`
 10619  }
 10620  
 10621  // String returns the string representation.
 10622  //
 10623  // API parameter values that are decorated as "sensitive" in the API will not
 10624  // be included in the string output. The member name will be present, but the
 10625  // value will be replaced with "sensitive".
 10626  func (s DeleteServiceInput) String() string {
 10627  	return awsutil.Prettify(s)
 10628  }
 10629  
 10630  // GoString returns the string representation.
 10631  //
 10632  // API parameter values that are decorated as "sensitive" in the API will not
 10633  // be included in the string output. The member name will be present, but the
 10634  // value will be replaced with "sensitive".
 10635  func (s DeleteServiceInput) GoString() string {
 10636  	return s.String()
 10637  }
 10638  
 10639  // Validate inspects the fields of the type to determine if they are valid.
 10640  func (s *DeleteServiceInput) Validate() error {
 10641  	invalidParams := request.ErrInvalidParams{Context: "DeleteServiceInput"}
 10642  	if s.Service == nil {
 10643  		invalidParams.Add(request.NewErrParamRequired("Service"))
 10644  	}
 10645  
 10646  	if invalidParams.Len() > 0 {
 10647  		return invalidParams
 10648  	}
 10649  	return nil
 10650  }
 10651  
 10652  // SetCluster sets the Cluster field's value.
 10653  func (s *DeleteServiceInput) SetCluster(v string) *DeleteServiceInput {
 10654  	s.Cluster = &v
 10655  	return s
 10656  }
 10657  
 10658  // SetForce sets the Force field's value.
 10659  func (s *DeleteServiceInput) SetForce(v bool) *DeleteServiceInput {
 10660  	s.Force = &v
 10661  	return s
 10662  }
 10663  
 10664  // SetService sets the Service field's value.
 10665  func (s *DeleteServiceInput) SetService(v string) *DeleteServiceInput {
 10666  	s.Service = &v
 10667  	return s
 10668  }
 10669  
 10670  type DeleteServiceOutput struct {
 10671  	_ struct{} `type:"structure"`
 10672  
 10673  	// The full description of the deleted service.
 10674  	Service *Service `locationName:"service" type:"structure"`
 10675  }
 10676  
 10677  // String returns the string representation.
 10678  //
 10679  // API parameter values that are decorated as "sensitive" in the API will not
 10680  // be included in the string output. The member name will be present, but the
 10681  // value will be replaced with "sensitive".
 10682  func (s DeleteServiceOutput) String() string {
 10683  	return awsutil.Prettify(s)
 10684  }
 10685  
 10686  // GoString returns the string representation.
 10687  //
 10688  // API parameter values that are decorated as "sensitive" in the API will not
 10689  // be included in the string output. The member name will be present, but the
 10690  // value will be replaced with "sensitive".
 10691  func (s DeleteServiceOutput) GoString() string {
 10692  	return s.String()
 10693  }
 10694  
 10695  // SetService sets the Service field's value.
 10696  func (s *DeleteServiceOutput) SetService(v *Service) *DeleteServiceOutput {
 10697  	s.Service = v
 10698  	return s
 10699  }
 10700  
 10701  type DeleteTaskSetInput struct {
 10702  	_ struct{} `type:"structure"`
 10703  
 10704  	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
 10705  	// the service that the task set exists in to delete.
 10706  	//
 10707  	// Cluster is a required field
 10708  	Cluster *string `locationName:"cluster" type:"string" required:"true"`
 10709  
 10710  	// If true, this allows you to delete a task set even if it hasn't been scaled
 10711  	// down to zero.
 10712  	Force *bool `locationName:"force" type:"boolean"`
 10713  
 10714  	// The short name or full Amazon Resource Name (ARN) of the service that hosts
 10715  	// the task set to delete.
 10716  	//
 10717  	// Service is a required field
 10718  	Service *string `locationName:"service" type:"string" required:"true"`
 10719  
 10720  	// The task set ID or full Amazon Resource Name (ARN) of the task set to delete.
 10721  	//
 10722  	// TaskSet is a required field
 10723  	TaskSet *string `locationName:"taskSet" type:"string" required:"true"`
 10724  }
 10725  
 10726  // String returns the string representation.
 10727  //
 10728  // API parameter values that are decorated as "sensitive" in the API will not
 10729  // be included in the string output. The member name will be present, but the
 10730  // value will be replaced with "sensitive".
 10731  func (s DeleteTaskSetInput) String() string {
 10732  	return awsutil.Prettify(s)
 10733  }
 10734  
 10735  // GoString returns the string representation.
 10736  //
 10737  // API parameter values that are decorated as "sensitive" in the API will not
 10738  // be included in the string output. The member name will be present, but the
 10739  // value will be replaced with "sensitive".
 10740  func (s DeleteTaskSetInput) GoString() string {
 10741  	return s.String()
 10742  }
 10743  
 10744  // Validate inspects the fields of the type to determine if they are valid.
 10745  func (s *DeleteTaskSetInput) Validate() error {
 10746  	invalidParams := request.ErrInvalidParams{Context: "DeleteTaskSetInput"}
 10747  	if s.Cluster == nil {
 10748  		invalidParams.Add(request.NewErrParamRequired("Cluster"))
 10749  	}
 10750  	if s.Service == nil {
 10751  		invalidParams.Add(request.NewErrParamRequired("Service"))
 10752  	}
 10753  	if s.TaskSet == nil {
 10754  		invalidParams.Add(request.NewErrParamRequired("TaskSet"))
 10755  	}
 10756  
 10757  	if invalidParams.Len() > 0 {
 10758  		return invalidParams
 10759  	}
 10760  	return nil
 10761  }
 10762  
 10763  // SetCluster sets the Cluster field's value.
 10764  func (s *DeleteTaskSetInput) SetCluster(v string) *DeleteTaskSetInput {
 10765  	s.Cluster = &v
 10766  	return s
 10767  }
 10768  
 10769  // SetForce sets the Force field's value.
 10770  func (s *DeleteTaskSetInput) SetForce(v bool) *DeleteTaskSetInput {
 10771  	s.Force = &v
 10772  	return s
 10773  }
 10774  
 10775  // SetService sets the Service field's value.
 10776  func (s *DeleteTaskSetInput) SetService(v string) *DeleteTaskSetInput {
 10777  	s.Service = &v
 10778  	return s
 10779  }
 10780  
 10781  // SetTaskSet sets the TaskSet field's value.
 10782  func (s *DeleteTaskSetInput) SetTaskSet(v string) *DeleteTaskSetInput {
 10783  	s.TaskSet = &v
 10784  	return s
 10785  }
 10786  
 10787  type DeleteTaskSetOutput struct {
 10788  	_ struct{} `type:"structure"`
 10789  
 10790  	// Details about the task set.
 10791  	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
 10792  }
 10793  
 10794  // String returns the string representation.
 10795  //
 10796  // API parameter values that are decorated as "sensitive" in the API will not
 10797  // be included in the string output. The member name will be present, but the
 10798  // value will be replaced with "sensitive".
 10799  func (s DeleteTaskSetOutput) String() string {
 10800  	return awsutil.Prettify(s)
 10801  }
 10802  
 10803  // GoString returns the string representation.
 10804  //
 10805  // API parameter values that are decorated as "sensitive" in the API will not
 10806  // be included in the string output. The member name will be present, but the
 10807  // value will be replaced with "sensitive".
 10808  func (s DeleteTaskSetOutput) GoString() string {
 10809  	return s.String()
 10810  }
 10811  
 10812  // SetTaskSet sets the TaskSet field's value.
 10813  func (s *DeleteTaskSetOutput) SetTaskSet(v *TaskSet) *DeleteTaskSetOutput {
 10814  	s.TaskSet = v
 10815  	return s
 10816  }
 10817  
 10818  // The details of an Amazon ECS service deployment. This is used only when a
 10819  // service uses the ECS deployment controller type.
 10820  type Deployment struct {
 10821  	_ struct{} `type:"structure"`
 10822  
 10823  	// The capacity provider strategy that the deployment is using.
 10824  	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
 10825  
 10826  	// The Unix timestamp for when the service deployment was created.
 10827  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
 10828  
 10829  	// The most recent desired count of tasks that was specified for the service
 10830  	// to deploy or maintain.
 10831  	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
 10832  
 10833  	// The number of consecutively failed tasks in the deployment. A task is considered
 10834  	// a failure if the service scheduler can't launch the task, the task doesn't
 10835  	// transition to a RUNNING state, or if it fails any of its defined health checks
 10836  	// and is stopped.
 10837  	//
 10838  	// Once a service deployment has one or more successfully running tasks, the
 10839  	// failed task count resets to zero and stops being evaluated.
 10840  	FailedTasks *int64 `locationName:"failedTasks" type:"integer"`
 10841  
 10842  	// The ID of the deployment.
 10843  	Id *string `locationName:"id" type:"string"`
 10844  
 10845  	// The launch type the tasks in the service are using. For more information,
 10846  	// see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
 10847  	// in the Amazon Elastic Container Service Developer Guide.
 10848  	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
 10849  
 10850  	// The VPC subnet and security group configuration for tasks that receive their
 10851  	// own elastic network interface by using the awsvpc networking mode.
 10852  	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
 10853  
 10854  	// The number of tasks in the deployment that are in the PENDING status.
 10855  	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
 10856  
 10857  	// The platform version on which your tasks in the service are running. A platform
 10858  	// version is only specified for tasks using the Fargate launch type. If one
 10859  	// is not specified, the LATEST platform version is used by default. For more
 10860  	// information, see Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
 10861  	// in the Amazon Elastic Container Service Developer Guide.
 10862  	PlatformVersion *string `locationName:"platformVersion" type:"string"`
 10863  
 10864  	//
 10865  	// The rolloutState of a service is only returned for services that use the
 10866  	// rolling update (ECS) deployment type that are not behind a Classic Load Balancer.
 10867  	//
 10868  	// The rollout state of the deployment. When a service deployment is started,
 10869  	// it begins in an IN_PROGRESS state. When the service reaches a steady state,
 10870  	// the deployment will transition to a COMPLETED state. If the service fails
 10871  	// to reach a steady state and circuit breaker is enabled, the deployment will
 10872  	// transition to a FAILED state. A deployment in FAILED state will launch no
 10873  	// new tasks. For more information, see DeploymentCircuitBreaker.
 10874  	RolloutState *string `locationName:"rolloutState" type:"string" enum:"DeploymentRolloutState"`
 10875  
 10876  	// A description of the rollout state of a deployment.
 10877  	RolloutStateReason *string `locationName:"rolloutStateReason" type:"string"`
 10878  
 10879  	// The number of tasks in the deployment that are in the RUNNING status.
 10880  	RunningCount *int64 `locationName:"runningCount" type:"integer"`
 10881  
 10882  	// The status of the deployment. The following describes each state:
 10883  	//
 10884  	// PRIMARY
 10885  	//
 10886  	// The most recent deployment of a service.
 10887  	//
 10888  	// ACTIVE
 10889  	//
 10890  	// A service deployment that still has running tasks, but are in the process
 10891  	// of being replaced with a new PRIMARY deployment.
 10892  	//
 10893  	// INACTIVE
 10894  	//
 10895  	// A deployment that has been completely replaced.
 10896  	Status *string `locationName:"status" type:"string"`
 10897  
 10898  	// The most recent task definition that was specified for the tasks in the service
 10899  	// to use.
 10900  	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
 10901  
 10902  	// The Unix timestamp for when the service deployment was last updated.
 10903  	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
 10904  }
 10905  
 10906  // String returns the string representation.
 10907  //
 10908  // API parameter values that are decorated as "sensitive" in the API will not
 10909  // be included in the string output. The member name will be present, but the
 10910  // value will be replaced with "sensitive".
 10911  func (s Deployment) String() string {
 10912  	return awsutil.Prettify(s)
 10913  }
 10914  
 10915  // GoString returns the string representation.
 10916  //
 10917  // API parameter values that are decorated as "sensitive" in the API will not
 10918  // be included in the string output. The member name will be present, but the
 10919  // value will be replaced with "sensitive".
 10920  func (s Deployment) GoString() string {
 10921  	return s.String()
 10922  }
 10923  
 10924  // SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
 10925  func (s *Deployment) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Deployment {
 10926  	s.CapacityProviderStrategy = v
 10927  	return s
 10928  }
 10929  
 10930  // SetCreatedAt sets the CreatedAt field's value.
 10931  func (s *Deployment) SetCreatedAt(v time.Time) *Deployment {
 10932  	s.CreatedAt = &v
 10933  	return s
 10934  }
 10935  
 10936  // SetDesiredCount sets the DesiredCount field's value.
 10937  func (s *Deployment) SetDesiredCount(v int64) *Deployment {
 10938  	s.DesiredCount = &v
 10939  	return s
 10940  }
 10941  
 10942  // SetFailedTasks sets the FailedTasks field's value.
 10943  func (s *Deployment) SetFailedTasks(v int64) *Deployment {
 10944  	s.FailedTasks = &v
 10945  	return s
 10946  }
 10947  
 10948  // SetId sets the Id field's value.
 10949  func (s *Deployment) SetId(v string) *Deployment {
 10950  	s.Id = &v
 10951  	return s
 10952  }
 10953  
 10954  // SetLaunchType sets the LaunchType field's value.
 10955  func (s *Deployment) SetLaunchType(v string) *Deployment {
 10956  	s.LaunchType = &v
 10957  	return s
 10958  }
 10959  
 10960  // SetNetworkConfiguration sets the NetworkConfiguration field's value.
 10961  func (s *Deployment) SetNetworkConfiguration(v *NetworkConfiguration) *Deployment {
 10962  	s.NetworkConfiguration = v
 10963  	return s
 10964  }
 10965  
 10966  // SetPendingCount sets the PendingCount field's value.
 10967  func (s *Deployment) SetPendingCount(v int64) *Deployment {
 10968  	s.PendingCount = &v
 10969  	return s
 10970  }
 10971  
 10972  // SetPlatformVersion sets the PlatformVersion field's value.
 10973  func (s *Deployment) SetPlatformVersion(v string) *Deployment {
 10974  	s.PlatformVersion = &v
 10975  	return s
 10976  }
 10977  
 10978  // SetRolloutState sets the RolloutState field's value.
 10979  func (s *Deployment) SetRolloutState(v string) *Deployment {
 10980  	s.RolloutState = &v
 10981  	return s
 10982  }
 10983  
 10984  // SetRolloutStateReason sets the RolloutStateReason field's value.
 10985  func (s *Deployment) SetRolloutStateReason(v string) *Deployment {
 10986  	s.RolloutStateReason = &v
 10987  	return s
 10988  }
 10989  
 10990  // SetRunningCount sets the RunningCount field's value.
 10991  func (s *Deployment) SetRunningCount(v int64) *Deployment {
 10992  	s.RunningCount = &v
 10993  	return s
 10994  }
 10995  
 10996  // SetStatus sets the Status field's value.
 10997  func (s *Deployment) SetStatus(v string) *Deployment {
 10998  	s.Status = &v
 10999  	return s
 11000  }
 11001  
 11002  // SetTaskDefinition sets the TaskDefinition field's value.
 11003  func (s *Deployment) SetTaskDefinition(v string) *Deployment {
 11004  	s.TaskDefinition = &v
 11005  	return s
 11006  }
 11007  
 11008  // SetUpdatedAt sets the UpdatedAt field's value.
 11009  func (s *Deployment) SetUpdatedAt(v time.Time) *Deployment {
 11010  	s.UpdatedAt = &v
 11011  	return s
 11012  }
 11013  
 11014  //
 11015  // The deployment circuit breaker can only be used for services using the rolling
 11016  // update (ECS) deployment type that are not behind a Classic Load Balancer.
 11017  //
 11018  // The deployment circuit breaker determines whether a service deployment will
 11019  // fail if the service can't reach a steady state. If enabled, a service deployment
 11020  // will transition to a failed state and stop launching new tasks. You can also
 11021  // enable Amazon ECS to roll back your service to the last completed deployment
 11022  // after a failure. For more information, see Rolling update (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html)
 11023  // in the Amazon Elastic Container Service Developer Guide.
 11024  type DeploymentCircuitBreaker struct {
 11025  	_ struct{} `type:"structure"`
 11026  
 11027  	// Whether to enable the deployment circuit breaker logic for the service.
 11028  	//
 11029  	// Enable is a required field
 11030  	Enable *bool `locationName:"enable" type:"boolean" required:"true"`
 11031  
 11032  	// Whether to enable Amazon ECS to roll back the service if a service deployment
 11033  	// fails. If rollback is enabled, when a service deployment fails, the service
 11034  	// is rolled back to the last deployment that completed successfully.
 11035  	//
 11036  	// Rollback is a required field
 11037  	Rollback *bool `locationName:"rollback" type:"boolean" required:"true"`
 11038  }
 11039  
 11040  // String returns the string representation.
 11041  //
 11042  // API parameter values that are decorated as "sensitive" in the API will not
 11043  // be included in the string output. The member name will be present, but the
 11044  // value will be replaced with "sensitive".
 11045  func (s DeploymentCircuitBreaker) String() string {
 11046  	return awsutil.Prettify(s)
 11047  }
 11048  
 11049  // GoString returns the string representation.
 11050  //
 11051  // API parameter values that are decorated as "sensitive" in the API will not
 11052  // be included in the string output. The member name will be present, but the
 11053  // value will be replaced with "sensitive".
 11054  func (s DeploymentCircuitBreaker) GoString() string {
 11055  	return s.String()
 11056  }
 11057  
 11058  // Validate inspects the fields of the type to determine if they are valid.
 11059  func (s *DeploymentCircuitBreaker) Validate() error {
 11060  	invalidParams := request.ErrInvalidParams{Context: "DeploymentCircuitBreaker"}
 11061  	if s.Enable == nil {
 11062  		invalidParams.Add(request.NewErrParamRequired("Enable"))
 11063  	}
 11064  	if s.Rollback == nil {
 11065  		invalidParams.Add(request.NewErrParamRequired("Rollback"))
 11066  	}
 11067  
 11068  	if invalidParams.Len() > 0 {
 11069  		return invalidParams
 11070  	}
 11071  	return nil
 11072  }
 11073  
 11074  // SetEnable sets the Enable field's value.
 11075  func (s *DeploymentCircuitBreaker) SetEnable(v bool) *DeploymentCircuitBreaker {
 11076  	s.Enable = &v
 11077  	return s
 11078  }
 11079  
 11080  // SetRollback sets the Rollback field's value.
 11081  func (s *DeploymentCircuitBreaker) SetRollback(v bool) *DeploymentCircuitBreaker {
 11082  	s.Rollback = &v
 11083  	return s
 11084  }
 11085  
 11086  // Optional deployment parameters that control how many tasks run during a deployment
 11087  // and the ordering of stopping and starting tasks.
 11088  type DeploymentConfiguration struct {
 11089  	_ struct{} `type:"structure"`
 11090  
 11091  	//
 11092  	// The deployment circuit breaker can only be used for services using the rolling
 11093  	// update (ECS) deployment type.
 11094  	//
 11095  	// The deployment circuit breaker determines whether a service deployment will
 11096  	// fail if the service can't reach a steady state. If deployment circuit breaker
 11097  	// is enabled, a service deployment will transition to a failed state and stop
 11098  	// launching new tasks. If rollback is enabled, when a service deployment fails,
 11099  	// the service is rolled back to the last deployment that completed successfully.
 11100  	DeploymentCircuitBreaker *DeploymentCircuitBreaker `locationName:"deploymentCircuitBreaker" type:"structure"`
 11101  
 11102  	// If a service is using the rolling update (ECS) deployment type, the maximum
 11103  	// percent parameter represents an upper limit on the number of tasks in a service
 11104  	// that are allowed in the RUNNING or PENDING state during a deployment, as
 11105  	// a percentage of the desired number of tasks (rounded down to the nearest
 11106  	// integer), and while any container instances are in the DRAINING state if
 11107  	// the service contains tasks using the EC2 launch type. This parameter enables
 11108  	// you to define the deployment batch size. For example, if your service has
 11109  	// a desired number of four tasks and a maximum percent value of 200%, the scheduler
 11110  	// may start four new tasks before stopping the four older tasks (provided that
 11111  	// the cluster resources required to do this are available). The default value
 11112  	// for maximum percent is 200%.
 11113  	//
 11114  	// If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment
 11115  	// types and tasks that use the EC2 launch type, the maximum percent value is
 11116  	// set to the default value and is used to define the upper limit on the number
 11117  	// of the tasks in the service that remain in the RUNNING state while the container
 11118  	// instances are in the DRAINING state. If the tasks in the service use the
 11119  	// Fargate launch type, the maximum percent value is not used, although it is
 11120  	// returned when describing your service.
 11121  	MaximumPercent *int64 `locationName:"maximumPercent" type:"integer"`
 11122  
 11123  	// If a service is using the rolling update (ECS) deployment type, the minimum
 11124  	// healthy percent represents a lower limit on the number of tasks in a service
 11125  	// that must remain in the RUNNING state during a deployment, as a percentage
 11126  	// of the desired number of tasks (rounded up to the nearest integer), and while
 11127  	// any container instances are in the DRAINING state if the service contains
 11128  	// tasks using the EC2 launch type. This parameter enables you to deploy without
 11129  	// using additional cluster capacity. For example, if your service has a desired
 11130  	// number of four tasks and a minimum healthy percent of 50%, the scheduler
 11131  	// may stop two existing tasks to free up cluster capacity before starting two
 11132  	// new tasks. Tasks for services that do not use a load balancer are considered
 11133  	// healthy if they are in the RUNNING state; tasks for services that do use
 11134  	// a load balancer are considered healthy if they are in the RUNNING state and
 11135  	// they are reported as healthy by the load balancer. The default value for
 11136  	// minimum healthy percent is 100%.
 11137  	//
 11138  	// If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment
 11139  	// types and tasks that use the EC2 launch type, the minimum healthy percent
 11140  	// value is set to the default value and is used to define the lower limit on
 11141  	// the number of the tasks in the service that remain in the RUNNING state while
 11142  	// the container instances are in the DRAINING state. If the tasks in the service
 11143  	// use the Fargate launch type, the minimum healthy percent value is not used,
 11144  	// although it is returned when describing your service.
 11145  	MinimumHealthyPercent *int64 `locationName:"minimumHealthyPercent" type:"integer"`
 11146  }
 11147  
 11148  // String returns the string representation.
 11149  //
 11150  // API parameter values that are decorated as "sensitive" in the API will not
 11151  // be included in the string output. The member name will be present, but the
 11152  // value will be replaced with "sensitive".
 11153  func (s DeploymentConfiguration) String() string {
 11154  	return awsutil.Prettify(s)
 11155  }
 11156  
 11157  // GoString returns the string representation.
 11158  //
 11159  // API parameter values that are decorated as "sensitive" in the API will not
 11160  // be included in the string output. The member name will be present, but the
 11161  // value will be replaced with "sensitive".
 11162  func (s DeploymentConfiguration) GoString() string {
 11163  	return s.String()
 11164  }
 11165  
 11166  // Validate inspects the fields of the type to determine if they are valid.
 11167  func (s *DeploymentConfiguration) Validate() error {
 11168  	invalidParams := request.ErrInvalidParams{Context: "DeploymentConfiguration"}
 11169  	if s.DeploymentCircuitBreaker != nil {
 11170  		if err := s.DeploymentCircuitBreaker.Validate(); err != nil {
 11171  			invalidParams.AddNested("DeploymentCircuitBreaker", err.(request.ErrInvalidParams))
 11172  		}
 11173  	}
 11174  
 11175  	if invalidParams.Len() > 0 {
 11176  		return invalidParams
 11177  	}
 11178  	return nil
 11179  }
 11180  
 11181  // SetDeploymentCircuitBreaker sets the DeploymentCircuitBreaker field's value.
 11182  func (s *DeploymentConfiguration) SetDeploymentCircuitBreaker(v *DeploymentCircuitBreaker) *DeploymentConfiguration {
 11183  	s.DeploymentCircuitBreaker = v
 11184  	return s
 11185  }
 11186  
 11187  // SetMaximumPercent sets the MaximumPercent field's value.
 11188  func (s *DeploymentConfiguration) SetMaximumPercent(v int64) *DeploymentConfiguration {
 11189  	s.MaximumPercent = &v
 11190  	return s
 11191  }
 11192  
 11193  // SetMinimumHealthyPercent sets the MinimumHealthyPercent field's value.
 11194  func (s *DeploymentConfiguration) SetMinimumHealthyPercent(v int64) *DeploymentConfiguration {
 11195  	s.MinimumHealthyPercent = &v
 11196  	return s
 11197  }
 11198  
 11199  // The deployment controller to use for the service. For more information, see
 11200  // Amazon ECS Deployment Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html)
 11201  // in the Amazon Elastic Container Service Developer Guide.
 11202  type DeploymentController struct {
 11203  	_ struct{} `type:"structure"`
 11204  
 11205  	// The deployment controller type to use.
 11206  	//
 11207  	// There are three deployment controller types available:
 11208  	//
 11209  	// ECS
 11210  	//
 11211  	// The rolling update (ECS) deployment type involves replacing the current running
 11212  	// version of the container with the latest version. The number of containers
 11213  	// Amazon ECS adds or removes from the service during a rolling update is controlled
 11214  	// by adjusting the minimum and maximum number of healthy tasks allowed during
 11215  	// a service deployment, as specified in the DeploymentConfiguration.
 11216  	//
 11217  	// CODE_DEPLOY
 11218  	//
 11219  	// The blue/green (CODE_DEPLOY) deployment type uses the blue/green deployment
 11220  	// model powered by CodeDeploy, which allows you to verify a new deployment
 11221  	// of a service before sending production traffic to it.
 11222  	//
 11223  	// EXTERNAL
 11224  	//
 11225  	// The external (EXTERNAL) deployment type enables you to use any third-party
 11226  	// deployment controller for full control over the deployment process for an
 11227  	// Amazon ECS service.
 11228  	//
 11229  	// Type is a required field
 11230  	Type *string `locationName:"type" type:"string" required:"true" enum:"DeploymentControllerType"`
 11231  }
 11232  
 11233  // String returns the string representation.
 11234  //
 11235  // API parameter values that are decorated as "sensitive" in the API will not
 11236  // be included in the string output. The member name will be present, but the
 11237  // value will be replaced with "sensitive".
 11238  func (s DeploymentController) String() string {
 11239  	return awsutil.Prettify(s)
 11240  }
 11241  
 11242  // GoString returns the string representation.
 11243  //
 11244  // API parameter values that are decorated as "sensitive" in the API will not
 11245  // be included in the string output. The member name will be present, but the
 11246  // value will be replaced with "sensitive".
 11247  func (s DeploymentController) GoString() string {
 11248  	return s.String()
 11249  }
 11250  
 11251  // Validate inspects the fields of the type to determine if they are valid.
 11252  func (s *DeploymentController) Validate() error {
 11253  	invalidParams := request.ErrInvalidParams{Context: "DeploymentController"}
 11254  	if s.Type == nil {
 11255  		invalidParams.Add(request.NewErrParamRequired("Type"))
 11256  	}
 11257  
 11258  	if invalidParams.Len() > 0 {
 11259  		return invalidParams
 11260  	}
 11261  	return nil
 11262  }
 11263  
 11264  // SetType sets the Type field's value.
 11265  func (s *DeploymentController) SetType(v string) *DeploymentController {
 11266  	s.Type = &v
 11267  	return s
 11268  }
 11269  
 11270  type DeregisterContainerInstanceInput struct {
 11271  	_ struct{} `type:"structure"`
 11272  
 11273  	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
 11274  	// the container instance to deregister. If you do not specify a cluster, the
 11275  	// default cluster is assumed.
 11276  	Cluster *string `locationName:"cluster" type:"string"`
 11277  
 11278  	// The container instance ID or full ARN of the container instance to deregister.
 11279  	// The ARN contains the arn:aws:ecs namespace, followed by the Region of the
 11280  	// container instance, the Amazon Web Services account ID of the container instance
 11281  	// owner, the container-instance namespace, and then the container instance
 11282  	// ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
 11283  	//
 11284  	// ContainerInstance is a required field
 11285  	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
 11286  
 11287  	// Forces the deregistration of the container instance. If you have tasks running
 11288  	// on the container instance when you deregister it with the force option, these
 11289  	// tasks remain running until you terminate the instance or the tasks stop through
 11290  	// some other means, but they are orphaned (no longer monitored or accounted
 11291  	// for by Amazon ECS). If an orphaned task on your container instance is part
 11292  	// of an Amazon ECS service, then the service scheduler starts another copy
 11293  	// of that task, on a different container instance if possible.
 11294  	//
 11295  	// Any containers in orphaned service tasks that are registered with a Classic
 11296  	// Load Balancer or an Application Load Balancer target group are deregistered.
 11297  	// They begin connection draining according to the settings on the load balancer
 11298  	// or target group.
 11299  	Force *bool `locationName:"force" type:"boolean"`
 11300  }
 11301  
 11302  // String returns the string representation.
 11303  //
 11304  // API parameter values that are decorated as "sensitive" in the API will not
 11305  // be included in the string output. The member name will be present, but the
 11306  // value will be replaced with "sensitive".
 11307  func (s DeregisterContainerInstanceInput) String() string {
 11308  	return awsutil.Prettify(s)
 11309  }
 11310  
 11311  // GoString returns the string representation.
 11312  //
 11313  // API parameter values that are decorated as "sensitive" in the API will not
 11314  // be included in the string output. The member name will be present, but the
 11315  // value will be replaced with "sensitive".
 11316  func (s DeregisterContainerInstanceInput) GoString() string {
 11317  	return s.String()
 11318  }
 11319  
 11320  // Validate inspects the fields of the type to determine if they are valid.
 11321  func (s *DeregisterContainerInstanceInput) Validate() error {
 11322  	invalidParams := request.ErrInvalidParams{Context: "DeregisterContainerInstanceInput"}
 11323  	if s.ContainerInstance == nil {
 11324  		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
 11325  	}
 11326  
 11327  	if invalidParams.Len() > 0 {
 11328  		return invalidParams
 11329  	}
 11330  	return nil
 11331  }
 11332  
 11333  // SetCluster sets the Cluster field's value.
 11334  func (s *DeregisterContainerInstanceInput) SetCluster(v string) *DeregisterContainerInstanceInput {
 11335  	s.Cluster = &v
 11336  	return s
 11337  }
 11338  
 11339  // SetContainerInstance sets the ContainerInstance field's value.
 11340  func (s *DeregisterContainerInstanceInput) SetContainerInstance(v string) *DeregisterContainerInstanceInput {
 11341  	s.ContainerInstance = &v
 11342  	return s
 11343  }
 11344  
 11345  // SetForce sets the Force field's value.
 11346  func (s *DeregisterContainerInstanceInput) SetForce(v bool) *DeregisterContainerInstanceInput {
 11347  	s.Force = &v
 11348  	return s
 11349  }
 11350  
 11351  type DeregisterContainerInstanceOutput struct {
 11352  	_ struct{} `type:"structure"`
 11353  
 11354  	// The container instance that was deregistered.
 11355  	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
 11356  }
 11357  
 11358  // String returns the string representation.
 11359  //
 11360  // API parameter values that are decorated as "sensitive" in the API will not
 11361  // be included in the string output. The member name will be present, but the
 11362  // value will be replaced with "sensitive".
 11363  func (s DeregisterContainerInstanceOutput) String() string {
 11364  	return awsutil.Prettify(s)
 11365  }
 11366  
 11367  // GoString returns the string representation.
 11368  //
 11369  // API parameter values that are decorated as "sensitive" in the API will not
 11370  // be included in the string output. The member name will be present, but the
 11371  // value will be replaced with "sensitive".
 11372  func (s DeregisterContainerInstanceOutput) GoString() string {
 11373  	return s.String()
 11374  }
 11375  
 11376  // SetContainerInstance sets the ContainerInstance field's value.
 11377  func (s *DeregisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *DeregisterContainerInstanceOutput {
 11378  	s.ContainerInstance = v
 11379  	return s
 11380  }
 11381  
 11382  type DeregisterTaskDefinitionInput struct {
 11383  	_ struct{} `type:"structure"`
 11384  
 11385  	// The family and revision (family:revision) or full Amazon Resource Name (ARN)
 11386  	// of the task definition to deregister. You must specify a revision.
 11387  	//
 11388  	// TaskDefinition is a required field
 11389  	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
 11390  }
 11391  
 11392  // String returns the string representation.
 11393  //
 11394  // API parameter values that are decorated as "sensitive" in the API will not
 11395  // be included in the string output. The member name will be present, but the
 11396  // value will be replaced with "sensitive".
 11397  func (s DeregisterTaskDefinitionInput) String() string {
 11398  	return awsutil.Prettify(s)
 11399  }
 11400  
 11401  // GoString returns the string representation.
 11402  //
 11403  // API parameter values that are decorated as "sensitive" in the API will not
 11404  // be included in the string output. The member name will be present, but the
 11405  // value will be replaced with "sensitive".
 11406  func (s DeregisterTaskDefinitionInput) GoString() string {
 11407  	return s.String()
 11408  }
 11409  
 11410  // Validate inspects the fields of the type to determine if they are valid.
 11411  func (s *DeregisterTaskDefinitionInput) Validate() error {
 11412  	invalidParams := request.ErrInvalidParams{Context: "DeregisterTaskDefinitionInput"}
 11413  	if s.TaskDefinition == nil {
 11414  		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
 11415  	}
 11416  
 11417  	if invalidParams.Len() > 0 {
 11418  		return invalidParams
 11419  	}
 11420  	return nil
 11421  }
 11422  
 11423  // SetTaskDefinition sets the TaskDefinition field's value.
 11424  func (s *DeregisterTaskDefinitionInput) SetTaskDefinition(v string) *DeregisterTaskDefinitionInput {
 11425  	s.TaskDefinition = &v
 11426  	return s
 11427  }
 11428  
 11429  type DeregisterTaskDefinitionOutput struct {
 11430  	_ struct{} `type:"structure"`
 11431  
 11432  	// The full description of the deregistered task.
 11433  	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
 11434  }
 11435  
 11436  // String returns the string representation.
 11437  //
 11438  // API parameter values that are decorated as "sensitive" in the API will not
 11439  // be included in the string output. The member name will be present, but the
 11440  // value will be replaced with "sensitive".
 11441  func (s DeregisterTaskDefinitionOutput) String() string {
 11442  	return awsutil.Prettify(s)
 11443  }
 11444  
 11445  // GoString returns the string representation.
 11446  //
 11447  // API parameter values that are decorated as "sensitive" in the API will not
 11448  // be included in the string output. The member name will be present, but the
 11449  // value will be replaced with "sensitive".
 11450  func (s DeregisterTaskDefinitionOutput) GoString() string {
 11451  	return s.String()
 11452  }
 11453  
 11454  // SetTaskDefinition sets the TaskDefinition field's value.
 11455  func (s *DeregisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DeregisterTaskDefinitionOutput {
 11456  	s.TaskDefinition = v
 11457  	return s
 11458  }
 11459  
 11460  type DescribeCapacityProvidersInput struct {
 11461  	_ struct{} `type:"structure"`
 11462  
 11463  	// The short name or full Amazon Resource Name (ARN) of one or more capacity
 11464  	// providers. Up to 100 capacity providers can be described in an action.
 11465  	CapacityProviders []*string `locationName:"capacityProviders" type:"list"`
 11466  
 11467  	// Specifies whether or not you want to see the resource tags for the capacity
 11468  	// provider. If TAGS is specified, the tags are included in the response. If
 11469  	// this field is omitted, tags are not included in the response.
 11470  	Include []*string `locationName:"include" type:"list"`
 11471  
 11472  	// The maximum number of account setting results returned by DescribeCapacityProviders
 11473  	// in paginated output. When this parameter is used, DescribeCapacityProviders
 11474  	// only returns maxResults results in a single page along with a nextToken response
 11475  	// element. The remaining results of the initial request can be seen by sending
 11476  	// another DescribeCapacityProviders request with the returned nextToken value.
 11477  	// This value can be between 1 and 10. If this parameter is not used, then DescribeCapacityProviders
 11478  	// returns up to 10 results and a nextToken value if applicable.
 11479  	MaxResults *int64 `locationName:"maxResults" type:"integer"`
 11480  
 11481  	// The nextToken value returned from a previous paginated DescribeCapacityProviders
 11482  	// request where maxResults was used and the results exceeded the value of that
 11483  	// parameter. Pagination continues from the end of the previous results that
 11484  	// returned the nextToken value.
 11485  	//
 11486  	// This token should be treated as an opaque identifier that is only used to
 11487  	// retrieve the next items in a list and not for other programmatic purposes.
 11488  	NextToken *string `locationName:"nextToken" type:"string"`
 11489  }
 11490  
 11491  // String returns the string representation.
 11492  //
 11493  // API parameter values that are decorated as "sensitive" in the API will not
 11494  // be included in the string output. The member name will be present, but the
 11495  // value will be replaced with "sensitive".
 11496  func (s DescribeCapacityProvidersInput) String() string {
 11497  	return awsutil.Prettify(s)
 11498  }
 11499  
 11500  // GoString returns the string representation.
 11501  //
 11502  // API parameter values that are decorated as "sensitive" in the API will not
 11503  // be included in the string output. The member name will be present, but the
 11504  // value will be replaced with "sensitive".
 11505  func (s DescribeCapacityProvidersInput) GoString() string {
 11506  	return s.String()
 11507  }
 11508  
 11509  // SetCapacityProviders sets the CapacityProviders field's value.
 11510  func (s *DescribeCapacityProvidersInput) SetCapacityProviders(v []*string) *DescribeCapacityProvidersInput {
 11511  	s.CapacityProviders = v
 11512  	return s
 11513  }
 11514  
 11515  // SetInclude sets the Include field's value.
 11516  func (s *DescribeCapacityProvidersInput) SetInclude(v []*string) *DescribeCapacityProvidersInput {
 11517  	s.Include = v
 11518  	return s
 11519  }
 11520  
 11521  // SetMaxResults sets the MaxResults field's value.
 11522  func (s *DescribeCapacityProvidersInput) SetMaxResults(v int64) *DescribeCapacityProvidersInput {
 11523  	s.MaxResults = &v
 11524  	return s
 11525  }
 11526  
 11527  // SetNextToken sets the NextToken field's value.
 11528  func (s *DescribeCapacityProvidersInput) SetNextToken(v string) *DescribeCapacityProvidersInput {
 11529  	s.NextToken = &v
 11530  	return s
 11531  }
 11532  
 11533  type DescribeCapacityProvidersOutput struct {
 11534  	_ struct{} `type:"structure"`
 11535  
 11536  	// The list of capacity providers.
 11537  	CapacityProviders []*CapacityProvider `locationName:"capacityProviders" type:"list"`
 11538  
 11539  	// Any failures associated with the call.
 11540  	Failures []*Failure `locationName:"failures" type:"list"`
 11541  
 11542  	// The nextToken value to include in a future DescribeCapacityProviders request.
 11543  	// When the results of a DescribeCapacityProviders request exceed maxResults,
 11544  	// this value can be used to retrieve the next page of results. This value is
 11545  	// null when there are no more results to return.
 11546  	NextToken *string `locationName:"nextToken" type:"string"`
 11547  }
 11548  
 11549  // String returns the string representation.
 11550  //
 11551  // API parameter values that are decorated as "sensitive" in the API will not
 11552  // be included in the string output. The member name will be present, but the
 11553  // value will be replaced with "sensitive".
 11554  func (s DescribeCapacityProvidersOutput) String() string {
 11555  	return awsutil.Prettify(s)
 11556  }
 11557  
 11558  // GoString returns the string representation.
 11559  //
 11560  // API parameter values that are decorated as "sensitive" in the API will not
 11561  // be included in the string output. The member name will be present, but the
 11562  // value will be replaced with "sensitive".
 11563  func (s DescribeCapacityProvidersOutput) GoString() string {
 11564  	return s.String()
 11565  }
 11566  
 11567  // SetCapacityProviders sets the CapacityProviders field's value.
 11568  func (s *DescribeCapacityProvidersOutput) SetCapacityProviders(v []*CapacityProvider) *DescribeCapacityProvidersOutput {
 11569  	s.CapacityProviders = v
 11570  	return s
 11571  }
 11572  
 11573  // SetFailures sets the Failures field's value.
 11574  func (s *DescribeCapacityProvidersOutput) SetFailures(v []*Failure) *DescribeCapacityProvidersOutput {
 11575  	s.Failures = v
 11576  	return s
 11577  }
 11578  
 11579  // SetNextToken sets the NextToken field's value.
 11580  func (s *DescribeCapacityProvidersOutput) SetNextToken(v string) *DescribeCapacityProvidersOutput {
 11581  	s.NextToken = &v
 11582  	return s
 11583  }
 11584  
 11585  type DescribeClustersInput struct {
 11586  	_ struct{} `type:"structure"`
 11587  
 11588  	// A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN)
 11589  	// entries. If you do not specify a cluster, the default cluster is assumed.
 11590  	Clusters []*string `locationName:"clusters" type:"list"`
 11591  
 11592  	// Whether to include additional information about the clusters in the response.
 11593  	// If this field is omitted, this information isn't included.
 11594  	//
 11595  	// If ATTACHMENTS is specified, the attachments for the container instances
 11596  	// or tasks within the cluster are included.
 11597  	//
 11598  	// If SETTINGS is specified, the settings for the cluster are included.
 11599  	//
 11600  	// If CONFIGURATIONS is specified, the configuration for the cluster is included.
 11601  	//
 11602  	// If STATISTICS is specified, the task and service count is included, separated
 11603  	// by launch type.
 11604  	//
 11605  	// If TAGS is specified, the metadata tags associated with the cluster are included.
 11606  	Include []*string `locationName:"include" type:"list"`
 11607  }
 11608  
 11609  // String returns the string representation.
 11610  //
 11611  // API parameter values that are decorated as "sensitive" in the API will not
 11612  // be included in the string output. The member name will be present, but the
 11613  // value will be replaced with "sensitive".
 11614  func (s DescribeClustersInput) String() string {
 11615  	return awsutil.Prettify(s)
 11616  }
 11617  
 11618  // GoString returns the string representation.
 11619  //
 11620  // API parameter values that are decorated as "sensitive" in the API will not
 11621  // be included in the string output. The member name will be present, but the
 11622  // value will be replaced with "sensitive".
 11623  func (s DescribeClustersInput) GoString() string {
 11624  	return s.String()
 11625  }
 11626  
 11627  // SetClusters sets the Clusters field's value.
 11628  func (s *DescribeClustersInput) SetClusters(v []*string) *DescribeClustersInput {
 11629  	s.Clusters = v
 11630  	return s
 11631  }
 11632  
 11633  // SetInclude sets the Include field's value.
 11634  func (s *DescribeClustersInput) SetInclude(v []*string) *DescribeClustersInput {
 11635  	s.Include = v
 11636  	return s
 11637  }
 11638  
 11639  type DescribeClustersOutput struct {
 11640  	_ struct{} `type:"structure"`
 11641  
 11642  	// The list of clusters.
 11643  	Clusters []*Cluster `locationName:"clusters" type:"list"`
 11644  
 11645  	// Any failures associated with the call.
 11646  	Failures []*Failure `locationName:"failures" type:"list"`
 11647  }
 11648  
 11649  // String returns the string representation.
 11650  //
 11651  // API parameter values that are decorated as "sensitive" in the API will not
 11652  // be included in the string output. The member name will be present, but the
 11653  // value will be replaced with "sensitive".
 11654  func (s DescribeClustersOutput) String() string {
 11655  	return awsutil.Prettify(s)
 11656  }
 11657  
 11658  // GoString returns the string representation.
 11659  //
 11660  // API parameter values that are decorated as "sensitive" in the API will not
 11661  // be included in the string output. The member name will be present, but the
 11662  // value will be replaced with "sensitive".
 11663  func (s DescribeClustersOutput) GoString() string {
 11664  	return s.String()
 11665  }
 11666  
 11667  // SetClusters sets the Clusters field's value.
 11668  func (s *DescribeClustersOutput) SetClusters(v []*Cluster) *DescribeClustersOutput {
 11669  	s.Clusters = v
 11670  	return s
 11671  }
 11672  
 11673  // SetFailures sets the Failures field's value.
 11674  func (s *DescribeClustersOutput) SetFailures(v []*Failure) *DescribeClustersOutput {
 11675  	s.Failures = v
 11676  	return s
 11677  }
 11678  
 11679  type DescribeContainerInstancesInput struct {
 11680  	_ struct{} `type:"structure"`
 11681  
 11682  	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
 11683  	// the container instances to describe. If you do not specify a cluster, the
 11684  	// default cluster is assumed. This parameter is required if the container instance
 11685  	// or container instances you are describing were launched in any cluster other
 11686  	// than the default cluster.
 11687  	Cluster *string `locationName:"cluster" type:"string"`
 11688  
 11689  	// A list of up to 100 container instance IDs or full Amazon Resource Name (ARN)
 11690  	// entries.
 11691  	//
 11692  	// ContainerInstances is a required field
 11693  	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
 11694  
 11695  	// Specifies whether you want to see the resource tags for the container instance.
 11696  	// If TAGS is specified, the tags are included in the response. If this field
 11697  	// is omitted, tags are not included in the response.
 11698  	Include []*string `locationName:"include" type:"list"`
 11699  }
 11700  
 11701  // String returns the string representation.
 11702  //
 11703  // API parameter values that are decorated as "sensitive" in the API will not
 11704  // be included in the string output. The member name will be present, but the
 11705  // value will be replaced with "sensitive".
 11706  func (s DescribeContainerInstancesInput) String() string {
 11707  	return awsutil.Prettify(s)
 11708  }
 11709  
 11710  // GoString returns the string representation.
 11711  //
 11712  // API parameter values that are decorated as "sensitive" in the API will not
 11713  // be included in the string output. The member name will be present, but the
 11714  // value will be replaced with "sensitive".
 11715  func (s DescribeContainerInstancesInput) GoString() string {
 11716  	return s.String()
 11717  }
 11718  
 11719  // Validate inspects the fields of the type to determine if they are valid.
 11720  func (s *DescribeContainerInstancesInput) Validate() error {
 11721  	invalidParams := request.ErrInvalidParams{Context: "DescribeContainerInstancesInput"}
 11722  	if s.ContainerInstances == nil {
 11723  		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
 11724  	}
 11725  
 11726  	if invalidParams.Len() > 0 {
 11727  		return invalidParams
 11728  	}
 11729  	return nil
 11730  }
 11731  
 11732  // SetCluster sets the Cluster field's value.
 11733  func (s *DescribeContainerInstancesInput) SetCluster(v string) *DescribeContainerInstancesInput {
 11734  	s.Cluster = &v
 11735  	return s
 11736  }
 11737  
 11738  // SetContainerInstances sets the ContainerInstances field's value.
 11739  func (s *DescribeContainerInstancesInput) SetContainerInstances(v []*string) *DescribeContainerInstancesInput {
 11740  	s.ContainerInstances = v
 11741  	return s
 11742  }
 11743  
 11744  // SetInclude sets the Include field's value.
 11745  func (s *DescribeContainerInstancesInput) SetInclude(v []*string) *DescribeContainerInstancesInput {
 11746  	s.Include = v
 11747  	return s
 11748  }
 11749  
 11750  type DescribeContainerInstancesOutput struct {
 11751  	_ struct{} `type:"structure"`
 11752  
 11753  	// The list of container instances.
 11754  	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
 11755  
 11756  	// Any failures associated with the call.
 11757  	Failures []*Failure `locationName:"failures" type:"list"`
 11758  }
 11759  
 11760  // String returns the string representation.
 11761  //
 11762  // API parameter values that are decorated as "sensitive" in the API will not
 11763  // be included in the string output. The member name will be present, but the
 11764  // value will be replaced with "sensitive".
 11765  func (s DescribeContainerInstancesOutput) String() string {
 11766  	return awsutil.Prettify(s)
 11767  }
 11768  
 11769  // GoString returns the string representation.
 11770  //
 11771  // API parameter values that are decorated as "sensitive" in the API will not
 11772  // be included in the string output. The member name will be present, but the
 11773  // value will be replaced with "sensitive".
 11774  func (s DescribeContainerInstancesOutput) GoString() string {
 11775  	return s.String()
 11776  }
 11777  
 11778  // SetContainerInstances sets the ContainerInstances field's value.
 11779  func (s *DescribeContainerInstancesOutput) SetContainerInstances(v []*ContainerInstance) *DescribeContainerInstancesOutput {
 11780  	s.ContainerInstances = v
 11781  	return s
 11782  }
 11783  
 11784  // SetFailures sets the Failures field's value.
 11785  func (s *DescribeContainerInstancesOutput) SetFailures(v []*Failure) *DescribeContainerInstancesOutput {
 11786  	s.Failures = v
 11787  	return s
 11788  }
 11789  
 11790  type DescribeServicesInput struct {
 11791  	_ struct{} `type:"structure"`
 11792  
 11793  	// The short name or full Amazon Resource Name (ARN)the cluster that hosts the
 11794  	// service to describe. If you do not specify a cluster, the default cluster
 11795  	// is assumed. This parameter is required if the service or services you are
 11796  	// describing were launched in any cluster other than the default cluster.
 11797  	Cluster *string `locationName:"cluster" type:"string"`
 11798  
 11799  	// Specifies whether you want to see the resource tags for the service. If TAGS
 11800  	// is specified, the tags are included in the response. If this field is omitted,
 11801  	// tags are not included in the response.
 11802  	Include []*string `locationName:"include" type:"list"`
 11803  
 11804  	// A list of services to describe. You may specify up to 10 services to describe
 11805  	// in a single operation.
 11806  	//
 11807  	// Services is a required field
 11808  	Services []*string `locationName:"services" type:"list" required:"true"`
 11809  }
 11810  
 11811  // String returns the string representation.
 11812  //
 11813  // API parameter values that are decorated as "sensitive" in the API will not
 11814  // be included in the string output. The member name will be present, but the
 11815  // value will be replaced with "sensitive".
 11816  func (s DescribeServicesInput) String() string {
 11817  	return awsutil.Prettify(s)
 11818  }
 11819  
 11820  // GoString returns the string representation.
 11821  //
 11822  // API parameter values that are decorated as "sensitive" in the API will not
 11823  // be included in the string output. The member name will be present, but the
 11824  // value will be replaced with "sensitive".
 11825  func (s DescribeServicesInput) GoString() string {
 11826  	return s.String()
 11827  }
 11828  
 11829  // Validate inspects the fields of the type to determine if they are valid.
 11830  func (s *DescribeServicesInput) Validate() error {
 11831  	invalidParams := request.ErrInvalidParams{Context: "DescribeServicesInput"}
 11832  	if s.Services == nil {
 11833  		invalidParams.Add(request.NewErrParamRequired("Services"))
 11834  	}
 11835  
 11836  	if invalidParams.Len() > 0 {
 11837  		return invalidParams
 11838  	}
 11839  	return nil
 11840  }
 11841  
 11842  // SetCluster sets the Cluster field's value.
 11843  func (s *DescribeServicesInput) SetCluster(v string) *DescribeServicesInput {
 11844  	s.Cluster = &v
 11845  	return s
 11846  }
 11847  
 11848  // SetInclude sets the Include field's value.
 11849  func (s *DescribeServicesInput) SetInclude(v []*string) *DescribeServicesInput {
 11850  	s.Include = v
 11851  	return s
 11852  }
 11853  
 11854  // SetServices sets the Services field's value.
 11855  func (s *DescribeServicesInput) SetServices(v []*string) *DescribeServicesInput {
 11856  	s.Services = v
 11857  	return s
 11858  }
 11859  
 11860  type DescribeServicesOutput struct {
 11861  	_ struct{} `type:"structure"`
 11862  
 11863  	// Any failures associated with the call.
 11864  	Failures []*Failure `locationName:"failures" type:"list"`
 11865  
 11866  	// The list of services described.
 11867  	Services []*Service `locationName:"services" type:"list"`
 11868  }
 11869  
 11870  // String returns the string representation.
 11871  //
 11872  // API parameter values that are decorated as "sensitive" in the API will not
 11873  // be included in the string output. The member name will be present, but the
 11874  // value will be replaced with "sensitive".
 11875  func (s DescribeServicesOutput) String() string {
 11876  	return awsutil.Prettify(s)
 11877  }
 11878  
 11879  // GoString returns the string representation.
 11880  //
 11881  // API parameter values that are decorated as "sensitive" in the API will not
 11882  // be included in the string output. The member name will be present, but the
 11883  // value will be replaced with "sensitive".
 11884  func (s DescribeServicesOutput) GoString() string {
 11885  	return s.String()
 11886  }
 11887  
 11888  // SetFailures sets the Failures field's value.
 11889  func (s *DescribeServicesOutput) SetFailures(v []*Failure) *DescribeServicesOutput {
 11890  	s.Failures = v
 11891  	return s
 11892  }
 11893  
 11894  // SetServices sets the Services field's value.
 11895  func (s *DescribeServicesOutput) SetServices(v []*Service) *DescribeServicesOutput {
 11896  	s.Services = v
 11897  	return s
 11898  }
 11899  
 11900  type DescribeTaskDefinitionInput struct {
 11901  	_ struct{} `type:"structure"`
 11902  
 11903  	// Specifies whether to see the resource tags for the task definition. If TAGS
 11904  	// is specified, the tags are included in the response. If this field is omitted,
 11905  	// tags are not included in the response.
 11906  	Include []*string `locationName:"include" type:"list"`
 11907  
 11908  	// The family for the latest ACTIVE revision, family and revision (family:revision)
 11909  	// for a specific revision in the family, or full Amazon Resource Name (ARN)
 11910  	// of the task definition to describe.
 11911  	//
 11912  	// TaskDefinition is a required field
 11913  	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
 11914  }
 11915  
 11916  // String returns the string representation.
 11917  //
 11918  // API parameter values that are decorated as "sensitive" in the API will not
 11919  // be included in the string output. The member name will be present, but the
 11920  // value will be replaced with "sensitive".
 11921  func (s DescribeTaskDefinitionInput) String() string {
 11922  	return awsutil.Prettify(s)
 11923  }
 11924  
 11925  // GoString returns the string representation.
 11926  //
 11927  // API parameter values that are decorated as "sensitive" in the API will not
 11928  // be included in the string output. The member name will be present, but the
 11929  // value will be replaced with "sensitive".
 11930  func (s DescribeTaskDefinitionInput) GoString() string {
 11931  	return s.String()
 11932  }
 11933  
 11934  // Validate inspects the fields of the type to determine if they are valid.
 11935  func (s *DescribeTaskDefinitionInput) Validate() error {
 11936  	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskDefinitionInput"}
 11937  	if s.TaskDefinition == nil {
 11938  		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
 11939  	}
 11940  
 11941  	if invalidParams.Len() > 0 {
 11942  		return invalidParams
 11943  	}
 11944  	return nil
 11945  }
 11946  
 11947  // SetInclude sets the Include field's value.
 11948  func (s *DescribeTaskDefinitionInput) SetInclude(v []*string) *DescribeTaskDefinitionInput {
 11949  	s.Include = v
 11950  	return s
 11951  }
 11952  
 11953  // SetTaskDefinition sets the TaskDefinition field's value.
 11954  func (s *DescribeTaskDefinitionInput) SetTaskDefinition(v string) *DescribeTaskDefinitionInput {
 11955  	s.TaskDefinition = &v
 11956  	return s
 11957  }
 11958  
 11959  type DescribeTaskDefinitionOutput struct {
 11960  	_ struct{} `type:"structure"`
 11961  
 11962  	// The metadata that is applied to the task definition to help you categorize
 11963  	// and organize them. Each tag consists of a key and an optional value, both
 11964  	// of which you define.
 11965  	//
 11966  	// The following basic restrictions apply to tags:
 11967  	//
 11968  	//    * Maximum number of tags per resource - 50
 11969  	//
 11970  	//    * For each resource, each tag key must be unique, and each tag key can
 11971  	//    have only one value.
 11972  	//
 11973  	//    * Maximum key length - 128 Unicode characters in UTF-8
 11974  	//
 11975  	//    * Maximum value length - 256 Unicode characters in UTF-8
 11976  	//
 11977  	//    * If your tagging schema is used across multiple services and resources,
 11978  	//    remember that other services may have restrictions on allowed characters.
 11979  	//    Generally allowed characters are: letters, numbers, and spaces representable
 11980  	//    in UTF-8, and the following characters: + - = . _ : / @.
 11981  	//
 11982  	//    * Tag keys and values are case-sensitive.
 11983  	//
 11984  	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
 11985  	//    as a prefix for either keys or values as it is reserved for Amazon Web
 11986  	//    Services use. You cannot edit or delete tag keys or values with this prefix.
 11987  	//    Tags with this prefix do not count against your tags per resource limit.
 11988  	Tags []*Tag `locationName:"tags" type:"list"`
 11989  
 11990  	// The full task definition description.
 11991  	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
 11992  }
 11993  
 11994  // String returns the string representation.
 11995  //
 11996  // API parameter values that are decorated as "sensitive" in the API will not
 11997  // be included in the string output. The member name will be present, but the
 11998  // value will be replaced with "sensitive".
 11999  func (s DescribeTaskDefinitionOutput) String() string {
 12000  	return awsutil.Prettify(s)
 12001  }
 12002  
 12003  // GoString returns the string representation.
 12004  //
 12005  // API parameter values that are decorated as "sensitive" in the API will not
 12006  // be included in the string output. The member name will be present, but the
 12007  // value will be replaced with "sensitive".
 12008  func (s DescribeTaskDefinitionOutput) GoString() string {
 12009  	return s.String()
 12010  }
 12011  
 12012  // SetTags sets the Tags field's value.
 12013  func (s *DescribeTaskDefinitionOutput) SetTags(v []*Tag) *DescribeTaskDefinitionOutput {
 12014  	s.Tags = v
 12015  	return s
 12016  }
 12017  
 12018  // SetTaskDefinition sets the TaskDefinition field's value.
 12019  func (s *DescribeTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *DescribeTaskDefinitionOutput {
 12020  	s.TaskDefinition = v
 12021  	return s
 12022  }
 12023  
 12024  type DescribeTaskSetsInput struct {
 12025  	_ struct{} `type:"structure"`
 12026  
 12027  	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
 12028  	// the service that the task sets exist in.
 12029  	//
 12030  	// Cluster is a required field
 12031  	Cluster *string `locationName:"cluster" type:"string" required:"true"`
 12032  
 12033  	// Specifies whether to see the resource tags for the task set. If TAGS is specified,
 12034  	// the tags are included in the response. If this field is omitted, tags are
 12035  	// not included in the response.
 12036  	Include []*string `locationName:"include" type:"list"`
 12037  
 12038  	// The short name or full Amazon Resource Name (ARN) of the service that the
 12039  	// task sets exist in.
 12040  	//
 12041  	// Service is a required field
 12042  	Service *string `locationName:"service" type:"string" required:"true"`
 12043  
 12044  	// The ID or full Amazon Resource Name (ARN) of task sets to describe.
 12045  	TaskSets []*string `locationName:"taskSets" type:"list"`
 12046  }
 12047  
 12048  // String returns the string representation.
 12049  //
 12050  // API parameter values that are decorated as "sensitive" in the API will not
 12051  // be included in the string output. The member name will be present, but the
 12052  // value will be replaced with "sensitive".
 12053  func (s DescribeTaskSetsInput) String() string {
 12054  	return awsutil.Prettify(s)
 12055  }
 12056  
 12057  // GoString returns the string representation.
 12058  //
 12059  // API parameter values that are decorated as "sensitive" in the API will not
 12060  // be included in the string output. The member name will be present, but the
 12061  // value will be replaced with "sensitive".
 12062  func (s DescribeTaskSetsInput) GoString() string {
 12063  	return s.String()
 12064  }
 12065  
 12066  // Validate inspects the fields of the type to determine if they are valid.
 12067  func (s *DescribeTaskSetsInput) Validate() error {
 12068  	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskSetsInput"}
 12069  	if s.Cluster == nil {
 12070  		invalidParams.Add(request.NewErrParamRequired("Cluster"))
 12071  	}
 12072  	if s.Service == nil {
 12073  		invalidParams.Add(request.NewErrParamRequired("Service"))
 12074  	}
 12075  
 12076  	if invalidParams.Len() > 0 {
 12077  		return invalidParams
 12078  	}
 12079  	return nil
 12080  }
 12081  
 12082  // SetCluster sets the Cluster field's value.
 12083  func (s *DescribeTaskSetsInput) SetCluster(v string) *DescribeTaskSetsInput {
 12084  	s.Cluster = &v
 12085  	return s
 12086  }
 12087  
 12088  // SetInclude sets the Include field's value.
 12089  func (s *DescribeTaskSetsInput) SetInclude(v []*string) *DescribeTaskSetsInput {
 12090  	s.Include = v
 12091  	return s
 12092  }
 12093  
 12094  // SetService sets the Service field's value.
 12095  func (s *DescribeTaskSetsInput) SetService(v string) *DescribeTaskSetsInput {
 12096  	s.Service = &v
 12097  	return s
 12098  }
 12099  
 12100  // SetTaskSets sets the TaskSets field's value.
 12101  func (s *DescribeTaskSetsInput) SetTaskSets(v []*string) *DescribeTaskSetsInput {
 12102  	s.TaskSets = v
 12103  	return s
 12104  }
 12105  
 12106  type DescribeTaskSetsOutput struct {
 12107  	_ struct{} `type:"structure"`
 12108  
 12109  	// Any failures associated with the call.
 12110  	Failures []*Failure `locationName:"failures" type:"list"`
 12111  
 12112  	// The list of task sets described.
 12113  	TaskSets []*TaskSet `locationName:"taskSets" type:"list"`
 12114  }
 12115  
 12116  // String returns the string representation.
 12117  //
 12118  // API parameter values that are decorated as "sensitive" in the API will not
 12119  // be included in the string output. The member name will be present, but the
 12120  // value will be replaced with "sensitive".
 12121  func (s DescribeTaskSetsOutput) String() string {
 12122  	return awsutil.Prettify(s)
 12123  }
 12124  
 12125  // GoString returns the string representation.
 12126  //
 12127  // API parameter values that are decorated as "sensitive" in the API will not
 12128  // be included in the string output. The member name will be present, but the
 12129  // value will be replaced with "sensitive".
 12130  func (s DescribeTaskSetsOutput) GoString() string {
 12131  	return s.String()
 12132  }
 12133  
 12134  // SetFailures sets the Failures field's value.
 12135  func (s *DescribeTaskSetsOutput) SetFailures(v []*Failure) *DescribeTaskSetsOutput {
 12136  	s.Failures = v
 12137  	return s
 12138  }
 12139  
 12140  // SetTaskSets sets the TaskSets field's value.
 12141  func (s *DescribeTaskSetsOutput) SetTaskSets(v []*TaskSet) *DescribeTaskSetsOutput {
 12142  	s.TaskSets = v
 12143  	return s
 12144  }
 12145  
 12146  type DescribeTasksInput struct {
 12147  	_ struct{} `type:"structure"`
 12148  
 12149  	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
 12150  	// the task or tasks to describe. If you do not specify a cluster, the default
 12151  	// cluster is assumed. This parameter is required if the task or tasks you are
 12152  	// describing were launched in any cluster other than the default cluster.
 12153  	Cluster *string `locationName:"cluster" type:"string"`
 12154  
 12155  	// Specifies whether you want to see the resource tags for the task. If TAGS
 12156  	// is specified, the tags are included in the response. If this field is omitted,
 12157  	// tags are not included in the response.
 12158  	Include []*string `locationName:"include" type:"list"`
 12159  
 12160  	// A list of up to 100 task IDs or full ARN entries.
 12161  	//
 12162  	// Tasks is a required field
 12163  	Tasks []*string `locationName:"tasks" type:"list" required:"true"`
 12164  }
 12165  
 12166  // String returns the string representation.
 12167  //
 12168  // API parameter values that are decorated as "sensitive" in the API will not
 12169  // be included in the string output. The member name will be present, but the
 12170  // value will be replaced with "sensitive".
 12171  func (s DescribeTasksInput) String() string {
 12172  	return awsutil.Prettify(s)
 12173  }
 12174  
 12175  // GoString returns the string representation.
 12176  //
 12177  // API parameter values that are decorated as "sensitive" in the API will not
 12178  // be included in the string output. The member name will be present, but the
 12179  // value will be replaced with "sensitive".
 12180  func (s DescribeTasksInput) GoString() string {
 12181  	return s.String()
 12182  }
 12183  
 12184  // Validate inspects the fields of the type to determine if they are valid.
 12185  func (s *DescribeTasksInput) Validate() error {
 12186  	invalidParams := request.ErrInvalidParams{Context: "DescribeTasksInput"}
 12187  	if s.Tasks == nil {
 12188  		invalidParams.Add(request.NewErrParamRequired("Tasks"))
 12189  	}
 12190  
 12191  	if invalidParams.Len() > 0 {
 12192  		return invalidParams
 12193  	}
 12194  	return nil
 12195  }
 12196  
 12197  // SetCluster sets the Cluster field's value.
 12198  func (s *DescribeTasksInput) SetCluster(v string) *DescribeTasksInput {
 12199  	s.Cluster = &v
 12200  	return s
 12201  }
 12202  
 12203  // SetInclude sets the Include field's value.
 12204  func (s *DescribeTasksInput) SetInclude(v []*string) *DescribeTasksInput {
 12205  	s.Include = v
 12206  	return s
 12207  }
 12208  
 12209  // SetTasks sets the Tasks field's value.
 12210  func (s *DescribeTasksInput) SetTasks(v []*string) *DescribeTasksInput {
 12211  	s.Tasks = v
 12212  	return s
 12213  }
 12214  
 12215  type DescribeTasksOutput struct {
 12216  	_ struct{} `type:"structure"`
 12217  
 12218  	// Any failures associated with the call.
 12219  	Failures []*Failure `locationName:"failures" type:"list"`
 12220  
 12221  	// The list of tasks.
 12222  	Tasks []*Task `locationName:"tasks" type:"list"`
 12223  }
 12224  
 12225  // String returns the string representation.
 12226  //
 12227  // API parameter values that are decorated as "sensitive" in the API will not
 12228  // be included in the string output. The member name will be present, but the
 12229  // value will be replaced with "sensitive".
 12230  func (s DescribeTasksOutput) String() string {
 12231  	return awsutil.Prettify(s)
 12232  }
 12233  
 12234  // GoString returns the string representation.
 12235  //
 12236  // API parameter values that are decorated as "sensitive" in the API will not
 12237  // be included in the string output. The member name will be present, but the
 12238  // value will be replaced with "sensitive".
 12239  func (s DescribeTasksOutput) GoString() string {
 12240  	return s.String()
 12241  }
 12242  
 12243  // SetFailures sets the Failures field's value.
 12244  func (s *DescribeTasksOutput) SetFailures(v []*Failure) *DescribeTasksOutput {
 12245  	s.Failures = v
 12246  	return s
 12247  }
 12248  
 12249  // SetTasks sets the Tasks field's value.
 12250  func (s *DescribeTasksOutput) SetTasks(v []*Task) *DescribeTasksOutput {
 12251  	s.Tasks = v
 12252  	return s
 12253  }
 12254  
 12255  // An object representing a container instance host device.
 12256  type Device struct {
 12257  	_ struct{} `type:"structure"`
 12258  
 12259  	// The path inside the container at which to expose the host device.
 12260  	ContainerPath *string `locationName:"containerPath" type:"string"`
 12261  
 12262  	// The path for the device on the host container instance.
 12263  	//
 12264  	// HostPath is a required field
 12265  	HostPath *string `locationName:"hostPath" type:"string" required:"true"`
 12266  
 12267  	// The explicit permissions to provide to the container for the device. By default,
 12268  	// the container has permissions for read, write, and mknod for the device.
 12269  	Permissions []*string `locationName:"permissions" type:"list"`
 12270  }
 12271  
 12272  // String returns the string representation.
 12273  //
 12274  // API parameter values that are decorated as "sensitive" in the API will not
 12275  // be included in the string output. The member name will be present, but the
 12276  // value will be replaced with "sensitive".
 12277  func (s Device) String() string {
 12278  	return awsutil.Prettify(s)
 12279  }
 12280  
 12281  // GoString returns the string representation.
 12282  //
 12283  // API parameter values that are decorated as "sensitive" in the API will not
 12284  // be included in the string output. The member name will be present, but the
 12285  // value will be replaced with "sensitive".
 12286  func (s Device) GoString() string {
 12287  	return s.String()
 12288  }
 12289  
 12290  // Validate inspects the fields of the type to determine if they are valid.
 12291  func (s *Device) Validate() error {
 12292  	invalidParams := request.ErrInvalidParams{Context: "Device"}
 12293  	if s.HostPath == nil {
 12294  		invalidParams.Add(request.NewErrParamRequired("HostPath"))
 12295  	}
 12296  
 12297  	if invalidParams.Len() > 0 {
 12298  		return invalidParams
 12299  	}
 12300  	return nil
 12301  }
 12302  
 12303  // SetContainerPath sets the ContainerPath field's value.
 12304  func (s *Device) SetContainerPath(v string) *Device {
 12305  	s.ContainerPath = &v
 12306  	return s
 12307  }
 12308  
 12309  // SetHostPath sets the HostPath field's value.
 12310  func (s *Device) SetHostPath(v string) *Device {
 12311  	s.HostPath = &v
 12312  	return s
 12313  }
 12314  
 12315  // SetPermissions sets the Permissions field's value.
 12316  func (s *Device) SetPermissions(v []*string) *Device {
 12317  	s.Permissions = v
 12318  	return s
 12319  }
 12320  
 12321  type DiscoverPollEndpointInput struct {
 12322  	_ struct{} `type:"structure"`
 12323  
 12324  	// The short name or full Amazon Resource Name (ARN) of the cluster to which
 12325  	// the container instance belongs.
 12326  	Cluster *string `locationName:"cluster" type:"string"`
 12327  
 12328  	// The container instance ID or full ARN of the container instance. The ARN
 12329  	// contains the arn:aws:ecs namespace, followed by the Region of the container
 12330  	// instance, the Amazon Web Services account ID of the container instance owner,
 12331  	// the container-instance namespace, and then the container instance ID. For
 12332  	// example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.
 12333  	ContainerInstance *string `locationName:"containerInstance" type:"string"`
 12334  }
 12335  
 12336  // String returns the string representation.
 12337  //
 12338  // API parameter values that are decorated as "sensitive" in the API will not
 12339  // be included in the string output. The member name will be present, but the
 12340  // value will be replaced with "sensitive".
 12341  func (s DiscoverPollEndpointInput) String() string {
 12342  	return awsutil.Prettify(s)
 12343  }
 12344  
 12345  // GoString returns the string representation.
 12346  //
 12347  // API parameter values that are decorated as "sensitive" in the API will not
 12348  // be included in the string output. The member name will be present, but the
 12349  // value will be replaced with "sensitive".
 12350  func (s DiscoverPollEndpointInput) GoString() string {
 12351  	return s.String()
 12352  }
 12353  
 12354  // SetCluster sets the Cluster field's value.
 12355  func (s *DiscoverPollEndpointInput) SetCluster(v string) *DiscoverPollEndpointInput {
 12356  	s.Cluster = &v
 12357  	return s
 12358  }
 12359  
 12360  // SetContainerInstance sets the ContainerInstance field's value.
 12361  func (s *DiscoverPollEndpointInput) SetContainerInstance(v string) *DiscoverPollEndpointInput {
 12362  	s.ContainerInstance = &v
 12363  	return s
 12364  }
 12365  
 12366  type DiscoverPollEndpointOutput struct {
 12367  	_ struct{} `type:"structure"`
 12368  
 12369  	// The endpoint for the Amazon ECS agent to poll.
 12370  	Endpoint *string `locationName:"endpoint" type:"string"`
 12371  
 12372  	// The telemetry endpoint for the Amazon ECS agent.
 12373  	TelemetryEndpoint *string `locationName:"telemetryEndpoint" type:"string"`
 12374  }
 12375  
 12376  // String returns the string representation.
 12377  //
 12378  // API parameter values that are decorated as "sensitive" in the API will not
 12379  // be included in the string output. The member name will be present, but the
 12380  // value will be replaced with "sensitive".
 12381  func (s DiscoverPollEndpointOutput) String() string {
 12382  	return awsutil.Prettify(s)
 12383  }
 12384  
 12385  // GoString returns the string representation.
 12386  //
 12387  // API parameter values that are decorated as "sensitive" in the API will not
 12388  // be included in the string output. The member name will be present, but the
 12389  // value will be replaced with "sensitive".
 12390  func (s DiscoverPollEndpointOutput) GoString() string {
 12391  	return s.String()
 12392  }
 12393  
 12394  // SetEndpoint sets the Endpoint field's value.
 12395  func (s *DiscoverPollEndpointOutput) SetEndpoint(v string) *DiscoverPollEndpointOutput {
 12396  	s.Endpoint = &v
 12397  	return s
 12398  }
 12399  
 12400  // SetTelemetryEndpoint sets the TelemetryEndpoint field's value.
 12401  func (s *DiscoverPollEndpointOutput) SetTelemetryEndpoint(v string) *DiscoverPollEndpointOutput {
 12402  	s.TelemetryEndpoint = &v
 12403  	return s
 12404  }
 12405  
 12406  // This parameter is specified when you are using Docker volumes. Docker volumes
 12407  // are only supported when you are using the EC2 launch type. Windows containers
 12408  // only support the use of the local driver. To use bind mounts, specify a host
 12409  // instead.
 12410  type DockerVolumeConfiguration struct {
 12411  	_ struct{} `type:"structure"`
 12412  
 12413  	// If this value is true, the Docker volume is created if it does not already
 12414  	// exist.
 12415  	//
 12416  	// This field is only used if the scope is shared.
 12417  	Autoprovision *bool `locationName:"autoprovision" type:"boolean"`
 12418  
 12419  	// The Docker volume driver to use. The driver value must match the driver name
 12420  	// provided by Docker because it is used for task placement. If the driver was
 12421  	// installed using the Docker plugin CLI, use docker plugin ls to retrieve the
 12422  	// driver name from your container instance. If the driver was installed using
 12423  	// another method, use Docker plugin discovery to retrieve the driver name.
 12424  	// For more information, see Docker plugin discovery (https://docs.docker.com/engine/extend/plugin_api/#plugin-discovery).
 12425  	// This parameter maps to Driver in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
 12426  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
 12427  	// and the xxdriver option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
 12428  	Driver *string `locationName:"driver" type:"string"`
 12429  
 12430  	// A map of Docker driver-specific options passed through. This parameter maps
 12431  	// to DriverOpts in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
 12432  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
 12433  	// and the xxopt option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
 12434  	DriverOpts map[string]*string `locationName:"driverOpts" type:"map"`
 12435  
 12436  	// Custom metadata to add to your Docker volume. This parameter maps to Labels
 12437  	// in the Create a volume (https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate)
 12438  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
 12439  	// and the xxlabel option to docker volume create (https://docs.docker.com/engine/reference/commandline/volume_create/).
 12440  	Labels map[string]*string `locationName:"labels" type:"map"`
 12441  
 12442  	// The scope for the Docker volume that determines its lifecycle. Docker volumes
 12443  	// that are scoped to a task are automatically provisioned when the task starts
 12444  	// and destroyed when the task stops. Docker volumes that are scoped as shared
 12445  	// persist after the task stops.
 12446  	Scope *string `locationName:"scope" type:"string" enum:"Scope"`
 12447  }
 12448  
 12449  // String returns the string representation.
 12450  //
 12451  // API parameter values that are decorated as "sensitive" in the API will not
 12452  // be included in the string output. The member name will be present, but the
 12453  // value will be replaced with "sensitive".
 12454  func (s DockerVolumeConfiguration) String() string {
 12455  	return awsutil.Prettify(s)
 12456  }
 12457  
 12458  // GoString returns the string representation.
 12459  //
 12460  // API parameter values that are decorated as "sensitive" in the API will not
 12461  // be included in the string output. The member name will be present, but the
 12462  // value will be replaced with "sensitive".
 12463  func (s DockerVolumeConfiguration) GoString() string {
 12464  	return s.String()
 12465  }
 12466  
 12467  // SetAutoprovision sets the Autoprovision field's value.
 12468  func (s *DockerVolumeConfiguration) SetAutoprovision(v bool) *DockerVolumeConfiguration {
 12469  	s.Autoprovision = &v
 12470  	return s
 12471  }
 12472  
 12473  // SetDriver sets the Driver field's value.
 12474  func (s *DockerVolumeConfiguration) SetDriver(v string) *DockerVolumeConfiguration {
 12475  	s.Driver = &v
 12476  	return s
 12477  }
 12478  
 12479  // SetDriverOpts sets the DriverOpts field's value.
 12480  func (s *DockerVolumeConfiguration) SetDriverOpts(v map[string]*string) *DockerVolumeConfiguration {
 12481  	s.DriverOpts = v
 12482  	return s
 12483  }
 12484  
 12485  // SetLabels sets the Labels field's value.
 12486  func (s *DockerVolumeConfiguration) SetLabels(v map[string]*string) *DockerVolumeConfiguration {
 12487  	s.Labels = v
 12488  	return s
 12489  }
 12490  
 12491  // SetScope sets the Scope field's value.
 12492  func (s *DockerVolumeConfiguration) SetScope(v string) *DockerVolumeConfiguration {
 12493  	s.Scope = &v
 12494  	return s
 12495  }
 12496  
 12497  // The authorization configuration details for the Amazon EFS file system.
 12498  type EFSAuthorizationConfig struct {
 12499  	_ struct{} `type:"structure"`
 12500  
 12501  	// The Amazon EFS access point ID to use. If an access point is specified, the
 12502  	// root directory value specified in the EFSVolumeConfiguration must either
 12503  	// be omitted or set to / which will enforce the path set on the EFS access
 12504  	// point. If an access point is used, transit encryption must be enabled in
 12505  	// the EFSVolumeConfiguration. For more information, see Working with Amazon
 12506  	// EFS Access Points (https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html)
 12507  	// in the Amazon Elastic File System User Guide.
 12508  	AccessPointId *string `locationName:"accessPointId" type:"string"`
 12509  
 12510  	// Whether or not to use the Amazon ECS task IAM role defined in a task definition
 12511  	// when mounting the Amazon EFS file system. If enabled, transit encryption
 12512  	// must be enabled in the EFSVolumeConfiguration. If this parameter is omitted,
 12513  	// the default value of DISABLED is used. For more information, see Using Amazon
 12514  	// EFS Access Points (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html#efs-volume-accesspoints)
 12515  	// in the Amazon Elastic Container Service Developer Guide.
 12516  	Iam *string `locationName:"iam" type:"string" enum:"EFSAuthorizationConfigIAM"`
 12517  }
 12518  
 12519  // String returns the string representation.
 12520  //
 12521  // API parameter values that are decorated as "sensitive" in the API will not
 12522  // be included in the string output. The member name will be present, but the
 12523  // value will be replaced with "sensitive".
 12524  func (s EFSAuthorizationConfig) String() string {
 12525  	return awsutil.Prettify(s)
 12526  }
 12527  
 12528  // GoString returns the string representation.
 12529  //
 12530  // API parameter values that are decorated as "sensitive" in the API will not
 12531  // be included in the string output. The member name will be present, but the
 12532  // value will be replaced with "sensitive".
 12533  func (s EFSAuthorizationConfig) GoString() string {
 12534  	return s.String()
 12535  }
 12536  
 12537  // SetAccessPointId sets the AccessPointId field's value.
 12538  func (s *EFSAuthorizationConfig) SetAccessPointId(v string) *EFSAuthorizationConfig {
 12539  	s.AccessPointId = &v
 12540  	return s
 12541  }
 12542  
 12543  // SetIam sets the Iam field's value.
 12544  func (s *EFSAuthorizationConfig) SetIam(v string) *EFSAuthorizationConfig {
 12545  	s.Iam = &v
 12546  	return s
 12547  }
 12548  
 12549  // This parameter is specified when you are using an Amazon Elastic File System
 12550  // file system for task storage. For more information, see Amazon EFS Volumes
 12551  // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html)
 12552  // in the Amazon Elastic Container Service Developer Guide.
 12553  type EFSVolumeConfiguration struct {
 12554  	_ struct{} `type:"structure"`
 12555  
 12556  	// The authorization configuration details for the Amazon EFS file system.
 12557  	AuthorizationConfig *EFSAuthorizationConfig `locationName:"authorizationConfig" type:"structure"`
 12558  
 12559  	// The Amazon EFS file system ID to use.
 12560  	//
 12561  	// FileSystemId is a required field
 12562  	FileSystemId *string `locationName:"fileSystemId" type:"string" required:"true"`
 12563  
 12564  	// The directory within the Amazon EFS file system to mount as the root directory
 12565  	// inside the host. If this parameter is omitted, the root of the Amazon EFS
 12566  	// volume will be used. Specifying / will have the same effect as omitting this
 12567  	// parameter.
 12568  	//
 12569  	// If an EFS access point is specified in the authorizationConfig, the root
 12570  	// directory parameter must either be omitted or set to / which will enforce
 12571  	// the path set on the EFS access point.
 12572  	RootDirectory *string `locationName:"rootDirectory" type:"string"`
 12573  
 12574  	// Whether or not to enable encryption for Amazon EFS data in transit between
 12575  	// the Amazon ECS host and the Amazon EFS server. Transit encryption must be
 12576  	// enabled if Amazon EFS IAM authorization is used. If this parameter is omitted,
 12577  	// the default value of DISABLED is used. For more information, see Encrypting
 12578  	// Data in Transit (https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html)
 12579  	// in the Amazon Elastic File System User Guide.
 12580  	TransitEncryption *string `locationName:"transitEncryption" type:"string" enum:"EFSTransitEncryption"`
 12581  
 12582  	// The port to use when sending encrypted data between the Amazon ECS host and
 12583  	// the Amazon EFS server. If you do not specify a transit encryption port, it
 12584  	// will use the port selection strategy that the Amazon EFS mount helper uses.
 12585  	// For more information, see EFS Mount Helper (https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html)
 12586  	// in the Amazon Elastic File System User Guide.
 12587  	TransitEncryptionPort *int64 `locationName:"transitEncryptionPort" type:"integer"`
 12588  }
 12589  
 12590  // String returns the string representation.
 12591  //
 12592  // API parameter values that are decorated as "sensitive" in the API will not
 12593  // be included in the string output. The member name will be present, but the
 12594  // value will be replaced with "sensitive".
 12595  func (s EFSVolumeConfiguration) String() string {
 12596  	return awsutil.Prettify(s)
 12597  }
 12598  
 12599  // GoString returns the string representation.
 12600  //
 12601  // API parameter values that are decorated as "sensitive" in the API will not
 12602  // be included in the string output. The member name will be present, but the
 12603  // value will be replaced with "sensitive".
 12604  func (s EFSVolumeConfiguration) GoString() string {
 12605  	return s.String()
 12606  }
 12607  
 12608  // Validate inspects the fields of the type to determine if they are valid.
 12609  func (s *EFSVolumeConfiguration) Validate() error {
 12610  	invalidParams := request.ErrInvalidParams{Context: "EFSVolumeConfiguration"}
 12611  	if s.FileSystemId == nil {
 12612  		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
 12613  	}
 12614  
 12615  	if invalidParams.Len() > 0 {
 12616  		return invalidParams
 12617  	}
 12618  	return nil
 12619  }
 12620  
 12621  // SetAuthorizationConfig sets the AuthorizationConfig field's value.
 12622  func (s *EFSVolumeConfiguration) SetAuthorizationConfig(v *EFSAuthorizationConfig) *EFSVolumeConfiguration {
 12623  	s.AuthorizationConfig = v
 12624  	return s
 12625  }
 12626  
 12627  // SetFileSystemId sets the FileSystemId field's value.
 12628  func (s *EFSVolumeConfiguration) SetFileSystemId(v string) *EFSVolumeConfiguration {
 12629  	s.FileSystemId = &v
 12630  	return s
 12631  }
 12632  
 12633  // SetRootDirectory sets the RootDirectory field's value.
 12634  func (s *EFSVolumeConfiguration) SetRootDirectory(v string) *EFSVolumeConfiguration {
 12635  	s.RootDirectory = &v
 12636  	return s
 12637  }
 12638  
 12639  // SetTransitEncryption sets the TransitEncryption field's value.
 12640  func (s *EFSVolumeConfiguration) SetTransitEncryption(v string) *EFSVolumeConfiguration {
 12641  	s.TransitEncryption = &v
 12642  	return s
 12643  }
 12644  
 12645  // SetTransitEncryptionPort sets the TransitEncryptionPort field's value.
 12646  func (s *EFSVolumeConfiguration) SetTransitEncryptionPort(v int64) *EFSVolumeConfiguration {
 12647  	s.TransitEncryptionPort = &v
 12648  	return s
 12649  }
 12650  
 12651  // A list of files containing the environment variables to pass to a container.
 12652  // You can specify up to ten environment files. The file must have a .env file
 12653  // extension. Each line in an environment file should contain an environment
 12654  // variable in VARIABLE=VALUE format. Lines beginning with # are treated as
 12655  // comments and are ignored. For more information on the environment variable
 12656  // file syntax, see Declare default environment variables in file (https://docs.docker.com/compose/env-file/).
 12657  //
 12658  // If there are environment variables specified using the environment parameter
 12659  // in a container definition, they take precedence over the variables contained
 12660  // within an environment file. If multiple environment files are specified that
 12661  // contain the same variable, they are processed from the top down. It is recommended
 12662  // to use unique variable names. For more information, see Specifying environment
 12663  // variables (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html)
 12664  // in the Amazon Elastic Container Service Developer Guide.
 12665  //
 12666  // This field is only valid for containers in Fargate tasks that use platform
 12667  // version 1.4.0 or later.
 12668  type EnvironmentFile struct {
 12669  	_ struct{} `type:"structure"`
 12670  
 12671  	// The file type to use. The only supported value is s3.
 12672  	//
 12673  	// Type is a required field
 12674  	Type *string `locationName:"type" type:"string" required:"true" enum:"EnvironmentFileType"`
 12675  
 12676  	// The Amazon Resource Name (ARN) of the Amazon S3 object containing the environment
 12677  	// variable file.
 12678  	//
 12679  	// Value is a required field
 12680  	Value *string `locationName:"value" type:"string" required:"true"`
 12681  }
 12682  
 12683  // String returns the string representation.
 12684  //
 12685  // API parameter values that are decorated as "sensitive" in the API will not
 12686  // be included in the string output. The member name will be present, but the
 12687  // value will be replaced with "sensitive".
 12688  func (s EnvironmentFile) String() string {
 12689  	return awsutil.Prettify(s)
 12690  }
 12691  
 12692  // GoString returns the string representation.
 12693  //
 12694  // API parameter values that are decorated as "sensitive" in the API will not
 12695  // be included in the string output. The member name will be present, but the
 12696  // value will be replaced with "sensitive".
 12697  func (s EnvironmentFile) GoString() string {
 12698  	return s.String()
 12699  }
 12700  
 12701  // Validate inspects the fields of the type to determine if they are valid.
 12702  func (s *EnvironmentFile) Validate() error {
 12703  	invalidParams := request.ErrInvalidParams{Context: "EnvironmentFile"}
 12704  	if s.Type == nil {
 12705  		invalidParams.Add(request.NewErrParamRequired("Type"))
 12706  	}
 12707  	if s.Value == nil {
 12708  		invalidParams.Add(request.NewErrParamRequired("Value"))
 12709  	}
 12710  
 12711  	if invalidParams.Len() > 0 {
 12712  		return invalidParams
 12713  	}
 12714  	return nil
 12715  }
 12716  
 12717  // SetType sets the Type field's value.
 12718  func (s *EnvironmentFile) SetType(v string) *EnvironmentFile {
 12719  	s.Type = &v
 12720  	return s
 12721  }
 12722  
 12723  // SetValue sets the Value field's value.
 12724  func (s *EnvironmentFile) SetValue(v string) *EnvironmentFile {
 12725  	s.Value = &v
 12726  	return s
 12727  }
 12728  
 12729  // The amount of ephemeral storage to allocate for the task. This parameter
 12730  // is used to expand the total amount of ephemeral storage available, beyond
 12731  // the default amount, for tasks hosted on Fargate. For more information, see
 12732  // Fargate task storage (https://docs.aws.amazon.com/AmazonECS/latest/userguide/using_data_volumes.html)
 12733  // in the Amazon ECS User Guide for Fargate.
 12734  //
 12735  // This parameter is only supported for tasks hosted on Fargate using platform
 12736  // version 1.4.0 or later.
 12737  type EphemeralStorage struct {
 12738  	_ struct{} `type:"structure"`
 12739  
 12740  	// The total amount, in GiB, of ephemeral storage to set for the task. The minimum
 12741  	// supported value is 21 GiB and the maximum supported value is 200 GiB.
 12742  	//
 12743  	// SizeInGiB is a required field
 12744  	SizeInGiB *int64 `locationName:"sizeInGiB" type:"integer" required:"true"`
 12745  }
 12746  
 12747  // String returns the string representation.
 12748  //
 12749  // API parameter values that are decorated as "sensitive" in the API will not
 12750  // be included in the string output. The member name will be present, but the
 12751  // value will be replaced with "sensitive".
 12752  func (s EphemeralStorage) String() string {
 12753  	return awsutil.Prettify(s)
 12754  }
 12755  
 12756  // GoString returns the string representation.
 12757  //
 12758  // API parameter values that are decorated as "sensitive" in the API will not
 12759  // be included in the string output. The member name will be present, but the
 12760  // value will be replaced with "sensitive".
 12761  func (s EphemeralStorage) GoString() string {
 12762  	return s.String()
 12763  }
 12764  
 12765  // Validate inspects the fields of the type to determine if they are valid.
 12766  func (s *EphemeralStorage) Validate() error {
 12767  	invalidParams := request.ErrInvalidParams{Context: "EphemeralStorage"}
 12768  	if s.SizeInGiB == nil {
 12769  		invalidParams.Add(request.NewErrParamRequired("SizeInGiB"))
 12770  	}
 12771  
 12772  	if invalidParams.Len() > 0 {
 12773  		return invalidParams
 12774  	}
 12775  	return nil
 12776  }
 12777  
 12778  // SetSizeInGiB sets the SizeInGiB field's value.
 12779  func (s *EphemeralStorage) SetSizeInGiB(v int64) *EphemeralStorage {
 12780  	s.SizeInGiB = &v
 12781  	return s
 12782  }
 12783  
 12784  // The details of the execute command configuration.
 12785  type ExecuteCommandConfiguration struct {
 12786  	_ struct{} `type:"structure"`
 12787  
 12788  	// Specify an Key Management Service key ID to encrypt the data between the
 12789  	// local client and the container.
 12790  	KmsKeyId *string `locationName:"kmsKeyId" type:"string"`
 12791  
 12792  	// The log configuration for the results of the execute command actions. The
 12793  	// logs can be sent to CloudWatch Logs or an Amazon S3 bucket. When logging=OVERRIDE
 12794  	// is specified, a logConfiguration must be provided.
 12795  	LogConfiguration *ExecuteCommandLogConfiguration `locationName:"logConfiguration" type:"structure"`
 12796  
 12797  	// The log setting to use for redirecting logs for your execute command results.
 12798  	// The following log settings are available.
 12799  	//
 12800  	//    * NONE: The execute command session is not logged.
 12801  	//
 12802  	//    * DEFAULT: The awslogs configuration in the task definition is used. If
 12803  	//    no logging parameter is specified, it defaults to this value. If no awslogs
 12804  	//    log driver is configured in the task definition, the output won't be logged.
 12805  	//
 12806  	//    * OVERRIDE: Specify the logging details as a part of logConfiguration.
 12807  	//    If the OVERRIDE logging option is specified, the logConfiguration is required.
 12808  	Logging *string `locationName:"logging" type:"string" enum:"ExecuteCommandLogging"`
 12809  }
 12810  
 12811  // String returns the string representation.
 12812  //
 12813  // API parameter values that are decorated as "sensitive" in the API will not
 12814  // be included in the string output. The member name will be present, but the
 12815  // value will be replaced with "sensitive".
 12816  func (s ExecuteCommandConfiguration) String() string {
 12817  	return awsutil.Prettify(s)
 12818  }
 12819  
 12820  // GoString returns the string representation.
 12821  //
 12822  // API parameter values that are decorated as "sensitive" in the API will not
 12823  // be included in the string output. The member name will be present, but the
 12824  // value will be replaced with "sensitive".
 12825  func (s ExecuteCommandConfiguration) GoString() string {
 12826  	return s.String()
 12827  }
 12828  
 12829  // SetKmsKeyId sets the KmsKeyId field's value.
 12830  func (s *ExecuteCommandConfiguration) SetKmsKeyId(v string) *ExecuteCommandConfiguration {
 12831  	s.KmsKeyId = &v
 12832  	return s
 12833  }
 12834  
 12835  // SetLogConfiguration sets the LogConfiguration field's value.
 12836  func (s *ExecuteCommandConfiguration) SetLogConfiguration(v *ExecuteCommandLogConfiguration) *ExecuteCommandConfiguration {
 12837  	s.LogConfiguration = v
 12838  	return s
 12839  }
 12840  
 12841  // SetLogging sets the Logging field's value.
 12842  func (s *ExecuteCommandConfiguration) SetLogging(v string) *ExecuteCommandConfiguration {
 12843  	s.Logging = &v
 12844  	return s
 12845  }
 12846  
 12847  type ExecuteCommandInput struct {
 12848  	_ struct{} `type:"structure"`
 12849  
 12850  	// The Amazon Resource Name (ARN) or short name of the cluster the task is running
 12851  	// in. If you do not specify a cluster, the default cluster is assumed.
 12852  	Cluster *string `locationName:"cluster" type:"string"`
 12853  
 12854  	// The command to run on the container.
 12855  	//
 12856  	// Command is a required field
 12857  	Command *string `locationName:"command" type:"string" required:"true"`
 12858  
 12859  	// The name of the container to execute the command on. A container name only
 12860  	// needs to be specified for tasks containing multiple containers.
 12861  	Container *string `locationName:"container" type:"string"`
 12862  
 12863  	// Use this flag to run your command in interactive mode.
 12864  	//
 12865  	// Interactive is a required field
 12866  	Interactive *bool `locationName:"interactive" type:"boolean" required:"true"`
 12867  
 12868  	// The Amazon Resource Name (ARN) or ID of the task the container is part of.
 12869  	//
 12870  	// Task is a required field
 12871  	Task *string `locationName:"task" type:"string" required:"true"`
 12872  }
 12873  
 12874  // String returns the string representation.
 12875  //
 12876  // API parameter values that are decorated as "sensitive" in the API will not
 12877  // be included in the string output. The member name will be present, but the
 12878  // value will be replaced with "sensitive".
 12879  func (s ExecuteCommandInput) String() string {
 12880  	return awsutil.Prettify(s)
 12881  }
 12882  
 12883  // GoString returns the string representation.
 12884  //
 12885  // API parameter values that are decorated as "sensitive" in the API will not
 12886  // be included in the string output. The member name will be present, but the
 12887  // value will be replaced with "sensitive".
 12888  func (s ExecuteCommandInput) GoString() string {
 12889  	return s.String()
 12890  }
 12891  
 12892  // Validate inspects the fields of the type to determine if they are valid.
 12893  func (s *ExecuteCommandInput) Validate() error {
 12894  	invalidParams := request.ErrInvalidParams{Context: "ExecuteCommandInput"}
 12895  	if s.Command == nil {
 12896  		invalidParams.Add(request.NewErrParamRequired("Command"))
 12897  	}
 12898  	if s.Interactive == nil {
 12899  		invalidParams.Add(request.NewErrParamRequired("Interactive"))
 12900  	}
 12901  	if s.Task == nil {
 12902  		invalidParams.Add(request.NewErrParamRequired("Task"))
 12903  	}
 12904  
 12905  	if invalidParams.Len() > 0 {
 12906  		return invalidParams
 12907  	}
 12908  	return nil
 12909  }
 12910  
 12911  // SetCluster sets the Cluster field's value.
 12912  func (s *ExecuteCommandInput) SetCluster(v string) *ExecuteCommandInput {
 12913  	s.Cluster = &v
 12914  	return s
 12915  }
 12916  
 12917  // SetCommand sets the Command field's value.
 12918  func (s *ExecuteCommandInput) SetCommand(v string) *ExecuteCommandInput {
 12919  	s.Command = &v
 12920  	return s
 12921  }
 12922  
 12923  // SetContainer sets the Container field's value.
 12924  func (s *ExecuteCommandInput) SetContainer(v string) *ExecuteCommandInput {
 12925  	s.Container = &v
 12926  	return s
 12927  }
 12928  
 12929  // SetInteractive sets the Interactive field's value.
 12930  func (s *ExecuteCommandInput) SetInteractive(v bool) *ExecuteCommandInput {
 12931  	s.Interactive = &v
 12932  	return s
 12933  }
 12934  
 12935  // SetTask sets the Task field's value.
 12936  func (s *ExecuteCommandInput) SetTask(v string) *ExecuteCommandInput {
 12937  	s.Task = &v
 12938  	return s
 12939  }
 12940  
 12941  // The log configuration for the results of the execute command actions. The
 12942  // logs can be sent to CloudWatch Logs or an Amazon S3 bucket.
 12943  type ExecuteCommandLogConfiguration struct {
 12944  	_ struct{} `type:"structure"`
 12945  
 12946  	// Whether or not to enable encryption on the CloudWatch logs. If not specified,
 12947  	// encryption will be disabled.
 12948  	CloudWatchEncryptionEnabled *bool `locationName:"cloudWatchEncryptionEnabled" type:"boolean"`
 12949  
 12950  	// The name of the CloudWatch log group to send logs to.
 12951  	//
 12952  	// The CloudWatch log group must already be created.
 12953  	CloudWatchLogGroupName *string `locationName:"cloudWatchLogGroupName" type:"string"`
 12954  
 12955  	// The name of the S3 bucket to send logs to.
 12956  	//
 12957  	// The S3 bucket must already be created.
 12958  	S3BucketName *string `locationName:"s3BucketName" type:"string"`
 12959  
 12960  	// Whether or not to enable encryption on the CloudWatch logs. If not specified,
 12961  	// encryption will be disabled.
 12962  	S3EncryptionEnabled *bool `locationName:"s3EncryptionEnabled" type:"boolean"`
 12963  
 12964  	// An optional folder in the S3 bucket to place logs in.
 12965  	S3KeyPrefix *string `locationName:"s3KeyPrefix" type:"string"`
 12966  }
 12967  
 12968  // String returns the string representation.
 12969  //
 12970  // API parameter values that are decorated as "sensitive" in the API will not
 12971  // be included in the string output. The member name will be present, but the
 12972  // value will be replaced with "sensitive".
 12973  func (s ExecuteCommandLogConfiguration) String() string {
 12974  	return awsutil.Prettify(s)
 12975  }
 12976  
 12977  // GoString returns the string representation.
 12978  //
 12979  // API parameter values that are decorated as "sensitive" in the API will not
 12980  // be included in the string output. The member name will be present, but the
 12981  // value will be replaced with "sensitive".
 12982  func (s ExecuteCommandLogConfiguration) GoString() string {
 12983  	return s.String()
 12984  }
 12985  
 12986  // SetCloudWatchEncryptionEnabled sets the CloudWatchEncryptionEnabled field's value.
 12987  func (s *ExecuteCommandLogConfiguration) SetCloudWatchEncryptionEnabled(v bool) *ExecuteCommandLogConfiguration {
 12988  	s.CloudWatchEncryptionEnabled = &v
 12989  	return s
 12990  }
 12991  
 12992  // SetCloudWatchLogGroupName sets the CloudWatchLogGroupName field's value.
 12993  func (s *ExecuteCommandLogConfiguration) SetCloudWatchLogGroupName(v string) *ExecuteCommandLogConfiguration {
 12994  	s.CloudWatchLogGroupName = &v
 12995  	return s
 12996  }
 12997  
 12998  // SetS3BucketName sets the S3BucketName field's value.
 12999  func (s *ExecuteCommandLogConfiguration) SetS3BucketName(v string) *ExecuteCommandLogConfiguration {
 13000  	s.S3BucketName = &v
 13001  	return s
 13002  }
 13003  
 13004  // SetS3EncryptionEnabled sets the S3EncryptionEnabled field's value.
 13005  func (s *ExecuteCommandLogConfiguration) SetS3EncryptionEnabled(v bool) *ExecuteCommandLogConfiguration {
 13006  	s.S3EncryptionEnabled = &v
 13007  	return s
 13008  }
 13009  
 13010  // SetS3KeyPrefix sets the S3KeyPrefix field's value.
 13011  func (s *ExecuteCommandLogConfiguration) SetS3KeyPrefix(v string) *ExecuteCommandLogConfiguration {
 13012  	s.S3KeyPrefix = &v
 13013  	return s
 13014  }
 13015  
 13016  type ExecuteCommandOutput struct {
 13017  	_ struct{} `type:"structure"`
 13018  
 13019  	// The Amazon Resource Name (ARN) of the cluster.
 13020  	ClusterArn *string `locationName:"clusterArn" type:"string"`
 13021  
 13022  	// The Amazon Resource Name (ARN) of the container.
 13023  	ContainerArn *string `locationName:"containerArn" type:"string"`
 13024  
 13025  	// The name of the container.
 13026  	ContainerName *string `locationName:"containerName" type:"string"`
 13027  
 13028  	// Whether or not the execute command session is running in interactive mode.
 13029  	// Amazon ECS only supports initiating interactive sessions, so you must specify
 13030  	// true for this value.
 13031  	Interactive *bool `locationName:"interactive" type:"boolean"`
 13032  
 13033  	// The details of the SSM session that was created for this instance of execute-command.
 13034  	Session *Session `locationName:"session" type:"structure"`
 13035  
 13036  	// The Amazon Resource Name (ARN) of the task.
 13037  	TaskArn *string `locationName:"taskArn" type:"string"`
 13038  }
 13039  
 13040  // String returns the string representation.
 13041  //
 13042  // API parameter values that are decorated as "sensitive" in the API will not
 13043  // be included in the string output. The member name will be present, but the
 13044  // value will be replaced with "sensitive".
 13045  func (s ExecuteCommandOutput) String() string {
 13046  	return awsutil.Prettify(s)
 13047  }
 13048  
 13049  // GoString returns the string representation.
 13050  //
 13051  // API parameter values that are decorated as "sensitive" in the API will not
 13052  // be included in the string output. The member name will be present, but the
 13053  // value will be replaced with "sensitive".
 13054  func (s ExecuteCommandOutput) GoString() string {
 13055  	return s.String()
 13056  }
 13057  
 13058  // SetClusterArn sets the ClusterArn field's value.
 13059  func (s *ExecuteCommandOutput) SetClusterArn(v string) *ExecuteCommandOutput {
 13060  	s.ClusterArn = &v
 13061  	return s
 13062  }
 13063  
 13064  // SetContainerArn sets the ContainerArn field's value.
 13065  func (s *ExecuteCommandOutput) SetContainerArn(v string) *ExecuteCommandOutput {
 13066  	s.ContainerArn = &v
 13067  	return s
 13068  }
 13069  
 13070  // SetContainerName sets the ContainerName field's value.
 13071  func (s *ExecuteCommandOutput) SetContainerName(v string) *ExecuteCommandOutput {
 13072  	s.ContainerName = &v
 13073  	return s
 13074  }
 13075  
 13076  // SetInteractive sets the Interactive field's value.
 13077  func (s *ExecuteCommandOutput) SetInteractive(v bool) *ExecuteCommandOutput {
 13078  	s.Interactive = &v
 13079  	return s
 13080  }
 13081  
 13082  // SetSession sets the Session field's value.
 13083  func (s *ExecuteCommandOutput) SetSession(v *Session) *ExecuteCommandOutput {
 13084  	s.Session = v
 13085  	return s
 13086  }
 13087  
 13088  // SetTaskArn sets the TaskArn field's value.
 13089  func (s *ExecuteCommandOutput) SetTaskArn(v string) *ExecuteCommandOutput {
 13090  	s.TaskArn = &v
 13091  	return s
 13092  }
 13093  
 13094  // The authorization configuration details for Amazon FSx for Windows File Server
 13095  // file system. See FSxWindowsFileServerVolumeConfiguration (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_FSxWindowsFileServerVolumeConfiguration.html)
 13096  // in the Amazon Elastic Container Service API Reference.
 13097  //
 13098  // For more information and the input format, see Amazon FSx for Windows File
 13099  // Server Volumes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/wfsx-volumes.html)
 13100  // in the Amazon Elastic Container Service Developer Guide.
 13101  type FSxWindowsFileServerAuthorizationConfig struct {
 13102  	_ struct{} `type:"structure"`
 13103  
 13104  	// The authorization credential option to use. The authorization credential
 13105  	// options can be provided using either the Amazon Resource Name (ARN) of an
 13106  	// Secrets Manager secret or SSM Parameter Store parameter. The ARNs refer to
 13107  	// the stored credentials.
 13108  	//
 13109  	// CredentialsParameter is a required field
 13110  	CredentialsParameter *string `locationName:"credentialsParameter" type:"string" required:"true"`
 13111  
 13112  	// A fully qualified domain name hosted by an Directory Service (https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html)
 13113  	// Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2.
 13114  	//
 13115  	// Domain is a required field
 13116  	Domain *string `locationName:"domain" type:"string" required:"true"`
 13117  }
 13118  
 13119  // String returns the string representation.
 13120  //
 13121  // API parameter values that are decorated as "sensitive" in the API will not
 13122  // be included in the string output. The member name will be present, but the
 13123  // value will be replaced with "sensitive".
 13124  func (s FSxWindowsFileServerAuthorizationConfig) String() string {
 13125  	return awsutil.Prettify(s)
 13126  }
 13127  
 13128  // GoString returns the string representation.
 13129  //
 13130  // API parameter values that are decorated as "sensitive" in the API will not
 13131  // be included in the string output. The member name will be present, but the
 13132  // value will be replaced with "sensitive".
 13133  func (s FSxWindowsFileServerAuthorizationConfig) GoString() string {
 13134  	return s.String()
 13135  }
 13136  
 13137  // Validate inspects the fields of the type to determine if they are valid.
 13138  func (s *FSxWindowsFileServerAuthorizationConfig) Validate() error {
 13139  	invalidParams := request.ErrInvalidParams{Context: "FSxWindowsFileServerAuthorizationConfig"}
 13140  	if s.CredentialsParameter == nil {
 13141  		invalidParams.Add(request.NewErrParamRequired("CredentialsParameter"))
 13142  	}
 13143  	if s.Domain == nil {
 13144  		invalidParams.Add(request.NewErrParamRequired("Domain"))
 13145  	}
 13146  
 13147  	if invalidParams.Len() > 0 {
 13148  		return invalidParams
 13149  	}
 13150  	return nil
 13151  }
 13152  
 13153  // SetCredentialsParameter sets the CredentialsParameter field's value.
 13154  func (s *FSxWindowsFileServerAuthorizationConfig) SetCredentialsParameter(v string) *FSxWindowsFileServerAuthorizationConfig {
 13155  	s.CredentialsParameter = &v
 13156  	return s
 13157  }
 13158  
 13159  // SetDomain sets the Domain field's value.
 13160  func (s *FSxWindowsFileServerAuthorizationConfig) SetDomain(v string) *FSxWindowsFileServerAuthorizationConfig {
 13161  	s.Domain = &v
 13162  	return s
 13163  }
 13164  
 13165  // This parameter is specified when you are using Amazon FSx for Windows File
 13166  // Server (https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html)
 13167  // file system for task storage.
 13168  //
 13169  // For more information and the input format, see Amazon FSx for Windows File
 13170  // Server Volumes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/wfsx-volumes.html)
 13171  // in the Amazon Elastic Container Service Developer Guide.
 13172  type FSxWindowsFileServerVolumeConfiguration struct {
 13173  	_ struct{} `type:"structure"`
 13174  
 13175  	// The authorization configuration details for the Amazon FSx for Windows File
 13176  	// Server file system.
 13177  	//
 13178  	// AuthorizationConfig is a required field
 13179  	AuthorizationConfig *FSxWindowsFileServerAuthorizationConfig `locationName:"authorizationConfig" type:"structure" required:"true"`
 13180  
 13181  	// The Amazon FSx for Windows File Server file system ID to use.
 13182  	//
 13183  	// FileSystemId is a required field
 13184  	FileSystemId *string `locationName:"fileSystemId" type:"string" required:"true"`
 13185  
 13186  	// The directory within the Amazon FSx for Windows File Server file system to
 13187  	// mount as the root directory inside the host.
 13188  	//
 13189  	// RootDirectory is a required field
 13190  	RootDirectory *string `locationName:"rootDirectory" type:"string" required:"true"`
 13191  }
 13192  
 13193  // String returns the string representation.
 13194  //
 13195  // API parameter values that are decorated as "sensitive" in the API will not
 13196  // be included in the string output. The member name will be present, but the
 13197  // value will be replaced with "sensitive".
 13198  func (s FSxWindowsFileServerVolumeConfiguration) String() string {
 13199  	return awsutil.Prettify(s)
 13200  }
 13201  
 13202  // GoString returns the string representation.
 13203  //
 13204  // API parameter values that are decorated as "sensitive" in the API will not
 13205  // be included in the string output. The member name will be present, but the
 13206  // value will be replaced with "sensitive".
 13207  func (s FSxWindowsFileServerVolumeConfiguration) GoString() string {
 13208  	return s.String()
 13209  }
 13210  
 13211  // Validate inspects the fields of the type to determine if they are valid.
 13212  func (s *FSxWindowsFileServerVolumeConfiguration) Validate() error {
 13213  	invalidParams := request.ErrInvalidParams{Context: "FSxWindowsFileServerVolumeConfiguration"}
 13214  	if s.AuthorizationConfig == nil {
 13215  		invalidParams.Add(request.NewErrParamRequired("AuthorizationConfig"))
 13216  	}
 13217  	if s.FileSystemId == nil {
 13218  		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
 13219  	}
 13220  	if s.RootDirectory == nil {
 13221  		invalidParams.Add(request.NewErrParamRequired("RootDirectory"))
 13222  	}
 13223  	if s.AuthorizationConfig != nil {
 13224  		if err := s.AuthorizationConfig.Validate(); err != nil {
 13225  			invalidParams.AddNested("AuthorizationConfig", err.(request.ErrInvalidParams))
 13226  		}
 13227  	}
 13228  
 13229  	if invalidParams.Len() > 0 {
 13230  		return invalidParams
 13231  	}
 13232  	return nil
 13233  }
 13234  
 13235  // SetAuthorizationConfig sets the AuthorizationConfig field's value.
 13236  func (s *FSxWindowsFileServerVolumeConfiguration) SetAuthorizationConfig(v *FSxWindowsFileServerAuthorizationConfig) *FSxWindowsFileServerVolumeConfiguration {
 13237  	s.AuthorizationConfig = v
 13238  	return s
 13239  }
 13240  
 13241  // SetFileSystemId sets the FileSystemId field's value.
 13242  func (s *FSxWindowsFileServerVolumeConfiguration) SetFileSystemId(v string) *FSxWindowsFileServerVolumeConfiguration {
 13243  	s.FileSystemId = &v
 13244  	return s
 13245  }
 13246  
 13247  // SetRootDirectory sets the RootDirectory field's value.
 13248  func (s *FSxWindowsFileServerVolumeConfiguration) SetRootDirectory(v string) *FSxWindowsFileServerVolumeConfiguration {
 13249  	s.RootDirectory = &v
 13250  	return s
 13251  }
 13252  
 13253  // A failed resource. For a list of common causes, see API failure reasons (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/api_failures_messages.html)
 13254  // in the Amazon Elastic Container Service Developer Guide.
 13255  type Failure struct {
 13256  	_ struct{} `type:"structure"`
 13257  
 13258  	// The Amazon Resource Name (ARN) of the failed resource.
 13259  	Arn *string `locationName:"arn" type:"string"`
 13260  
 13261  	// The details of the failure.
 13262  	Detail *string `locationName:"detail" type:"string"`
 13263  
 13264  	// The reason for the failure.
 13265  	Reason *string `locationName:"reason" type:"string"`
 13266  }
 13267  
 13268  // String returns the string representation.
 13269  //
 13270  // API parameter values that are decorated as "sensitive" in the API will not
 13271  // be included in the string output. The member name will be present, but the
 13272  // value will be replaced with "sensitive".
 13273  func (s Failure) String() string {
 13274  	return awsutil.Prettify(s)
 13275  }
 13276  
 13277  // GoString returns the string representation.
 13278  //
 13279  // API parameter values that are decorated as "sensitive" in the API will not
 13280  // be included in the string output. The member name will be present, but the
 13281  // value will be replaced with "sensitive".
 13282  func (s Failure) GoString() string {
 13283  	return s.String()
 13284  }
 13285  
 13286  // SetArn sets the Arn field's value.
 13287  func (s *Failure) SetArn(v string) *Failure {
 13288  	s.Arn = &v
 13289  	return s
 13290  }
 13291  
 13292  // SetDetail sets the Detail field's value.
 13293  func (s *Failure) SetDetail(v string) *Failure {
 13294  	s.Detail = &v
 13295  	return s
 13296  }
 13297  
 13298  // SetReason sets the Reason field's value.
 13299  func (s *Failure) SetReason(v string) *Failure {
 13300  	s.Reason = &v
 13301  	return s
 13302  }
 13303  
 13304  // The FireLens configuration for the container. This is used to specify and
 13305  // configure a log router for container logs. For more information, see Custom
 13306  // Log Routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
 13307  // in the Amazon Elastic Container Service Developer Guide.
 13308  type FirelensConfiguration struct {
 13309  	_ struct{} `type:"structure"`
 13310  
 13311  	// The options to use when configuring the log router. This field is optional
 13312  	// and can be used to specify a custom configuration file or to add additional
 13313  	// metadata, such as the task, task definition, cluster, and container instance
 13314  	// details to the log event. If specified, the syntax to use is "options":{"enable-ecs-log-metadata":"true|false","config-file-type:"s3|file","config-file-value":"arn:aws:s3:::mybucket/fluent.conf|filepath"}.
 13315  	// For more information, see Creating a Task Definition that Uses a FireLens
 13316  	// Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-taskdef)
 13317  	// in the Amazon Elastic Container Service Developer Guide.
 13318  	//
 13319  	// Tasks hosted on Fargate only support the file configuration file type.
 13320  	Options map[string]*string `locationName:"options" type:"map"`
 13321  
 13322  	// The log router to use. The valid values are fluentd or fluentbit.
 13323  	//
 13324  	// Type is a required field
 13325  	Type *string `locationName:"type" type:"string" required:"true" enum:"FirelensConfigurationType"`
 13326  }
 13327  
 13328  // String returns the string representation.
 13329  //
 13330  // API parameter values that are decorated as "sensitive" in the API will not
 13331  // be included in the string output. The member name will be present, but the
 13332  // value will be replaced with "sensitive".
 13333  func (s FirelensConfiguration) String() string {
 13334  	return awsutil.Prettify(s)
 13335  }
 13336  
 13337  // GoString returns the string representation.
 13338  //
 13339  // API parameter values that are decorated as "sensitive" in the API will not
 13340  // be included in the string output. The member name will be present, but the
 13341  // value will be replaced with "sensitive".
 13342  func (s FirelensConfiguration) GoString() string {
 13343  	return s.String()
 13344  }
 13345  
 13346  // Validate inspects the fields of the type to determine if they are valid.
 13347  func (s *FirelensConfiguration) Validate() error {
 13348  	invalidParams := request.ErrInvalidParams{Context: "FirelensConfiguration"}
 13349  	if s.Type == nil {
 13350  		invalidParams.Add(request.NewErrParamRequired("Type"))
 13351  	}
 13352  
 13353  	if invalidParams.Len() > 0 {
 13354  		return invalidParams
 13355  	}
 13356  	return nil
 13357  }
 13358  
 13359  // SetOptions sets the Options field's value.
 13360  func (s *FirelensConfiguration) SetOptions(v map[string]*string) *FirelensConfiguration {
 13361  	s.Options = v
 13362  	return s
 13363  }
 13364  
 13365  // SetType sets the Type field's value.
 13366  func (s *FirelensConfiguration) SetType(v string) *FirelensConfiguration {
 13367  	s.Type = &v
 13368  	return s
 13369  }
 13370  
 13371  // An object representing a container health check. Health check parameters
 13372  // that are specified in a container definition override any Docker health checks
 13373  // that exist in the container image (such as those specified in a parent image
 13374  // or from the image's Dockerfile).
 13375  //
 13376  // You can view the health status of both individual containers and a task with
 13377  // the DescribeTasks API operation or when viewing the task details in the console.
 13378  //
 13379  // The following describes the possible healthStatus values for a container:
 13380  //
 13381  //    * HEALTHY-The container health check has passed successfully.
 13382  //
 13383  //    * UNHEALTHY-The container health check has failed.
 13384  //
 13385  //    * UNKNOWN-The container health check is being evaluated or there is no
 13386  //    container health check defined.
 13387  //
 13388  // The following describes the possible healthStatus values for a task. The
 13389  // container health check status of nonessential containers do not have an effect
 13390  // on the health status of a task.
 13391  //
 13392  //    * HEALTHY-All essential containers within the task have passed their health
 13393  //    checks.
 13394  //
 13395  //    * UNHEALTHY-One or more essential containers have failed their health
 13396  //    check.
 13397  //
 13398  //    * UNKNOWN-The essential containers within the task are still having their
 13399  //    health checks evaluated or there are no container health checks defined.
 13400  //
 13401  // If a task is run manually, and not as part of a service, the task will continue
 13402  // its lifecycle regardless of its health status. For tasks that are part of
 13403  // a service, if the task reports as unhealthy then the task will be stopped
 13404  // and the service scheduler will replace it.
 13405  //
 13406  // The following are notes about container health check support:
 13407  //
 13408  //    * Container health checks require version 1.17.0 or greater of the Amazon
 13409  //    ECS container agent. For more information, see Updating the Amazon ECS
 13410  //    Container Agent (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html).
 13411  //
 13412  //    * Container health checks are supported for Fargate tasks if you are using
 13413  //    platform version 1.1.0 or greater. For more information, see Fargate Platform
 13414  //    Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).
 13415  //
 13416  //    * Container health checks are not supported for tasks that are part of
 13417  //    a service that is configured to use a Classic Load Balancer.
 13418  type HealthCheck struct {
 13419  	_ struct{} `type:"structure"`
 13420  
 13421  	// A string array representing the command that the container runs to determine
 13422  	// if it is healthy. The string array must start with CMD to execute the command
 13423  	// arguments directly, or CMD-SHELL to run the command with the container's
 13424  	// default shell.
 13425  	//
 13426  	// When you use the Amazon Web Services Management Console JSON panel, the Command
 13427  	// Line Interface, or the APIs, you should enclose the list of commands in brackets,
 13428  	// as shown below.
 13429  	//
 13430  	// [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]
 13431  	//
 13432  	// You do not need to include the brackets when you use the Amazon Web Services
 13433  	// Management Consoleas shown below.
 13434  	//
 13435  	// "CMD-SHELL", "curl -f http://localhost/ || exit 1"
 13436  	//
 13437  	// An exit code of 0 indicates success, and non-zero exit code indicates failure.
 13438  	// For more information, see HealthCheck in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
 13439  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/).
 13440  	//
 13441  	// Command is a required field
 13442  	Command []*string `locationName:"command" type:"list" required:"true"`
 13443  
 13444  	// The time period in seconds between each health check execution. You may specify
 13445  	// between 5 and 300 seconds. The default value is 30 seconds.
 13446  	Interval *int64 `locationName:"interval" type:"integer"`
 13447  
 13448  	// The number of times to retry a failed health check before the container is
 13449  	// considered unhealthy. You may specify between 1 and 10 retries. The default
 13450  	// value is 3.
 13451  	Retries *int64 `locationName:"retries" type:"integer"`
 13452  
 13453  	// The optional grace period within which to provide containers time to bootstrap
 13454  	// before failed health checks count towards the maximum number of retries.
 13455  	// You may specify between 0 and 300 seconds. The startPeriod is disabled by
 13456  	// default.
 13457  	//
 13458  	// If a health check succeeds within the startPeriod, then the container is
 13459  	// considered healthy and any subsequent failures count toward the maximum number
 13460  	// of retries.
 13461  	StartPeriod *int64 `locationName:"startPeriod" type:"integer"`
 13462  
 13463  	// The time period in seconds to wait for a health check to succeed before it
 13464  	// is considered a failure. You may specify between 2 and 60 seconds. The default
 13465  	// value is 5.
 13466  	Timeout *int64 `locationName:"timeout" type:"integer"`
 13467  }
 13468  
 13469  // String returns the string representation.
 13470  //
 13471  // API parameter values that are decorated as "sensitive" in the API will not
 13472  // be included in the string output. The member name will be present, but the
 13473  // value will be replaced with "sensitive".
 13474  func (s HealthCheck) String() string {
 13475  	return awsutil.Prettify(s)
 13476  }
 13477  
 13478  // GoString returns the string representation.
 13479  //
 13480  // API parameter values that are decorated as "sensitive" in the API will not
 13481  // be included in the string output. The member name will be present, but the
 13482  // value will be replaced with "sensitive".
 13483  func (s HealthCheck) GoString() string {
 13484  	return s.String()
 13485  }
 13486  
 13487  // Validate inspects the fields of the type to determine if they are valid.
 13488  func (s *HealthCheck) Validate() error {
 13489  	invalidParams := request.ErrInvalidParams{Context: "HealthCheck"}
 13490  	if s.Command == nil {
 13491  		invalidParams.Add(request.NewErrParamRequired("Command"))
 13492  	}
 13493  
 13494  	if invalidParams.Len() > 0 {
 13495  		return invalidParams
 13496  	}
 13497  	return nil
 13498  }
 13499  
 13500  // SetCommand sets the Command field's value.
 13501  func (s *HealthCheck) SetCommand(v []*string) *HealthCheck {
 13502  	s.Command = v
 13503  	return s
 13504  }
 13505  
 13506  // SetInterval sets the Interval field's value.
 13507  func (s *HealthCheck) SetInterval(v int64) *HealthCheck {
 13508  	s.Interval = &v
 13509  	return s
 13510  }
 13511  
 13512  // SetRetries sets the Retries field's value.
 13513  func (s *HealthCheck) SetRetries(v int64) *HealthCheck {
 13514  	s.Retries = &v
 13515  	return s
 13516  }
 13517  
 13518  // SetStartPeriod sets the StartPeriod field's value.
 13519  func (s *HealthCheck) SetStartPeriod(v int64) *HealthCheck {
 13520  	s.StartPeriod = &v
 13521  	return s
 13522  }
 13523  
 13524  // SetTimeout sets the Timeout field's value.
 13525  func (s *HealthCheck) SetTimeout(v int64) *HealthCheck {
 13526  	s.Timeout = &v
 13527  	return s
 13528  }
 13529  
 13530  // Hostnames and IP address entries that are added to the /etc/hosts file of
 13531  // a container via the extraHosts parameter of its ContainerDefinition.
 13532  type HostEntry struct {
 13533  	_ struct{} `type:"structure"`
 13534  
 13535  	// The hostname to use in the /etc/hosts entry.
 13536  	//
 13537  	// Hostname is a required field
 13538  	Hostname *string `locationName:"hostname" type:"string" required:"true"`
 13539  
 13540  	// The IP address to use in the /etc/hosts entry.
 13541  	//
 13542  	// IpAddress is a required field
 13543  	IpAddress *string `locationName:"ipAddress" type:"string" required:"true"`
 13544  }
 13545  
 13546  // String returns the string representation.
 13547  //
 13548  // API parameter values that are decorated as "sensitive" in the API will not
 13549  // be included in the string output. The member name will be present, but the
 13550  // value will be replaced with "sensitive".
 13551  func (s HostEntry) String() string {
 13552  	return awsutil.Prettify(s)
 13553  }
 13554  
 13555  // GoString returns the string representation.
 13556  //
 13557  // API parameter values that are decorated as "sensitive" in the API will not
 13558  // be included in the string output. The member name will be present, but the
 13559  // value will be replaced with "sensitive".
 13560  func (s HostEntry) GoString() string {
 13561  	return s.String()
 13562  }
 13563  
 13564  // Validate inspects the fields of the type to determine if they are valid.
 13565  func (s *HostEntry) Validate() error {
 13566  	invalidParams := request.ErrInvalidParams{Context: "HostEntry"}
 13567  	if s.Hostname == nil {
 13568  		invalidParams.Add(request.NewErrParamRequired("Hostname"))
 13569  	}
 13570  	if s.IpAddress == nil {
 13571  		invalidParams.Add(request.NewErrParamRequired("IpAddress"))
 13572  	}
 13573  
 13574  	if invalidParams.Len() > 0 {
 13575  		return invalidParams
 13576  	}
 13577  	return nil
 13578  }
 13579  
 13580  // SetHostname sets the Hostname field's value.
 13581  func (s *HostEntry) SetHostname(v string) *HostEntry {
 13582  	s.Hostname = &v
 13583  	return s
 13584  }
 13585  
 13586  // SetIpAddress sets the IpAddress field's value.
 13587  func (s *HostEntry) SetIpAddress(v string) *HostEntry {
 13588  	s.IpAddress = &v
 13589  	return s
 13590  }
 13591  
 13592  // Details on a container instance bind mount host volume.
 13593  type HostVolumeProperties struct {
 13594  	_ struct{} `type:"structure"`
 13595  
 13596  	// When the host parameter is used, specify a sourcePath to declare the path
 13597  	// on the host container instance that is presented to the container. If this
 13598  	// parameter is empty, then the Docker daemon has assigned a host path for you.
 13599  	// If the host parameter contains a sourcePath file location, then the data
 13600  	// volume persists at the specified location on the host container instance
 13601  	// until you delete it manually. If the sourcePath value does not exist on the
 13602  	// host container instance, the Docker daemon creates it. If the location does
 13603  	// exist, the contents of the source path folder are exported.
 13604  	//
 13605  	// If you are using the Fargate launch type, the sourcePath parameter is not
 13606  	// supported.
 13607  	SourcePath *string `locationName:"sourcePath" type:"string"`
 13608  }
 13609  
 13610  // String returns the string representation.
 13611  //
 13612  // API parameter values that are decorated as "sensitive" in the API will not
 13613  // be included in the string output. The member name will be present, but the
 13614  // value will be replaced with "sensitive".
 13615  func (s HostVolumeProperties) String() string {
 13616  	return awsutil.Prettify(s)
 13617  }
 13618  
 13619  // GoString returns the string representation.
 13620  //
 13621  // API parameter values that are decorated as "sensitive" in the API will not
 13622  // be included in the string output. The member name will be present, but the
 13623  // value will be replaced with "sensitive".
 13624  func (s HostVolumeProperties) GoString() string {
 13625  	return s.String()
 13626  }
 13627  
 13628  // SetSourcePath sets the SourcePath field's value.
 13629  func (s *HostVolumeProperties) SetSourcePath(v string) *HostVolumeProperties {
 13630  	s.SourcePath = &v
 13631  	return s
 13632  }
 13633  
 13634  // Details on a Elastic Inference accelerator. For more information, see Working
 13635  // with Amazon Elastic Inference on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
 13636  // in the Amazon Elastic Container Service Developer Guide.
 13637  type InferenceAccelerator struct {
 13638  	_ struct{} `type:"structure"`
 13639  
 13640  	// The Elastic Inference accelerator device name. The deviceName must also be
 13641  	// referenced in a container definition as a ResourceRequirement.
 13642  	//
 13643  	// DeviceName is a required field
 13644  	DeviceName *string `locationName:"deviceName" type:"string" required:"true"`
 13645  
 13646  	// The Elastic Inference accelerator type to use.
 13647  	//
 13648  	// DeviceType is a required field
 13649  	DeviceType *string `locationName:"deviceType" type:"string" required:"true"`
 13650  }
 13651  
 13652  // String returns the string representation.
 13653  //
 13654  // API parameter values that are decorated as "sensitive" in the API will not
 13655  // be included in the string output. The member name will be present, but the
 13656  // value will be replaced with "sensitive".
 13657  func (s InferenceAccelerator) String() string {
 13658  	return awsutil.Prettify(s)
 13659  }
 13660  
 13661  // GoString returns the string representation.
 13662  //
 13663  // API parameter values that are decorated as "sensitive" in the API will not
 13664  // be included in the string output. The member name will be present, but the
 13665  // value will be replaced with "sensitive".
 13666  func (s InferenceAccelerator) GoString() string {
 13667  	return s.String()
 13668  }
 13669  
 13670  // Validate inspects the fields of the type to determine if they are valid.
 13671  func (s *InferenceAccelerator) Validate() error {
 13672  	invalidParams := request.ErrInvalidParams{Context: "InferenceAccelerator"}
 13673  	if s.DeviceName == nil {
 13674  		invalidParams.Add(request.NewErrParamRequired("DeviceName"))
 13675  	}
 13676  	if s.DeviceType == nil {
 13677  		invalidParams.Add(request.NewErrParamRequired("DeviceType"))
 13678  	}
 13679  
 13680  	if invalidParams.Len() > 0 {
 13681  		return invalidParams
 13682  	}
 13683  	return nil
 13684  }
 13685  
 13686  // SetDeviceName sets the DeviceName field's value.
 13687  func (s *InferenceAccelerator) SetDeviceName(v string) *InferenceAccelerator {
 13688  	s.DeviceName = &v
 13689  	return s
 13690  }
 13691  
 13692  // SetDeviceType sets the DeviceType field's value.
 13693  func (s *InferenceAccelerator) SetDeviceType(v string) *InferenceAccelerator {
 13694  	s.DeviceType = &v
 13695  	return s
 13696  }
 13697  
 13698  // Details on an Elastic Inference accelerator task override. This parameter
 13699  // is used to override the Elastic Inference accelerator specified in the task
 13700  // definition. For more information, see Working with Amazon Elastic Inference
 13701  // on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
 13702  // in the Amazon Elastic Container Service Developer Guide.
 13703  type InferenceAcceleratorOverride struct {
 13704  	_ struct{} `type:"structure"`
 13705  
 13706  	// The Elastic Inference accelerator device name to override for the task. This
 13707  	// parameter must match a deviceName specified in the task definition.
 13708  	DeviceName *string `locationName:"deviceName" type:"string"`
 13709  
 13710  	// The Elastic Inference accelerator type to use.
 13711  	DeviceType *string `locationName:"deviceType" type:"string"`
 13712  }
 13713  
 13714  // String returns the string representation.
 13715  //
 13716  // API parameter values that are decorated as "sensitive" in the API will not
 13717  // be included in the string output. The member name will be present, but the
 13718  // value will be replaced with "sensitive".
 13719  func (s InferenceAcceleratorOverride) String() string {
 13720  	return awsutil.Prettify(s)
 13721  }
 13722  
 13723  // GoString returns the string representation.
 13724  //
 13725  // API parameter values that are decorated as "sensitive" in the API will not
 13726  // be included in the string output. The member name will be present, but the
 13727  // value will be replaced with "sensitive".
 13728  func (s InferenceAcceleratorOverride) GoString() string {
 13729  	return s.String()
 13730  }
 13731  
 13732  // SetDeviceName sets the DeviceName field's value.
 13733  func (s *InferenceAcceleratorOverride) SetDeviceName(v string) *InferenceAcceleratorOverride {
 13734  	s.DeviceName = &v
 13735  	return s
 13736  }
 13737  
 13738  // SetDeviceType sets the DeviceType field's value.
 13739  func (s *InferenceAcceleratorOverride) SetDeviceType(v string) *InferenceAcceleratorOverride {
 13740  	s.DeviceType = &v
 13741  	return s
 13742  }
 13743  
 13744  // The specified parameter is invalid. Review the available parameters for the
 13745  // API request.
 13746  type InvalidParameterException struct {
 13747  	_            struct{}                  `type:"structure"`
 13748  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 13749  
 13750  	Message_ *string `locationName:"message" type:"string"`
 13751  }
 13752  
 13753  // String returns the string representation.
 13754  //
 13755  // API parameter values that are decorated as "sensitive" in the API will not
 13756  // be included in the string output. The member name will be present, but the
 13757  // value will be replaced with "sensitive".
 13758  func (s InvalidParameterException) String() string {
 13759  	return awsutil.Prettify(s)
 13760  }
 13761  
 13762  // GoString returns the string representation.
 13763  //
 13764  // API parameter values that are decorated as "sensitive" in the API will not
 13765  // be included in the string output. The member name will be present, but the
 13766  // value will be replaced with "sensitive".
 13767  func (s InvalidParameterException) GoString() string {
 13768  	return s.String()
 13769  }
 13770  
 13771  func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
 13772  	return &InvalidParameterException{
 13773  		RespMetadata: v,
 13774  	}
 13775  }
 13776  
 13777  // Code returns the exception type name.
 13778  func (s *InvalidParameterException) Code() string {
 13779  	return "InvalidParameterException"
 13780  }
 13781  
 13782  // Message returns the exception's message.
 13783  func (s *InvalidParameterException) Message() string {
 13784  	if s.Message_ != nil {
 13785  		return *s.Message_
 13786  	}
 13787  	return ""
 13788  }
 13789  
 13790  // OrigErr always returns nil, satisfies awserr.Error interface.
 13791  func (s *InvalidParameterException) OrigErr() error {
 13792  	return nil
 13793  }
 13794  
 13795  func (s *InvalidParameterException) Error() string {
 13796  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 13797  }
 13798  
 13799  // Status code returns the HTTP status code for the request's response error.
 13800  func (s *InvalidParameterException) StatusCode() int {
 13801  	return s.RespMetadata.StatusCode
 13802  }
 13803  
 13804  // RequestID returns the service's response RequestID for request.
 13805  func (s *InvalidParameterException) RequestID() string {
 13806  	return s.RespMetadata.RequestID
 13807  }
 13808  
 13809  // The Linux capabilities for the container that are added to or dropped from
 13810  // the default configuration provided by Docker. For more information on the
 13811  // default capabilities and the non-default available capabilities, see Runtime
 13812  // privilege and Linux capabilities (https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities)
 13813  // in the Docker run reference. For more detailed information on these Linux
 13814  // capabilities, see the capabilities(7) (http://man7.org/linux/man-pages/man7/capabilities.7.html)
 13815  // Linux manual page.
 13816  type KernelCapabilities struct {
 13817  	_ struct{} `type:"structure"`
 13818  
 13819  	// The Linux capabilities for the container that have been added to the default
 13820  	// configuration provided by Docker. This parameter maps to CapAdd in the Create
 13821  	// a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
 13822  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
 13823  	// and the --cap-add option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
 13824  	//
 13825  	// Tasks launched on Fargate only support adding the SYS_PTRACE kernel capability.
 13826  	//
 13827  	// Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" |
 13828  	// "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK"
 13829  	// | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE"
 13830  	// | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW"
 13831  	// | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT"
 13832  	// | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" |
 13833  	// "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" |
 13834  	// "WAKE_ALARM"
 13835  	Add []*string `locationName:"add" type:"list"`
 13836  
 13837  	// The Linux capabilities for the container that have been removed from the
 13838  	// default configuration provided by Docker. This parameter maps to CapDrop
 13839  	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
 13840  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
 13841  	// and the --cap-drop option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
 13842  	//
 13843  	// Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" |
 13844  	// "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK"
 13845  	// | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE"
 13846  	// | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW"
 13847  	// | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT"
 13848  	// | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" |
 13849  	// "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" |
 13850  	// "WAKE_ALARM"
 13851  	Drop []*string `locationName:"drop" type:"list"`
 13852  }
 13853  
 13854  // String returns the string representation.
 13855  //
 13856  // API parameter values that are decorated as "sensitive" in the API will not
 13857  // be included in the string output. The member name will be present, but the
 13858  // value will be replaced with "sensitive".
 13859  func (s KernelCapabilities) String() string {
 13860  	return awsutil.Prettify(s)
 13861  }
 13862  
 13863  // GoString returns the string representation.
 13864  //
 13865  // API parameter values that are decorated as "sensitive" in the API will not
 13866  // be included in the string output. The member name will be present, but the
 13867  // value will be replaced with "sensitive".
 13868  func (s KernelCapabilities) GoString() string {
 13869  	return s.String()
 13870  }
 13871  
 13872  // SetAdd sets the Add field's value.
 13873  func (s *KernelCapabilities) SetAdd(v []*string) *KernelCapabilities {
 13874  	s.Add = v
 13875  	return s
 13876  }
 13877  
 13878  // SetDrop sets the Drop field's value.
 13879  func (s *KernelCapabilities) SetDrop(v []*string) *KernelCapabilities {
 13880  	s.Drop = v
 13881  	return s
 13882  }
 13883  
 13884  // A key-value pair object.
 13885  type KeyValuePair struct {
 13886  	_ struct{} `type:"structure"`
 13887  
 13888  	// The name of the key-value pair. For environment variables, this is the name
 13889  	// of the environment variable.
 13890  	Name *string `locationName:"name" type:"string"`
 13891  
 13892  	// The value of the key-value pair. For environment variables, this is the value
 13893  	// of the environment variable.
 13894  	Value *string `locationName:"value" type:"string"`
 13895  }
 13896  
 13897  // String returns the string representation.
 13898  //
 13899  // API parameter values that are decorated as "sensitive" in the API will not
 13900  // be included in the string output. The member name will be present, but the
 13901  // value will be replaced with "sensitive".
 13902  func (s KeyValuePair) String() string {
 13903  	return awsutil.Prettify(s)
 13904  }
 13905  
 13906  // GoString returns the string representation.
 13907  //
 13908  // API parameter values that are decorated as "sensitive" in the API will not
 13909  // be included in the string output. The member name will be present, but the
 13910  // value will be replaced with "sensitive".
 13911  func (s KeyValuePair) GoString() string {
 13912  	return s.String()
 13913  }
 13914  
 13915  // SetName sets the Name field's value.
 13916  func (s *KeyValuePair) SetName(v string) *KeyValuePair {
 13917  	s.Name = &v
 13918  	return s
 13919  }
 13920  
 13921  // SetValue sets the Value field's value.
 13922  func (s *KeyValuePair) SetValue(v string) *KeyValuePair {
 13923  	s.Value = &v
 13924  	return s
 13925  }
 13926  
 13927  // The limit for the resource has been exceeded.
 13928  type LimitExceededException struct {
 13929  	_            struct{}                  `type:"structure"`
 13930  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 13931  
 13932  	Message_ *string `locationName:"message" type:"string"`
 13933  }
 13934  
 13935  // String returns the string representation.
 13936  //
 13937  // API parameter values that are decorated as "sensitive" in the API will not
 13938  // be included in the string output. The member name will be present, but the
 13939  // value will be replaced with "sensitive".
 13940  func (s LimitExceededException) String() string {
 13941  	return awsutil.Prettify(s)
 13942  }
 13943  
 13944  // GoString returns the string representation.
 13945  //
 13946  // API parameter values that are decorated as "sensitive" in the API will not
 13947  // be included in the string output. The member name will be present, but the
 13948  // value will be replaced with "sensitive".
 13949  func (s LimitExceededException) GoString() string {
 13950  	return s.String()
 13951  }
 13952  
 13953  func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
 13954  	return &LimitExceededException{
 13955  		RespMetadata: v,
 13956  	}
 13957  }
 13958  
 13959  // Code returns the exception type name.
 13960  func (s *LimitExceededException) Code() string {
 13961  	return "LimitExceededException"
 13962  }
 13963  
 13964  // Message returns the exception's message.
 13965  func (s *LimitExceededException) Message() string {
 13966  	if s.Message_ != nil {
 13967  		return *s.Message_
 13968  	}
 13969  	return ""
 13970  }
 13971  
 13972  // OrigErr always returns nil, satisfies awserr.Error interface.
 13973  func (s *LimitExceededException) OrigErr() error {
 13974  	return nil
 13975  }
 13976  
 13977  func (s *LimitExceededException) Error() string {
 13978  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 13979  }
 13980  
 13981  // Status code returns the HTTP status code for the request's response error.
 13982  func (s *LimitExceededException) StatusCode() int {
 13983  	return s.RespMetadata.StatusCode
 13984  }
 13985  
 13986  // RequestID returns the service's response RequestID for request.
 13987  func (s *LimitExceededException) RequestID() string {
 13988  	return s.RespMetadata.RequestID
 13989  }
 13990  
 13991  // Linux-specific options that are applied to the container, such as Linux KernelCapabilities.
 13992  type LinuxParameters struct {
 13993  	_ struct{} `type:"structure"`
 13994  
 13995  	// The Linux capabilities for the container that are added to or dropped from
 13996  	// the default configuration provided by Docker.
 13997  	//
 13998  	// For tasks that use the Fargate launch type, capabilities is supported for
 13999  	// all platform versions but the add parameter is only supported if using platform
 14000  	// version 1.4.0 or later.
 14001  	Capabilities *KernelCapabilities `locationName:"capabilities" type:"structure"`
 14002  
 14003  	// Any host devices to expose to the container. This parameter maps to Devices
 14004  	// in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
 14005  	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
 14006  	// and the --device option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
 14007  	//
 14008  	// If you are using tasks that use the Fargate launch type, the devices parameter
 14009  	// is not supported.
 14010  	Devices []*Device `locationName:"devices" type:"list"`
 14011  
 14012  	// Run an init process inside the container that forwards signals and reaps
 14013  	// processes. This parameter maps to the --init option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
 14014  	// This parameter requires version 1.25 of the Docker Remote API or greater
 14015  	// on your container instance. To check the Docker Remote API version on your
 14016  	// container instance, log in to your container instance and run the following
 14017  	// command: sudo docker version --format '{{.Server.APIVersion}}'
 14018  	InitProcessEnabled *bool `locationName:"initProcessEnabled" type:"boolean"`
 14019  
 14020  	// The total amount of swap memory (in MiB) a container can use. This parameter
 14021  	// will be translated to the --memory-swap option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration)
 14022  	// where the value would be the sum of the container memory plus the maxSwap
 14023  	// value.
 14024  	//
 14025  	// If a maxSwap value of 0 is specified, the container will not use swap. Accepted
 14026  	// values are 0 or any positive integer. If the maxSwap parameter is omitted,
 14027  	// the container will use the swap configuration for the container instance
 14028  	// it is running on. A maxSwap value must be set for the swappiness parameter
 14029  	// to be used.
 14030  	//
 14031  	// If you are using tasks that use the Fargate launch type, the maxSwap parameter
 14032  	// is not supported.
 14033  	MaxSwap *int64 `locationName:"maxSwap" type:"integer"`
 14034  
 14035  	// The value for the size (in MiB) of the /dev/shm volume. This parameter maps
 14036  	// to the --shm-size option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
 14037  	//
 14038  	// If you are using tasks that use the Fargate launch type, the sharedMemorySize
 14039  	// parameter is not supported.
 14040  	SharedMemorySize *int64 `locationName:"sharedMemorySize" type:"integer"`
 14041  
 14042  	// This allows you to tune a container's memory swappiness behavior. A swappiness
 14043  	// value of 0 will cause swapping to not happen unless absolutely necessary.
 14044  	// A swappiness value of 100 will cause pages to be swapped very aggressively.
 14045  	// Accepted values are whole numbers between 0 and 100. If the swappiness parameter
 14046  	// is not specified, a default value of 60 is used. If a value is not specified
 14047  	// for maxSwap then this parameter is ignored. This parameter maps to the --memory-swappiness
 14048  	// option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
 14049  	//
 14050  	// If you are using tasks that use the Fargate launch type, the swappiness parameter
 14051  	// is not supported.
 14052  	Swappiness *int64 `locationName:"swappiness" type:"integer"`
 14053  
 14054  	// The container path, mount options, and size (in MiB) of the tmpfs mount.
 14055  	// This parameter maps to the --tmpfs option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
 14056  	//
 14057  	// If you are using tasks that use the Fargate launch type, the tmpfs parameter
 14058  	// is not supported.
 14059  	Tmpfs []*Tmpfs `locationName:"tmpfs" type:"list"`
 14060  }
 14061  
 14062  // String returns the string representation.
 14063  //
 14064  // API parameter values that are decorated as "sensitive" in the API will not
 14065  // be included in the string output. The member name will be present, but the
 14066  // value will be replaced with "sensitive".
 14067  func (s LinuxParameters) String() string {
 14068  	return awsutil.Prettify(s)
 14069  }
 14070  
 14071  // GoString returns the string representation.
 14072  //
 14073  // API parameter values that are decorated as "sensitive" in the API will not
 14074  // be included in the string output. The member name will be present, but the
 14075  // value will be replaced with "sensitive".
 14076  func (s LinuxParameters) GoString() string {
 14077  	return s.String()
 14078  }
 14079  
 14080  // Validate inspects the fields of the type to determine if they are valid.
 14081  func (s *LinuxParameters) Validate() error {
 14082  	invalidParams := request.ErrInvalidParams{Context: "LinuxParameters"}
 14083  	if s.Devices != nil {
 14084  		for i, v := range s.Devices {
 14085  			if v == nil {
 14086  				continue
 14087  			}
 14088  			if err := v.Validate(); err != nil {
 14089  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Devices", i), err.(request.ErrInvalidParams))
 14090  			}
 14091  		}
 14092  	}
 14093  	if s.Tmpfs != nil {
 14094  		for i, v := range s.Tmpfs {
 14095  			if v == nil {
 14096  				continue
 14097  			}
 14098  			if err := v.Validate(); err != nil {
 14099  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tmpfs", i), err.(request.ErrInvalidParams))
 14100  			}
 14101  		}
 14102  	}
 14103  
 14104  	if invalidParams.Len() > 0 {
 14105  		return invalidParams
 14106  	}
 14107  	return nil
 14108  }
 14109  
 14110  // SetCapabilities sets the Capabilities field's value.
 14111  func (s *LinuxParameters) SetCapabilities(v *KernelCapabilities) *LinuxParameters {
 14112  	s.Capabilities = v
 14113  	return s
 14114  }
 14115  
 14116  // SetDevices sets the Devices field's value.
 14117  func (s *LinuxParameters) SetDevices(v []*Device) *LinuxParameters {
 14118  	s.Devices = v
 14119  	return s
 14120  }
 14121  
 14122  // SetInitProcessEnabled sets the InitProcessEnabled field's value.
 14123  func (s *LinuxParameters) SetInitProcessEnabled(v bool) *LinuxParameters {
 14124  	s.InitProcessEnabled = &v
 14125  	return s
 14126  }
 14127  
 14128  // SetMaxSwap sets the MaxSwap field's value.
 14129  func (s *LinuxParameters) SetMaxSwap(v int64) *LinuxParameters {
 14130  	s.MaxSwap = &v
 14131  	return s
 14132  }
 14133  
 14134  // SetSharedMemorySize sets the SharedMemorySize field's value.
 14135  func (s *LinuxParameters) SetSharedMemorySize(v int64) *LinuxParameters {
 14136  	s.SharedMemorySize = &v
 14137  	return s
 14138  }
 14139  
 14140  // SetSwappiness sets the Swappiness field's value.
 14141  func (s *LinuxParameters) SetSwappiness(v int64) *LinuxParameters {
 14142  	s.Swappiness = &v
 14143  	return s
 14144  }
 14145  
 14146  // SetTmpfs sets the Tmpfs field's value.
 14147  func (s *LinuxParameters) SetTmpfs(v []*Tmpfs) *LinuxParameters {
 14148  	s.Tmpfs = v
 14149  	return s
 14150  }
 14151  
 14152  type ListAccountSettingsInput struct {
 14153  	_ struct{} `type:"structure"`
 14154  
 14155  	// Specifies whether to return the effective settings. If true, the account
 14156  	// settings for the root user or the default setting for the principalArn are
 14157  	// returned. If false, the account settings for the principalArn are returned
 14158  	// if they are set. Otherwise, no account settings are returned.
 14159  	EffectiveSettings *bool `locationName:"effectiveSettings" type:"boolean"`
 14160  
 14161  	// The maximum number of account setting results returned by ListAccountSettings
 14162  	// in paginated output. When this parameter is used, ListAccountSettings only
 14163  	// returns maxResults results in a single page along with a nextToken response
 14164  	// element. The remaining results of the initial request can be seen by sending
 14165  	// another ListAccountSettings request with the returned nextToken value. This
 14166  	// value can be between 1 and 10. If this parameter is not used, then ListAccountSettings
 14167  	// returns up to 10 results and a nextToken value if applicable.
 14168  	MaxResults *int64 `locationName:"maxResults" type:"integer"`
 14169  
 14170  	// The name of the account setting you want to list the settings for.
 14171  	Name *string `locationName:"name" type:"string" enum:"SettingName"`
 14172  
 14173  	// The nextToken value returned from a ListAccountSettings request indicating
 14174  	// that more results are available to fulfill the request and further calls
 14175  	// will be needed. If maxResults was provided, it is possible the number of
 14176  	// results to be fewer than maxResults.
 14177  	//
 14178  	// This token should be treated as an opaque identifier that is only used to
 14179  	// retrieve the next items in a list and not for other programmatic purposes.
 14180  	NextToken *string `locationName:"nextToken" type:"string"`
 14181  
 14182  	// The ARN of the principal, which can be an IAM user, IAM role, or the root
 14183  	// user. If this field is omitted, the account settings are listed only for
 14184  	// the authenticated user.
 14185  	//
 14186  	// Federated users assume the account setting of the root user and can't have
 14187  	// explicit account settings set for them.
 14188  	PrincipalArn *string `locationName:"principalArn" type:"string"`
 14189  
 14190  	// The value of the account settings with which to filter results. You must
 14191  	// also specify an account setting name to use this parameter.
 14192  	Value *string `locationName:"value" type:"string"`
 14193  }
 14194  
 14195  // String returns the string representation.
 14196  //
 14197  // API parameter values that are decorated as "sensitive" in the API will not
 14198  // be included in the string output. The member name will be present, but the
 14199  // value will be replaced with "sensitive".
 14200  func (s ListAccountSettingsInput) String() string {
 14201  	return awsutil.Prettify(s)
 14202  }
 14203  
 14204  // GoString returns the string representation.
 14205  //
 14206  // API parameter values that are decorated as "sensitive" in the API will not
 14207  // be included in the string output. The member name will be present, but the
 14208  // value will be replaced with "sensitive".
 14209  func (s ListAccountSettingsInput) GoString() string {
 14210  	return s.String()
 14211  }
 14212  
 14213  // SetEffectiveSettings sets the EffectiveSettings field's value.
 14214  func (s *ListAccountSettingsInput) SetEffectiveSettings(v bool) *ListAccountSettingsInput {
 14215  	s.EffectiveSettings = &v
 14216  	return s
 14217  }
 14218  
 14219  // SetMaxResults sets the MaxResults field's value.
 14220  func (s *ListAccountSettingsInput) SetMaxResults(v int64) *ListAccountSettingsInput {
 14221  	s.MaxResults = &v
 14222  	return s
 14223  }
 14224  
 14225  // SetName sets the Name field's value.
 14226  func (s *ListAccountSettingsInput) SetName(v string) *ListAccountSettingsInput {
 14227  	s.Name = &v
 14228  	return s
 14229  }
 14230  
 14231  // SetNextToken sets the NextToken field's value.
 14232  func (s *ListAccountSettingsInput) SetNextToken(v string) *ListAccountSettingsInput {
 14233  	s.NextToken = &v
 14234  	return s
 14235  }
 14236  
 14237  // SetPrincipalArn sets the PrincipalArn field's value.
 14238  func (s *ListAccountSettingsInput) SetPrincipalArn(v string) *ListAccountSettingsInput {
 14239  	s.PrincipalArn = &v
 14240  	return s
 14241  }
 14242  
 14243  // SetValue sets the Value field's value.
 14244  func (s *ListAccountSettingsInput) SetValue(v string) *ListAccountSettingsInput {
 14245  	s.Value = &v
 14246  	return s
 14247  }
 14248  
 14249  type ListAccountSettingsOutput struct {
 14250  	_ struct{} `type:"structure"`
 14251  
 14252  	// The nextToken value to include in a future ListAccountSettings request. When
 14253  	// the results of a ListAccountSettings request exceed maxResults, this value
 14254  	// can be used to retrieve the next page of results. This value is null when
 14255  	// there are no more results to return.
 14256  	NextToken *string `locationName:"nextToken" type:"string"`
 14257  
 14258  	// The account settings for the resource.
 14259  	Settings []*Setting `locationName:"settings" type:"list"`
 14260  }
 14261  
 14262  // String returns the string representation.
 14263  //
 14264  // API parameter values that are decorated as "sensitive" in the API will not
 14265  // be included in the string output. The member name will be present, but the
 14266  // value will be replaced with "sensitive".
 14267  func (s ListAccountSettingsOutput) String() string {
 14268  	return awsutil.Prettify(s)
 14269  }
 14270  
 14271  // GoString returns the string representation.
 14272  //
 14273  // API parameter values that are decorated as "sensitive" in the API will not
 14274  // be included in the string output. The member name will be present, but the
 14275  // value will be replaced with "sensitive".
 14276  func (s ListAccountSettingsOutput) GoString() string {
 14277  	return s.String()
 14278  }
 14279  
 14280  // SetNextToken sets the NextToken field's value.
 14281  func (s *ListAccountSettingsOutput) SetNextToken(v string) *ListAccountSettingsOutput {
 14282  	s.NextToken = &v
 14283  	return s
 14284  }
 14285  
 14286  // SetSettings sets the Settings field's value.
 14287  func (s *ListAccountSettingsOutput) SetSettings(v []*Setting) *ListAccountSettingsOutput {
 14288  	s.Settings = v
 14289  	return s
 14290  }
 14291  
 14292  type ListAttributesInput struct {
 14293  	_ struct{} `type:"structure"`
 14294  
 14295  	// The name of the attribute with which to filter the results.
 14296  	AttributeName *string `locationName:"attributeName" type:"string"`
 14297  
 14298  	// The value of the attribute with which to filter results. You must also specify
 14299  	// an attribute name to use this parameter.
 14300  	AttributeValue *string `locationName:"attributeValue" type:"string"`
 14301  
 14302  	// The short name or full Amazon Resource Name (ARN) of the cluster to list
 14303  	// attributes. If you do not specify a cluster, the default cluster is assumed.
 14304  	Cluster *string `locationName:"cluster" type:"string"`
 14305  
 14306  	// The maximum number of cluster results returned by ListAttributes in paginated
 14307  	// output. When this parameter is used, ListAttributes only returns maxResults
 14308  	// results in a single page along with a nextToken response element. The remaining
 14309  	// results of the initial request can be seen by sending another ListAttributes
 14310  	// request with the returned nextToken value. This value can be between 1 and
 14311  	// 100. If this parameter is not used, then ListAttributes returns up to 100
 14312  	// results and a nextToken value if applicable.
 14313  	MaxResults *int64 `locationName:"maxResults" type:"integer"`
 14314  
 14315  	// The nextToken value returned from a ListAttributes request indicating that
 14316  	// more results are available to fulfill the request and further calls will
 14317  	// be needed. If maxResults was provided, it is possible the number of results
 14318  	// to be fewer than maxResults.
 14319  	//
 14320  	// This token should be treated as an opaque identifier that is only used to
 14321  	// retrieve the next items in a list and not for other programmatic purposes.
 14322  	NextToken *string `locationName:"nextToken" type:"string"`
 14323  
 14324  	// The type of the target with which to list attributes.
 14325  	//
 14326  	// TargetType is a required field
 14327  	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"TargetType"`
 14328  }
 14329  
 14330  // String returns the string representation.
 14331  //
 14332  // API parameter values that are decorated as "sensitive" in the API will not
 14333  // be included in the string output. The member name will be present, but the
 14334  // value will be replaced with "sensitive".
 14335  func (s ListAttributesInput) String() string {
 14336  	return awsutil.Prettify(s)
 14337  }
 14338  
 14339  // GoString returns the string representation.
 14340  //
 14341  // API parameter values that are decorated as "sensitive" in the API will not
 14342  // be included in the string output. The member name will be present, but the
 14343  // value will be replaced with "sensitive".
 14344  func (s ListAttributesInput) GoString() string {
 14345  	return s.String()
 14346  }
 14347  
 14348  // Validate inspects the fields of the type to determine if they are valid.
 14349  func (s *ListAttributesInput) Validate() error {
 14350  	invalidParams := request.ErrInvalidParams{Context: "ListAttributesInput"}
 14351  	if s.TargetType == nil {
 14352  		invalidParams.Add(request.NewErrParamRequired("TargetType"))
 14353  	}
 14354  
 14355  	if invalidParams.Len() > 0 {
 14356  		return invalidParams
 14357  	}
 14358  	return nil
 14359  }
 14360  
 14361  // SetAttributeName sets the AttributeName field's value.
 14362  func (s *ListAttributesInput) SetAttributeName(v string) *ListAttributesInput {
 14363  	s.AttributeName = &v
 14364  	return s
 14365  }
 14366  
 14367  // SetAttributeValue sets the AttributeValue field's value.
 14368  func (s *ListAttributesInput) SetAttributeValue(v string) *ListAttributesInput {
 14369  	s.AttributeValue = &v
 14370  	return s
 14371  }
 14372  
 14373  // SetCluster sets the Cluster field's value.
 14374  func (s *ListAttributesInput) SetCluster(v string) *ListAttributesInput {
 14375  	s.Cluster = &v
 14376  	return s
 14377  }
 14378  
 14379  // SetMaxResults sets the MaxResults field's value.
 14380  func (s *ListAttributesInput) SetMaxResults(v int64) *ListAttributesInput {
 14381  	s.MaxResults = &v
 14382  	return s
 14383  }
 14384  
 14385  // SetNextToken sets the NextToken field's value.
 14386  func (s *ListAttributesInput) SetNextToken(v string) *ListAttributesInput {
 14387  	s.NextToken = &v
 14388  	return s
 14389  }
 14390  
 14391  // SetTargetType sets the TargetType field's value.
 14392  func (s *ListAttributesInput) SetTargetType(v string) *ListAttributesInput {
 14393  	s.TargetType = &v
 14394  	return s
 14395  }
 14396  
 14397  type ListAttributesOutput struct {
 14398  	_ struct{} `type:"structure"`
 14399  
 14400  	// A list of attribute objects that meet the criteria of the request.
 14401  	Attributes []*Attribute `locationName:"attributes" type:"list"`
 14402  
 14403  	// The nextToken value to include in a future ListAttributes request. When the
 14404  	// results of a ListAttributes request exceed maxResults, this value can be
 14405  	// used to retrieve the next page of results. This value is null when there
 14406  	// are no more results to return.
 14407  	NextToken *string `locationName:"nextToken" type:"string"`
 14408  }
 14409  
 14410  // String returns the string representation.
 14411  //
 14412  // API parameter values that are decorated as "sensitive" in the API will not
 14413  // be included in the string output. The member name will be present, but the
 14414  // value will be replaced with "sensitive".
 14415  func (s ListAttributesOutput) String() string {
 14416  	return awsutil.Prettify(s)
 14417  }
 14418  
 14419  // GoString returns the string representation.
 14420  //
 14421  // API parameter values that are decorated as "sensitive" in the API will not
 14422  // be included in the string output. The member name will be present, but the
 14423  // value will be replaced with "sensitive".
 14424  func (s ListAttributesOutput) GoString() string {
 14425  	return s.String()
 14426  }
 14427  
 14428  // SetAttributes sets the Attributes field's value.
 14429  func (s *ListAttributesOutput) SetAttributes(v []*Attribute) *ListAttributesOutput {
 14430  	s.Attributes = v
 14431  	return s
 14432  }
 14433  
 14434  // SetNextToken sets the NextToken field's value.
 14435  func (s *ListAttributesOutput) SetNextToken(v string) *ListAttributesOutput {
 14436  	s.NextToken = &v
 14437  	return s
 14438  }
 14439  
 14440  type ListClustersInput struct {
 14441  	_ struct{} `type:"structure"`
 14442  
 14443  	// The maximum number of cluster results returned by ListClusters in paginated
 14444  	// output. When this parameter is used, ListClusters only returns maxResults
 14445  	// results in a single page along with a nextToken response element. The remaining
 14446  	// results of the initial request can be seen by sending another ListClusters
 14447  	// request with the returned nextToken value. This value can be between 1 and
 14448  	// 100. If this parameter is not used, then ListClusters returns up to 100 results
 14449  	// and a nextToken value if applicable.
 14450  	MaxResults *int64 `locationName:"maxResults" type:"integer"`
 14451  
 14452  	// The nextToken value returned from a ListClusters request indicating that
 14453  	// more results are available to fulfill the request and further calls will
 14454  	// be needed. If maxResults was provided, it is possible the number of results
 14455  	// to be fewer than maxResults.
 14456  	//
 14457  	// This token should be treated as an opaque identifier that is only used to
 14458  	// retrieve the next items in a list and not for other programmatic purposes.
 14459  	NextToken *string `locationName:"nextToken" type:"string"`
 14460  }
 14461  
 14462  // String returns the string representation.
 14463  //
 14464  // API parameter values that are decorated as "sensitive" in the API will not
 14465  // be included in the string output. The member name will be present, but the
 14466  // value will be replaced with "sensitive".
 14467  func (s ListClustersInput) String() string {
 14468  	return awsutil.Prettify(s)
 14469  }
 14470  
 14471  // GoString returns the string representation.
 14472  //
 14473  // API parameter values that are decorated as "sensitive" in the API will not
 14474  // be included in the string output. The member name will be present, but the
 14475  // value will be replaced with "sensitive".
 14476  func (s ListClustersInput) GoString() string {
 14477  	return s.String()
 14478  }
 14479  
 14480  // SetMaxResults sets the MaxResults field's value.
 14481  func (s *ListClustersInput) SetMaxResults(v int64) *ListClustersInput {
 14482  	s.MaxResults = &v
 14483  	return s
 14484  }
 14485  
 14486  // SetNextToken sets the NextToken field's value.
 14487  func (s *ListClustersInput) SetNextToken(v string) *ListClustersInput {
 14488  	s.NextToken = &v
 14489  	return s
 14490  }
 14491  
 14492  type ListClustersOutput struct {
 14493  	_ struct{} `type:"structure"`
 14494  
 14495  	// The list of full Amazon Resource Name (ARN) entries for each cluster associated
 14496  	// with your account.
 14497  	ClusterArns []*string `locationName:"clusterArns" type:"list"`
 14498  
 14499  	// The nextToken value to include in a future ListClusters request. When the
 14500  	// results of a ListClusters request exceed maxResults, this value can be used
 14501  	// to retrieve the next page of results. This value is null when there are no
 14502  	// more results to return.
 14503  	NextToken *string `locationName:"nextToken" type:"string"`
 14504  }
 14505  
 14506  // String returns the string representation.
 14507  //
 14508  // API parameter values that are decorated as "sensitive" in the API will not
 14509  // be included in the string output. The member name will be present, but the
 14510  // value will be replaced with "sensitive".
 14511  func (s ListClustersOutput) String() string {
 14512  	return awsutil.Prettify(s)
 14513  }
 14514  
 14515  // GoString returns the string representation.
 14516  //
 14517  // API parameter values that are decorated as "sensitive" in the API will not
 14518  // be included in the string output. The member name will be present, but the
 14519  // value will be replaced with "sensitive".
 14520  func (s ListClustersOutput) GoString() string {
 14521  	return s.String()
 14522  }
 14523  
 14524  // SetClusterArns sets the ClusterArns field's value.
 14525  func (s *ListClustersOutput) SetClusterArns(v []*string) *ListClustersOutput {
 14526  	s.ClusterArns = v
 14527  	return s
 14528  }
 14529  
 14530  // SetNextToken sets the NextToken field's value.
 14531  func (s *ListClustersOutput) SetNextToken(v string) *ListClustersOutput {
 14532  	s.NextToken = &v
 14533  	return s
 14534  }
 14535  
 14536  type ListContainerInstancesInput struct {
 14537  	_ struct{} `type:"structure"`
 14538  
 14539  	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
 14540  	// the container instances to list. If you do not specify a cluster, the default
 14541  	// cluster is assumed.
 14542  	Cluster *string `locationName:"cluster" type:"string"`
 14543  
 14544  	// You can filter the results of a ListContainerInstances operation with cluster
 14545  	// query language statements. For more information, see Cluster Query Language
 14546  	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
 14547  	// in the Amazon Elastic Container Service Developer Guide.
 14548  	Filter *string `locationName:"filter" type:"string"`
 14549  
 14550  	// The maximum number of container instance results returned by ListContainerInstances
 14551  	// in paginated output. When this parameter is used, ListContainerInstances
 14552  	// only returns maxResults results in a single page along with a nextToken response
 14553  	// element. The remaining results of the initial request can be seen by sending
 14554  	// another ListContainerInstances request with the returned nextToken value.
 14555  	// This value can be between 1 and 100. If this parameter is not used, then
 14556  	// ListContainerInstances returns up to 100 results and a nextToken value if
 14557  	// applicable.
 14558  	MaxResults *int64 `locationName:"maxResults" type:"integer"`
 14559  
 14560  	// The nextToken value returned from a ListContainerInstances request indicating
 14561  	// that more results are available to fulfill the request and further calls
 14562  	// will be needed. If maxResults was provided, it is possible the number of
 14563  	// results to be fewer than maxResults.
 14564  	//
 14565  	// This token should be treated as an opaque identifier that is only used to
 14566  	// retrieve the next items in a list and not for other programmatic purposes.
 14567  	NextToken *string `locationName:"nextToken" type:"string"`
 14568  
 14569  	// Filters the container instances by status. For example, if you specify the
 14570  	// DRAINING status, the results include only container instances that have been
 14571  	// set to DRAINING using UpdateContainerInstancesState. If you do not specify
 14572  	// this parameter, the default is to include container instances set to all
 14573  	// states other than INACTIVE.
 14574  	Status *string `locationName:"status" type:"string" enum:"ContainerInstanceStatus"`
 14575  }
 14576  
 14577  // String returns the string representation.
 14578  //
 14579  // API parameter values that are decorated as "sensitive" in the API will not
 14580  // be included in the string output. The member name will be present, but the
 14581  // value will be replaced with "sensitive".
 14582  func (s ListContainerInstancesInput) String() string {
 14583  	return awsutil.Prettify(s)
 14584  }
 14585  
 14586  // GoString returns the string representation.
 14587  //
 14588  // API parameter values that are decorated as "sensitive" in the API will not
 14589  // be included in the string output. The member name will be present, but the
 14590  // value will be replaced with "sensitive".
 14591  func (s ListContainerInstancesInput) GoString() string {
 14592  	return s.String()
 14593  }
 14594  
 14595  // SetCluster sets the Cluster field's value.
 14596  func (s *ListContainerInstancesInput) SetCluster(v string) *ListContainerInstancesInput {
 14597  	s.Cluster = &v
 14598  	return s
 14599  }
 14600  
 14601  // SetFilter sets the Filter field's value.
 14602  func (s *ListContainerInstancesInput) SetFilter(v string) *ListContainerInstancesInput {
 14603  	s.Filter = &v
 14604  	return s
 14605  }
 14606  
 14607  // SetMaxResults sets the MaxResults field's value.
 14608  func (s *ListContainerInstancesInput) SetMaxResults(v int64) *ListContainerInstancesInput {
 14609  	s.MaxResults = &v
 14610  	return s
 14611  }
 14612  
 14613  // SetNextToken sets the NextToken field's value.
 14614  func (s *ListContainerInstancesInput) SetNextToken(v string) *ListContainerInstancesInput {
 14615  	s.NextToken = &v
 14616  	return s
 14617  }
 14618  
 14619  // SetStatus sets the Status field's value.
 14620  func (s *ListContainerInstancesInput) SetStatus(v string) *ListContainerInstancesInput {
 14621  	s.Status = &v
 14622  	return s
 14623  }
 14624  
 14625  type ListContainerInstancesOutput struct {
 14626  	_ struct{} `type:"structure"`
 14627  
 14628  	// The list of container instances with full ARN entries for each container
 14629  	// instance associated with the specified cluster.
 14630  	ContainerInstanceArns []*string `locationName:"containerInstanceArns" type:"list"`
 14631  
 14632  	// The nextToken value to include in a future ListContainerInstances request.
 14633  	// When the results of a ListContainerInstances request exceed maxResults, this
 14634  	// value can be used to retrieve the next page of results. This value is null
 14635  	// when there are no more results to return.
 14636  	NextToken *string `locationName:"nextToken" type:"string"`
 14637  }
 14638  
 14639  // String returns the string representation.
 14640  //
 14641  // API parameter values that are decorated as "sensitive" in the API will not
 14642  // be included in the string output. The member name will be present, but the
 14643  // value will be replaced with "sensitive".
 14644  func (s ListContainerInstancesOutput) String() string {
 14645  	return awsutil.Prettify(s)
 14646  }
 14647  
 14648  // GoString returns the string representation.
 14649  //
 14650  // API parameter values that are decorated as "sensitive" in the API will not
 14651  // be included in the string output. The member name will be present, but the
 14652  // value will be replaced with "sensitive".
 14653  func (s ListContainerInstancesOutput) GoString() string {
 14654  	return s.String()
 14655  }
 14656  
 14657  // SetContainerInstanceArns sets the ContainerInstanceArns field's value.
 14658  func (s *ListContainerInstancesOutput) SetContainerInstanceArns(v []*string) *ListContainerInstancesOutput {
 14659  	s.ContainerInstanceArns = v
 14660  	return s
 14661  }
 14662  
 14663  // SetNextToken sets the NextToken field's value.
 14664  func (s *ListContainerInstancesOutput) SetNextToken(v string) *ListContainerInstancesOutput {
 14665  	s.NextToken = &v
 14666  	return s
 14667  }
 14668  
 14669  type ListServicesInput struct {
 14670  	_ struct{} `type:"structure"`
 14671  
 14672  	// The short name or full Amazon Resource Name (ARN) of the cluster to use when
 14673  	// filtering the ListServices results. If you do not specify a cluster, the
 14674  	// default cluster is assumed.
 14675  	Cluster *string `locationName:"cluster" type:"string"`
 14676  
 14677  	// The launch type to use when filtering the ListServices results.
 14678  	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
 14679  
 14680  	// The maximum number of service results returned by ListServices in paginated
 14681  	// output. When this parameter is used, ListServices only returns maxResults
 14682  	// results in a single page along with a nextToken response element. The remaining
 14683  	// results of the initial request can be seen by sending another ListServices
 14684  	// request with the returned nextToken value. This value can be between 1 and
 14685  	// 100. If this parameter is not used, then ListServices returns up to 10 results
 14686  	// and a nextToken value if applicable.
 14687  	MaxResults *int64 `locationName:"maxResults" type:"integer"`
 14688  
 14689  	// The nextToken value returned from a ListServices request indicating that
 14690  	// more results are available to fulfill the request and further calls will
 14691  	// be needed. If maxResults was provided, it is possible the number of results
 14692  	// to be fewer than maxResults.
 14693  	//
 14694  	// This token should be treated as an opaque identifier that is only used to
 14695  	// retrieve the next items in a list and not for other programmatic purposes.
 14696  	NextToken *string `locationName:"nextToken" type:"string"`
 14697  
 14698  	// The scheduling strategy to use when filtering the ListServices results.
 14699  	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
 14700  }
 14701  
 14702  // String returns the string representation.
 14703  //
 14704  // API parameter values that are decorated as "sensitive" in the API will not
 14705  // be included in the string output. The member name will be present, but the
 14706  // value will be replaced with "sensitive".
 14707  func (s ListServicesInput) String() string {
 14708  	return awsutil.Prettify(s)
 14709  }
 14710  
 14711  // GoString returns the string representation.
 14712  //
 14713  // API parameter values that are decorated as "sensitive" in the API will not
 14714  // be included in the string output. The member name will be present, but the
 14715  // value will be replaced with "sensitive".
 14716  func (s ListServicesInput) GoString() string {
 14717  	return s.String()
 14718  }
 14719  
 14720  // SetCluster sets the Cluster field's value.
 14721  func (s *ListServicesInput) SetCluster(v string) *ListServicesInput {
 14722  	s.Cluster = &v
 14723  	return s
 14724  }
 14725  
 14726  // SetLaunchType sets the LaunchType field's value.
 14727  func (s *ListServicesInput) SetLaunchType(v string) *ListServicesInput {
 14728  	s.LaunchType = &v
 14729  	return s
 14730  }
 14731  
 14732  // SetMaxResults sets the MaxResults field's value.
 14733  func (s *ListServicesInput) SetMaxResults(v int64) *ListServicesInput {
 14734  	s.MaxResults = &v
 14735  	return s
 14736  }
 14737  
 14738  // SetNextToken sets the NextToken field's value.
 14739  func (s *ListServicesInput) SetNextToken(v string) *ListServicesInput {
 14740  	s.NextToken = &v
 14741  	return s
 14742  }
 14743  
 14744  // SetSchedulingStrategy sets the SchedulingStrategy field's value.
 14745  func (s *ListServicesInput) SetSchedulingStrategy(v string) *ListServicesInput {
 14746  	s.SchedulingStrategy = &v
 14747  	return s
 14748  }
 14749  
 14750  type ListServicesOutput struct {
 14751  	_ struct{} `type:"structure"`
 14752  
 14753  	// The nextToken value to include in a future ListServices request. When the
 14754  	// results of a ListServices request exceed maxResults, this value can be used
 14755  	// to retrieve the next page of results. This value is null when there are no
 14756  	// more results to return.
 14757  	NextToken *string `locationName:"nextToken" type:"string"`
 14758  
 14759  	// The list of full ARN entries for each service associated with the specified
 14760  	// cluster.
 14761  	ServiceArns []*string `locationName:"serviceArns" type:"list"`
 14762  }
 14763  
 14764  // String returns the string representation.
 14765  //
 14766  // API parameter values that are decorated as "sensitive" in the API will not
 14767  // be included in the string output. The member name will be present, but the
 14768  // value will be replaced with "sensitive".
 14769  func (s ListServicesOutput) String() string {
 14770  	return awsutil.Prettify(s)
 14771  }
 14772  
 14773  // GoString returns the string representation.
 14774  //
 14775  // API parameter values that are decorated as "sensitive" in the API will not
 14776  // be included in the string output. The member name will be present, but the
 14777  // value will be replaced with "sensitive".
 14778  func (s ListServicesOutput) GoString() string {
 14779  	return s.String()
 14780  }
 14781  
 14782  // SetNextToken sets the NextToken field's value.
 14783  func (s *ListServicesOutput) SetNextToken(v string) *ListServicesOutput {
 14784  	s.NextToken = &v
 14785  	return s
 14786  }
 14787  
 14788  // SetServiceArns sets the ServiceArns field's value.
 14789  func (s *ListServicesOutput) SetServiceArns(v []*string) *ListServicesOutput {
 14790  	s.ServiceArns = v
 14791  	return s
 14792  }
 14793  
 14794  type ListTagsForResourceInput struct {
 14795  	_ struct{} `type:"structure"`
 14796  
 14797  	// The Amazon Resource Name (ARN) that identifies the resource for which to
 14798  	// list the tags. Currently, the supported resources are Amazon ECS tasks, services,
 14799  	// task definitions, clusters, and container instances.
 14800  	//
 14801  	// ResourceArn is a required field
 14802  	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
 14803  }
 14804  
 14805  // String returns the string representation.
 14806  //
 14807  // API parameter values that are decorated as "sensitive" in the API will not
 14808  // be included in the string output. The member name will be present, but the
 14809  // value will be replaced with "sensitive".
 14810  func (s ListTagsForResourceInput) String() string {
 14811  	return awsutil.Prettify(s)
 14812  }
 14813  
 14814  // GoString returns the string representation.
 14815  //
 14816  // API parameter values that are decorated as "sensitive" in the API will not
 14817  // be included in the string output. The member name will be present, but the
 14818  // value will be replaced with "sensitive".
 14819  func (s ListTagsForResourceInput) GoString() string {
 14820  	return s.String()
 14821  }
 14822  
 14823  // Validate inspects the fields of the type to determine if they are valid.
 14824  func (s *ListTagsForResourceInput) Validate() error {
 14825  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
 14826  	if s.ResourceArn == nil {
 14827  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 14828  	}
 14829  
 14830  	if invalidParams.Len() > 0 {
 14831  		return invalidParams
 14832  	}
 14833  	return nil
 14834  }
 14835  
 14836  // SetResourceArn sets the ResourceArn field's value.
 14837  func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
 14838  	s.ResourceArn = &v
 14839  	return s
 14840  }
 14841  
 14842  type ListTagsForResourceOutput struct {
 14843  	_ struct{} `type:"structure"`
 14844  
 14845  	// The tags for the resource.
 14846  	Tags []*Tag `locationName:"tags" type:"list"`
 14847  }
 14848  
 14849  // String returns the string representation.
 14850  //
 14851  // API parameter values that are decorated as "sensitive" in the API will not
 14852  // be included in the string output. The member name will be present, but the
 14853  // value will be replaced with "sensitive".
 14854  func (s ListTagsForResourceOutput) String() string {
 14855  	return awsutil.Prettify(s)
 14856  }
 14857  
 14858  // GoString returns the string representation.
 14859  //
 14860  // API parameter values that are decorated as "sensitive" in the API will not
 14861  // be included in the string output. The member name will be present, but the
 14862  // value will be replaced with "sensitive".
 14863  func (s ListTagsForResourceOutput) GoString() string {
 14864  	return s.String()
 14865  }
 14866  
 14867  // SetTags sets the Tags field's value.
 14868  func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
 14869  	s.Tags = v
 14870  	return s
 14871  }
 14872  
 14873  type ListTaskDefinitionFamiliesInput struct {
 14874  	_ struct{} `type:"structure"`
 14875  
 14876  	// The familyPrefix is a string that is used to filter the results of ListTaskDefinitionFamilies.
 14877  	// If you specify a familyPrefix, only task definition family names that begin
 14878  	// with the familyPrefix string are returned.
 14879  	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
 14880  
 14881  	// The maximum number of task definition family results returned by ListTaskDefinitionFamilies
 14882  	// in paginated output. When this parameter is used, ListTaskDefinitions only
 14883  	// returns maxResults results in a single page along with a nextToken response
 14884  	// element. The remaining results of the initial request can be seen by sending
 14885  	// another ListTaskDefinitionFamilies request with the returned nextToken value.
 14886  	// This value can be between 1 and 100. If this parameter is not used, then
 14887  	// ListTaskDefinitionFamilies returns up to 100 results and a nextToken value
 14888  	// if applicable.
 14889  	MaxResults *int64 `locationName:"maxResults" type:"integer"`
 14890  
 14891  	// The nextToken value returned from a ListTaskDefinitionFamilies request indicating
 14892  	// that more results are available to fulfill the request and further calls
 14893  	// will be needed. If maxResults was provided, it is possible the number of
 14894  	// results to be fewer than maxResults.
 14895  	//
 14896  	// This token should be treated as an opaque identifier that is only used to
 14897  	// retrieve the next items in a list and not for other programmatic purposes.
 14898  	NextToken *string `locationName:"nextToken" type:"string"`
 14899  
 14900  	// The task definition family status with which to filter the ListTaskDefinitionFamilies
 14901  	// results. By default, both ACTIVE and INACTIVE task definition families are
 14902  	// listed. If this parameter is set to ACTIVE, only task definition families
 14903  	// that have an ACTIVE task definition revision are returned. If this parameter
 14904  	// is set to INACTIVE, only task definition families that do not have any ACTIVE
 14905  	// task definition revisions are returned. If you paginate the resulting output,
 14906  	// be sure to keep the status value constant in each subsequent request.
 14907  	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionFamilyStatus"`
 14908  }
 14909  
 14910  // String returns the string representation.
 14911  //
 14912  // API parameter values that are decorated as "sensitive" in the API will not
 14913  // be included in the string output. The member name will be present, but the
 14914  // value will be replaced with "sensitive".
 14915  func (s ListTaskDefinitionFamiliesInput) String() string {
 14916  	return awsutil.Prettify(s)
 14917  }
 14918  
 14919  // GoString returns the string representation.
 14920  //
 14921  // API parameter values that are decorated as "sensitive" in the API will not
 14922  // be included in the string output. The member name will be present, but the
 14923  // value will be replaced with "sensitive".
 14924  func (s ListTaskDefinitionFamiliesInput) GoString() string {
 14925  	return s.String()
 14926  }
 14927  
 14928  // SetFamilyPrefix sets the FamilyPrefix field's value.
 14929  func (s *ListTaskDefinitionFamiliesInput) SetFamilyPrefix(v string) *ListTaskDefinitionFamiliesInput {
 14930  	s.FamilyPrefix = &v
 14931  	return s
 14932  }
 14933  
 14934  // SetMaxResults sets the MaxResults field's value.
 14935  func (s *ListTaskDefinitionFamiliesInput) SetMaxResults(v int64) *ListTaskDefinitionFamiliesInput {
 14936  	s.MaxResults = &v
 14937  	return s
 14938  }
 14939  
 14940  // SetNextToken sets the NextToken field's value.
 14941  func (s *ListTaskDefinitionFamiliesInput) SetNextToken(v string) *ListTaskDefinitionFamiliesInput {
 14942  	s.NextToken = &v
 14943  	return s
 14944  }
 14945  
 14946  // SetStatus sets the Status field's value.
 14947  func (s *ListTaskDefinitionFamiliesInput) SetStatus(v string) *ListTaskDefinitionFamiliesInput {
 14948  	s.Status = &v
 14949  	return s
 14950  }
 14951  
 14952  type ListTaskDefinitionFamiliesOutput struct {
 14953  	_ struct{} `type:"structure"`
 14954  
 14955  	// The list of task definition family names that match the ListTaskDefinitionFamilies
 14956  	// request.
 14957  	Families []*string `locationName:"families" type:"list"`
 14958  
 14959  	// The nextToken value to include in a future ListTaskDefinitionFamilies request.
 14960  	// When the results of a ListTaskDefinitionFamilies request exceed maxResults,
 14961  	// this value can be used to retrieve the next page of results. This value is
 14962  	// null when there are no more results to return.
 14963  	NextToken *string `locationName:"nextToken" type:"string"`
 14964  }
 14965  
 14966  // String returns the string representation.
 14967  //
 14968  // API parameter values that are decorated as "sensitive" in the API will not
 14969  // be included in the string output. The member name will be present, but the
 14970  // value will be replaced with "sensitive".
 14971  func (s ListTaskDefinitionFamiliesOutput) String() string {
 14972  	return awsutil.Prettify(s)
 14973  }
 14974  
 14975  // GoString returns the string representation.
 14976  //
 14977  // API parameter values that are decorated as "sensitive" in the API will not
 14978  // be included in the string output. The member name will be present, but the
 14979  // value will be replaced with "sensitive".
 14980  func (s ListTaskDefinitionFamiliesOutput) GoString() string {
 14981  	return s.String()
 14982  }
 14983  
 14984  // SetFamilies sets the Families field's value.
 14985  func (s *ListTaskDefinitionFamiliesOutput) SetFamilies(v []*string) *ListTaskDefinitionFamiliesOutput {
 14986  	s.Families = v
 14987  	return s
 14988  }
 14989  
 14990  // SetNextToken sets the NextToken field's value.
 14991  func (s *ListTaskDefinitionFamiliesOutput) SetNextToken(v string) *ListTaskDefinitionFamiliesOutput {
 14992  	s.NextToken = &v
 14993  	return s
 14994  }
 14995  
 14996  type ListTaskDefinitionsInput struct {
 14997  	_ struct{} `type:"structure"`
 14998  
 14999  	// The full family name with which to filter the ListTaskDefinitions results.
 15000  	// Specifying a familyPrefix limits the listed task definitions to task definition
 15001  	// revisions that belong to that family.
 15002  	FamilyPrefix *string `locationName:"familyPrefix" type:"string"`
 15003  
 15004  	// The maximum number of task definition results returned by ListTaskDefinitions
 15005  	// in paginated output. When this parameter is used, ListTaskDefinitions only
 15006  	// returns maxResults results in a single page along with a nextToken response
 15007  	// element. The remaining results of the initial request can be seen by sending
 15008  	// another ListTaskDefinitions request with the returned nextToken value. This
 15009  	// value can be between 1 and 100. If this parameter is not used, then ListTaskDefinitions
 15010  	// returns up to 100 results and a nextToken value if applicable.
 15011  	MaxResults *int64 `locationName:"maxResults" type:"integer"`
 15012  
 15013  	// The nextToken value returned from a ListTaskDefinitions request indicating
 15014  	// that more results are available to fulfill the request and further calls
 15015  	// will be needed. If maxResults was provided, it is possible the number of
 15016  	// results to be fewer than maxResults.
 15017  	//
 15018  	// This token should be treated as an opaque identifier that is only used to
 15019  	// retrieve the next items in a list and not for other programmatic purposes.
 15020  	NextToken *string `locationName:"nextToken" type:"string"`
 15021  
 15022  	// The order in which to sort the results. Valid values are ASC and DESC. By
 15023  	// default (ASC), task definitions are listed lexicographically by family name
 15024  	// and in ascending numerical order by revision so that the newest task definitions
 15025  	// in a family are listed last. Setting this parameter to DESC reverses the
 15026  	// sort order on family name and revision so that the newest task definitions
 15027  	// in a family are listed first.
 15028  	Sort *string `locationName:"sort" type:"string" enum:"SortOrder"`
 15029  
 15030  	// The task definition status with which to filter the ListTaskDefinitions results.
 15031  	// By default, only ACTIVE task definitions are listed. By setting this parameter
 15032  	// to INACTIVE, you can view task definitions that are INACTIVE as long as an
 15033  	// active task or service still references them. If you paginate the resulting
 15034  	// output, be sure to keep the status value constant in each subsequent request.
 15035  	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
 15036  }
 15037  
 15038  // String returns the string representation.
 15039  //
 15040  // API parameter values that are decorated as "sensitive" in the API will not
 15041  // be included in the string output. The member name will be present, but the
 15042  // value will be replaced with "sensitive".
 15043  func (s ListTaskDefinitionsInput) String() string {
 15044  	return awsutil.Prettify(s)
 15045  }
 15046  
 15047  // GoString returns the string representation.
 15048  //
 15049  // API parameter values that are decorated as "sensitive" in the API will not
 15050  // be included in the string output. The member name will be present, but the
 15051  // value will be replaced with "sensitive".
 15052  func (s ListTaskDefinitionsInput) GoString() string {
 15053  	return s.String()
 15054  }
 15055  
 15056  // SetFamilyPrefix sets the FamilyPrefix field's value.
 15057  func (s *ListTaskDefinitionsInput) SetFamilyPrefix(v string) *ListTaskDefinitionsInput {
 15058  	s.FamilyPrefix = &v
 15059  	return s
 15060  }
 15061  
 15062  // SetMaxResults sets the MaxResults field's value.
 15063  func (s *ListTaskDefinitionsInput) SetMaxResults(v int64) *ListTaskDefinitionsInput {
 15064  	s.MaxResults = &v
 15065  	return s
 15066  }
 15067  
 15068  // SetNextToken sets the NextToken field's value.
 15069  func (s *ListTaskDefinitionsInput) SetNextToken(v string) *ListTaskDefinitionsInput {
 15070  	s.NextToken = &v
 15071  	return s
 15072  }
 15073  
 15074  // SetSort sets the Sort field's value.
 15075  func (s *ListTaskDefinitionsInput) SetSort(v string) *ListTaskDefinitionsInput {
 15076  	s.Sort = &v
 15077  	return s
 15078  }
 15079  
 15080  // SetStatus sets the Status field's value.
 15081  func (s *ListTaskDefinitionsInput) SetStatus(v string) *ListTaskDefinitionsInput {
 15082  	s.Status = &v
 15083  	return s
 15084  }
 15085  
 15086  type ListTaskDefinitionsOutput struct {
 15087  	_ struct{} `type:"structure"`
 15088  
 15089  	// The nextToken value to include in a future ListTaskDefinitions request. When
 15090  	// the results of a ListTaskDefinitions request exceed maxResults, this value
 15091  	// can be used to retrieve the next page of results. This value is null when
 15092  	// there are no more results to return.
 15093  	NextToken *string `locationName:"nextToken" type:"string"`
 15094  
 15095  	// The list of task definition Amazon Resource Name (ARN) entries for the ListTaskDefinitions
 15096  	// request.
 15097  	TaskDefinitionArns []*string `locationName:"taskDefinitionArns" type:"list"`
 15098  }
 15099  
 15100  // String returns the string representation.
 15101  //
 15102  // API parameter values that are decorated as "sensitive" in the API will not
 15103  // be included in the string output. The member name will be present, but the
 15104  // value will be replaced with "sensitive".
 15105  func (s ListTaskDefinitionsOutput) String() string {
 15106  	return awsutil.Prettify(s)
 15107  }
 15108  
 15109  // GoString returns the string representation.
 15110  //
 15111  // API parameter values that are decorated as "sensitive" in the API will not
 15112  // be included in the string output. The member name will be present, but the
 15113  // value will be replaced with "sensitive".
 15114  func (s ListTaskDefinitionsOutput) GoString() string {
 15115  	return s.String()
 15116  }
 15117  
 15118  // SetNextToken sets the NextToken field's value.
 15119  func (s *ListTaskDefinitionsOutput) SetNextToken(v string) *ListTaskDefinitionsOutput {
 15120  	s.NextToken = &v
 15121  	return s
 15122  }
 15123  
 15124  // SetTaskDefinitionArns sets the TaskDefinitionArns field's value.
 15125  func (s *ListTaskDefinitionsOutput) SetTaskDefinitionArns(v []*string) *ListTaskDefinitionsOutput {
 15126  	s.TaskDefinitionArns = v
 15127  	return s
 15128  }
 15129  
 15130  type ListTasksInput struct {
 15131  	_ struct{} `type:"structure"`
 15132  
 15133  	// The short name or full Amazon Resource Name (ARN) of the cluster to use when
 15134  	// filtering the ListTasks results. If you do not specify a cluster, the default
 15135  	// cluster is assumed.
 15136  	Cluster *string `locationName:"cluster" type:"string"`
 15137  
 15138  	// The container instance ID or full ARN of the container instance to use when
 15139  	// filtering the ListTasks results. Specifying a containerInstance limits the
 15140  	// results to tasks that belong to that container instance.
 15141  	ContainerInstance *string `locationName:"containerInstance" type:"string"`
 15142  
 15143  	// The task desired status to use when filtering the ListTasks results. Specifying
 15144  	// a desiredStatus of STOPPED limits the results to tasks that Amazon ECS has
 15145  	// set the desired status to STOPPED. This can be useful for debugging tasks
 15146  	// that are not starting properly or have died or finished. The default status
 15147  	// filter is RUNNING, which shows tasks that Amazon ECS has set the desired
 15148  	// status to RUNNING.
 15149  	//
 15150  	// Although you can filter results based on a desired status of PENDING, this
 15151  	// does not return any results. Amazon ECS never sets the desired status of
 15152  	// a task to that value (only a task's lastStatus may have a value of PENDING).
 15153  	DesiredStatus *string `locationName:"desiredStatus" type:"string" enum:"DesiredStatus"`
 15154  
 15155  	// The name of the task definition family to use when filtering the ListTasks
 15156  	// results. Specifying a family limits the results to tasks that belong to that
 15157  	// family.
 15158  	Family *string `locationName:"family" type:"string"`
 15159  
 15160  	// The launch type to use when filtering the ListTasks results.
 15161  	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
 15162  
 15163  	// The maximum number of task results returned by ListTasks in paginated output.
 15164  	// When this parameter is used, ListTasks only returns maxResults results in
 15165  	// a single page along with a nextToken response element. The remaining results
 15166  	// of the initial request can be seen by sending another ListTasks request with
 15167  	// the returned nextToken value. This value can be between 1 and 100. If this
 15168  	// parameter is not used, then ListTasks returns up to 100 results and a nextToken
 15169  	// value if applicable.
 15170  	MaxResults *int64 `locationName:"maxResults" type:"integer"`
 15171  
 15172  	// The nextToken value returned from a ListTasks request indicating that more
 15173  	// results are available to fulfill the request and further calls will be needed.
 15174  	// If maxResults was provided, it is possible the number of results to be fewer
 15175  	// than maxResults.
 15176  	//
 15177  	// This token should be treated as an opaque identifier that is only used to
 15178  	// retrieve the next items in a list and not for other programmatic purposes.
 15179  	NextToken *string `locationName:"nextToken" type:"string"`
 15180  
 15181  	// The name of the service to use when filtering the ListTasks results. Specifying
 15182  	// a serviceName limits the results to tasks that belong to that service.
 15183  	ServiceName *string `locationName:"serviceName" type:"string"`
 15184  
 15185  	// The startedBy value with which to filter the task results. Specifying a startedBy
 15186  	// value limits the results to tasks that were started with that value.
 15187  	StartedBy *string `locationName:"startedBy" type:"string"`
 15188  }
 15189  
 15190  // String returns the string representation.
 15191  //
 15192  // API parameter values that are decorated as "sensitive" in the API will not
 15193  // be included in the string output. The member name will be present, but the
 15194  // value will be replaced with "sensitive".
 15195  func (s ListTasksInput) String() string {
 15196  	return awsutil.Prettify(s)
 15197  }
 15198  
 15199  // GoString returns the string representation.
 15200  //
 15201  // API parameter values that are decorated as "sensitive" in the API will not
 15202  // be included in the string output. The member name will be present, but the
 15203  // value will be replaced with "sensitive".
 15204  func (s ListTasksInput) GoString() string {
 15205  	return s.String()
 15206  }
 15207  
 15208  // SetCluster sets the Cluster field's value.
 15209  func (s *ListTasksInput) SetCluster(v string) *ListTasksInput {
 15210  	s.Cluster = &v
 15211  	return s
 15212  }
 15213  
 15214  // SetContainerInstance sets the ContainerInstance field's value.
 15215  func (s *ListTasksInput) SetContainerInstance(v string) *ListTasksInput {
 15216  	s.ContainerInstance = &v
 15217  	return s
 15218  }
 15219  
 15220  // SetDesiredStatus sets the DesiredStatus field's value.
 15221  func (s *ListTasksInput) SetDesiredStatus(v string) *ListTasksInput {
 15222  	s.DesiredStatus = &v
 15223  	return s
 15224  }
 15225  
 15226  // SetFamily sets the Family field's value.
 15227  func (s *ListTasksInput) SetFamily(v string) *ListTasksInput {
 15228  	s.Family = &v
 15229  	return s
 15230  }
 15231  
 15232  // SetLaunchType sets the LaunchType field's value.
 15233  func (s *ListTasksInput) SetLaunchType(v string) *ListTasksInput {
 15234  	s.LaunchType = &v
 15235  	return s
 15236  }
 15237  
 15238  // SetMaxResults sets the MaxResults field's value.
 15239  func (s *ListTasksInput) SetMaxResults(v int64) *ListTasksInput {
 15240  	s.MaxResults = &v
 15241  	return s
 15242  }
 15243  
 15244  // SetNextToken sets the NextToken field's value.
 15245  func (s *ListTasksInput) SetNextToken(v string) *ListTasksInput {
 15246  	s.NextToken = &v
 15247  	return s
 15248  }
 15249  
 15250  // SetServiceName sets the ServiceName field's value.
 15251  func (s *ListTasksInput) SetServiceName(v string) *ListTasksInput {
 15252  	s.ServiceName = &v
 15253  	return s
 15254  }
 15255  
 15256  // SetStartedBy sets the StartedBy field's value.
 15257  func (s *ListTasksInput) SetStartedBy(v string) *ListTasksInput {
 15258  	s.StartedBy = &v
 15259  	return s
 15260  }
 15261  
 15262  type ListTasksOutput struct {
 15263  	_ struct{} `type:"structure"`
 15264  
 15265  	// The nextToken value to include in a future ListTasks request. When the results
 15266  	// of a ListTasks request exceed maxResults, this value can be used to retrieve
 15267  	// the next page of results. This value is null when there are no more results
 15268  	// to return.
 15269  	NextToken *string `locationName:"nextToken" type:"string"`
 15270  
 15271  	// The list of task ARN entries for the ListTasks request.
 15272  	TaskArns []*string `locationName:"taskArns" type:"list"`
 15273  }
 15274  
 15275  // String returns the string representation.
 15276  //
 15277  // API parameter values that are decorated as "sensitive" in the API will not
 15278  // be included in the string output. The member name will be present, but the
 15279  // value will be replaced with "sensitive".
 15280  func (s ListTasksOutput) String() string {
 15281  	return awsutil.Prettify(s)
 15282  }
 15283  
 15284  // GoString returns the string representation.
 15285  //
 15286  // API parameter values that are decorated as "sensitive" in the API will not
 15287  // be included in the string output. The member name will be present, but the
 15288  // value will be replaced with "sensitive".
 15289  func (s ListTasksOutput) GoString() string {
 15290  	return s.String()
 15291  }
 15292  
 15293  // SetNextToken sets the NextToken field's value.
 15294  func (s *ListTasksOutput) SetNextToken(v string) *ListTasksOutput {
 15295  	s.NextToken = &v
 15296  	return s
 15297  }
 15298  
 15299  // SetTaskArns sets the TaskArns field's value.
 15300  func (s *ListTasksOutput) SetTaskArns(v []*string) *ListTasksOutput {
 15301  	s.TaskArns = v
 15302  	return s
 15303  }
 15304  
 15305  // The load balancer configuration to use with a service or task set.
 15306  //
 15307  // For specific notes and restrictions regarding the use of load balancers with
 15308  // services and task sets, see the CreateService and CreateTaskSet actions.
 15309  type LoadBalancer struct {
 15310  	_ struct{} `type:"structure"`
 15311  
 15312  	// The name of the container (as it appears in a container definition) to associate
 15313  	// with the load balancer.
 15314  	ContainerName *string `locationName:"containerName" type:"string"`
 15315  
 15316  	// The port on the container to associate with the load balancer. This port
 15317  	// must correspond to a containerPort in the task definition the tasks in the
 15318  	// service are using. For tasks that use the EC2 launch type, the container
 15319  	// instance they are launched on must allow ingress traffic on the hostPort
 15320  	// of the port mapping.
 15321  	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
 15322  
 15323  	// The name of the load balancer to associate with the Amazon ECS service or
 15324  	// task set.
 15325  	//
 15326  	// A load balancer name is only specified when using a Classic Load Balancer.
 15327  	// If you are using an Application Load Balancer or a Network Load Balancer
 15328  	// the load balancer name parameter should be omitted.
 15329  	LoadBalancerName *string `locationName:"loadBalancerName" type:"string"`
 15330  
 15331  	// The full Amazon Resource Name (ARN) of the Elastic Load Balancing target
 15332  	// group or groups associated with a service or task set.
 15333  	//
 15334  	// A target group ARN is only specified when using an Application Load Balancer
 15335  	// or Network Load Balancer. If you are using a Classic Load Balancer the target
 15336  	// group ARN should be omitted.
 15337  	//
 15338  	// For services using the ECS deployment controller, you can specify one or
 15339  	// multiple target groups. For more information, see Registering Multiple Target
 15340  	// Groups with a Service (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html)
 15341  	// in the Amazon Elastic Container Service Developer Guide.
 15342  	//
 15343  	// For services using the CODE_DEPLOY deployment controller, you are required
 15344  	// to define two target groups for the load balancer. For more information,
 15345  	// see Blue/Green Deployment with CodeDeploy (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html)
 15346  	// in the Amazon Elastic Container Service Developer Guide.
 15347  	//
 15348  	// If your service's task definition uses the awsvpc network mode (which is
 15349  	// required for the Fargate launch type), you must choose ip as the target type,
 15350  	// not instance, when creating your target groups because tasks that use the
 15351  	// awsvpc network mode are associated with an elastic network interface, not
 15352  	// an Amazon EC2 instance.
 15353  	TargetGroupArn *string `locationName:"targetGroupArn" type:"string"`
 15354  }
 15355  
 15356  // String returns the string representation.
 15357  //
 15358  // API parameter values that are decorated as "sensitive" in the API will not
 15359  // be included in the string output. The member name will be present, but the
 15360  // value will be replaced with "sensitive".
 15361  func (s LoadBalancer) String() string {
 15362  	return awsutil.Prettify(s)
 15363  }
 15364  
 15365  // GoString returns the string representation.
 15366  //
 15367  // API parameter values that are decorated as "sensitive" in the API will not
 15368  // be included in the string output. The member name will be present, but the
 15369  // value will be replaced with "sensitive".
 15370  func (s LoadBalancer) GoString() string {
 15371  	return s.String()
 15372  }
 15373  
 15374  // SetContainerName sets the ContainerName field's value.
 15375  func (s *LoadBalancer) SetContainerName(v string) *LoadBalancer {
 15376  	s.ContainerName = &v
 15377  	return s
 15378  }
 15379  
 15380  // SetContainerPort sets the ContainerPort field's value.
 15381  func (s *LoadBalancer) SetContainerPort(v int64) *LoadBalancer {
 15382  	s.ContainerPort = &v
 15383  	return s
 15384  }
 15385  
 15386  // SetLoadBalancerName sets the LoadBalancerName field's value.
 15387  func (s *LoadBalancer) SetLoadBalancerName(v string) *LoadBalancer {
 15388  	s.LoadBalancerName = &v
 15389  	return s
 15390  }
 15391  
 15392  // SetTargetGroupArn sets the TargetGroupArn field's value.
 15393  func (s *LoadBalancer) SetTargetGroupArn(v string) *LoadBalancer {
 15394  	s.TargetGroupArn = &v
 15395  	return s
 15396  }
 15397  
 15398  // The log configuration for the container. This parameter maps to LogConfig
 15399  // in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
 15400  // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
 15401  // and the --log-driver option to docker run (https://docs.docker.com/engine/reference/commandline/run/).
 15402  //
 15403  // By default, containers use the same logging driver that the Docker daemon
 15404  // uses; however the container may use a different logging driver than the Docker
 15405  // daemon by specifying a log driver configuration in the container definition.
 15406  // For more information on the options for different supported log drivers,
 15407  // see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
 15408  // in the Docker documentation.
 15409  //
 15410  // The following should be noted when specifying a log configuration for your
 15411  // containers:
 15412  //
 15413  //    * Amazon ECS currently supports a subset of the logging drivers available
 15414  //    to the Docker daemon (shown in the valid values below). Additional log
 15415  //    drivers may be available in future releases of the Amazon ECS container
 15416  //    agent.
 15417  //
 15418  //    * This parameter requires version 1.18 of the Docker Remote API or greater
 15419  //    on your container instance.
 15420  //
 15421  //    * For tasks hosted on Amazon EC2 instances, the Amazon ECS container agent
 15422  //    must register the available logging drivers with the ECS_AVAILABLE_LOGGING_DRIVERS
 15423  //    environment variable before containers placed on that instance can use
 15424  //    these log configuration options. For more information, see Amazon ECS
 15425  //    container agent configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
 15426  //    in the Amazon Elastic Container Service Developer Guide.
 15427  //
 15428  //    * For tasks on Fargate, because you do not have access to the underlying
 15429  //    infrastructure your tasks are hosted on, any additional software needed
 15430  //    will have to be installed outside of the task. For example, the Fluentd
 15431  //    output aggregators or a remote host running Logstash to send Gelf logs
 15432  //    to.
 15433  type LogConfiguration struct {
 15434  	_ struct{} `type:"structure"`
 15435  
 15436  	// The log driver to use for the container.
 15437  	//
 15438  	// For tasks on Fargate, the supported log drivers are awslogs, splunk, and
 15439  	// awsfirelens.
 15440  	//
 15441  	// For tasks hosted on Amazon EC2 instances, the supported log drivers are awslogs,
 15442  	// fluentd, gelf, json-file, journald, logentries,syslog, splunk, and awsfirelens.
 15443  	//
 15444  	// For more information about using the awslogs log driver, see Using the awslogs
 15445  	// log driver (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html)
 15446  	// in the Amazon Elastic Container Service Developer Guide.
 15447  	//
 15448  	// For more information about using the awsfirelens log driver, see Custom log
 15449  	// routing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html)
 15450  	// in the Amazon Elastic Container Service Developer Guide.
 15451  	//
 15452  	// If you have a custom driver that is not listed, you can fork the Amazon ECS
 15453  	// container agent project that is available on GitHub (https://github.com/aavshr/amazon-ecs-agent)
 15454  	// and customize it to work with that driver. We encourage you to submit pull
 15455  	// requests for changes that you would like to have included. However, we do
 15456  	// not currently provide support for running modified copies of this software.
 15457  	//
 15458  	// LogDriver is a required field
 15459  	LogDriver *string `locationName:"logDriver" type:"string" required:"true" enum:"LogDriver"`
 15460  
 15461  	// The configuration options to send to the log driver. This parameter requires
 15462  	// version 1.19 of the Docker Remote API or greater on your container instance.
 15463  	// To check the Docker Remote API version on your container instance, log in
 15464  	// to your container instance and run the following command: sudo docker version
 15465  	// --format '{{.Server.APIVersion}}'
 15466  	Options map[string]*string `locationName:"options" type:"map"`
 15467  
 15468  	// The secrets to pass to the log configuration. For more information, see Specifying
 15469  	// Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
 15470  	// in the Amazon Elastic Container Service Developer Guide.
 15471  	SecretOptions []*Secret `locationName:"secretOptions" type:"list"`
 15472  }
 15473  
 15474  // String returns the string representation.
 15475  //
 15476  // API parameter values that are decorated as "sensitive" in the API will not
 15477  // be included in the string output. The member name will be present, but the
 15478  // value will be replaced with "sensitive".
 15479  func (s LogConfiguration) String() string {
 15480  	return awsutil.Prettify(s)
 15481  }
 15482  
 15483  // GoString returns the string representation.
 15484  //
 15485  // API parameter values that are decorated as "sensitive" in the API will not
 15486  // be included in the string output. The member name will be present, but the
 15487  // value will be replaced with "sensitive".
 15488  func (s LogConfiguration) GoString() string {
 15489  	return s.String()
 15490  }
 15491  
 15492  // Validate inspects the fields of the type to determine if they are valid.
 15493  func (s *LogConfiguration) Validate() error {
 15494  	invalidParams := request.ErrInvalidParams{Context: "LogConfiguration"}
 15495  	if s.LogDriver == nil {
 15496  		invalidParams.Add(request.NewErrParamRequired("LogDriver"))
 15497  	}
 15498  	if s.SecretOptions != nil {
 15499  		for i, v := range s.SecretOptions {
 15500  			if v == nil {
 15501  				continue
 15502  			}
 15503  			if err := v.Validate(); err != nil {
 15504  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecretOptions", i), err.(request.ErrInvalidParams))
 15505  			}
 15506  		}
 15507  	}
 15508  
 15509  	if invalidParams.Len() > 0 {
 15510  		return invalidParams
 15511  	}
 15512  	return nil
 15513  }
 15514  
 15515  // SetLogDriver sets the LogDriver field's value.
 15516  func (s *LogConfiguration) SetLogDriver(v string) *LogConfiguration {
 15517  	s.LogDriver = &v
 15518  	return s
 15519  }
 15520  
 15521  // SetOptions sets the Options field's value.
 15522  func (s *LogConfiguration) SetOptions(v map[string]*string) *LogConfiguration {
 15523  	s.Options = v
 15524  	return s
 15525  }
 15526  
 15527  // SetSecretOptions sets the SecretOptions field's value.
 15528  func (s *LogConfiguration) SetSecretOptions(v []*Secret) *LogConfiguration {
 15529  	s.SecretOptions = v
 15530  	return s
 15531  }
 15532  
 15533  // Details about the managed agent status for the container.
 15534  type ManagedAgent struct {
 15535  	_ struct{} `type:"structure"`
 15536  
 15537  	// The Unix timestamp for when the managed agent was last started.
 15538  	LastStartedAt *time.Time `locationName:"lastStartedAt" type:"timestamp"`
 15539  
 15540  	// The last known status of the managed agent.
 15541  	LastStatus *string `locationName:"lastStatus" type:"string"`
 15542  
 15543  	// The name of the managed agent. When the execute command feature is enabled,
 15544  	// the managed agent name is ExecuteCommandAgent.
 15545  	Name *string `locationName:"name" type:"string" enum:"ManagedAgentName"`
 15546  
 15547  	// The reason for why the managed agent is in the state it is in.
 15548  	Reason *string `locationName:"reason" type:"string"`
 15549  }
 15550  
 15551  // String returns the string representation.
 15552  //
 15553  // API parameter values that are decorated as "sensitive" in the API will not
 15554  // be included in the string output. The member name will be present, but the
 15555  // value will be replaced with "sensitive".
 15556  func (s ManagedAgent) String() string {
 15557  	return awsutil.Prettify(s)
 15558  }
 15559  
 15560  // GoString returns the string representation.
 15561  //
 15562  // API parameter values that are decorated as "sensitive" in the API will not
 15563  // be included in the string output. The member name will be present, but the
 15564  // value will be replaced with "sensitive".
 15565  func (s ManagedAgent) GoString() string {
 15566  	return s.String()
 15567  }
 15568  
 15569  // SetLastStartedAt sets the LastStartedAt field's value.
 15570  func (s *ManagedAgent) SetLastStartedAt(v time.Time) *ManagedAgent {
 15571  	s.LastStartedAt = &v
 15572  	return s
 15573  }
 15574  
 15575  // SetLastStatus sets the LastStatus field's value.
 15576  func (s *ManagedAgent) SetLastStatus(v string) *ManagedAgent {
 15577  	s.LastStatus = &v
 15578  	return s
 15579  }
 15580  
 15581  // SetName sets the Name field's value.
 15582  func (s *ManagedAgent) SetName(v string) *ManagedAgent {
 15583  	s.Name = &v
 15584  	return s
 15585  }
 15586  
 15587  // SetReason sets the Reason field's value.
 15588  func (s *ManagedAgent) SetReason(v string) *ManagedAgent {
 15589  	s.Reason = &v
 15590  	return s
 15591  }
 15592  
 15593  // An object representing a change in state for a managed agent.
 15594  type ManagedAgentStateChange struct {
 15595  	_ struct{} `type:"structure"`
 15596  
 15597  	// The name of the container associated with the managed agent.
 15598  	//
 15599  	// ContainerName is a required field
 15600  	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
 15601  
 15602  	// The name of the managed agent.
 15603  	//
 15604  	// ManagedAgentName is a required field
 15605  	ManagedAgentName *string `locationName:"managedAgentName" type:"string" required:"true" enum:"ManagedAgentName"`
 15606  
 15607  	// The reason for the status of the managed agent.
 15608  	Reason *string `locationName:"reason" type:"string"`
 15609  
 15610  	// The status of the managed agent.
 15611  	//
 15612  	// Status is a required field
 15613  	Status *string `locationName:"status" type:"string" required:"true"`
 15614  }
 15615  
 15616  // String returns the string representation.
 15617  //
 15618  // API parameter values that are decorated as "sensitive" in the API will not
 15619  // be included in the string output. The member name will be present, but the
 15620  // value will be replaced with "sensitive".
 15621  func (s ManagedAgentStateChange) String() string {
 15622  	return awsutil.Prettify(s)
 15623  }
 15624  
 15625  // GoString returns the string representation.
 15626  //
 15627  // API parameter values that are decorated as "sensitive" in the API will not
 15628  // be included in the string output. The member name will be present, but the
 15629  // value will be replaced with "sensitive".
 15630  func (s ManagedAgentStateChange) GoString() string {
 15631  	return s.String()
 15632  }
 15633  
 15634  // Validate inspects the fields of the type to determine if they are valid.
 15635  func (s *ManagedAgentStateChange) Validate() error {
 15636  	invalidParams := request.ErrInvalidParams{Context: "ManagedAgentStateChange"}
 15637  	if s.ContainerName == nil {
 15638  		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
 15639  	}
 15640  	if s.ManagedAgentName == nil {
 15641  		invalidParams.Add(request.NewErrParamRequired("ManagedAgentName"))
 15642  	}
 15643  	if s.Status == nil {
 15644  		invalidParams.Add(request.NewErrParamRequired("Status"))
 15645  	}
 15646  
 15647  	if invalidParams.Len() > 0 {
 15648  		return invalidParams
 15649  	}
 15650  	return nil
 15651  }
 15652  
 15653  // SetContainerName sets the ContainerName field's value.
 15654  func (s *ManagedAgentStateChange) SetContainerName(v string) *ManagedAgentStateChange {
 15655  	s.ContainerName = &v
 15656  	return s
 15657  }
 15658  
 15659  // SetManagedAgentName sets the ManagedAgentName field's value.
 15660  func (s *ManagedAgentStateChange) SetManagedAgentName(v string) *ManagedAgentStateChange {
 15661  	s.ManagedAgentName = &v
 15662  	return s
 15663  }
 15664  
 15665  // SetReason sets the Reason field's value.
 15666  func (s *ManagedAgentStateChange) SetReason(v string) *ManagedAgentStateChange {
 15667  	s.Reason = &v
 15668  	return s
 15669  }
 15670  
 15671  // SetStatus sets the Status field's value.
 15672  func (s *ManagedAgentStateChange) SetStatus(v string) *ManagedAgentStateChange {
 15673  	s.Status = &v
 15674  	return s
 15675  }
 15676  
 15677  // The managed scaling settings for the Auto Scaling group capacity provider.
 15678  //
 15679  // When managed scaling is enabled, Amazon ECS manages the scale-in and scale-out
 15680  // actions of the Auto Scaling group. Amazon ECS manages a target tracking scaling
 15681  // policy using an Amazon ECS-managed CloudWatch metric with the specified targetCapacity
 15682  // value as the target value for the metric. For more information, see Using
 15683  // Managed Scaling (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/asg-capacity-providers.html#asg-capacity-providers-managed-scaling)
 15684  // in the Amazon Elastic Container Service Developer Guide.
 15685  //
 15686  // If managed scaling is disabled, the user must manage the scaling of the Auto
 15687  // Scaling group.
 15688  type ManagedScaling struct {
 15689  	_ struct{} `type:"structure"`
 15690  
 15691  	// The period of time, in seconds, after a newly launched Amazon EC2 instance
 15692  	// can contribute to CloudWatch metrics for Auto Scaling group. If this parameter
 15693  	// is omitted, the default value of 300 seconds is used.
 15694  	InstanceWarmupPeriod *int64 `locationName:"instanceWarmupPeriod" type:"integer"`
 15695  
 15696  	// The maximum number of container instances that Amazon ECS will scale in or
 15697  	// scale out at one time. If this parameter is omitted, the default value of
 15698  	// 10000 is used.
 15699  	MaximumScalingStepSize *int64 `locationName:"maximumScalingStepSize" min:"1" type:"integer"`
 15700  
 15701  	// The minimum number of container instances that Amazon ECS will scale in or
 15702  	// scale out at one time. If this parameter is omitted, the default value of
 15703  	// 1 is used.
 15704  	MinimumScalingStepSize *int64 `locationName:"minimumScalingStepSize" min:"1" type:"integer"`
 15705  
 15706  	// Whether or not to enable managed scaling for the capacity provider.
 15707  	Status *string `locationName:"status" type:"string" enum:"ManagedScalingStatus"`
 15708  
 15709  	// The target capacity value for the capacity provider. The specified value
 15710  	// must be greater than 0 and less than or equal to 100. A value of 100 will
 15711  	// result in the Amazon EC2 instances in your Auto Scaling group being completely
 15712  	// utilized.
 15713  	TargetCapacity *int64 `locationName:"targetCapacity" min:"1" type:"integer"`
 15714  }
 15715  
 15716  // String returns the string representation.
 15717  //
 15718  // API parameter values that are decorated as "sensitive" in the API will not
 15719  // be included in the string output. The member name will be present, but the
 15720  // value will be replaced with "sensitive".
 15721  func (s ManagedScaling) String() string {
 15722  	return awsutil.Prettify(s)
 15723  }
 15724  
 15725  // GoString returns the string representation.
 15726  //
 15727  // API parameter values that are decorated as "sensitive" in the API will not
 15728  // be included in the string output. The member name will be present, but the
 15729  // value will be replaced with "sensitive".
 15730  func (s ManagedScaling) GoString() string {
 15731  	return s.String()
 15732  }
 15733  
 15734  // Validate inspects the fields of the type to determine if they are valid.
 15735  func (s *ManagedScaling) Validate() error {
 15736  	invalidParams := request.ErrInvalidParams{Context: "ManagedScaling"}
 15737  	if s.MaximumScalingStepSize != nil && *s.MaximumScalingStepSize < 1 {
 15738  		invalidParams.Add(request.NewErrParamMinValue("MaximumScalingStepSize", 1))
 15739  	}
 15740  	if s.MinimumScalingStepSize != nil && *s.MinimumScalingStepSize < 1 {
 15741  		invalidParams.Add(request.NewErrParamMinValue("MinimumScalingStepSize", 1))
 15742  	}
 15743  	if s.TargetCapacity != nil && *s.TargetCapacity < 1 {
 15744  		invalidParams.Add(request.NewErrParamMinValue("TargetCapacity", 1))
 15745  	}
 15746  
 15747  	if invalidParams.Len() > 0 {
 15748  		return invalidParams
 15749  	}
 15750  	return nil
 15751  }
 15752  
 15753  // SetInstanceWarmupPeriod sets the InstanceWarmupPeriod field's value.
 15754  func (s *ManagedScaling) SetInstanceWarmupPeriod(v int64) *ManagedScaling {
 15755  	s.InstanceWarmupPeriod = &v
 15756  	return s
 15757  }
 15758  
 15759  // SetMaximumScalingStepSize sets the MaximumScalingStepSize field's value.
 15760  func (s *ManagedScaling) SetMaximumScalingStepSize(v int64) *ManagedScaling {
 15761  	s.MaximumScalingStepSize = &v
 15762  	return s
 15763  }
 15764  
 15765  // SetMinimumScalingStepSize sets the MinimumScalingStepSize field's value.
 15766  func (s *ManagedScaling) SetMinimumScalingStepSize(v int64) *ManagedScaling {
 15767  	s.MinimumScalingStepSize = &v
 15768  	return s
 15769  }
 15770  
 15771  // SetStatus sets the Status field's value.
 15772  func (s *ManagedScaling) SetStatus(v string) *ManagedScaling {
 15773  	s.Status = &v
 15774  	return s
 15775  }
 15776  
 15777  // SetTargetCapacity sets the TargetCapacity field's value.
 15778  func (s *ManagedScaling) SetTargetCapacity(v int64) *ManagedScaling {
 15779  	s.TargetCapacity = &v
 15780  	return s
 15781  }
 15782  
 15783  // Amazon ECS is unable to determine the current version of the Amazon ECS container
 15784  // agent on the container instance and does not have enough information to proceed
 15785  // with an update. This could be because the agent running on the container
 15786  // instance is an older or custom version that does not use our version information.
 15787  type MissingVersionException struct {
 15788  	_            struct{}                  `type:"structure"`
 15789  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 15790  
 15791  	Message_ *string `locationName:"message" type:"string"`
 15792  }
 15793  
 15794  // String returns the string representation.
 15795  //
 15796  // API parameter values that are decorated as "sensitive" in the API will not
 15797  // be included in the string output. The member name will be present, but the
 15798  // value will be replaced with "sensitive".
 15799  func (s MissingVersionException) String() string {
 15800  	return awsutil.Prettify(s)
 15801  }
 15802  
 15803  // GoString returns the string representation.
 15804  //
 15805  // API parameter values that are decorated as "sensitive" in the API will not
 15806  // be included in the string output. The member name will be present, but the
 15807  // value will be replaced with "sensitive".
 15808  func (s MissingVersionException) GoString() string {
 15809  	return s.String()
 15810  }
 15811  
 15812  func newErrorMissingVersionException(v protocol.ResponseMetadata) error {
 15813  	return &MissingVersionException{
 15814  		RespMetadata: v,
 15815  	}
 15816  }
 15817  
 15818  // Code returns the exception type name.
 15819  func (s *MissingVersionException) Code() string {
 15820  	return "MissingVersionException"
 15821  }
 15822  
 15823  // Message returns the exception's message.
 15824  func (s *MissingVersionException) Message() string {
 15825  	if s.Message_ != nil {
 15826  		return *s.Message_
 15827  	}
 15828  	return ""
 15829  }
 15830  
 15831  // OrigErr always returns nil, satisfies awserr.Error interface.
 15832  func (s *MissingVersionException) OrigErr() error {
 15833  	return nil
 15834  }
 15835  
 15836  func (s *MissingVersionException) Error() string {
 15837  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 15838  }
 15839  
 15840  // Status code returns the HTTP status code for the request's response error.
 15841  func (s *MissingVersionException) StatusCode() int {
 15842  	return s.RespMetadata.StatusCode
 15843  }
 15844  
 15845  // RequestID returns the service's response RequestID for request.
 15846  func (s *MissingVersionException) RequestID() string {
 15847  	return s.RespMetadata.RequestID
 15848  }
 15849  
 15850  // Details on a volume mount point that is used in a container definition.
 15851  type MountPoint struct {
 15852  	_ struct{} `type:"structure"`
 15853  
 15854  	// The path on the container to mount the host volume at.
 15855  	ContainerPath *string `locationName:"containerPath" type:"string"`
 15856  
 15857  	// If this value is true, the container has read-only access to the volume.
 15858  	// If this value is false, then the container can write to the volume. The default
 15859  	// value is false.
 15860  	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
 15861  
 15862  	// The name of the volume to mount. Must be a volume name referenced in the
 15863  	// name parameter of task definition volume.
 15864  	SourceVolume *string `locationName:"sourceVolume" type:"string"`
 15865  }
 15866  
 15867  // String returns the string representation.
 15868  //
 15869  // API parameter values that are decorated as "sensitive" in the API will not
 15870  // be included in the string output. The member name will be present, but the
 15871  // value will be replaced with "sensitive".
 15872  func (s MountPoint) String() string {
 15873  	return awsutil.Prettify(s)
 15874  }
 15875  
 15876  // GoString returns the string representation.
 15877  //
 15878  // API parameter values that are decorated as "sensitive" in the API will not
 15879  // be included in the string output. The member name will be present, but the
 15880  // value will be replaced with "sensitive".
 15881  func (s MountPoint) GoString() string {
 15882  	return s.String()
 15883  }
 15884  
 15885  // SetContainerPath sets the ContainerPath field's value.
 15886  func (s *MountPoint) SetContainerPath(v string) *MountPoint {
 15887  	s.ContainerPath = &v
 15888  	return s
 15889  }
 15890  
 15891  // SetReadOnly sets the ReadOnly field's value.
 15892  func (s *MountPoint) SetReadOnly(v bool) *MountPoint {
 15893  	s.ReadOnly = &v
 15894  	return s
 15895  }
 15896  
 15897  // SetSourceVolume sets the SourceVolume field's value.
 15898  func (s *MountPoint) SetSourceVolume(v string) *MountPoint {
 15899  	s.SourceVolume = &v
 15900  	return s
 15901  }
 15902  
 15903  // Details on the network bindings between a container and its host container
 15904  // instance. After a task reaches the RUNNING status, manual and automatic host
 15905  // and container port assignments are visible in the networkBindings section
 15906  // of DescribeTasks API responses.
 15907  type NetworkBinding struct {
 15908  	_ struct{} `type:"structure"`
 15909  
 15910  	// The IP address that the container is bound to on the container instance.
 15911  	BindIP *string `locationName:"bindIP" type:"string"`
 15912  
 15913  	// The port number on the container that is used with the network binding.
 15914  	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
 15915  
 15916  	// The port number on the host that is used with the network binding.
 15917  	HostPort *int64 `locationName:"hostPort" type:"integer"`
 15918  
 15919  	// The protocol used for the network binding.
 15920  	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
 15921  }
 15922  
 15923  // String returns the string representation.
 15924  //
 15925  // API parameter values that are decorated as "sensitive" in the API will not
 15926  // be included in the string output. The member name will be present, but the
 15927  // value will be replaced with "sensitive".
 15928  func (s NetworkBinding) String() string {
 15929  	return awsutil.Prettify(s)
 15930  }
 15931  
 15932  // GoString returns the string representation.
 15933  //
 15934  // API parameter values that are decorated as "sensitive" in the API will not
 15935  // be included in the string output. The member name will be present, but the
 15936  // value will be replaced with "sensitive".
 15937  func (s NetworkBinding) GoString() string {
 15938  	return s.String()
 15939  }
 15940  
 15941  // SetBindIP sets the BindIP field's value.
 15942  func (s *NetworkBinding) SetBindIP(v string) *NetworkBinding {
 15943  	s.BindIP = &v
 15944  	return s
 15945  }
 15946  
 15947  // SetContainerPort sets the ContainerPort field's value.
 15948  func (s *NetworkBinding) SetContainerPort(v int64) *NetworkBinding {
 15949  	s.ContainerPort = &v
 15950  	return s
 15951  }
 15952  
 15953  // SetHostPort sets the HostPort field's value.
 15954  func (s *NetworkBinding) SetHostPort(v int64) *NetworkBinding {
 15955  	s.HostPort = &v
 15956  	return s
 15957  }
 15958  
 15959  // SetProtocol sets the Protocol field's value.
 15960  func (s *NetworkBinding) SetProtocol(v string) *NetworkBinding {
 15961  	s.Protocol = &v
 15962  	return s
 15963  }
 15964  
 15965  // An object representing the network configuration for a task or service.
 15966  type NetworkConfiguration struct {
 15967  	_ struct{} `type:"structure"`
 15968  
 15969  	// The VPC subnets and security groups associated with a task.
 15970  	//
 15971  	// All specified subnets and security groups must be from the same VPC.
 15972  	AwsvpcConfiguration *AwsVpcConfiguration `locationName:"awsvpcConfiguration" type:"structure"`
 15973  }
 15974  
 15975  // String returns the string representation.
 15976  //
 15977  // API parameter values that are decorated as "sensitive" in the API will not
 15978  // be included in the string output. The member name will be present, but the
 15979  // value will be replaced with "sensitive".
 15980  func (s NetworkConfiguration) String() string {
 15981  	return awsutil.Prettify(s)
 15982  }
 15983  
 15984  // GoString returns the string representation.
 15985  //
 15986  // API parameter values that are decorated as "sensitive" in the API will not
 15987  // be included in the string output. The member name will be present, but the
 15988  // value will be replaced with "sensitive".
 15989  func (s NetworkConfiguration) GoString() string {
 15990  	return s.String()
 15991  }
 15992  
 15993  // Validate inspects the fields of the type to determine if they are valid.
 15994  func (s *NetworkConfiguration) Validate() error {
 15995  	invalidParams := request.ErrInvalidParams{Context: "NetworkConfiguration"}
 15996  	if s.AwsvpcConfiguration != nil {
 15997  		if err := s.AwsvpcConfiguration.Validate(); err != nil {
 15998  			invalidParams.AddNested("AwsvpcConfiguration", err.(request.ErrInvalidParams))
 15999  		}
 16000  	}
 16001  
 16002  	if invalidParams.Len() > 0 {
 16003  		return invalidParams
 16004  	}
 16005  	return nil
 16006  }
 16007  
 16008  // SetAwsvpcConfiguration sets the AwsvpcConfiguration field's value.
 16009  func (s *NetworkConfiguration) SetAwsvpcConfiguration(v *AwsVpcConfiguration) *NetworkConfiguration {
 16010  	s.AwsvpcConfiguration = v
 16011  	return s
 16012  }
 16013  
 16014  // An object representing the elastic network interface for tasks that use the
 16015  // awsvpc network mode.
 16016  type NetworkInterface struct {
 16017  	_ struct{} `type:"structure"`
 16018  
 16019  	// The attachment ID for the network interface.
 16020  	AttachmentId *string `locationName:"attachmentId" type:"string"`
 16021  
 16022  	// The private IPv6 address for the network interface.
 16023  	Ipv6Address *string `locationName:"ipv6Address" type:"string"`
 16024  
 16025  	// The private IPv4 address for the network interface.
 16026  	PrivateIpv4Address *string `locationName:"privateIpv4Address" type:"string"`
 16027  }
 16028  
 16029  // String returns the string representation.
 16030  //
 16031  // API parameter values that are decorated as "sensitive" in the API will not
 16032  // be included in the string output. The member name will be present, but the
 16033  // value will be replaced with "sensitive".
 16034  func (s NetworkInterface) String() string {
 16035  	return awsutil.Prettify(s)
 16036  }
 16037  
 16038  // GoString returns the string representation.
 16039  //
 16040  // API parameter values that are decorated as "sensitive" in the API will not
 16041  // be included in the string output. The member name will be present, but the
 16042  // value will be replaced with "sensitive".
 16043  func (s NetworkInterface) GoString() string {
 16044  	return s.String()
 16045  }
 16046  
 16047  // SetAttachmentId sets the AttachmentId field's value.
 16048  func (s *NetworkInterface) SetAttachmentId(v string) *NetworkInterface {
 16049  	s.AttachmentId = &v
 16050  	return s
 16051  }
 16052  
 16053  // SetIpv6Address sets the Ipv6Address field's value.
 16054  func (s *NetworkInterface) SetIpv6Address(v string) *NetworkInterface {
 16055  	s.Ipv6Address = &v
 16056  	return s
 16057  }
 16058  
 16059  // SetPrivateIpv4Address sets the PrivateIpv4Address field's value.
 16060  func (s *NetworkInterface) SetPrivateIpv4Address(v string) *NetworkInterface {
 16061  	s.PrivateIpv4Address = &v
 16062  	return s
 16063  }
 16064  
 16065  // There is no update available for this Amazon ECS container agent. This could
 16066  // be because the agent is already running the latest version, or it is so old
 16067  // that there is no update path to the current version.
 16068  type NoUpdateAvailableException struct {
 16069  	_            struct{}                  `type:"structure"`
 16070  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 16071  
 16072  	Message_ *string `locationName:"message" type:"string"`
 16073  }
 16074  
 16075  // String returns the string representation.
 16076  //
 16077  // API parameter values that are decorated as "sensitive" in the API will not
 16078  // be included in the string output. The member name will be present, but the
 16079  // value will be replaced with "sensitive".
 16080  func (s NoUpdateAvailableException) String() string {
 16081  	return awsutil.Prettify(s)
 16082  }
 16083  
 16084  // GoString returns the string representation.
 16085  //
 16086  // API parameter values that are decorated as "sensitive" in the API will not
 16087  // be included in the string output. The member name will be present, but the
 16088  // value will be replaced with "sensitive".
 16089  func (s NoUpdateAvailableException) GoString() string {
 16090  	return s.String()
 16091  }
 16092  
 16093  func newErrorNoUpdateAvailableException(v protocol.ResponseMetadata) error {
 16094  	return &NoUpdateAvailableException{
 16095  		RespMetadata: v,
 16096  	}
 16097  }
 16098  
 16099  // Code returns the exception type name.
 16100  func (s *NoUpdateAvailableException) Code() string {
 16101  	return "NoUpdateAvailableException"
 16102  }
 16103  
 16104  // Message returns the exception's message.
 16105  func (s *NoUpdateAvailableException) Message() string {
 16106  	if s.Message_ != nil {
 16107  		return *s.Message_
 16108  	}
 16109  	return ""
 16110  }
 16111  
 16112  // OrigErr always returns nil, satisfies awserr.Error interface.
 16113  func (s *NoUpdateAvailableException) OrigErr() error {
 16114  	return nil
 16115  }
 16116  
 16117  func (s *NoUpdateAvailableException) Error() string {
 16118  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 16119  }
 16120  
 16121  // Status code returns the HTTP status code for the request's response error.
 16122  func (s *NoUpdateAvailableException) StatusCode() int {
 16123  	return s.RespMetadata.StatusCode
 16124  }
 16125  
 16126  // RequestID returns the service's response RequestID for request.
 16127  func (s *NoUpdateAvailableException) RequestID() string {
 16128  	return s.RespMetadata.RequestID
 16129  }
 16130  
 16131  // An object representing a constraint on task placement. For more information,
 16132  // see Task Placement Constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
 16133  // in the Amazon Elastic Container Service Developer Guide.
 16134  //
 16135  // If you are using the Fargate launch type, task placement constraints are
 16136  // not supported.
 16137  type PlacementConstraint struct {
 16138  	_ struct{} `type:"structure"`
 16139  
 16140  	// A cluster query language expression to apply to the constraint. The expression
 16141  	// can have a maximum length of 2000 characters. You can't specify an expression
 16142  	// if the constraint type is distinctInstance. For more information, see Cluster
 16143  	// query language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
 16144  	// in the Amazon Elastic Container Service Developer Guide.
 16145  	Expression *string `locationName:"expression" type:"string"`
 16146  
 16147  	// The type of constraint. Use distinctInstance to ensure that each task in
 16148  	// a particular group is running on a different container instance. Use memberOf
 16149  	// to restrict the selection to a group of valid candidates.
 16150  	Type *string `locationName:"type" type:"string" enum:"PlacementConstraintType"`
 16151  }
 16152  
 16153  // String returns the string representation.
 16154  //
 16155  // API parameter values that are decorated as "sensitive" in the API will not
 16156  // be included in the string output. The member name will be present, but the
 16157  // value will be replaced with "sensitive".
 16158  func (s PlacementConstraint) String() string {
 16159  	return awsutil.Prettify(s)
 16160  }
 16161  
 16162  // GoString returns the string representation.
 16163  //
 16164  // API parameter values that are decorated as "sensitive" in the API will not
 16165  // be included in the string output. The member name will be present, but the
 16166  // value will be replaced with "sensitive".
 16167  func (s PlacementConstraint) GoString() string {
 16168  	return s.String()
 16169  }
 16170  
 16171  // SetExpression sets the Expression field's value.
 16172  func (s *PlacementConstraint) SetExpression(v string) *PlacementConstraint {
 16173  	s.Expression = &v
 16174  	return s
 16175  }
 16176  
 16177  // SetType sets the Type field's value.
 16178  func (s *PlacementConstraint) SetType(v string) *PlacementConstraint {
 16179  	s.Type = &v
 16180  	return s
 16181  }
 16182  
 16183  // The task placement strategy for a task or service. For more information,
 16184  // see Task Placement Strategies (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html)
 16185  // in the Amazon Elastic Container Service Developer Guide.
 16186  type PlacementStrategy struct {
 16187  	_ struct{} `type:"structure"`
 16188  
 16189  	// The field to apply the placement strategy against. For the spread placement
 16190  	// strategy, valid values are instanceId (or host, which has the same effect),
 16191  	// or any platform or custom attribute that is applied to a container instance,
 16192  	// such as attribute:ecs.availability-zone. For the binpack placement strategy,
 16193  	// valid values are cpu and memory. For the random placement strategy, this
 16194  	// field is not used.
 16195  	Field *string `locationName:"field" type:"string"`
 16196  
 16197  	// The type of placement strategy. The random placement strategy randomly places
 16198  	// tasks on available candidates. The spread placement strategy spreads placement
 16199  	// across available candidates evenly based on the field parameter. The binpack
 16200  	// strategy places tasks on available candidates that have the least available
 16201  	// amount of the resource that is specified with the field parameter. For example,
 16202  	// if you binpack on memory, a task is placed on the instance with the least
 16203  	// amount of remaining memory (but still enough to run the task).
 16204  	Type *string `locationName:"type" type:"string" enum:"PlacementStrategyType"`
 16205  }
 16206  
 16207  // String returns the string representation.
 16208  //
 16209  // API parameter values that are decorated as "sensitive" in the API will not
 16210  // be included in the string output. The member name will be present, but the
 16211  // value will be replaced with "sensitive".
 16212  func (s PlacementStrategy) String() string {
 16213  	return awsutil.Prettify(s)
 16214  }
 16215  
 16216  // GoString returns the string representation.
 16217  //
 16218  // API parameter values that are decorated as "sensitive" in the API will not
 16219  // be included in the string output. The member name will be present, but the
 16220  // value will be replaced with "sensitive".
 16221  func (s PlacementStrategy) GoString() string {
 16222  	return s.String()
 16223  }
 16224  
 16225  // SetField sets the Field field's value.
 16226  func (s *PlacementStrategy) SetField(v string) *PlacementStrategy {
 16227  	s.Field = &v
 16228  	return s
 16229  }
 16230  
 16231  // SetType sets the Type field's value.
 16232  func (s *PlacementStrategy) SetType(v string) *PlacementStrategy {
 16233  	s.Type = &v
 16234  	return s
 16235  }
 16236  
 16237  // The devices that are available on the container instance. The only supported
 16238  // device type is a GPU.
 16239  type PlatformDevice struct {
 16240  	_ struct{} `type:"structure"`
 16241  
 16242  	// The ID for the GPU(s) on the container instance. The available GPU IDs can
 16243  	// also be obtained on the container instance in the /var/lib/ecs/gpu/nvidia_gpu_info.json
 16244  	// file.
 16245  	//
 16246  	// Id is a required field
 16247  	Id *string `locationName:"id" type:"string" required:"true"`
 16248  
 16249  	// The type of device that is available on the container instance. The only
 16250  	// supported value is GPU.
 16251  	//
 16252  	// Type is a required field
 16253  	Type *string `locationName:"type" type:"string" required:"true" enum:"PlatformDeviceType"`
 16254  }
 16255  
 16256  // String returns the string representation.
 16257  //
 16258  // API parameter values that are decorated as "sensitive" in the API will not
 16259  // be included in the string output. The member name will be present, but the
 16260  // value will be replaced with "sensitive".
 16261  func (s PlatformDevice) String() string {
 16262  	return awsutil.Prettify(s)
 16263  }
 16264  
 16265  // GoString returns the string representation.
 16266  //
 16267  // API parameter values that are decorated as "sensitive" in the API will not
 16268  // be included in the string output. The member name will be present, but the
 16269  // value will be replaced with "sensitive".
 16270  func (s PlatformDevice) GoString() string {
 16271  	return s.String()
 16272  }
 16273  
 16274  // Validate inspects the fields of the type to determine if they are valid.
 16275  func (s *PlatformDevice) Validate() error {
 16276  	invalidParams := request.ErrInvalidParams{Context: "PlatformDevice"}
 16277  	if s.Id == nil {
 16278  		invalidParams.Add(request.NewErrParamRequired("Id"))
 16279  	}
 16280  	if s.Type == nil {
 16281  		invalidParams.Add(request.NewErrParamRequired("Type"))
 16282  	}
 16283  
 16284  	if invalidParams.Len() > 0 {
 16285  		return invalidParams
 16286  	}
 16287  	return nil
 16288  }
 16289  
 16290  // SetId sets the Id field's value.
 16291  func (s *PlatformDevice) SetId(v string) *PlatformDevice {
 16292  	s.Id = &v
 16293  	return s
 16294  }
 16295  
 16296  // SetType sets the Type field's value.
 16297  func (s *PlatformDevice) SetType(v string) *PlatformDevice {
 16298  	s.Type = &v
 16299  	return s
 16300  }
 16301  
 16302  // The specified platform version does not satisfy the task definition's required
 16303  // capabilities.
 16304  type PlatformTaskDefinitionIncompatibilityException struct {
 16305  	_            struct{}                  `type:"structure"`
 16306  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 16307  
 16308  	Message_ *string `locationName:"message" type:"string"`
 16309  }
 16310  
 16311  // String returns the string representation.
 16312  //
 16313  // API parameter values that are decorated as "sensitive" in the API will not
 16314  // be included in the string output. The member name will be present, but the
 16315  // value will be replaced with "sensitive".
 16316  func (s PlatformTaskDefinitionIncompatibilityException) String() string {
 16317  	return awsutil.Prettify(s)
 16318  }
 16319  
 16320  // GoString returns the string representation.
 16321  //
 16322  // API parameter values that are decorated as "sensitive" in the API will not
 16323  // be included in the string output. The member name will be present, but the
 16324  // value will be replaced with "sensitive".
 16325  func (s PlatformTaskDefinitionIncompatibilityException) GoString() string {
 16326  	return s.String()
 16327  }
 16328  
 16329  func newErrorPlatformTaskDefinitionIncompatibilityException(v protocol.ResponseMetadata) error {
 16330  	return &PlatformTaskDefinitionIncompatibilityException{
 16331  		RespMetadata: v,
 16332  	}
 16333  }
 16334  
 16335  // Code returns the exception type name.
 16336  func (s *PlatformTaskDefinitionIncompatibilityException) Code() string {
 16337  	return "PlatformTaskDefinitionIncompatibilityException"
 16338  }
 16339  
 16340  // Message returns the exception's message.
 16341  func (s *PlatformTaskDefinitionIncompatibilityException) Message() string {
 16342  	if s.Message_ != nil {
 16343  		return *s.Message_
 16344  	}
 16345  	return ""
 16346  }
 16347  
 16348  // OrigErr always returns nil, satisfies awserr.Error interface.
 16349  func (s *PlatformTaskDefinitionIncompatibilityException) OrigErr() error {
 16350  	return nil
 16351  }
 16352  
 16353  func (s *PlatformTaskDefinitionIncompatibilityException) Error() string {
 16354  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 16355  }
 16356  
 16357  // Status code returns the HTTP status code for the request's response error.
 16358  func (s *PlatformTaskDefinitionIncompatibilityException) StatusCode() int {
 16359  	return s.RespMetadata.StatusCode
 16360  }
 16361  
 16362  // RequestID returns the service's response RequestID for request.
 16363  func (s *PlatformTaskDefinitionIncompatibilityException) RequestID() string {
 16364  	return s.RespMetadata.RequestID
 16365  }
 16366  
 16367  // The specified platform version does not exist.
 16368  type PlatformUnknownException struct {
 16369  	_            struct{}                  `type:"structure"`
 16370  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 16371  
 16372  	Message_ *string `locationName:"message" type:"string"`
 16373  }
 16374  
 16375  // String returns the string representation.
 16376  //
 16377  // API parameter values that are decorated as "sensitive" in the API will not
 16378  // be included in the string output. The member name will be present, but the
 16379  // value will be replaced with "sensitive".
 16380  func (s PlatformUnknownException) String() string {
 16381  	return awsutil.Prettify(s)
 16382  }
 16383  
 16384  // GoString returns the string representation.
 16385  //
 16386  // API parameter values that are decorated as "sensitive" in the API will not
 16387  // be included in the string output. The member name will be present, but the
 16388  // value will be replaced with "sensitive".
 16389  func (s PlatformUnknownException) GoString() string {
 16390  	return s.String()
 16391  }
 16392  
 16393  func newErrorPlatformUnknownException(v protocol.ResponseMetadata) error {
 16394  	return &PlatformUnknownException{
 16395  		RespMetadata: v,
 16396  	}
 16397  }
 16398  
 16399  // Code returns the exception type name.
 16400  func (s *PlatformUnknownException) Code() string {
 16401  	return "PlatformUnknownException"
 16402  }
 16403  
 16404  // Message returns the exception's message.
 16405  func (s *PlatformUnknownException) Message() string {
 16406  	if s.Message_ != nil {
 16407  		return *s.Message_
 16408  	}
 16409  	return ""
 16410  }
 16411  
 16412  // OrigErr always returns nil, satisfies awserr.Error interface.
 16413  func (s *PlatformUnknownException) OrigErr() error {
 16414  	return nil
 16415  }
 16416  
 16417  func (s *PlatformUnknownException) Error() string {
 16418  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 16419  }
 16420  
 16421  // Status code returns the HTTP status code for the request's response error.
 16422  func (s *PlatformUnknownException) StatusCode() int {
 16423  	return s.RespMetadata.StatusCode
 16424  }
 16425  
 16426  // RequestID returns the service's response RequestID for request.
 16427  func (s *PlatformUnknownException) RequestID() string {
 16428  	return s.RespMetadata.RequestID
 16429  }
 16430  
 16431  // Port mappings allow containers to access ports on the host container instance
 16432  // to send or receive traffic. Port mappings are specified as part of the container
 16433  // definition.
 16434  //
 16435  // If you are using containers in a task with the awsvpc or host network mode,
 16436  // exposed ports should be specified using containerPort. The hostPort can be
 16437  // left blank or it must be the same value as the containerPort.
 16438  //
 16439  // You cannot expose the same container port for multiple protocols. An error
 16440  // will be returned if this is attempted
 16441  //
 16442  // After a task reaches the RUNNING status, manual and automatic host and container
 16443  // port assignments are visible in the networkBindings section of DescribeTasks
 16444  // API responses.
 16445  type PortMapping struct {
 16446  	_ struct{} `type:"structure"`
 16447  
 16448  	// The port number on the container that is bound to the user-specified or automatically
 16449  	// assigned host port.
 16450  	//
 16451  	// If you are using containers in a task with the awsvpc or host network mode,
 16452  	// exposed ports should be specified using containerPort.
 16453  	//
 16454  	// If you are using containers in a task with the bridge network mode and you
 16455  	// specify a container port and not a host port, your container automatically
 16456  	// receives a host port in the ephemeral port range. For more information, see
 16457  	// hostPort. Port mappings that are automatically assigned in this way do not
 16458  	// count toward the 100 reserved ports limit of a container instance.
 16459  	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
 16460  
 16461  	// The port number on the container instance to reserve for your container.
 16462  	//
 16463  	// If you are using containers in a task with the awsvpc or host network mode,
 16464  	// the hostPort can either be left blank or set to the same value as the containerPort.
 16465  	//
 16466  	// If you are using containers in a task with the bridge network mode, you can
 16467  	// specify a non-reserved host port for your container port mapping, or you
 16468  	// can omit the hostPort (or set it to 0) while specifying a containerPort and
 16469  	// your container automatically receives a port in the ephemeral port range
 16470  	// for your container instance operating system and Docker version.
 16471  	//
 16472  	// The default ephemeral port range for Docker version 1.6.0 and later is listed
 16473  	// on the instance under /proc/sys/net/ipv4/ip_local_port_range. If this kernel
 16474  	// parameter is unavailable, the default ephemeral port range from 49153 through
 16475  	// 65535 is used. Do not attempt to specify a host port in the ephemeral port
 16476  	// range as these are reserved for automatic assignment. In general, ports below
 16477  	// 32768 are outside of the ephemeral port range.
 16478  	//
 16479  	// The default ephemeral port range from 49153 through 65535 is always used
 16480  	// for Docker versions before 1.6.0.
 16481  	//
 16482  	// The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376,
 16483  	// and the Amazon ECS container agent ports 51678-51680. Any host port that
 16484  	// was previously specified in a running task is also reserved while the task
 16485  	// is running (after a task stops, the host port is released). The current reserved
 16486  	// ports are displayed in the remainingResources of DescribeContainerInstances
 16487  	// output. A container instance can have up to 100 reserved ports at a time,
 16488  	// including the default reserved ports. Automatically assigned ports don't
 16489  	// count toward the 100 reserved ports limit.
 16490  	HostPort *int64 `locationName:"hostPort" type:"integer"`
 16491  
 16492  	// The protocol used for the port mapping. Valid values are tcp and udp. The
 16493  	// default is tcp.
 16494  	Protocol *string `locationName:"protocol" type:"string" enum:"TransportProtocol"`
 16495  }
 16496  
 16497  // String returns the string representation.
 16498  //
 16499  // API parameter values that are decorated as "sensitive" in the API will not
 16500  // be included in the string output. The member name will be present, but the
 16501  // value will be replaced with "sensitive".
 16502  func (s PortMapping) String() string {
 16503  	return awsutil.Prettify(s)
 16504  }
 16505  
 16506  // GoString returns the string representation.
 16507  //
 16508  // API parameter values that are decorated as "sensitive" in the API will not
 16509  // be included in the string output. The member name will be present, but the
 16510  // value will be replaced with "sensitive".
 16511  func (s PortMapping) GoString() string {
 16512  	return s.String()
 16513  }
 16514  
 16515  // SetContainerPort sets the ContainerPort field's value.
 16516  func (s *PortMapping) SetContainerPort(v int64) *PortMapping {
 16517  	s.ContainerPort = &v
 16518  	return s
 16519  }
 16520  
 16521  // SetHostPort sets the HostPort field's value.
 16522  func (s *PortMapping) SetHostPort(v int64) *PortMapping {
 16523  	s.HostPort = &v
 16524  	return s
 16525  }
 16526  
 16527  // SetProtocol sets the Protocol field's value.
 16528  func (s *PortMapping) SetProtocol(v string) *PortMapping {
 16529  	s.Protocol = &v
 16530  	return s
 16531  }
 16532  
 16533  // The configuration details for the App Mesh proxy.
 16534  //
 16535  // For tasks using the EC2 launch type, the container instances require at least
 16536  // version 1.26.0 of the container agent and at least version 1.26.0-1 of the
 16537  // ecs-init package to enable a proxy configuration. If your container instances
 16538  // are launched from the Amazon ECS-optimized AMI version 20190301 or later,
 16539  // then they contain the required versions of the container agent and ecs-init.
 16540  // For more information, see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
 16541  type ProxyConfiguration struct {
 16542  	_ struct{} `type:"structure"`
 16543  
 16544  	// The name of the container that will serve as the App Mesh proxy.
 16545  	//
 16546  	// ContainerName is a required field
 16547  	ContainerName *string `locationName:"containerName" type:"string" required:"true"`
 16548  
 16549  	// The set of network configuration parameters to provide the Container Network
 16550  	// Interface (CNI) plugin, specified as key-value pairs.
 16551  	//
 16552  	//    * IgnoredUID - (Required) The user ID (UID) of the proxy container as
 16553  	//    defined by the user parameter in a container definition. This is used
 16554  	//    to ensure the proxy ignores its own traffic. If IgnoredGID is specified,
 16555  	//    this field can be empty.
 16556  	//
 16557  	//    * IgnoredGID - (Required) The group ID (GID) of the proxy container as
 16558  	//    defined by the user parameter in a container definition. This is used
 16559  	//    to ensure the proxy ignores its own traffic. If IgnoredUID is specified,
 16560  	//    this field can be empty.
 16561  	//
 16562  	//    * AppPorts - (Required) The list of ports that the application uses. Network
 16563  	//    traffic to these ports is forwarded to the ProxyIngressPort and ProxyEgressPort.
 16564  	//
 16565  	//    * ProxyIngressPort - (Required) Specifies the port that incoming traffic
 16566  	//    to the AppPorts is directed to.
 16567  	//
 16568  	//    * ProxyEgressPort - (Required) Specifies the port that outgoing traffic
 16569  	//    from the AppPorts is directed to.
 16570  	//
 16571  	//    * EgressIgnoredPorts - (Required) The egress traffic going to the specified
 16572  	//    ports is ignored and not redirected to the ProxyEgressPort. It can be
 16573  	//    an empty list.
 16574  	//
 16575  	//    * EgressIgnoredIPs - (Required) The egress traffic going to the specified
 16576  	//    IP addresses is ignored and not redirected to the ProxyEgressPort. It
 16577  	//    can be an empty list.
 16578  	Properties []*KeyValuePair `locationName:"properties" type:"list"`
 16579  
 16580  	// The proxy type. The only supported value is APPMESH.
 16581  	Type *string `locationName:"type" type:"string" enum:"ProxyConfigurationType"`
 16582  }
 16583  
 16584  // String returns the string representation.
 16585  //
 16586  // API parameter values that are decorated as "sensitive" in the API will not
 16587  // be included in the string output. The member name will be present, but the
 16588  // value will be replaced with "sensitive".
 16589  func (s ProxyConfiguration) String() string {
 16590  	return awsutil.Prettify(s)
 16591  }
 16592  
 16593  // GoString returns the string representation.
 16594  //
 16595  // API parameter values that are decorated as "sensitive" in the API will not
 16596  // be included in the string output. The member name will be present, but the
 16597  // value will be replaced with "sensitive".
 16598  func (s ProxyConfiguration) GoString() string {
 16599  	return s.String()
 16600  }
 16601  
 16602  // Validate inspects the fields of the type to determine if they are valid.
 16603  func (s *ProxyConfiguration) Validate() error {
 16604  	invalidParams := request.ErrInvalidParams{Context: "ProxyConfiguration"}
 16605  	if s.ContainerName == nil {
 16606  		invalidParams.Add(request.NewErrParamRequired("ContainerName"))
 16607  	}
 16608  
 16609  	if invalidParams.Len() > 0 {
 16610  		return invalidParams
 16611  	}
 16612  	return nil
 16613  }
 16614  
 16615  // SetContainerName sets the ContainerName field's value.
 16616  func (s *ProxyConfiguration) SetContainerName(v string) *ProxyConfiguration {
 16617  	s.ContainerName = &v
 16618  	return s
 16619  }
 16620  
 16621  // SetProperties sets the Properties field's value.
 16622  func (s *ProxyConfiguration) SetProperties(v []*KeyValuePair) *ProxyConfiguration {
 16623  	s.Properties = v
 16624  	return s
 16625  }
 16626  
 16627  // SetType sets the Type field's value.
 16628  func (s *ProxyConfiguration) SetType(v string) *ProxyConfiguration {
 16629  	s.Type = &v
 16630  	return s
 16631  }
 16632  
 16633  type PutAccountSettingDefaultInput struct {
 16634  	_ struct{} `type:"structure"`
 16635  
 16636  	// The resource name for which to modify the account setting. If serviceLongArnFormat
 16637  	// is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat
 16638  	// is specified, the ARN and resource ID for your Amazon ECS tasks is affected.
 16639  	// If containerInstanceLongArnFormat is specified, the ARN and resource ID for
 16640  	// your Amazon ECS container instances is affected. If awsvpcTrunking is specified,
 16641  	// the ENI limit for your Amazon ECS container instances is affected. If containerInsights
 16642  	// is specified, the default setting for CloudWatch Container Insights for your
 16643  	// clusters is affected.
 16644  	//
 16645  	// Name is a required field
 16646  	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
 16647  
 16648  	// The account setting value for the specified principal ARN. Accepted values
 16649  	// are enabled and disabled.
 16650  	//
 16651  	// Value is a required field
 16652  	Value *string `locationName:"value" type:"string" required:"true"`
 16653  }
 16654  
 16655  // String returns the string representation.
 16656  //
 16657  // API parameter values that are decorated as "sensitive" in the API will not
 16658  // be included in the string output. The member name will be present, but the
 16659  // value will be replaced with "sensitive".
 16660  func (s PutAccountSettingDefaultInput) String() string {
 16661  	return awsutil.Prettify(s)
 16662  }
 16663  
 16664  // GoString returns the string representation.
 16665  //
 16666  // API parameter values that are decorated as "sensitive" in the API will not
 16667  // be included in the string output. The member name will be present, but the
 16668  // value will be replaced with "sensitive".
 16669  func (s PutAccountSettingDefaultInput) GoString() string {
 16670  	return s.String()
 16671  }
 16672  
 16673  // Validate inspects the fields of the type to determine if they are valid.
 16674  func (s *PutAccountSettingDefaultInput) Validate() error {
 16675  	invalidParams := request.ErrInvalidParams{Context: "PutAccountSettingDefaultInput"}
 16676  	if s.Name == nil {
 16677  		invalidParams.Add(request.NewErrParamRequired("Name"))
 16678  	}
 16679  	if s.Value == nil {
 16680  		invalidParams.Add(request.NewErrParamRequired("Value"))
 16681  	}
 16682  
 16683  	if invalidParams.Len() > 0 {
 16684  		return invalidParams
 16685  	}
 16686  	return nil
 16687  }
 16688  
 16689  // SetName sets the Name field's value.
 16690  func (s *PutAccountSettingDefaultInput) SetName(v string) *PutAccountSettingDefaultInput {
 16691  	s.Name = &v
 16692  	return s
 16693  }
 16694  
 16695  // SetValue sets the Value field's value.
 16696  func (s *PutAccountSettingDefaultInput) SetValue(v string) *PutAccountSettingDefaultInput {
 16697  	s.Value = &v
 16698  	return s
 16699  }
 16700  
 16701  type PutAccountSettingDefaultOutput struct {
 16702  	_ struct{} `type:"structure"`
 16703  
 16704  	// The current setting for a resource.
 16705  	Setting *Setting `locationName:"setting" type:"structure"`
 16706  }
 16707  
 16708  // String returns the string representation.
 16709  //
 16710  // API parameter values that are decorated as "sensitive" in the API will not
 16711  // be included in the string output. The member name will be present, but the
 16712  // value will be replaced with "sensitive".
 16713  func (s PutAccountSettingDefaultOutput) String() string {
 16714  	return awsutil.Prettify(s)
 16715  }
 16716  
 16717  // GoString returns the string representation.
 16718  //
 16719  // API parameter values that are decorated as "sensitive" in the API will not
 16720  // be included in the string output. The member name will be present, but the
 16721  // value will be replaced with "sensitive".
 16722  func (s PutAccountSettingDefaultOutput) GoString() string {
 16723  	return s.String()
 16724  }
 16725  
 16726  // SetSetting sets the Setting field's value.
 16727  func (s *PutAccountSettingDefaultOutput) SetSetting(v *Setting) *PutAccountSettingDefaultOutput {
 16728  	s.Setting = v
 16729  	return s
 16730  }
 16731  
 16732  type PutAccountSettingInput struct {
 16733  	_ struct{} `type:"structure"`
 16734  
 16735  	// The Amazon ECS resource name for which to modify the account setting. If
 16736  	// serviceLongArnFormat is specified, the ARN for your Amazon ECS services is
 16737  	// affected. If taskLongArnFormat is specified, the ARN and resource ID for
 16738  	// your Amazon ECS tasks is affected. If containerInstanceLongArnFormat is specified,
 16739  	// the ARN and resource ID for your Amazon ECS container instances is affected.
 16740  	// If awsvpcTrunking is specified, the elastic network interface (ENI) limit
 16741  	// for your Amazon ECS container instances is affected. If containerInsights
 16742  	// is specified, the default setting for CloudWatch Container Insights for your
 16743  	// clusters is affected.
 16744  	//
 16745  	// Name is a required field
 16746  	Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"`
 16747  
 16748  	// The ARN of the principal, which can be an IAM user, IAM role, or the root
 16749  	// user. If you specify the root user, it modifies the account setting for all
 16750  	// IAM users, IAM roles, and the root user of the account unless an IAM user
 16751  	// or role explicitly overrides these settings. If this field is omitted, the
 16752  	// setting is changed only for the authenticated user.
 16753  	//
 16754  	// Federated users assume the account setting of the root user and can't have
 16755  	// explicit account settings set for them.
 16756  	PrincipalArn *string `locationName:"principalArn" type:"string"`
 16757  
 16758  	// The account setting value for the specified principal ARN. Accepted values
 16759  	// are enabled and disabled.
 16760  	//
 16761  	// Value is a required field
 16762  	Value *string `locationName:"value" type:"string" required:"true"`
 16763  }
 16764  
 16765  // String returns the string representation.
 16766  //
 16767  // API parameter values that are decorated as "sensitive" in the API will not
 16768  // be included in the string output. The member name will be present, but the
 16769  // value will be replaced with "sensitive".
 16770  func (s PutAccountSettingInput) String() string {
 16771  	return awsutil.Prettify(s)
 16772  }
 16773  
 16774  // GoString returns the string representation.
 16775  //
 16776  // API parameter values that are decorated as "sensitive" in the API will not
 16777  // be included in the string output. The member name will be present, but the
 16778  // value will be replaced with "sensitive".
 16779  func (s PutAccountSettingInput) GoString() string {
 16780  	return s.String()
 16781  }
 16782  
 16783  // Validate inspects the fields of the type to determine if they are valid.
 16784  func (s *PutAccountSettingInput) Validate() error {
 16785  	invalidParams := request.ErrInvalidParams{Context: "PutAccountSettingInput"}
 16786  	if s.Name == nil {
 16787  		invalidParams.Add(request.NewErrParamRequired("Name"))
 16788  	}
 16789  	if s.Value == nil {
 16790  		invalidParams.Add(request.NewErrParamRequired("Value"))
 16791  	}
 16792  
 16793  	if invalidParams.Len() > 0 {
 16794  		return invalidParams
 16795  	}
 16796  	return nil
 16797  }
 16798  
 16799  // SetName sets the Name field's value.
 16800  func (s *PutAccountSettingInput) SetName(v string) *PutAccountSettingInput {
 16801  	s.Name = &v
 16802  	return s
 16803  }
 16804  
 16805  // SetPrincipalArn sets the PrincipalArn field's value.
 16806  func (s *PutAccountSettingInput) SetPrincipalArn(v string) *PutAccountSettingInput {
 16807  	s.PrincipalArn = &v
 16808  	return s
 16809  }
 16810  
 16811  // SetValue sets the Value field's value.
 16812  func (s *PutAccountSettingInput) SetValue(v string) *PutAccountSettingInput {
 16813  	s.Value = &v
 16814  	return s
 16815  }
 16816  
 16817  type PutAccountSettingOutput struct {
 16818  	_ struct{} `type:"structure"`
 16819  
 16820  	// The current account setting for a resource.
 16821  	Setting *Setting `locationName:"setting" type:"structure"`
 16822  }
 16823  
 16824  // String returns the string representation.
 16825  //
 16826  // API parameter values that are decorated as "sensitive" in the API will not
 16827  // be included in the string output. The member name will be present, but the
 16828  // value will be replaced with "sensitive".
 16829  func (s PutAccountSettingOutput) String() string {
 16830  	return awsutil.Prettify(s)
 16831  }
 16832  
 16833  // GoString returns the string representation.
 16834  //
 16835  // API parameter values that are decorated as "sensitive" in the API will not
 16836  // be included in the string output. The member name will be present, but the
 16837  // value will be replaced with "sensitive".
 16838  func (s PutAccountSettingOutput) GoString() string {
 16839  	return s.String()
 16840  }
 16841  
 16842  // SetSetting sets the Setting field's value.
 16843  func (s *PutAccountSettingOutput) SetSetting(v *Setting) *PutAccountSettingOutput {
 16844  	s.Setting = v
 16845  	return s
 16846  }
 16847  
 16848  type PutAttributesInput struct {
 16849  	_ struct{} `type:"structure"`
 16850  
 16851  	// The attributes to apply to your resource. You can specify up to 10 custom
 16852  	// attributes per resource. You can specify up to 10 attributes in a single
 16853  	// call.
 16854  	//
 16855  	// Attributes is a required field
 16856  	Attributes []*Attribute `locationName:"attributes" type:"list" required:"true"`
 16857  
 16858  	// The short name or full Amazon Resource Name (ARN) of the cluster that contains
 16859  	// the resource to apply attributes. If you do not specify a cluster, the default
 16860  	// cluster is assumed.
 16861  	Cluster *string `locationName:"cluster" type:"string"`
 16862  }
 16863  
 16864  // String returns the string representation.
 16865  //
 16866  // API parameter values that are decorated as "sensitive" in the API will not
 16867  // be included in the string output. The member name will be present, but the
 16868  // value will be replaced with "sensitive".
 16869  func (s PutAttributesInput) String() string {
 16870  	return awsutil.Prettify(s)
 16871  }
 16872  
 16873  // GoString returns the string representation.
 16874  //
 16875  // API parameter values that are decorated as "sensitive" in the API will not
 16876  // be included in the string output. The member name will be present, but the
 16877  // value will be replaced with "sensitive".
 16878  func (s PutAttributesInput) GoString() string {
 16879  	return s.String()
 16880  }
 16881  
 16882  // Validate inspects the fields of the type to determine if they are valid.
 16883  func (s *PutAttributesInput) Validate() error {
 16884  	invalidParams := request.ErrInvalidParams{Context: "PutAttributesInput"}
 16885  	if s.Attributes == nil {
 16886  		invalidParams.Add(request.NewErrParamRequired("Attributes"))
 16887  	}
 16888  	if s.Attributes != nil {
 16889  		for i, v := range s.Attributes {
 16890  			if v == nil {
 16891  				continue
 16892  			}
 16893  			if err := v.Validate(); err != nil {
 16894  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
 16895  			}
 16896  		}
 16897  	}
 16898  
 16899  	if invalidParams.Len() > 0 {
 16900  		return invalidParams
 16901  	}
 16902  	return nil
 16903  }
 16904  
 16905  // SetAttributes sets the Attributes field's value.
 16906  func (s *PutAttributesInput) SetAttributes(v []*Attribute) *PutAttributesInput {
 16907  	s.Attributes = v
 16908  	return s
 16909  }
 16910  
 16911  // SetCluster sets the Cluster field's value.
 16912  func (s *PutAttributesInput) SetCluster(v string) *PutAttributesInput {
 16913  	s.Cluster = &v
 16914  	return s
 16915  }
 16916  
 16917  type PutAttributesOutput struct {
 16918  	_ struct{} `type:"structure"`
 16919  
 16920  	// The attributes applied to your resource.
 16921  	Attributes []*Attribute `locationName:"attributes" type:"list"`
 16922  }
 16923  
 16924  // String returns the string representation.
 16925  //
 16926  // API parameter values that are decorated as "sensitive" in the API will not
 16927  // be included in the string output. The member name will be present, but the
 16928  // value will be replaced with "sensitive".
 16929  func (s PutAttributesOutput) String() string {
 16930  	return awsutil.Prettify(s)
 16931  }
 16932  
 16933  // GoString returns the string representation.
 16934  //
 16935  // API parameter values that are decorated as "sensitive" in the API will not
 16936  // be included in the string output. The member name will be present, but the
 16937  // value will be replaced with "sensitive".
 16938  func (s PutAttributesOutput) GoString() string {
 16939  	return s.String()
 16940  }
 16941  
 16942  // SetAttributes sets the Attributes field's value.
 16943  func (s *PutAttributesOutput) SetAttributes(v []*Attribute) *PutAttributesOutput {
 16944  	s.Attributes = v
 16945  	return s
 16946  }
 16947  
 16948  type PutClusterCapacityProvidersInput struct {
 16949  	_ struct{} `type:"structure"`
 16950  
 16951  	// The name of one or more capacity providers to associate with the cluster.
 16952  	//
 16953  	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
 16954  	// provider must already be created. New capacity providers can be created with
 16955  	// the CreateCapacityProvider API operation.
 16956  	//
 16957  	// To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
 16958  	// capacity providers. The Fargate capacity providers are available to all accounts
 16959  	// and only need to be associated with a cluster to be used.
 16960  	//
 16961  	// CapacityProviders is a required field
 16962  	CapacityProviders []*string `locationName:"capacityProviders" type:"list" required:"true"`
 16963  
 16964  	// The short name or full Amazon Resource Name (ARN) of the cluster to modify
 16965  	// the capacity provider settings for. If you do not specify a cluster, the
 16966  	// default cluster is assumed.
 16967  	//
 16968  	// Cluster is a required field
 16969  	Cluster *string `locationName:"cluster" type:"string" required:"true"`
 16970  
 16971  	// The capacity provider strategy to use by default for the cluster.
 16972  	//
 16973  	// When creating a service or running a task on a cluster, if no capacity provider
 16974  	// or launch type is specified then the default capacity provider strategy for
 16975  	// the cluster is used.
 16976  	//
 16977  	// A capacity provider strategy consists of one or more capacity providers along
 16978  	// with the base and weight to assign to them. A capacity provider must be associated
 16979  	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
 16980  	// API is used to associate a capacity provider with a cluster. Only capacity
 16981  	// providers with an ACTIVE or UPDATING status can be used.
 16982  	//
 16983  	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
 16984  	// provider must already be created. New capacity providers can be created with
 16985  	// the CreateCapacityProvider API operation.
 16986  	//
 16987  	// To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
 16988  	// capacity providers. The Fargate capacity providers are available to all accounts
 16989  	// and only need to be associated with a cluster to be used.
 16990  	//
 16991  	// DefaultCapacityProviderStrategy is a required field
 16992  	DefaultCapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"defaultCapacityProviderStrategy" type:"list" required:"true"`
 16993  }
 16994  
 16995  // String returns the string representation.
 16996  //
 16997  // API parameter values that are decorated as "sensitive" in the API will not
 16998  // be included in the string output. The member name will be present, but the
 16999  // value will be replaced with "sensitive".
 17000  func (s PutClusterCapacityProvidersInput) String() string {
 17001  	return awsutil.Prettify(s)
 17002  }
 17003  
 17004  // GoString returns the string representation.
 17005  //
 17006  // API parameter values that are decorated as "sensitive" in the API will not
 17007  // be included in the string output. The member name will be present, but the
 17008  // value will be replaced with "sensitive".
 17009  func (s PutClusterCapacityProvidersInput) GoString() string {
 17010  	return s.String()
 17011  }
 17012  
 17013  // Validate inspects the fields of the type to determine if they are valid.
 17014  func (s *PutClusterCapacityProvidersInput) Validate() error {
 17015  	invalidParams := request.ErrInvalidParams{Context: "PutClusterCapacityProvidersInput"}
 17016  	if s.CapacityProviders == nil {
 17017  		invalidParams.Add(request.NewErrParamRequired("CapacityProviders"))
 17018  	}
 17019  	if s.Cluster == nil {
 17020  		invalidParams.Add(request.NewErrParamRequired("Cluster"))
 17021  	}
 17022  	if s.DefaultCapacityProviderStrategy == nil {
 17023  		invalidParams.Add(request.NewErrParamRequired("DefaultCapacityProviderStrategy"))
 17024  	}
 17025  	if s.DefaultCapacityProviderStrategy != nil {
 17026  		for i, v := range s.DefaultCapacityProviderStrategy {
 17027  			if v == nil {
 17028  				continue
 17029  			}
 17030  			if err := v.Validate(); err != nil {
 17031  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultCapacityProviderStrategy", i), err.(request.ErrInvalidParams))
 17032  			}
 17033  		}
 17034  	}
 17035  
 17036  	if invalidParams.Len() > 0 {
 17037  		return invalidParams
 17038  	}
 17039  	return nil
 17040  }
 17041  
 17042  // SetCapacityProviders sets the CapacityProviders field's value.
 17043  func (s *PutClusterCapacityProvidersInput) SetCapacityProviders(v []*string) *PutClusterCapacityProvidersInput {
 17044  	s.CapacityProviders = v
 17045  	return s
 17046  }
 17047  
 17048  // SetCluster sets the Cluster field's value.
 17049  func (s *PutClusterCapacityProvidersInput) SetCluster(v string) *PutClusterCapacityProvidersInput {
 17050  	s.Cluster = &v
 17051  	return s
 17052  }
 17053  
 17054  // SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value.
 17055  func (s *PutClusterCapacityProvidersInput) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *PutClusterCapacityProvidersInput {
 17056  	s.DefaultCapacityProviderStrategy = v
 17057  	return s
 17058  }
 17059  
 17060  type PutClusterCapacityProvidersOutput struct {
 17061  	_ struct{} `type:"structure"`
 17062  
 17063  	// Details about the cluster.
 17064  	Cluster *Cluster `locationName:"cluster" type:"structure"`
 17065  }
 17066  
 17067  // String returns the string representation.
 17068  //
 17069  // API parameter values that are decorated as "sensitive" in the API will not
 17070  // be included in the string output. The member name will be present, but the
 17071  // value will be replaced with "sensitive".
 17072  func (s PutClusterCapacityProvidersOutput) String() string {
 17073  	return awsutil.Prettify(s)
 17074  }
 17075  
 17076  // GoString returns the string representation.
 17077  //
 17078  // API parameter values that are decorated as "sensitive" in the API will not
 17079  // be included in the string output. The member name will be present, but the
 17080  // value will be replaced with "sensitive".
 17081  func (s PutClusterCapacityProvidersOutput) GoString() string {
 17082  	return s.String()
 17083  }
 17084  
 17085  // SetCluster sets the Cluster field's value.
 17086  func (s *PutClusterCapacityProvidersOutput) SetCluster(v *Cluster) *PutClusterCapacityProvidersOutput {
 17087  	s.Cluster = v
 17088  	return s
 17089  }
 17090  
 17091  type RegisterContainerInstanceInput struct {
 17092  	_ struct{} `type:"structure"`
 17093  
 17094  	// The container instance attributes that this container instance supports.
 17095  	Attributes []*Attribute `locationName:"attributes" type:"list"`
 17096  
 17097  	// The short name or full Amazon Resource Name (ARN) of the cluster with which
 17098  	// to register your container instance. If you do not specify a cluster, the
 17099  	// default cluster is assumed.
 17100  	Cluster *string `locationName:"cluster" type:"string"`
 17101  
 17102  	// The ARN of the container instance (if it was previously registered).
 17103  	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
 17104  
 17105  	// The instance identity document for the EC2 instance to register. This document
 17106  	// can be found by running the following command from the instance: curl http://169.254.169.254/latest/dynamic/instance-identity/document/
 17107  	InstanceIdentityDocument *string `locationName:"instanceIdentityDocument" type:"string"`
 17108  
 17109  	// The instance identity document signature for the EC2 instance to register.
 17110  	// This signature can be found by running the following command from the instance:
 17111  	// curl http://169.254.169.254/latest/dynamic/instance-identity/signature/
 17112  	InstanceIdentityDocumentSignature *string `locationName:"instanceIdentityDocumentSignature" type:"string"`
 17113  
 17114  	// The devices that are available on the container instance. The only supported
 17115  	// device type is a GPU.
 17116  	PlatformDevices []*PlatformDevice `locationName:"platformDevices" type:"list"`
 17117  
 17118  	// The metadata that you apply to the container instance to help you categorize
 17119  	// and organize them. Each tag consists of a key and an optional value, both
 17120  	// of which you define.
 17121  	//
 17122  	// The following basic restrictions apply to tags:
 17123  	//
 17124  	//    * Maximum number of tags per resource - 50
 17125  	//
 17126  	//    * For each resource, each tag key must be unique, and each tag key can
 17127  	//    have only one value.
 17128  	//
 17129  	//    * Maximum key length - 128 Unicode characters in UTF-8
 17130  	//
 17131  	//    * Maximum value length - 256 Unicode characters in UTF-8
 17132  	//
 17133  	//    * If your tagging schema is used across multiple services and resources,
 17134  	//    remember that other services may have restrictions on allowed characters.
 17135  	//    Generally allowed characters are: letters, numbers, and spaces representable
 17136  	//    in UTF-8, and the following characters: + - = . _ : / @.
 17137  	//
 17138  	//    * Tag keys and values are case-sensitive.
 17139  	//
 17140  	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
 17141  	//    as a prefix for either keys or values as it is reserved for Amazon Web
 17142  	//    Services use. You cannot edit or delete tag keys or values with this prefix.
 17143  	//    Tags with this prefix do not count against your tags per resource limit.
 17144  	Tags []*Tag `locationName:"tags" type:"list"`
 17145  
 17146  	// The resources available on the instance.
 17147  	TotalResources []*Resource `locationName:"totalResources" type:"list"`
 17148  
 17149  	// The version information for the Amazon ECS container agent and Docker daemon
 17150  	// running on the container instance.
 17151  	VersionInfo *VersionInfo `locationName:"versionInfo" type:"structure"`
 17152  }
 17153  
 17154  // String returns the string representation.
 17155  //
 17156  // API parameter values that are decorated as "sensitive" in the API will not
 17157  // be included in the string output. The member name will be present, but the
 17158  // value will be replaced with "sensitive".
 17159  func (s RegisterContainerInstanceInput) String() string {
 17160  	return awsutil.Prettify(s)
 17161  }
 17162  
 17163  // GoString returns the string representation.
 17164  //
 17165  // API parameter values that are decorated as "sensitive" in the API will not
 17166  // be included in the string output. The member name will be present, but the
 17167  // value will be replaced with "sensitive".
 17168  func (s RegisterContainerInstanceInput) GoString() string {
 17169  	return s.String()
 17170  }
 17171  
 17172  // Validate inspects the fields of the type to determine if they are valid.
 17173  func (s *RegisterContainerInstanceInput) Validate() error {
 17174  	invalidParams := request.ErrInvalidParams{Context: "RegisterContainerInstanceInput"}
 17175  	if s.Attributes != nil {
 17176  		for i, v := range s.Attributes {
 17177  			if v == nil {
 17178  				continue
 17179  			}
 17180  			if err := v.Validate(); err != nil {
 17181  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
 17182  			}
 17183  		}
 17184  	}
 17185  	if s.PlatformDevices != nil {
 17186  		for i, v := range s.PlatformDevices {
 17187  			if v == nil {
 17188  				continue
 17189  			}
 17190  			if err := v.Validate(); err != nil {
 17191  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlatformDevices", i), err.(request.ErrInvalidParams))
 17192  			}
 17193  		}
 17194  	}
 17195  	if s.Tags != nil {
 17196  		for i, v := range s.Tags {
 17197  			if v == nil {
 17198  				continue
 17199  			}
 17200  			if err := v.Validate(); err != nil {
 17201  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 17202  			}
 17203  		}
 17204  	}
 17205  
 17206  	if invalidParams.Len() > 0 {
 17207  		return invalidParams
 17208  	}
 17209  	return nil
 17210  }
 17211  
 17212  // SetAttributes sets the Attributes field's value.
 17213  func (s *RegisterContainerInstanceInput) SetAttributes(v []*Attribute) *RegisterContainerInstanceInput {
 17214  	s.Attributes = v
 17215  	return s
 17216  }
 17217  
 17218  // SetCluster sets the Cluster field's value.
 17219  func (s *RegisterContainerInstanceInput) SetCluster(v string) *RegisterContainerInstanceInput {
 17220  	s.Cluster = &v
 17221  	return s
 17222  }
 17223  
 17224  // SetContainerInstanceArn sets the ContainerInstanceArn field's value.
 17225  func (s *RegisterContainerInstanceInput) SetContainerInstanceArn(v string) *RegisterContainerInstanceInput {
 17226  	s.ContainerInstanceArn = &v
 17227  	return s
 17228  }
 17229  
 17230  // SetInstanceIdentityDocument sets the InstanceIdentityDocument field's value.
 17231  func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocument(v string) *RegisterContainerInstanceInput {
 17232  	s.InstanceIdentityDocument = &v
 17233  	return s
 17234  }
 17235  
 17236  // SetInstanceIdentityDocumentSignature sets the InstanceIdentityDocumentSignature field's value.
 17237  func (s *RegisterContainerInstanceInput) SetInstanceIdentityDocumentSignature(v string) *RegisterContainerInstanceInput {
 17238  	s.InstanceIdentityDocumentSignature = &v
 17239  	return s
 17240  }
 17241  
 17242  // SetPlatformDevices sets the PlatformDevices field's value.
 17243  func (s *RegisterContainerInstanceInput) SetPlatformDevices(v []*PlatformDevice) *RegisterContainerInstanceInput {
 17244  	s.PlatformDevices = v
 17245  	return s
 17246  }
 17247  
 17248  // SetTags sets the Tags field's value.
 17249  func (s *RegisterContainerInstanceInput) SetTags(v []*Tag) *RegisterContainerInstanceInput {
 17250  	s.Tags = v
 17251  	return s
 17252  }
 17253  
 17254  // SetTotalResources sets the TotalResources field's value.
 17255  func (s *RegisterContainerInstanceInput) SetTotalResources(v []*Resource) *RegisterContainerInstanceInput {
 17256  	s.TotalResources = v
 17257  	return s
 17258  }
 17259  
 17260  // SetVersionInfo sets the VersionInfo field's value.
 17261  func (s *RegisterContainerInstanceInput) SetVersionInfo(v *VersionInfo) *RegisterContainerInstanceInput {
 17262  	s.VersionInfo = v
 17263  	return s
 17264  }
 17265  
 17266  type RegisterContainerInstanceOutput struct {
 17267  	_ struct{} `type:"structure"`
 17268  
 17269  	// The container instance that was registered.
 17270  	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
 17271  }
 17272  
 17273  // String returns the string representation.
 17274  //
 17275  // API parameter values that are decorated as "sensitive" in the API will not
 17276  // be included in the string output. The member name will be present, but the
 17277  // value will be replaced with "sensitive".
 17278  func (s RegisterContainerInstanceOutput) String() string {
 17279  	return awsutil.Prettify(s)
 17280  }
 17281  
 17282  // GoString returns the string representation.
 17283  //
 17284  // API parameter values that are decorated as "sensitive" in the API will not
 17285  // be included in the string output. The member name will be present, but the
 17286  // value will be replaced with "sensitive".
 17287  func (s RegisterContainerInstanceOutput) GoString() string {
 17288  	return s.String()
 17289  }
 17290  
 17291  // SetContainerInstance sets the ContainerInstance field's value.
 17292  func (s *RegisterContainerInstanceOutput) SetContainerInstance(v *ContainerInstance) *RegisterContainerInstanceOutput {
 17293  	s.ContainerInstance = v
 17294  	return s
 17295  }
 17296  
 17297  type RegisterTaskDefinitionInput struct {
 17298  	_ struct{} `type:"structure"`
 17299  
 17300  	// A list of container definitions in JSON format that describe the different
 17301  	// containers that make up your task.
 17302  	//
 17303  	// ContainerDefinitions is a required field
 17304  	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list" required:"true"`
 17305  
 17306  	// The number of CPU units used by the task. It can be expressed as an integer
 17307  	// using CPU units, for example 1024, or as a string using vCPUs, for example
 17308  	// 1 vCPU or 1 vcpu, in a task definition. String values are converted to an
 17309  	// integer indicating the CPU units when the task definition is registered.
 17310  	//
 17311  	// Task-level CPU and memory parameters are ignored for Windows containers.
 17312  	// We recommend specifying container-level resources for Windows containers.
 17313  	//
 17314  	// If you are using the EC2 launch type, this field is optional. Supported values
 17315  	// are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).
 17316  	//
 17317  	// If you are using the Fargate launch type, this field is required and you
 17318  	// must use one of the following values, which determines your range of supported
 17319  	// values for the memory parameter:
 17320  	//
 17321  	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
 17322  	//    2048 (2 GB)
 17323  	//
 17324  	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
 17325  	//    (3 GB), 4096 (4 GB)
 17326  	//
 17327  	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
 17328  	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
 17329  	//
 17330  	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
 17331  	//    (16 GB) in increments of 1024 (1 GB)
 17332  	//
 17333  	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
 17334  	//    (30 GB) in increments of 1024 (1 GB)
 17335  	Cpu *string `locationName:"cpu" type:"string"`
 17336  
 17337  	// The amount of ephemeral storage to allocate for the task. This parameter
 17338  	// is used to expand the total amount of ephemeral storage available, beyond
 17339  	// the default amount, for tasks hosted on Fargate. For more information, see
 17340  	// Fargate task storage (https://docs.aws.amazon.com/AmazonECS/latest/userguide/using_data_volumes.html)
 17341  	// in the Amazon ECS User Guide for Fargate.
 17342  	//
 17343  	// This parameter is only supported for tasks hosted on Fargate using platform
 17344  	// version 1.4.0 or later.
 17345  	EphemeralStorage *EphemeralStorage `locationName:"ephemeralStorage" type:"structure"`
 17346  
 17347  	// The Amazon Resource Name (ARN) of the task execution role that grants the
 17348  	// Amazon ECS container agent permission to make Amazon Web Services API calls
 17349  	// on your behalf. The task execution IAM role is required depending on the
 17350  	// requirements of your task. For more information, see Amazon ECS task execution
 17351  	// IAM role (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html)
 17352  	// in the Amazon Elastic Container Service Developer Guide.
 17353  	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
 17354  
 17355  	// You must specify a family for a task definition, which allows you to track
 17356  	// multiple versions of the same task definition. The family is used as a name
 17357  	// for your task definition. Up to 255 letters (uppercase and lowercase), numbers,
 17358  	// underscores, and hyphens are allowed.
 17359  	//
 17360  	// Family is a required field
 17361  	Family *string `locationName:"family" type:"string" required:"true"`
 17362  
 17363  	// The Elastic Inference accelerators to use for the containers in the task.
 17364  	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
 17365  
 17366  	// The IPC resource namespace to use for the containers in the task. The valid
 17367  	// values are host, task, or none. If host is specified, then all containers
 17368  	// within the tasks that specified the host IPC mode on the same container instance
 17369  	// share the same IPC resources with the host Amazon EC2 instance. If task is
 17370  	// specified, all containers within the specified task share the same IPC resources.
 17371  	// If none is specified, then IPC resources within the containers of a task
 17372  	// are private and not shared with other containers in a task or on the container
 17373  	// instance. If no value is specified, then the IPC resource namespace sharing
 17374  	// depends on the Docker daemon setting on the container instance. For more
 17375  	// information, see IPC settings (https://docs.docker.com/engine/reference/run/#ipc-settings---ipc)
 17376  	// in the Docker run reference.
 17377  	//
 17378  	// If the host IPC mode is used, be aware that there is a heightened risk of
 17379  	// undesired IPC namespace expose. For more information, see Docker security
 17380  	// (https://docs.docker.com/engine/security/security/).
 17381  	//
 17382  	// If you are setting namespaced kernel parameters using systemControls for
 17383  	// the containers in the task, the following will apply to your IPC resource
 17384  	// namespace. For more information, see System Controls (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)
 17385  	// in the Amazon Elastic Container Service Developer Guide.
 17386  	//
 17387  	//    * For tasks that use the host IPC mode, IPC namespace related systemControls
 17388  	//    are not supported.
 17389  	//
 17390  	//    * For tasks that use the task IPC mode, IPC namespace related systemControls
 17391  	//    will apply to all containers within a task.
 17392  	//
 17393  	// This parameter is not supported for Windows containers or tasks run on Fargate.
 17394  	IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"`
 17395  
 17396  	// The amount of memory (in MiB) used by the task. It can be expressed as an
 17397  	// integer using MiB, for example 1024, or as a string using GB, for example
 17398  	// 1GB or 1 GB, in a task definition. String values are converted to an integer
 17399  	// indicating the MiB when the task definition is registered.
 17400  	//
 17401  	// Task-level CPU and memory parameters are ignored for Windows containers.
 17402  	// We recommend specifying container-level resources for Windows containers.
 17403  	//
 17404  	// If using the EC2 launch type, this field is optional.
 17405  	//
 17406  	// If using the Fargate launch type, this field is required and you must use
 17407  	// one of the following values, which determines your range of supported values
 17408  	// for the cpu parameter:
 17409  	//
 17410  	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
 17411  	//    vCPU)
 17412  	//
 17413  	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
 17414  	//    512 (.5 vCPU)
 17415  	//
 17416  	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
 17417  	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
 17418  	//
 17419  	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
 17420  	//    Available cpu values: 2048 (2 vCPU)
 17421  	//
 17422  	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
 17423  	//    Available cpu values: 4096 (4 vCPU)
 17424  	Memory *string `locationName:"memory" type:"string"`
 17425  
 17426  	// The Docker networking mode to use for the containers in the task. The valid
 17427  	// values are none, bridge, awsvpc, and host. If no network mode is specified,
 17428  	// the default is bridge.
 17429  	//
 17430  	// For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For
 17431  	// Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used.
 17432  	// For Amazon ECS tasks on Amazon EC2 Windows instances, <default> or awsvpc
 17433  	// can be used. If the network mode is set to none, you cannot specify port
 17434  	// mappings in your container definitions, and the tasks containers do not have
 17435  	// external connectivity. The host and awsvpc network modes offer the highest
 17436  	// networking performance for containers because they use the EC2 network stack
 17437  	// instead of the virtualized network stack provided by the bridge mode.
 17438  	//
 17439  	// With the host and awsvpc network modes, exposed container ports are mapped
 17440  	// directly to the corresponding host port (for the host network mode) or the
 17441  	// attached elastic network interface port (for the awsvpc network mode), so
 17442  	// you cannot take advantage of dynamic host port mappings.
 17443  	//
 17444  	// When using the host network mode, you should not run containers using the
 17445  	// root user (UID 0). It is considered best practice to use a non-root user.
 17446  	//
 17447  	// If the network mode is awsvpc, the task is allocated an elastic network interface,
 17448  	// and you must specify a NetworkConfiguration value when you create a service
 17449  	// or run a task with the task definition. For more information, see Task Networking
 17450  	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
 17451  	// in the Amazon Elastic Container Service Developer Guide.
 17452  	//
 17453  	// If the network mode is host, you cannot run multiple instantiations of the
 17454  	// same task on a single container instance when port mappings are used.
 17455  	//
 17456  	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
 17457  	// in the Docker run reference.
 17458  	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
 17459  
 17460  	// The process namespace to use for the containers in the task. The valid values
 17461  	// are host or task. If host is specified, then all containers within the tasks
 17462  	// that specified the host PID mode on the same container instance share the
 17463  	// same process namespace with the host Amazon EC2 instance. If task is specified,
 17464  	// all containers within the specified task share the same process namespace.
 17465  	// If no value is specified, the default is a private namespace. For more information,
 17466  	// see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid)
 17467  	// in the Docker run reference.
 17468  	//
 17469  	// If the host PID mode is used, be aware that there is a heightened risk of
 17470  	// undesired process namespace expose. For more information, see Docker security
 17471  	// (https://docs.docker.com/engine/security/security/).
 17472  	//
 17473  	// This parameter is not supported for Windows containers or tasks run on Fargate.
 17474  	PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"`
 17475  
 17476  	// An array of placement constraint objects to use for the task. You can specify
 17477  	// a maximum of 10 constraints per task (this limit includes constraints in
 17478  	// the task definition and those specified at runtime).
 17479  	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
 17480  
 17481  	// The configuration details for the App Mesh proxy.
 17482  	//
 17483  	// For tasks hosted on Amazon EC2 instances, the container instances require
 17484  	// at least version 1.26.0 of the container agent and at least version 1.26.0-1
 17485  	// of the ecs-init package to enable a proxy configuration. If your container
 17486  	// instances are launched from the Amazon ECS-optimized AMI version 20190301
 17487  	// or later, then they contain the required versions of the container agent
 17488  	// and ecs-init. For more information, see Amazon ECS-optimized AMI versions
 17489  	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-ami-versions.html)
 17490  	// in the Amazon Elastic Container Service Developer Guide.
 17491  	ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"`
 17492  
 17493  	// The task launch type that Amazon ECS should validate the task definition
 17494  	// against. A client exception is returned if the task definition doesn't validate
 17495  	// against the compatibilities specified. If no value is specified, the parameter
 17496  	// is omitted from the response.
 17497  	RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"`
 17498  
 17499  	// The metadata that you apply to the task definition to help you categorize
 17500  	// and organize them. Each tag consists of a key and an optional value, both
 17501  	// of which you define.
 17502  	//
 17503  	// The following basic restrictions apply to tags:
 17504  	//
 17505  	//    * Maximum number of tags per resource - 50
 17506  	//
 17507  	//    * For each resource, each tag key must be unique, and each tag key can
 17508  	//    have only one value.
 17509  	//
 17510  	//    * Maximum key length - 128 Unicode characters in UTF-8
 17511  	//
 17512  	//    * Maximum value length - 256 Unicode characters in UTF-8
 17513  	//
 17514  	//    * If your tagging schema is used across multiple services and resources,
 17515  	//    remember that other services may have restrictions on allowed characters.
 17516  	//    Generally allowed characters are: letters, numbers, and spaces representable
 17517  	//    in UTF-8, and the following characters: + - = . _ : / @.
 17518  	//
 17519  	//    * Tag keys and values are case-sensitive.
 17520  	//
 17521  	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
 17522  	//    as a prefix for either keys or values as it is reserved for Amazon Web
 17523  	//    Services use. You cannot edit or delete tag keys or values with this prefix.
 17524  	//    Tags with this prefix do not count against your tags per resource limit.
 17525  	Tags []*Tag `locationName:"tags" type:"list"`
 17526  
 17527  	// The short name or full Amazon Resource Name (ARN) of the IAM role that containers
 17528  	// in this task can assume. All containers in this task are granted the permissions
 17529  	// that are specified in this role. For more information, see IAM Roles for
 17530  	// Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
 17531  	// in the Amazon Elastic Container Service Developer Guide.
 17532  	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
 17533  
 17534  	// A list of volume definitions in JSON format that containers in your task
 17535  	// may use.
 17536  	Volumes []*Volume `locationName:"volumes" type:"list"`
 17537  }
 17538  
 17539  // String returns the string representation.
 17540  //
 17541  // API parameter values that are decorated as "sensitive" in the API will not
 17542  // be included in the string output. The member name will be present, but the
 17543  // value will be replaced with "sensitive".
 17544  func (s RegisterTaskDefinitionInput) String() string {
 17545  	return awsutil.Prettify(s)
 17546  }
 17547  
 17548  // GoString returns the string representation.
 17549  //
 17550  // API parameter values that are decorated as "sensitive" in the API will not
 17551  // be included in the string output. The member name will be present, but the
 17552  // value will be replaced with "sensitive".
 17553  func (s RegisterTaskDefinitionInput) GoString() string {
 17554  	return s.String()
 17555  }
 17556  
 17557  // Validate inspects the fields of the type to determine if they are valid.
 17558  func (s *RegisterTaskDefinitionInput) Validate() error {
 17559  	invalidParams := request.ErrInvalidParams{Context: "RegisterTaskDefinitionInput"}
 17560  	if s.ContainerDefinitions == nil {
 17561  		invalidParams.Add(request.NewErrParamRequired("ContainerDefinitions"))
 17562  	}
 17563  	if s.Family == nil {
 17564  		invalidParams.Add(request.NewErrParamRequired("Family"))
 17565  	}
 17566  	if s.ContainerDefinitions != nil {
 17567  		for i, v := range s.ContainerDefinitions {
 17568  			if v == nil {
 17569  				continue
 17570  			}
 17571  			if err := v.Validate(); err != nil {
 17572  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContainerDefinitions", i), err.(request.ErrInvalidParams))
 17573  			}
 17574  		}
 17575  	}
 17576  	if s.EphemeralStorage != nil {
 17577  		if err := s.EphemeralStorage.Validate(); err != nil {
 17578  			invalidParams.AddNested("EphemeralStorage", err.(request.ErrInvalidParams))
 17579  		}
 17580  	}
 17581  	if s.InferenceAccelerators != nil {
 17582  		for i, v := range s.InferenceAccelerators {
 17583  			if v == nil {
 17584  				continue
 17585  			}
 17586  			if err := v.Validate(); err != nil {
 17587  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InferenceAccelerators", i), err.(request.ErrInvalidParams))
 17588  			}
 17589  		}
 17590  	}
 17591  	if s.ProxyConfiguration != nil {
 17592  		if err := s.ProxyConfiguration.Validate(); err != nil {
 17593  			invalidParams.AddNested("ProxyConfiguration", err.(request.ErrInvalidParams))
 17594  		}
 17595  	}
 17596  	if s.Tags != nil {
 17597  		for i, v := range s.Tags {
 17598  			if v == nil {
 17599  				continue
 17600  			}
 17601  			if err := v.Validate(); err != nil {
 17602  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 17603  			}
 17604  		}
 17605  	}
 17606  	if s.Volumes != nil {
 17607  		for i, v := range s.Volumes {
 17608  			if v == nil {
 17609  				continue
 17610  			}
 17611  			if err := v.Validate(); err != nil {
 17612  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Volumes", i), err.(request.ErrInvalidParams))
 17613  			}
 17614  		}
 17615  	}
 17616  
 17617  	if invalidParams.Len() > 0 {
 17618  		return invalidParams
 17619  	}
 17620  	return nil
 17621  }
 17622  
 17623  // SetContainerDefinitions sets the ContainerDefinitions field's value.
 17624  func (s *RegisterTaskDefinitionInput) SetContainerDefinitions(v []*ContainerDefinition) *RegisterTaskDefinitionInput {
 17625  	s.ContainerDefinitions = v
 17626  	return s
 17627  }
 17628  
 17629  // SetCpu sets the Cpu field's value.
 17630  func (s *RegisterTaskDefinitionInput) SetCpu(v string) *RegisterTaskDefinitionInput {
 17631  	s.Cpu = &v
 17632  	return s
 17633  }
 17634  
 17635  // SetEphemeralStorage sets the EphemeralStorage field's value.
 17636  func (s *RegisterTaskDefinitionInput) SetEphemeralStorage(v *EphemeralStorage) *RegisterTaskDefinitionInput {
 17637  	s.EphemeralStorage = v
 17638  	return s
 17639  }
 17640  
 17641  // SetExecutionRoleArn sets the ExecutionRoleArn field's value.
 17642  func (s *RegisterTaskDefinitionInput) SetExecutionRoleArn(v string) *RegisterTaskDefinitionInput {
 17643  	s.ExecutionRoleArn = &v
 17644  	return s
 17645  }
 17646  
 17647  // SetFamily sets the Family field's value.
 17648  func (s *RegisterTaskDefinitionInput) SetFamily(v string) *RegisterTaskDefinitionInput {
 17649  	s.Family = &v
 17650  	return s
 17651  }
 17652  
 17653  // SetInferenceAccelerators sets the InferenceAccelerators field's value.
 17654  func (s *RegisterTaskDefinitionInput) SetInferenceAccelerators(v []*InferenceAccelerator) *RegisterTaskDefinitionInput {
 17655  	s.InferenceAccelerators = v
 17656  	return s
 17657  }
 17658  
 17659  // SetIpcMode sets the IpcMode field's value.
 17660  func (s *RegisterTaskDefinitionInput) SetIpcMode(v string) *RegisterTaskDefinitionInput {
 17661  	s.IpcMode = &v
 17662  	return s
 17663  }
 17664  
 17665  // SetMemory sets the Memory field's value.
 17666  func (s *RegisterTaskDefinitionInput) SetMemory(v string) *RegisterTaskDefinitionInput {
 17667  	s.Memory = &v
 17668  	return s
 17669  }
 17670  
 17671  // SetNetworkMode sets the NetworkMode field's value.
 17672  func (s *RegisterTaskDefinitionInput) SetNetworkMode(v string) *RegisterTaskDefinitionInput {
 17673  	s.NetworkMode = &v
 17674  	return s
 17675  }
 17676  
 17677  // SetPidMode sets the PidMode field's value.
 17678  func (s *RegisterTaskDefinitionInput) SetPidMode(v string) *RegisterTaskDefinitionInput {
 17679  	s.PidMode = &v
 17680  	return s
 17681  }
 17682  
 17683  // SetPlacementConstraints sets the PlacementConstraints field's value.
 17684  func (s *RegisterTaskDefinitionInput) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *RegisterTaskDefinitionInput {
 17685  	s.PlacementConstraints = v
 17686  	return s
 17687  }
 17688  
 17689  // SetProxyConfiguration sets the ProxyConfiguration field's value.
 17690  func (s *RegisterTaskDefinitionInput) SetProxyConfiguration(v *ProxyConfiguration) *RegisterTaskDefinitionInput {
 17691  	s.ProxyConfiguration = v
 17692  	return s
 17693  }
 17694  
 17695  // SetRequiresCompatibilities sets the RequiresCompatibilities field's value.
 17696  func (s *RegisterTaskDefinitionInput) SetRequiresCompatibilities(v []*string) *RegisterTaskDefinitionInput {
 17697  	s.RequiresCompatibilities = v
 17698  	return s
 17699  }
 17700  
 17701  // SetTags sets the Tags field's value.
 17702  func (s *RegisterTaskDefinitionInput) SetTags(v []*Tag) *RegisterTaskDefinitionInput {
 17703  	s.Tags = v
 17704  	return s
 17705  }
 17706  
 17707  // SetTaskRoleArn sets the TaskRoleArn field's value.
 17708  func (s *RegisterTaskDefinitionInput) SetTaskRoleArn(v string) *RegisterTaskDefinitionInput {
 17709  	s.TaskRoleArn = &v
 17710  	return s
 17711  }
 17712  
 17713  // SetVolumes sets the Volumes field's value.
 17714  func (s *RegisterTaskDefinitionInput) SetVolumes(v []*Volume) *RegisterTaskDefinitionInput {
 17715  	s.Volumes = v
 17716  	return s
 17717  }
 17718  
 17719  type RegisterTaskDefinitionOutput struct {
 17720  	_ struct{} `type:"structure"`
 17721  
 17722  	// The list of tags associated with the task definition.
 17723  	Tags []*Tag `locationName:"tags" type:"list"`
 17724  
 17725  	// The full description of the registered task definition.
 17726  	TaskDefinition *TaskDefinition `locationName:"taskDefinition" type:"structure"`
 17727  }
 17728  
 17729  // String returns the string representation.
 17730  //
 17731  // API parameter values that are decorated as "sensitive" in the API will not
 17732  // be included in the string output. The member name will be present, but the
 17733  // value will be replaced with "sensitive".
 17734  func (s RegisterTaskDefinitionOutput) String() string {
 17735  	return awsutil.Prettify(s)
 17736  }
 17737  
 17738  // GoString returns the string representation.
 17739  //
 17740  // API parameter values that are decorated as "sensitive" in the API will not
 17741  // be included in the string output. The member name will be present, but the
 17742  // value will be replaced with "sensitive".
 17743  func (s RegisterTaskDefinitionOutput) GoString() string {
 17744  	return s.String()
 17745  }
 17746  
 17747  // SetTags sets the Tags field's value.
 17748  func (s *RegisterTaskDefinitionOutput) SetTags(v []*Tag) *RegisterTaskDefinitionOutput {
 17749  	s.Tags = v
 17750  	return s
 17751  }
 17752  
 17753  // SetTaskDefinition sets the TaskDefinition field's value.
 17754  func (s *RegisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *RegisterTaskDefinitionOutput {
 17755  	s.TaskDefinition = v
 17756  	return s
 17757  }
 17758  
 17759  // The repository credentials for private registry authentication.
 17760  type RepositoryCredentials struct {
 17761  	_ struct{} `type:"structure"`
 17762  
 17763  	// The Amazon Resource Name (ARN) of the secret containing the private repository
 17764  	// credentials.
 17765  	//
 17766  	// When you are using the Amazon ECS API, CLI, or Amazon Web Services SDK, if
 17767  	// the secret exists in the same Region as the task that you are launching then
 17768  	// you can use either the full ARN or the name of the secret. When you are using
 17769  	// the Amazon Web Services Management Console, you must specify the full ARN
 17770  	// of the secret.
 17771  	//
 17772  	// CredentialsParameter is a required field
 17773  	CredentialsParameter *string `locationName:"credentialsParameter" type:"string" required:"true"`
 17774  }
 17775  
 17776  // String returns the string representation.
 17777  //
 17778  // API parameter values that are decorated as "sensitive" in the API will not
 17779  // be included in the string output. The member name will be present, but the
 17780  // value will be replaced with "sensitive".
 17781  func (s RepositoryCredentials) String() string {
 17782  	return awsutil.Prettify(s)
 17783  }
 17784  
 17785  // GoString returns the string representation.
 17786  //
 17787  // API parameter values that are decorated as "sensitive" in the API will not
 17788  // be included in the string output. The member name will be present, but the
 17789  // value will be replaced with "sensitive".
 17790  func (s RepositoryCredentials) GoString() string {
 17791  	return s.String()
 17792  }
 17793  
 17794  // Validate inspects the fields of the type to determine if they are valid.
 17795  func (s *RepositoryCredentials) Validate() error {
 17796  	invalidParams := request.ErrInvalidParams{Context: "RepositoryCredentials"}
 17797  	if s.CredentialsParameter == nil {
 17798  		invalidParams.Add(request.NewErrParamRequired("CredentialsParameter"))
 17799  	}
 17800  
 17801  	if invalidParams.Len() > 0 {
 17802  		return invalidParams
 17803  	}
 17804  	return nil
 17805  }
 17806  
 17807  // SetCredentialsParameter sets the CredentialsParameter field's value.
 17808  func (s *RepositoryCredentials) SetCredentialsParameter(v string) *RepositoryCredentials {
 17809  	s.CredentialsParameter = &v
 17810  	return s
 17811  }
 17812  
 17813  // Describes the resources available for a container instance.
 17814  type Resource struct {
 17815  	_ struct{} `type:"structure"`
 17816  
 17817  	// When the doubleValue type is set, the value of the resource must be a double
 17818  	// precision floating-point type.
 17819  	DoubleValue *float64 `locationName:"doubleValue" type:"double"`
 17820  
 17821  	// When the integerValue type is set, the value of the resource must be an integer.
 17822  	IntegerValue *int64 `locationName:"integerValue" type:"integer"`
 17823  
 17824  	// When the longValue type is set, the value of the resource must be an extended
 17825  	// precision floating-point type.
 17826  	LongValue *int64 `locationName:"longValue" type:"long"`
 17827  
 17828  	// The name of the resource, such as CPU, MEMORY, PORTS, PORTS_UDP, or a user-defined
 17829  	// resource.
 17830  	Name *string `locationName:"name" type:"string"`
 17831  
 17832  	// When the stringSetValue type is set, the value of the resource must be a
 17833  	// string type.
 17834  	StringSetValue []*string `locationName:"stringSetValue" type:"list"`
 17835  
 17836  	// The type of the resource, such as INTEGER, DOUBLE, LONG, or STRINGSET.
 17837  	Type *string `locationName:"type" type:"string"`
 17838  }
 17839  
 17840  // String returns the string representation.
 17841  //
 17842  // API parameter values that are decorated as "sensitive" in the API will not
 17843  // be included in the string output. The member name will be present, but the
 17844  // value will be replaced with "sensitive".
 17845  func (s Resource) String() string {
 17846  	return awsutil.Prettify(s)
 17847  }
 17848  
 17849  // GoString returns the string representation.
 17850  //
 17851  // API parameter values that are decorated as "sensitive" in the API will not
 17852  // be included in the string output. The member name will be present, but the
 17853  // value will be replaced with "sensitive".
 17854  func (s Resource) GoString() string {
 17855  	return s.String()
 17856  }
 17857  
 17858  // SetDoubleValue sets the DoubleValue field's value.
 17859  func (s *Resource) SetDoubleValue(v float64) *Resource {
 17860  	s.DoubleValue = &v
 17861  	return s
 17862  }
 17863  
 17864  // SetIntegerValue sets the IntegerValue field's value.
 17865  func (s *Resource) SetIntegerValue(v int64) *Resource {
 17866  	s.IntegerValue = &v
 17867  	return s
 17868  }
 17869  
 17870  // SetLongValue sets the LongValue field's value.
 17871  func (s *Resource) SetLongValue(v int64) *Resource {
 17872  	s.LongValue = &v
 17873  	return s
 17874  }
 17875  
 17876  // SetName sets the Name field's value.
 17877  func (s *Resource) SetName(v string) *Resource {
 17878  	s.Name = &v
 17879  	return s
 17880  }
 17881  
 17882  // SetStringSetValue sets the StringSetValue field's value.
 17883  func (s *Resource) SetStringSetValue(v []*string) *Resource {
 17884  	s.StringSetValue = v
 17885  	return s
 17886  }
 17887  
 17888  // SetType sets the Type field's value.
 17889  func (s *Resource) SetType(v string) *Resource {
 17890  	s.Type = &v
 17891  	return s
 17892  }
 17893  
 17894  // The specified resource is in-use and cannot be removed.
 17895  type ResourceInUseException struct {
 17896  	_            struct{}                  `type:"structure"`
 17897  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 17898  
 17899  	Message_ *string `locationName:"message" type:"string"`
 17900  }
 17901  
 17902  // String returns the string representation.
 17903  //
 17904  // API parameter values that are decorated as "sensitive" in the API will not
 17905  // be included in the string output. The member name will be present, but the
 17906  // value will be replaced with "sensitive".
 17907  func (s ResourceInUseException) String() string {
 17908  	return awsutil.Prettify(s)
 17909  }
 17910  
 17911  // GoString returns the string representation.
 17912  //
 17913  // API parameter values that are decorated as "sensitive" in the API will not
 17914  // be included in the string output. The member name will be present, but the
 17915  // value will be replaced with "sensitive".
 17916  func (s ResourceInUseException) GoString() string {
 17917  	return s.String()
 17918  }
 17919  
 17920  func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
 17921  	return &ResourceInUseException{
 17922  		RespMetadata: v,
 17923  	}
 17924  }
 17925  
 17926  // Code returns the exception type name.
 17927  func (s *ResourceInUseException) Code() string {
 17928  	return "ResourceInUseException"
 17929  }
 17930  
 17931  // Message returns the exception's message.
 17932  func (s *ResourceInUseException) Message() string {
 17933  	if s.Message_ != nil {
 17934  		return *s.Message_
 17935  	}
 17936  	return ""
 17937  }
 17938  
 17939  // OrigErr always returns nil, satisfies awserr.Error interface.
 17940  func (s *ResourceInUseException) OrigErr() error {
 17941  	return nil
 17942  }
 17943  
 17944  func (s *ResourceInUseException) Error() string {
 17945  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 17946  }
 17947  
 17948  // Status code returns the HTTP status code for the request's response error.
 17949  func (s *ResourceInUseException) StatusCode() int {
 17950  	return s.RespMetadata.StatusCode
 17951  }
 17952  
 17953  // RequestID returns the service's response RequestID for request.
 17954  func (s *ResourceInUseException) RequestID() string {
 17955  	return s.RespMetadata.RequestID
 17956  }
 17957  
 17958  // The specified resource could not be found.
 17959  type ResourceNotFoundException struct {
 17960  	_            struct{}                  `type:"structure"`
 17961  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 17962  
 17963  	Message_ *string `locationName:"message" type:"string"`
 17964  }
 17965  
 17966  // String returns the string representation.
 17967  //
 17968  // API parameter values that are decorated as "sensitive" in the API will not
 17969  // be included in the string output. The member name will be present, but the
 17970  // value will be replaced with "sensitive".
 17971  func (s ResourceNotFoundException) String() string {
 17972  	return awsutil.Prettify(s)
 17973  }
 17974  
 17975  // GoString returns the string representation.
 17976  //
 17977  // API parameter values that are decorated as "sensitive" in the API will not
 17978  // be included in the string output. The member name will be present, but the
 17979  // value will be replaced with "sensitive".
 17980  func (s ResourceNotFoundException) GoString() string {
 17981  	return s.String()
 17982  }
 17983  
 17984  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
 17985  	return &ResourceNotFoundException{
 17986  		RespMetadata: v,
 17987  	}
 17988  }
 17989  
 17990  // Code returns the exception type name.
 17991  func (s *ResourceNotFoundException) Code() string {
 17992  	return "ResourceNotFoundException"
 17993  }
 17994  
 17995  // Message returns the exception's message.
 17996  func (s *ResourceNotFoundException) Message() string {
 17997  	if s.Message_ != nil {
 17998  		return *s.Message_
 17999  	}
 18000  	return ""
 18001  }
 18002  
 18003  // OrigErr always returns nil, satisfies awserr.Error interface.
 18004  func (s *ResourceNotFoundException) OrigErr() error {
 18005  	return nil
 18006  }
 18007  
 18008  func (s *ResourceNotFoundException) Error() string {
 18009  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 18010  }
 18011  
 18012  // Status code returns the HTTP status code for the request's response error.
 18013  func (s *ResourceNotFoundException) StatusCode() int {
 18014  	return s.RespMetadata.StatusCode
 18015  }
 18016  
 18017  // RequestID returns the service's response RequestID for request.
 18018  func (s *ResourceNotFoundException) RequestID() string {
 18019  	return s.RespMetadata.RequestID
 18020  }
 18021  
 18022  // The type and amount of a resource to assign to a container. The supported
 18023  // resource types are GPUs and Elastic Inference accelerators. For more information,
 18024  // see Working with GPUs on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-gpu.html)
 18025  // or Working with Amazon Elastic Inference on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-eia.html)
 18026  // in the Amazon Elastic Container Service Developer Guide
 18027  type ResourceRequirement struct {
 18028  	_ struct{} `type:"structure"`
 18029  
 18030  	// The type of resource to assign to a container. The supported values are GPU
 18031  	// or InferenceAccelerator.
 18032  	//
 18033  	// Type is a required field
 18034  	Type *string `locationName:"type" type:"string" required:"true" enum:"ResourceType"`
 18035  
 18036  	// The value for the specified resource type.
 18037  	//
 18038  	// If the GPU type is used, the value is the number of physical GPUs the Amazon
 18039  	// ECS container agent will reserve for the container. The number of GPUs reserved
 18040  	// for all containers in a task should not exceed the number of available GPUs
 18041  	// on the container instance the task is launched on.
 18042  	//
 18043  	// If the InferenceAccelerator type is used, the value should match the deviceName
 18044  	// for an InferenceAccelerator specified in a task definition.
 18045  	//
 18046  	// Value is a required field
 18047  	Value *string `locationName:"value" type:"string" required:"true"`
 18048  }
 18049  
 18050  // String returns the string representation.
 18051  //
 18052  // API parameter values that are decorated as "sensitive" in the API will not
 18053  // be included in the string output. The member name will be present, but the
 18054  // value will be replaced with "sensitive".
 18055  func (s ResourceRequirement) String() string {
 18056  	return awsutil.Prettify(s)
 18057  }
 18058  
 18059  // GoString returns the string representation.
 18060  //
 18061  // API parameter values that are decorated as "sensitive" in the API will not
 18062  // be included in the string output. The member name will be present, but the
 18063  // value will be replaced with "sensitive".
 18064  func (s ResourceRequirement) GoString() string {
 18065  	return s.String()
 18066  }
 18067  
 18068  // Validate inspects the fields of the type to determine if they are valid.
 18069  func (s *ResourceRequirement) Validate() error {
 18070  	invalidParams := request.ErrInvalidParams{Context: "ResourceRequirement"}
 18071  	if s.Type == nil {
 18072  		invalidParams.Add(request.NewErrParamRequired("Type"))
 18073  	}
 18074  	if s.Value == nil {
 18075  		invalidParams.Add(request.NewErrParamRequired("Value"))
 18076  	}
 18077  
 18078  	if invalidParams.Len() > 0 {
 18079  		return invalidParams
 18080  	}
 18081  	return nil
 18082  }
 18083  
 18084  // SetType sets the Type field's value.
 18085  func (s *ResourceRequirement) SetType(v string) *ResourceRequirement {
 18086  	s.Type = &v
 18087  	return s
 18088  }
 18089  
 18090  // SetValue sets the Value field's value.
 18091  func (s *ResourceRequirement) SetValue(v string) *ResourceRequirement {
 18092  	s.Value = &v
 18093  	return s
 18094  }
 18095  
 18096  type RunTaskInput struct {
 18097  	_ struct{} `type:"structure"`
 18098  
 18099  	// The capacity provider strategy to use for the task.
 18100  	//
 18101  	// If a capacityProviderStrategy is specified, the launchType parameter must
 18102  	// be omitted. If no capacityProviderStrategy or launchType is specified, the
 18103  	// defaultCapacityProviderStrategy for the cluster is used.
 18104  	//
 18105  	// When you use cluster auto scaling, you must specify capacityProviderStrategy
 18106  	// and not launchType.
 18107  	//
 18108  	// A capacity provider strategy may contain a maximum of 6 capacity providers.
 18109  	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
 18110  
 18111  	// The short name or full Amazon Resource Name (ARN) of the cluster on which
 18112  	// to run your task. If you do not specify a cluster, the default cluster is
 18113  	// assumed.
 18114  	Cluster *string `locationName:"cluster" type:"string"`
 18115  
 18116  	// The number of instantiations of the specified task to place on your cluster.
 18117  	// You can specify up to 10 tasks per call.
 18118  	Count *int64 `locationName:"count" type:"integer"`
 18119  
 18120  	// Specifies whether to enable Amazon ECS managed tags for the task. For more
 18121  	// information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
 18122  	// in the Amazon Elastic Container Service Developer Guide.
 18123  	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
 18124  
 18125  	// Whether or not to enable the execute command functionality for the containers
 18126  	// in this task. If true, this enables execute command functionality on all
 18127  	// containers in the task.
 18128  	EnableExecuteCommand *bool `locationName:"enableExecuteCommand" type:"boolean"`
 18129  
 18130  	// The name of the task group to associate with the task. The default value
 18131  	// is the family name of the task definition (for example, family:my-family-name).
 18132  	Group *string `locationName:"group" type:"string"`
 18133  
 18134  	// The infrastructure on which to run your standalone task. For more information,
 18135  	// see Amazon ECS launch types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
 18136  	// in the Amazon Elastic Container Service Developer Guide.
 18137  	//
 18138  	// The FARGATE launch type runs your tasks on Fargate On-Demand infrastructure.
 18139  	//
 18140  	// Fargate Spot infrastructure is available for use but a capacity provider
 18141  	// strategy must be used. For more information, see Fargate capacity providers
 18142  	// (https://docs.aws.amazon.com/AmazonECS/latest/userguide/fargate-capacity-providers.html)
 18143  	// in the Amazon ECS User Guide for Fargate.
 18144  	//
 18145  	// The EC2 launch type runs your tasks on Amazon EC2 instances registered to
 18146  	// your cluster.
 18147  	//
 18148  	// The EXTERNAL launch type runs your tasks on your on-premise server or virtual
 18149  	// machine (VM) capacity registered to your cluster.
 18150  	//
 18151  	// A task can use either a launch type or a capacity provider strategy. If a
 18152  	// launchType is specified, the capacityProviderStrategy parameter must be omitted.
 18153  	//
 18154  	// When you use cluster auto scaling, you must specify capacityProviderStrategy
 18155  	// and not launchType.
 18156  	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
 18157  
 18158  	// The network configuration for the task. This parameter is required for task
 18159  	// definitions that use the awsvpc network mode to receive their own elastic
 18160  	// network interface, and it is not supported for other network modes. For more
 18161  	// information, see Task networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
 18162  	// in the Amazon Elastic Container Service Developer Guide.
 18163  	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
 18164  
 18165  	// A list of container overrides in JSON format that specify the name of a container
 18166  	// in the specified task definition and the overrides it should receive. You
 18167  	// can override the default command for a container (that is specified in the
 18168  	// task definition or Docker image) with a command override. You can also override
 18169  	// existing environment variables (that are specified in the task definition
 18170  	// or Docker image) on a container or add new environment variables to it with
 18171  	// an environment override.
 18172  	//
 18173  	// A total of 8192 characters are allowed for overrides. This limit includes
 18174  	// the JSON formatting characters of the override structure.
 18175  	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
 18176  
 18177  	// An array of placement constraint objects to use for the task. You can specify
 18178  	// up to 10 constraints per task (including constraints in the task definition
 18179  	// and those specified at runtime).
 18180  	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
 18181  
 18182  	// The placement strategy objects to use for the task. You can specify a maximum
 18183  	// of 5 strategy rules per task.
 18184  	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
 18185  
 18186  	// The platform version the task should use. A platform version is only specified
 18187  	// for tasks hosted on Fargate. If one is not specified, the LATEST platform
 18188  	// version is used by default. For more information, see Fargate platform versions
 18189  	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
 18190  	// in the Amazon Elastic Container Service Developer Guide.
 18191  	PlatformVersion *string `locationName:"platformVersion" type:"string"`
 18192  
 18193  	// Specifies whether to propagate the tags from the task definition to the task.
 18194  	// If no value is specified, the tags are not propagated. Tags can only be propagated
 18195  	// to the task during task creation. To add tags to a task after task creation,
 18196  	// use the TagResource API action.
 18197  	//
 18198  	// An error will be received if you specify the SERVICE option when running
 18199  	// a task.
 18200  	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
 18201  
 18202  	// The reference ID to use for the task. The reference ID can have a maximum
 18203  	// length of 1024 characters.
 18204  	ReferenceId *string `locationName:"referenceId" type:"string"`
 18205  
 18206  	// An optional tag specified when a task is started. For example, if you automatically
 18207  	// trigger a task to run a batch process job, you could apply a unique identifier
 18208  	// for that job to your task with the startedBy parameter. You can then identify
 18209  	// which tasks belong to that job by filtering the results of a ListTasks call
 18210  	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
 18211  	// hyphens, and underscores are allowed.
 18212  	//
 18213  	// If a task is started by an Amazon ECS service, then the startedBy parameter
 18214  	// contains the deployment ID of the service that starts it.
 18215  	StartedBy *string `locationName:"startedBy" type:"string"`
 18216  
 18217  	// The metadata that you apply to the task to help you categorize and organize
 18218  	// them. Each tag consists of a key and an optional value, both of which you
 18219  	// define.
 18220  	//
 18221  	// The following basic restrictions apply to tags:
 18222  	//
 18223  	//    * Maximum number of tags per resource - 50
 18224  	//
 18225  	//    * For each resource, each tag key must be unique, and each tag key can
 18226  	//    have only one value.
 18227  	//
 18228  	//    * Maximum key length - 128 Unicode characters in UTF-8
 18229  	//
 18230  	//    * Maximum value length - 256 Unicode characters in UTF-8
 18231  	//
 18232  	//    * If your tagging schema is used across multiple services and resources,
 18233  	//    remember that other services may have restrictions on allowed characters.
 18234  	//    Generally allowed characters are: letters, numbers, and spaces representable
 18235  	//    in UTF-8, and the following characters: + - = . _ : / @.
 18236  	//
 18237  	//    * Tag keys and values are case-sensitive.
 18238  	//
 18239  	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
 18240  	//    as a prefix for either keys or values as it is reserved for Amazon Web
 18241  	//    Services use. You cannot edit or delete tag keys or values with this prefix.
 18242  	//    Tags with this prefix do not count against your tags per resource limit.
 18243  	Tags []*Tag `locationName:"tags" type:"list"`
 18244  
 18245  	// The family and revision (family:revision) or full ARN of the task definition
 18246  	// to run. If a revision is not specified, the latest ACTIVE revision is used.
 18247  	//
 18248  	// TaskDefinition is a required field
 18249  	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
 18250  }
 18251  
 18252  // String returns the string representation.
 18253  //
 18254  // API parameter values that are decorated as "sensitive" in the API will not
 18255  // be included in the string output. The member name will be present, but the
 18256  // value will be replaced with "sensitive".
 18257  func (s RunTaskInput) String() string {
 18258  	return awsutil.Prettify(s)
 18259  }
 18260  
 18261  // GoString returns the string representation.
 18262  //
 18263  // API parameter values that are decorated as "sensitive" in the API will not
 18264  // be included in the string output. The member name will be present, but the
 18265  // value will be replaced with "sensitive".
 18266  func (s RunTaskInput) GoString() string {
 18267  	return s.String()
 18268  }
 18269  
 18270  // Validate inspects the fields of the type to determine if they are valid.
 18271  func (s *RunTaskInput) Validate() error {
 18272  	invalidParams := request.ErrInvalidParams{Context: "RunTaskInput"}
 18273  	if s.TaskDefinition == nil {
 18274  		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
 18275  	}
 18276  	if s.CapacityProviderStrategy != nil {
 18277  		for i, v := range s.CapacityProviderStrategy {
 18278  			if v == nil {
 18279  				continue
 18280  			}
 18281  			if err := v.Validate(); err != nil {
 18282  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
 18283  			}
 18284  		}
 18285  	}
 18286  	if s.NetworkConfiguration != nil {
 18287  		if err := s.NetworkConfiguration.Validate(); err != nil {
 18288  			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
 18289  		}
 18290  	}
 18291  	if s.Overrides != nil {
 18292  		if err := s.Overrides.Validate(); err != nil {
 18293  			invalidParams.AddNested("Overrides", err.(request.ErrInvalidParams))
 18294  		}
 18295  	}
 18296  	if s.Tags != nil {
 18297  		for i, v := range s.Tags {
 18298  			if v == nil {
 18299  				continue
 18300  			}
 18301  			if err := v.Validate(); err != nil {
 18302  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 18303  			}
 18304  		}
 18305  	}
 18306  
 18307  	if invalidParams.Len() > 0 {
 18308  		return invalidParams
 18309  	}
 18310  	return nil
 18311  }
 18312  
 18313  // SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
 18314  func (s *RunTaskInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *RunTaskInput {
 18315  	s.CapacityProviderStrategy = v
 18316  	return s
 18317  }
 18318  
 18319  // SetCluster sets the Cluster field's value.
 18320  func (s *RunTaskInput) SetCluster(v string) *RunTaskInput {
 18321  	s.Cluster = &v
 18322  	return s
 18323  }
 18324  
 18325  // SetCount sets the Count field's value.
 18326  func (s *RunTaskInput) SetCount(v int64) *RunTaskInput {
 18327  	s.Count = &v
 18328  	return s
 18329  }
 18330  
 18331  // SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
 18332  func (s *RunTaskInput) SetEnableECSManagedTags(v bool) *RunTaskInput {
 18333  	s.EnableECSManagedTags = &v
 18334  	return s
 18335  }
 18336  
 18337  // SetEnableExecuteCommand sets the EnableExecuteCommand field's value.
 18338  func (s *RunTaskInput) SetEnableExecuteCommand(v bool) *RunTaskInput {
 18339  	s.EnableExecuteCommand = &v
 18340  	return s
 18341  }
 18342  
 18343  // SetGroup sets the Group field's value.
 18344  func (s *RunTaskInput) SetGroup(v string) *RunTaskInput {
 18345  	s.Group = &v
 18346  	return s
 18347  }
 18348  
 18349  // SetLaunchType sets the LaunchType field's value.
 18350  func (s *RunTaskInput) SetLaunchType(v string) *RunTaskInput {
 18351  	s.LaunchType = &v
 18352  	return s
 18353  }
 18354  
 18355  // SetNetworkConfiguration sets the NetworkConfiguration field's value.
 18356  func (s *RunTaskInput) SetNetworkConfiguration(v *NetworkConfiguration) *RunTaskInput {
 18357  	s.NetworkConfiguration = v
 18358  	return s
 18359  }
 18360  
 18361  // SetOverrides sets the Overrides field's value.
 18362  func (s *RunTaskInput) SetOverrides(v *TaskOverride) *RunTaskInput {
 18363  	s.Overrides = v
 18364  	return s
 18365  }
 18366  
 18367  // SetPlacementConstraints sets the PlacementConstraints field's value.
 18368  func (s *RunTaskInput) SetPlacementConstraints(v []*PlacementConstraint) *RunTaskInput {
 18369  	s.PlacementConstraints = v
 18370  	return s
 18371  }
 18372  
 18373  // SetPlacementStrategy sets the PlacementStrategy field's value.
 18374  func (s *RunTaskInput) SetPlacementStrategy(v []*PlacementStrategy) *RunTaskInput {
 18375  	s.PlacementStrategy = v
 18376  	return s
 18377  }
 18378  
 18379  // SetPlatformVersion sets the PlatformVersion field's value.
 18380  func (s *RunTaskInput) SetPlatformVersion(v string) *RunTaskInput {
 18381  	s.PlatformVersion = &v
 18382  	return s
 18383  }
 18384  
 18385  // SetPropagateTags sets the PropagateTags field's value.
 18386  func (s *RunTaskInput) SetPropagateTags(v string) *RunTaskInput {
 18387  	s.PropagateTags = &v
 18388  	return s
 18389  }
 18390  
 18391  // SetReferenceId sets the ReferenceId field's value.
 18392  func (s *RunTaskInput) SetReferenceId(v string) *RunTaskInput {
 18393  	s.ReferenceId = &v
 18394  	return s
 18395  }
 18396  
 18397  // SetStartedBy sets the StartedBy field's value.
 18398  func (s *RunTaskInput) SetStartedBy(v string) *RunTaskInput {
 18399  	s.StartedBy = &v
 18400  	return s
 18401  }
 18402  
 18403  // SetTags sets the Tags field's value.
 18404  func (s *RunTaskInput) SetTags(v []*Tag) *RunTaskInput {
 18405  	s.Tags = v
 18406  	return s
 18407  }
 18408  
 18409  // SetTaskDefinition sets the TaskDefinition field's value.
 18410  func (s *RunTaskInput) SetTaskDefinition(v string) *RunTaskInput {
 18411  	s.TaskDefinition = &v
 18412  	return s
 18413  }
 18414  
 18415  type RunTaskOutput struct {
 18416  	_ struct{} `type:"structure"`
 18417  
 18418  	// Any failures associated with the call.
 18419  	Failures []*Failure `locationName:"failures" type:"list"`
 18420  
 18421  	// A full description of the tasks that were run. The tasks that were successfully
 18422  	// placed on your cluster are described here.
 18423  	Tasks []*Task `locationName:"tasks" type:"list"`
 18424  }
 18425  
 18426  // String returns the string representation.
 18427  //
 18428  // API parameter values that are decorated as "sensitive" in the API will not
 18429  // be included in the string output. The member name will be present, but the
 18430  // value will be replaced with "sensitive".
 18431  func (s RunTaskOutput) String() string {
 18432  	return awsutil.Prettify(s)
 18433  }
 18434  
 18435  // GoString returns the string representation.
 18436  //
 18437  // API parameter values that are decorated as "sensitive" in the API will not
 18438  // be included in the string output. The member name will be present, but the
 18439  // value will be replaced with "sensitive".
 18440  func (s RunTaskOutput) GoString() string {
 18441  	return s.String()
 18442  }
 18443  
 18444  // SetFailures sets the Failures field's value.
 18445  func (s *RunTaskOutput) SetFailures(v []*Failure) *RunTaskOutput {
 18446  	s.Failures = v
 18447  	return s
 18448  }
 18449  
 18450  // SetTasks sets the Tasks field's value.
 18451  func (s *RunTaskOutput) SetTasks(v []*Task) *RunTaskOutput {
 18452  	s.Tasks = v
 18453  	return s
 18454  }
 18455  
 18456  // A floating-point percentage of the desired number of tasks to place and keep
 18457  // running in the task set.
 18458  type Scale struct {
 18459  	_ struct{} `type:"structure"`
 18460  
 18461  	// The unit of measure for the scale value.
 18462  	Unit *string `locationName:"unit" type:"string" enum:"ScaleUnit"`
 18463  
 18464  	// The value, specified as a percent total of a service's desiredCount, to scale
 18465  	// the task set. Accepted values are numbers between 0 and 100.
 18466  	Value *float64 `locationName:"value" type:"double"`
 18467  }
 18468  
 18469  // String returns the string representation.
 18470  //
 18471  // API parameter values that are decorated as "sensitive" in the API will not
 18472  // be included in the string output. The member name will be present, but the
 18473  // value will be replaced with "sensitive".
 18474  func (s Scale) String() string {
 18475  	return awsutil.Prettify(s)
 18476  }
 18477  
 18478  // GoString returns the string representation.
 18479  //
 18480  // API parameter values that are decorated as "sensitive" in the API will not
 18481  // be included in the string output. The member name will be present, but the
 18482  // value will be replaced with "sensitive".
 18483  func (s Scale) GoString() string {
 18484  	return s.String()
 18485  }
 18486  
 18487  // SetUnit sets the Unit field's value.
 18488  func (s *Scale) SetUnit(v string) *Scale {
 18489  	s.Unit = &v
 18490  	return s
 18491  }
 18492  
 18493  // SetValue sets the Value field's value.
 18494  func (s *Scale) SetValue(v float64) *Scale {
 18495  	s.Value = &v
 18496  	return s
 18497  }
 18498  
 18499  // An object representing the secret to expose to your container. Secrets can
 18500  // be exposed to a container in the following ways:
 18501  //
 18502  //    * To inject sensitive data into your containers as environment variables,
 18503  //    use the secrets container definition parameter.
 18504  //
 18505  //    * To reference sensitive information in the log configuration of a container,
 18506  //    use the secretOptions container definition parameter.
 18507  //
 18508  // For more information, see Specifying Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html)
 18509  // in the Amazon Elastic Container Service Developer Guide.
 18510  type Secret struct {
 18511  	_ struct{} `type:"structure"`
 18512  
 18513  	// The name of the secret.
 18514  	//
 18515  	// Name is a required field
 18516  	Name *string `locationName:"name" type:"string" required:"true"`
 18517  
 18518  	// The secret to expose to the container. The supported values are either the
 18519  	// full ARN of the Secrets Manager secret or the full ARN of the parameter in
 18520  	// the SSM Parameter Store.
 18521  	//
 18522  	// If the SSM Parameter Store parameter exists in the same Region as the task
 18523  	// you are launching, then you can use either the full ARN or name of the parameter.
 18524  	// If the parameter exists in a different Region, then the full ARN must be
 18525  	// specified.
 18526  	//
 18527  	// ValueFrom is a required field
 18528  	ValueFrom *string `locationName:"valueFrom" type:"string" required:"true"`
 18529  }
 18530  
 18531  // String returns the string representation.
 18532  //
 18533  // API parameter values that are decorated as "sensitive" in the API will not
 18534  // be included in the string output. The member name will be present, but the
 18535  // value will be replaced with "sensitive".
 18536  func (s Secret) String() string {
 18537  	return awsutil.Prettify(s)
 18538  }
 18539  
 18540  // GoString returns the string representation.
 18541  //
 18542  // API parameter values that are decorated as "sensitive" in the API will not
 18543  // be included in the string output. The member name will be present, but the
 18544  // value will be replaced with "sensitive".
 18545  func (s Secret) GoString() string {
 18546  	return s.String()
 18547  }
 18548  
 18549  // Validate inspects the fields of the type to determine if they are valid.
 18550  func (s *Secret) Validate() error {
 18551  	invalidParams := request.ErrInvalidParams{Context: "Secret"}
 18552  	if s.Name == nil {
 18553  		invalidParams.Add(request.NewErrParamRequired("Name"))
 18554  	}
 18555  	if s.ValueFrom == nil {
 18556  		invalidParams.Add(request.NewErrParamRequired("ValueFrom"))
 18557  	}
 18558  
 18559  	if invalidParams.Len() > 0 {
 18560  		return invalidParams
 18561  	}
 18562  	return nil
 18563  }
 18564  
 18565  // SetName sets the Name field's value.
 18566  func (s *Secret) SetName(v string) *Secret {
 18567  	s.Name = &v
 18568  	return s
 18569  }
 18570  
 18571  // SetValueFrom sets the ValueFrom field's value.
 18572  func (s *Secret) SetValueFrom(v string) *Secret {
 18573  	s.ValueFrom = &v
 18574  	return s
 18575  }
 18576  
 18577  // These errors are usually caused by a server issue.
 18578  type ServerException struct {
 18579  	_            struct{}                  `type:"structure"`
 18580  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 18581  
 18582  	Message_ *string `locationName:"message" type:"string"`
 18583  }
 18584  
 18585  // String returns the string representation.
 18586  //
 18587  // API parameter values that are decorated as "sensitive" in the API will not
 18588  // be included in the string output. The member name will be present, but the
 18589  // value will be replaced with "sensitive".
 18590  func (s ServerException) String() string {
 18591  	return awsutil.Prettify(s)
 18592  }
 18593  
 18594  // GoString returns the string representation.
 18595  //
 18596  // API parameter values that are decorated as "sensitive" in the API will not
 18597  // be included in the string output. The member name will be present, but the
 18598  // value will be replaced with "sensitive".
 18599  func (s ServerException) GoString() string {
 18600  	return s.String()
 18601  }
 18602  
 18603  func newErrorServerException(v protocol.ResponseMetadata) error {
 18604  	return &ServerException{
 18605  		RespMetadata: v,
 18606  	}
 18607  }
 18608  
 18609  // Code returns the exception type name.
 18610  func (s *ServerException) Code() string {
 18611  	return "ServerException"
 18612  }
 18613  
 18614  // Message returns the exception's message.
 18615  func (s *ServerException) Message() string {
 18616  	if s.Message_ != nil {
 18617  		return *s.Message_
 18618  	}
 18619  	return ""
 18620  }
 18621  
 18622  // OrigErr always returns nil, satisfies awserr.Error interface.
 18623  func (s *ServerException) OrigErr() error {
 18624  	return nil
 18625  }
 18626  
 18627  func (s *ServerException) Error() string {
 18628  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 18629  }
 18630  
 18631  // Status code returns the HTTP status code for the request's response error.
 18632  func (s *ServerException) StatusCode() int {
 18633  	return s.RespMetadata.StatusCode
 18634  }
 18635  
 18636  // RequestID returns the service's response RequestID for request.
 18637  func (s *ServerException) RequestID() string {
 18638  	return s.RespMetadata.RequestID
 18639  }
 18640  
 18641  // Details on a service within a cluster
 18642  type Service struct {
 18643  	_ struct{} `type:"structure"`
 18644  
 18645  	// The capacity provider strategy the service is using. When using the DescribeServices
 18646  	// API, this field is omitted if the service was created using a launch type.
 18647  	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
 18648  
 18649  	// The Amazon Resource Name (ARN) of the cluster that hosts the service.
 18650  	ClusterArn *string `locationName:"clusterArn" type:"string"`
 18651  
 18652  	// The Unix timestamp for when the service was created.
 18653  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
 18654  
 18655  	// The principal that created the service.
 18656  	CreatedBy *string `locationName:"createdBy" type:"string"`
 18657  
 18658  	// Optional deployment parameters that control how many tasks run during the
 18659  	// deployment and the ordering of stopping and starting tasks.
 18660  	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
 18661  
 18662  	// The deployment controller type the service is using. When using the DescribeServices
 18663  	// API, this field is omitted if the service is using the ECS deployment controller
 18664  	// type.
 18665  	DeploymentController *DeploymentController `locationName:"deploymentController" type:"structure"`
 18666  
 18667  	// The current state of deployments for the service.
 18668  	Deployments []*Deployment `locationName:"deployments" type:"list"`
 18669  
 18670  	// The desired number of instantiations of the task definition to keep running
 18671  	// on the service. This value is specified when the service is created with
 18672  	// CreateService, and it can be modified with UpdateService.
 18673  	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
 18674  
 18675  	// Specifies whether to enable Amazon ECS managed tags for the tasks in the
 18676  	// service. For more information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
 18677  	// in the Amazon Elastic Container Service Developer Guide.
 18678  	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
 18679  
 18680  	// Whether or not the execute command functionality is enabled for the service.
 18681  	// If true, the execute command functionality is enabled for all containers
 18682  	// in tasks as part of the service.
 18683  	EnableExecuteCommand *bool `locationName:"enableExecuteCommand" type:"boolean"`
 18684  
 18685  	// The event stream for your service. A maximum of 100 of the latest events
 18686  	// are displayed.
 18687  	Events []*ServiceEvent `locationName:"events" type:"list"`
 18688  
 18689  	// The period of time, in seconds, that the Amazon ECS service scheduler ignores
 18690  	// unhealthy Elastic Load Balancing target health checks after a task has first
 18691  	// started.
 18692  	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
 18693  
 18694  	// The launch type the service is using. When using the DescribeServices API,
 18695  	// this field is omitted if the service was created using a capacity provider
 18696  	// strategy.
 18697  	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
 18698  
 18699  	// A list of Elastic Load Balancing load balancer objects, containing the load
 18700  	// balancer name, the container name (as it appears in a container definition),
 18701  	// and the container port to access from the load balancer.
 18702  	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
 18703  
 18704  	// The VPC subnet and security group configuration for tasks that receive their
 18705  	// own elastic network interface by using the awsvpc networking mode.
 18706  	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
 18707  
 18708  	// The number of tasks in the cluster that are in the PENDING state.
 18709  	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
 18710  
 18711  	// The placement constraints for the tasks in the service.
 18712  	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
 18713  
 18714  	// The placement strategy that determines how tasks for the service are placed.
 18715  	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
 18716  
 18717  	// The platform version on which to run your service. A platform version is
 18718  	// only specified for tasks hosted on Fargate. If one is not specified, the
 18719  	// LATEST platform version is used by default. For more information, see Fargate
 18720  	// Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
 18721  	// in the Amazon Elastic Container Service Developer Guide.
 18722  	PlatformVersion *string `locationName:"platformVersion" type:"string"`
 18723  
 18724  	// Specifies whether to propagate the tags from the task definition or the service
 18725  	// to the task. If no value is specified, the tags are not propagated.
 18726  	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
 18727  
 18728  	// The ARN of the IAM role associated with the service that allows the Amazon
 18729  	// ECS container agent to register container instances with an Elastic Load
 18730  	// Balancing load balancer.
 18731  	RoleArn *string `locationName:"roleArn" type:"string"`
 18732  
 18733  	// The number of tasks in the cluster that are in the RUNNING state.
 18734  	RunningCount *int64 `locationName:"runningCount" type:"integer"`
 18735  
 18736  	// The scheduling strategy to use for the service. For more information, see
 18737  	// Services (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).
 18738  	//
 18739  	// There are two service scheduler strategies available:
 18740  	//
 18741  	//    * REPLICA-The replica scheduling strategy places and maintains the desired
 18742  	//    number of tasks across your cluster. By default, the service scheduler
 18743  	//    spreads tasks across Availability Zones. You can use task placement strategies
 18744  	//    and constraints to customize task placement decisions.
 18745  	//
 18746  	//    * DAEMON-The daemon scheduling strategy deploys exactly one task on each
 18747  	//    active container instance that meets all of the task placement constraints
 18748  	//    that you specify in your cluster. The service scheduler also evaluates
 18749  	//    the task placement constraints for running tasks and will stop tasks that
 18750  	//    do not meet the placement constraints. Fargate tasks do not support the
 18751  	//    DAEMON scheduling strategy.
 18752  	SchedulingStrategy *string `locationName:"schedulingStrategy" type:"string" enum:"SchedulingStrategy"`
 18753  
 18754  	// The ARN that identifies the service. The ARN contains the arn:aws:ecs namespace,
 18755  	// followed by the Region of the service, the Amazon Web Services account ID
 18756  	// of the service owner, the service namespace, and then the service name. For
 18757  	// example, arn:aws:ecs:region:012345678910:service/my-service.
 18758  	ServiceArn *string `locationName:"serviceArn" type:"string"`
 18759  
 18760  	// The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
 18761  	// underscores, and hyphens are allowed. Service names must be unique within
 18762  	// a cluster, but you can have similarly named services in multiple clusters
 18763  	// within a Region or across multiple Regions.
 18764  	ServiceName *string `locationName:"serviceName" type:"string"`
 18765  
 18766  	// The details of the service discovery registries to assign to this service.
 18767  	// For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
 18768  	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
 18769  
 18770  	// The status of the service. The valid values are ACTIVE, DRAINING, or INACTIVE.
 18771  	Status *string `locationName:"status" type:"string"`
 18772  
 18773  	// The metadata that you apply to the service to help you categorize and organize
 18774  	// them. Each tag consists of a key and an optional value, both of which you
 18775  	// define.
 18776  	//
 18777  	// The following basic restrictions apply to tags:
 18778  	//
 18779  	//    * Maximum number of tags per resource - 50
 18780  	//
 18781  	//    * For each resource, each tag key must be unique, and each tag key can
 18782  	//    have only one value.
 18783  	//
 18784  	//    * Maximum key length - 128 Unicode characters in UTF-8
 18785  	//
 18786  	//    * Maximum value length - 256 Unicode characters in UTF-8
 18787  	//
 18788  	//    * If your tagging schema is used across multiple services and resources,
 18789  	//    remember that other services may have restrictions on allowed characters.
 18790  	//    Generally allowed characters are: letters, numbers, and spaces representable
 18791  	//    in UTF-8, and the following characters: + - = . _ : / @.
 18792  	//
 18793  	//    * Tag keys and values are case-sensitive.
 18794  	//
 18795  	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
 18796  	//    as a prefix for either keys or values as it is reserved for Amazon Web
 18797  	//    Services use. You cannot edit or delete tag keys or values with this prefix.
 18798  	//    Tags with this prefix do not count against your tags per resource limit.
 18799  	Tags []*Tag `locationName:"tags" type:"list"`
 18800  
 18801  	// The task definition to use for tasks in the service. This value is specified
 18802  	// when the service is created with CreateService, and it can be modified with
 18803  	// UpdateService.
 18804  	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
 18805  
 18806  	// Information about a set of Amazon ECS tasks in either an CodeDeploy or an
 18807  	// EXTERNAL deployment. An Amazon ECS task set includes details such as the
 18808  	// desired number of tasks, how many tasks are running, and whether the task
 18809  	// set serves production traffic.
 18810  	TaskSets []*TaskSet `locationName:"taskSets" type:"list"`
 18811  }
 18812  
 18813  // String returns the string representation.
 18814  //
 18815  // API parameter values that are decorated as "sensitive" in the API will not
 18816  // be included in the string output. The member name will be present, but the
 18817  // value will be replaced with "sensitive".
 18818  func (s Service) String() string {
 18819  	return awsutil.Prettify(s)
 18820  }
 18821  
 18822  // GoString returns the string representation.
 18823  //
 18824  // API parameter values that are decorated as "sensitive" in the API will not
 18825  // be included in the string output. The member name will be present, but the
 18826  // value will be replaced with "sensitive".
 18827  func (s Service) GoString() string {
 18828  	return s.String()
 18829  }
 18830  
 18831  // SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
 18832  func (s *Service) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Service {
 18833  	s.CapacityProviderStrategy = v
 18834  	return s
 18835  }
 18836  
 18837  // SetClusterArn sets the ClusterArn field's value.
 18838  func (s *Service) SetClusterArn(v string) *Service {
 18839  	s.ClusterArn = &v
 18840  	return s
 18841  }
 18842  
 18843  // SetCreatedAt sets the CreatedAt field's value.
 18844  func (s *Service) SetCreatedAt(v time.Time) *Service {
 18845  	s.CreatedAt = &v
 18846  	return s
 18847  }
 18848  
 18849  // SetCreatedBy sets the CreatedBy field's value.
 18850  func (s *Service) SetCreatedBy(v string) *Service {
 18851  	s.CreatedBy = &v
 18852  	return s
 18853  }
 18854  
 18855  // SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
 18856  func (s *Service) SetDeploymentConfiguration(v *DeploymentConfiguration) *Service {
 18857  	s.DeploymentConfiguration = v
 18858  	return s
 18859  }
 18860  
 18861  // SetDeploymentController sets the DeploymentController field's value.
 18862  func (s *Service) SetDeploymentController(v *DeploymentController) *Service {
 18863  	s.DeploymentController = v
 18864  	return s
 18865  }
 18866  
 18867  // SetDeployments sets the Deployments field's value.
 18868  func (s *Service) SetDeployments(v []*Deployment) *Service {
 18869  	s.Deployments = v
 18870  	return s
 18871  }
 18872  
 18873  // SetDesiredCount sets the DesiredCount field's value.
 18874  func (s *Service) SetDesiredCount(v int64) *Service {
 18875  	s.DesiredCount = &v
 18876  	return s
 18877  }
 18878  
 18879  // SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
 18880  func (s *Service) SetEnableECSManagedTags(v bool) *Service {
 18881  	s.EnableECSManagedTags = &v
 18882  	return s
 18883  }
 18884  
 18885  // SetEnableExecuteCommand sets the EnableExecuteCommand field's value.
 18886  func (s *Service) SetEnableExecuteCommand(v bool) *Service {
 18887  	s.EnableExecuteCommand = &v
 18888  	return s
 18889  }
 18890  
 18891  // SetEvents sets the Events field's value.
 18892  func (s *Service) SetEvents(v []*ServiceEvent) *Service {
 18893  	s.Events = v
 18894  	return s
 18895  }
 18896  
 18897  // SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
 18898  func (s *Service) SetHealthCheckGracePeriodSeconds(v int64) *Service {
 18899  	s.HealthCheckGracePeriodSeconds = &v
 18900  	return s
 18901  }
 18902  
 18903  // SetLaunchType sets the LaunchType field's value.
 18904  func (s *Service) SetLaunchType(v string) *Service {
 18905  	s.LaunchType = &v
 18906  	return s
 18907  }
 18908  
 18909  // SetLoadBalancers sets the LoadBalancers field's value.
 18910  func (s *Service) SetLoadBalancers(v []*LoadBalancer) *Service {
 18911  	s.LoadBalancers = v
 18912  	return s
 18913  }
 18914  
 18915  // SetNetworkConfiguration sets the NetworkConfiguration field's value.
 18916  func (s *Service) SetNetworkConfiguration(v *NetworkConfiguration) *Service {
 18917  	s.NetworkConfiguration = v
 18918  	return s
 18919  }
 18920  
 18921  // SetPendingCount sets the PendingCount field's value.
 18922  func (s *Service) SetPendingCount(v int64) *Service {
 18923  	s.PendingCount = &v
 18924  	return s
 18925  }
 18926  
 18927  // SetPlacementConstraints sets the PlacementConstraints field's value.
 18928  func (s *Service) SetPlacementConstraints(v []*PlacementConstraint) *Service {
 18929  	s.PlacementConstraints = v
 18930  	return s
 18931  }
 18932  
 18933  // SetPlacementStrategy sets the PlacementStrategy field's value.
 18934  func (s *Service) SetPlacementStrategy(v []*PlacementStrategy) *Service {
 18935  	s.PlacementStrategy = v
 18936  	return s
 18937  }
 18938  
 18939  // SetPlatformVersion sets the PlatformVersion field's value.
 18940  func (s *Service) SetPlatformVersion(v string) *Service {
 18941  	s.PlatformVersion = &v
 18942  	return s
 18943  }
 18944  
 18945  // SetPropagateTags sets the PropagateTags field's value.
 18946  func (s *Service) SetPropagateTags(v string) *Service {
 18947  	s.PropagateTags = &v
 18948  	return s
 18949  }
 18950  
 18951  // SetRoleArn sets the RoleArn field's value.
 18952  func (s *Service) SetRoleArn(v string) *Service {
 18953  	s.RoleArn = &v
 18954  	return s
 18955  }
 18956  
 18957  // SetRunningCount sets the RunningCount field's value.
 18958  func (s *Service) SetRunningCount(v int64) *Service {
 18959  	s.RunningCount = &v
 18960  	return s
 18961  }
 18962  
 18963  // SetSchedulingStrategy sets the SchedulingStrategy field's value.
 18964  func (s *Service) SetSchedulingStrategy(v string) *Service {
 18965  	s.SchedulingStrategy = &v
 18966  	return s
 18967  }
 18968  
 18969  // SetServiceArn sets the ServiceArn field's value.
 18970  func (s *Service) SetServiceArn(v string) *Service {
 18971  	s.ServiceArn = &v
 18972  	return s
 18973  }
 18974  
 18975  // SetServiceName sets the ServiceName field's value.
 18976  func (s *Service) SetServiceName(v string) *Service {
 18977  	s.ServiceName = &v
 18978  	return s
 18979  }
 18980  
 18981  // SetServiceRegistries sets the ServiceRegistries field's value.
 18982  func (s *Service) SetServiceRegistries(v []*ServiceRegistry) *Service {
 18983  	s.ServiceRegistries = v
 18984  	return s
 18985  }
 18986  
 18987  // SetStatus sets the Status field's value.
 18988  func (s *Service) SetStatus(v string) *Service {
 18989  	s.Status = &v
 18990  	return s
 18991  }
 18992  
 18993  // SetTags sets the Tags field's value.
 18994  func (s *Service) SetTags(v []*Tag) *Service {
 18995  	s.Tags = v
 18996  	return s
 18997  }
 18998  
 18999  // SetTaskDefinition sets the TaskDefinition field's value.
 19000  func (s *Service) SetTaskDefinition(v string) *Service {
 19001  	s.TaskDefinition = &v
 19002  	return s
 19003  }
 19004  
 19005  // SetTaskSets sets the TaskSets field's value.
 19006  func (s *Service) SetTaskSets(v []*TaskSet) *Service {
 19007  	s.TaskSets = v
 19008  	return s
 19009  }
 19010  
 19011  // Details on an event associated with a service.
 19012  type ServiceEvent struct {
 19013  	_ struct{} `type:"structure"`
 19014  
 19015  	// The Unix timestamp for when the event was triggered.
 19016  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
 19017  
 19018  	// The ID string of the event.
 19019  	Id *string `locationName:"id" type:"string"`
 19020  
 19021  	// The event message.
 19022  	Message *string `locationName:"message" type:"string"`
 19023  }
 19024  
 19025  // String returns the string representation.
 19026  //
 19027  // API parameter values that are decorated as "sensitive" in the API will not
 19028  // be included in the string output. The member name will be present, but the
 19029  // value will be replaced with "sensitive".
 19030  func (s ServiceEvent) String() string {
 19031  	return awsutil.Prettify(s)
 19032  }
 19033  
 19034  // GoString returns the string representation.
 19035  //
 19036  // API parameter values that are decorated as "sensitive" in the API will not
 19037  // be included in the string output. The member name will be present, but the
 19038  // value will be replaced with "sensitive".
 19039  func (s ServiceEvent) GoString() string {
 19040  	return s.String()
 19041  }
 19042  
 19043  // SetCreatedAt sets the CreatedAt field's value.
 19044  func (s *ServiceEvent) SetCreatedAt(v time.Time) *ServiceEvent {
 19045  	s.CreatedAt = &v
 19046  	return s
 19047  }
 19048  
 19049  // SetId sets the Id field's value.
 19050  func (s *ServiceEvent) SetId(v string) *ServiceEvent {
 19051  	s.Id = &v
 19052  	return s
 19053  }
 19054  
 19055  // SetMessage sets the Message field's value.
 19056  func (s *ServiceEvent) SetMessage(v string) *ServiceEvent {
 19057  	s.Message = &v
 19058  	return s
 19059  }
 19060  
 19061  // The specified service is not active. You can't update a service that is inactive.
 19062  // If you have previously deleted a service, you can re-create it with CreateService.
 19063  type ServiceNotActiveException struct {
 19064  	_            struct{}                  `type:"structure"`
 19065  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 19066  
 19067  	Message_ *string `locationName:"message" type:"string"`
 19068  }
 19069  
 19070  // String returns the string representation.
 19071  //
 19072  // API parameter values that are decorated as "sensitive" in the API will not
 19073  // be included in the string output. The member name will be present, but the
 19074  // value will be replaced with "sensitive".
 19075  func (s ServiceNotActiveException) String() string {
 19076  	return awsutil.Prettify(s)
 19077  }
 19078  
 19079  // GoString returns the string representation.
 19080  //
 19081  // API parameter values that are decorated as "sensitive" in the API will not
 19082  // be included in the string output. The member name will be present, but the
 19083  // value will be replaced with "sensitive".
 19084  func (s ServiceNotActiveException) GoString() string {
 19085  	return s.String()
 19086  }
 19087  
 19088  func newErrorServiceNotActiveException(v protocol.ResponseMetadata) error {
 19089  	return &ServiceNotActiveException{
 19090  		RespMetadata: v,
 19091  	}
 19092  }
 19093  
 19094  // Code returns the exception type name.
 19095  func (s *ServiceNotActiveException) Code() string {
 19096  	return "ServiceNotActiveException"
 19097  }
 19098  
 19099  // Message returns the exception's message.
 19100  func (s *ServiceNotActiveException) Message() string {
 19101  	if s.Message_ != nil {
 19102  		return *s.Message_
 19103  	}
 19104  	return ""
 19105  }
 19106  
 19107  // OrigErr always returns nil, satisfies awserr.Error interface.
 19108  func (s *ServiceNotActiveException) OrigErr() error {
 19109  	return nil
 19110  }
 19111  
 19112  func (s *ServiceNotActiveException) Error() string {
 19113  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 19114  }
 19115  
 19116  // Status code returns the HTTP status code for the request's response error.
 19117  func (s *ServiceNotActiveException) StatusCode() int {
 19118  	return s.RespMetadata.StatusCode
 19119  }
 19120  
 19121  // RequestID returns the service's response RequestID for request.
 19122  func (s *ServiceNotActiveException) RequestID() string {
 19123  	return s.RespMetadata.RequestID
 19124  }
 19125  
 19126  // The specified service could not be found. You can view your available services
 19127  // with ListServices. Amazon ECS services are cluster-specific and Region-specific.
 19128  type ServiceNotFoundException struct {
 19129  	_            struct{}                  `type:"structure"`
 19130  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 19131  
 19132  	Message_ *string `locationName:"message" type:"string"`
 19133  }
 19134  
 19135  // String returns the string representation.
 19136  //
 19137  // API parameter values that are decorated as "sensitive" in the API will not
 19138  // be included in the string output. The member name will be present, but the
 19139  // value will be replaced with "sensitive".
 19140  func (s ServiceNotFoundException) String() string {
 19141  	return awsutil.Prettify(s)
 19142  }
 19143  
 19144  // GoString returns the string representation.
 19145  //
 19146  // API parameter values that are decorated as "sensitive" in the API will not
 19147  // be included in the string output. The member name will be present, but the
 19148  // value will be replaced with "sensitive".
 19149  func (s ServiceNotFoundException) GoString() string {
 19150  	return s.String()
 19151  }
 19152  
 19153  func newErrorServiceNotFoundException(v protocol.ResponseMetadata) error {
 19154  	return &ServiceNotFoundException{
 19155  		RespMetadata: v,
 19156  	}
 19157  }
 19158  
 19159  // Code returns the exception type name.
 19160  func (s *ServiceNotFoundException) Code() string {
 19161  	return "ServiceNotFoundException"
 19162  }
 19163  
 19164  // Message returns the exception's message.
 19165  func (s *ServiceNotFoundException) Message() string {
 19166  	if s.Message_ != nil {
 19167  		return *s.Message_
 19168  	}
 19169  	return ""
 19170  }
 19171  
 19172  // OrigErr always returns nil, satisfies awserr.Error interface.
 19173  func (s *ServiceNotFoundException) OrigErr() error {
 19174  	return nil
 19175  }
 19176  
 19177  func (s *ServiceNotFoundException) Error() string {
 19178  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 19179  }
 19180  
 19181  // Status code returns the HTTP status code for the request's response error.
 19182  func (s *ServiceNotFoundException) StatusCode() int {
 19183  	return s.RespMetadata.StatusCode
 19184  }
 19185  
 19186  // RequestID returns the service's response RequestID for request.
 19187  func (s *ServiceNotFoundException) RequestID() string {
 19188  	return s.RespMetadata.RequestID
 19189  }
 19190  
 19191  // Details of the service registry.
 19192  type ServiceRegistry struct {
 19193  	_ struct{} `type:"structure"`
 19194  
 19195  	// The container name value, already specified in the task definition, to be
 19196  	// used for your service discovery service. If the task definition that your
 19197  	// service task specifies uses the bridge or host network mode, you must specify
 19198  	// a containerName and containerPort combination from the task definition. If
 19199  	// the task definition that your service task specifies uses the awsvpc network
 19200  	// mode and a type SRV DNS record is used, you must specify either a containerName
 19201  	// and containerPort combination or a port value, but not both.
 19202  	ContainerName *string `locationName:"containerName" type:"string"`
 19203  
 19204  	// The port value, already specified in the task definition, to be used for
 19205  	// your service discovery service. If the task definition your service task
 19206  	// specifies uses the bridge or host network mode, you must specify a containerName
 19207  	// and containerPort combination from the task definition. If the task definition
 19208  	// your service task specifies uses the awsvpc network mode and a type SRV DNS
 19209  	// record is used, you must specify either a containerName and containerPort
 19210  	// combination or a port value, but not both.
 19211  	ContainerPort *int64 `locationName:"containerPort" type:"integer"`
 19212  
 19213  	// The port value used if your service discovery service specified an SRV record.
 19214  	// This field may be used if both the awsvpc network mode and SRV records are
 19215  	// used.
 19216  	Port *int64 `locationName:"port" type:"integer"`
 19217  
 19218  	// The Amazon Resource Name (ARN) of the service registry. The currently supported
 19219  	// service registry is Cloud Map. For more information, see CreateService (https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html).
 19220  	RegistryArn *string `locationName:"registryArn" type:"string"`
 19221  }
 19222  
 19223  // String returns the string representation.
 19224  //
 19225  // API parameter values that are decorated as "sensitive" in the API will not
 19226  // be included in the string output. The member name will be present, but the
 19227  // value will be replaced with "sensitive".
 19228  func (s ServiceRegistry) String() string {
 19229  	return awsutil.Prettify(s)
 19230  }
 19231  
 19232  // GoString returns the string representation.
 19233  //
 19234  // API parameter values that are decorated as "sensitive" in the API will not
 19235  // be included in the string output. The member name will be present, but the
 19236  // value will be replaced with "sensitive".
 19237  func (s ServiceRegistry) GoString() string {
 19238  	return s.String()
 19239  }
 19240  
 19241  // SetContainerName sets the ContainerName field's value.
 19242  func (s *ServiceRegistry) SetContainerName(v string) *ServiceRegistry {
 19243  	s.ContainerName = &v
 19244  	return s
 19245  }
 19246  
 19247  // SetContainerPort sets the ContainerPort field's value.
 19248  func (s *ServiceRegistry) SetContainerPort(v int64) *ServiceRegistry {
 19249  	s.ContainerPort = &v
 19250  	return s
 19251  }
 19252  
 19253  // SetPort sets the Port field's value.
 19254  func (s *ServiceRegistry) SetPort(v int64) *ServiceRegistry {
 19255  	s.Port = &v
 19256  	return s
 19257  }
 19258  
 19259  // SetRegistryArn sets the RegistryArn field's value.
 19260  func (s *ServiceRegistry) SetRegistryArn(v string) *ServiceRegistry {
 19261  	s.RegistryArn = &v
 19262  	return s
 19263  }
 19264  
 19265  // The details of the execute command session.
 19266  type Session struct {
 19267  	_ struct{} `type:"structure"`
 19268  
 19269  	// The ID of the execute command session.
 19270  	SessionId *string `locationName:"sessionId" type:"string"`
 19271  
 19272  	// A URL back to managed agent on the container that the SSM Session Manager
 19273  	// client uses to send commands and receive output from the container.
 19274  	StreamUrl *string `locationName:"streamUrl" type:"string"`
 19275  
 19276  	// An encrypted token value containing session and caller information. Used
 19277  	// to authenticate the connection to the container.
 19278  	//
 19279  	// TokenValue is a sensitive parameter and its value will be
 19280  	// replaced with "sensitive" in string returned by Session's
 19281  	// String and GoString methods.
 19282  	TokenValue *string `locationName:"tokenValue" type:"string" sensitive:"true"`
 19283  }
 19284  
 19285  // String returns the string representation.
 19286  //
 19287  // API parameter values that are decorated as "sensitive" in the API will not
 19288  // be included in the string output. The member name will be present, but the
 19289  // value will be replaced with "sensitive".
 19290  func (s Session) String() string {
 19291  	return awsutil.Prettify(s)
 19292  }
 19293  
 19294  // GoString returns the string representation.
 19295  //
 19296  // API parameter values that are decorated as "sensitive" in the API will not
 19297  // be included in the string output. The member name will be present, but the
 19298  // value will be replaced with "sensitive".
 19299  func (s Session) GoString() string {
 19300  	return s.String()
 19301  }
 19302  
 19303  // SetSessionId sets the SessionId field's value.
 19304  func (s *Session) SetSessionId(v string) *Session {
 19305  	s.SessionId = &v
 19306  	return s
 19307  }
 19308  
 19309  // SetStreamUrl sets the StreamUrl field's value.
 19310  func (s *Session) SetStreamUrl(v string) *Session {
 19311  	s.StreamUrl = &v
 19312  	return s
 19313  }
 19314  
 19315  // SetTokenValue sets the TokenValue field's value.
 19316  func (s *Session) SetTokenValue(v string) *Session {
 19317  	s.TokenValue = &v
 19318  	return s
 19319  }
 19320  
 19321  // The current account setting for a resource.
 19322  type Setting struct {
 19323  	_ struct{} `type:"structure"`
 19324  
 19325  	// The Amazon ECS resource name.
 19326  	Name *string `locationName:"name" type:"string" enum:"SettingName"`
 19327  
 19328  	// The ARN of the principal, which can be an IAM user, IAM role, or the root
 19329  	// user. If this field is omitted, the authenticated user is assumed.
 19330  	PrincipalArn *string `locationName:"principalArn" type:"string"`
 19331  
 19332  	// Whether the account setting is enabled or disabled for the specified resource.
 19333  	Value *string `locationName:"value" type:"string"`
 19334  }
 19335  
 19336  // String returns the string representation.
 19337  //
 19338  // API parameter values that are decorated as "sensitive" in the API will not
 19339  // be included in the string output. The member name will be present, but the
 19340  // value will be replaced with "sensitive".
 19341  func (s Setting) String() string {
 19342  	return awsutil.Prettify(s)
 19343  }
 19344  
 19345  // GoString returns the string representation.
 19346  //
 19347  // API parameter values that are decorated as "sensitive" in the API will not
 19348  // be included in the string output. The member name will be present, but the
 19349  // value will be replaced with "sensitive".
 19350  func (s Setting) GoString() string {
 19351  	return s.String()
 19352  }
 19353  
 19354  // SetName sets the Name field's value.
 19355  func (s *Setting) SetName(v string) *Setting {
 19356  	s.Name = &v
 19357  	return s
 19358  }
 19359  
 19360  // SetPrincipalArn sets the PrincipalArn field's value.
 19361  func (s *Setting) SetPrincipalArn(v string) *Setting {
 19362  	s.PrincipalArn = &v
 19363  	return s
 19364  }
 19365  
 19366  // SetValue sets the Value field's value.
 19367  func (s *Setting) SetValue(v string) *Setting {
 19368  	s.Value = &v
 19369  	return s
 19370  }
 19371  
 19372  type StartTaskInput struct {
 19373  	_ struct{} `type:"structure"`
 19374  
 19375  	// The short name or full Amazon Resource Name (ARN) of the cluster on which
 19376  	// to start your task. If you do not specify a cluster, the default cluster
 19377  	// is assumed.
 19378  	Cluster *string `locationName:"cluster" type:"string"`
 19379  
 19380  	// The container instance IDs or full ARN entries for the container instances
 19381  	// on which you would like to place your task. You can specify up to 10 container
 19382  	// instances.
 19383  	//
 19384  	// ContainerInstances is a required field
 19385  	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
 19386  
 19387  	// Specifies whether to enable Amazon ECS managed tags for the task. For more
 19388  	// information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
 19389  	// in the Amazon Elastic Container Service Developer Guide.
 19390  	EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"`
 19391  
 19392  	// Whether or not the execute command functionality is enabled for the task.
 19393  	// If true, this enables execute command functionality on all containers in
 19394  	// the task.
 19395  	EnableExecuteCommand *bool `locationName:"enableExecuteCommand" type:"boolean"`
 19396  
 19397  	// The name of the task group to associate with the task. The default value
 19398  	// is the family name of the task definition (for example, family:my-family-name).
 19399  	Group *string `locationName:"group" type:"string"`
 19400  
 19401  	// The VPC subnet and security group configuration for tasks that receive their
 19402  	// own elastic network interface by using the awsvpc networking mode.
 19403  	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
 19404  
 19405  	// A list of container overrides in JSON format that specify the name of a container
 19406  	// in the specified task definition and the overrides it should receive. You
 19407  	// can override the default command for a container (that is specified in the
 19408  	// task definition or Docker image) with a command override. You can also override
 19409  	// existing environment variables (that are specified in the task definition
 19410  	// or Docker image) on a container or add new environment variables to it with
 19411  	// an environment override.
 19412  	//
 19413  	// A total of 8192 characters are allowed for overrides. This limit includes
 19414  	// the JSON formatting characters of the override structure.
 19415  	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
 19416  
 19417  	// Specifies whether to propagate the tags from the task definition or the service
 19418  	// to the task. If no value is specified, the tags are not propagated.
 19419  	PropagateTags *string `locationName:"propagateTags" type:"string" enum:"PropagateTags"`
 19420  
 19421  	// The reference ID to use for the task.
 19422  	ReferenceId *string `locationName:"referenceId" type:"string"`
 19423  
 19424  	// An optional tag specified when a task is started. For example, if you automatically
 19425  	// trigger a task to run a batch process job, you could apply a unique identifier
 19426  	// for that job to your task with the startedBy parameter. You can then identify
 19427  	// which tasks belong to that job by filtering the results of a ListTasks call
 19428  	// with the startedBy value. Up to 36 letters (uppercase and lowercase), numbers,
 19429  	// hyphens, and underscores are allowed.
 19430  	//
 19431  	// If a task is started by an Amazon ECS service, then the startedBy parameter
 19432  	// contains the deployment ID of the service that starts it.
 19433  	StartedBy *string `locationName:"startedBy" type:"string"`
 19434  
 19435  	// The metadata that you apply to the task to help you categorize and organize
 19436  	// them. Each tag consists of a key and an optional value, both of which you
 19437  	// define.
 19438  	//
 19439  	// The following basic restrictions apply to tags:
 19440  	//
 19441  	//    * Maximum number of tags per resource - 50
 19442  	//
 19443  	//    * For each resource, each tag key must be unique, and each tag key can
 19444  	//    have only one value.
 19445  	//
 19446  	//    * Maximum key length - 128 Unicode characters in UTF-8
 19447  	//
 19448  	//    * Maximum value length - 256 Unicode characters in UTF-8
 19449  	//
 19450  	//    * If your tagging schema is used across multiple services and resources,
 19451  	//    remember that other services may have restrictions on allowed characters.
 19452  	//    Generally allowed characters are: letters, numbers, and spaces representable
 19453  	//    in UTF-8, and the following characters: + - = . _ : / @.
 19454  	//
 19455  	//    * Tag keys and values are case-sensitive.
 19456  	//
 19457  	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
 19458  	//    as a prefix for either keys or values as it is reserved for Amazon Web
 19459  	//    Services use. You cannot edit or delete tag keys or values with this prefix.
 19460  	//    Tags with this prefix do not count against your tags per resource limit.
 19461  	Tags []*Tag `locationName:"tags" type:"list"`
 19462  
 19463  	// The family and revision (family:revision) or full ARN of the task definition
 19464  	// to start. If a revision is not specified, the latest ACTIVE revision is used.
 19465  	//
 19466  	// TaskDefinition is a required field
 19467  	TaskDefinition *string `locationName:"taskDefinition" type:"string" required:"true"`
 19468  }
 19469  
 19470  // String returns the string representation.
 19471  //
 19472  // API parameter values that are decorated as "sensitive" in the API will not
 19473  // be included in the string output. The member name will be present, but the
 19474  // value will be replaced with "sensitive".
 19475  func (s StartTaskInput) String() string {
 19476  	return awsutil.Prettify(s)
 19477  }
 19478  
 19479  // GoString returns the string representation.
 19480  //
 19481  // API parameter values that are decorated as "sensitive" in the API will not
 19482  // be included in the string output. The member name will be present, but the
 19483  // value will be replaced with "sensitive".
 19484  func (s StartTaskInput) GoString() string {
 19485  	return s.String()
 19486  }
 19487  
 19488  // Validate inspects the fields of the type to determine if they are valid.
 19489  func (s *StartTaskInput) Validate() error {
 19490  	invalidParams := request.ErrInvalidParams{Context: "StartTaskInput"}
 19491  	if s.ContainerInstances == nil {
 19492  		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
 19493  	}
 19494  	if s.TaskDefinition == nil {
 19495  		invalidParams.Add(request.NewErrParamRequired("TaskDefinition"))
 19496  	}
 19497  	if s.NetworkConfiguration != nil {
 19498  		if err := s.NetworkConfiguration.Validate(); err != nil {
 19499  			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
 19500  		}
 19501  	}
 19502  	if s.Overrides != nil {
 19503  		if err := s.Overrides.Validate(); err != nil {
 19504  			invalidParams.AddNested("Overrides", err.(request.ErrInvalidParams))
 19505  		}
 19506  	}
 19507  	if s.Tags != nil {
 19508  		for i, v := range s.Tags {
 19509  			if v == nil {
 19510  				continue
 19511  			}
 19512  			if err := v.Validate(); err != nil {
 19513  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 19514  			}
 19515  		}
 19516  	}
 19517  
 19518  	if invalidParams.Len() > 0 {
 19519  		return invalidParams
 19520  	}
 19521  	return nil
 19522  }
 19523  
 19524  // SetCluster sets the Cluster field's value.
 19525  func (s *StartTaskInput) SetCluster(v string) *StartTaskInput {
 19526  	s.Cluster = &v
 19527  	return s
 19528  }
 19529  
 19530  // SetContainerInstances sets the ContainerInstances field's value.
 19531  func (s *StartTaskInput) SetContainerInstances(v []*string) *StartTaskInput {
 19532  	s.ContainerInstances = v
 19533  	return s
 19534  }
 19535  
 19536  // SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
 19537  func (s *StartTaskInput) SetEnableECSManagedTags(v bool) *StartTaskInput {
 19538  	s.EnableECSManagedTags = &v
 19539  	return s
 19540  }
 19541  
 19542  // SetEnableExecuteCommand sets the EnableExecuteCommand field's value.
 19543  func (s *StartTaskInput) SetEnableExecuteCommand(v bool) *StartTaskInput {
 19544  	s.EnableExecuteCommand = &v
 19545  	return s
 19546  }
 19547  
 19548  // SetGroup sets the Group field's value.
 19549  func (s *StartTaskInput) SetGroup(v string) *StartTaskInput {
 19550  	s.Group = &v
 19551  	return s
 19552  }
 19553  
 19554  // SetNetworkConfiguration sets the NetworkConfiguration field's value.
 19555  func (s *StartTaskInput) SetNetworkConfiguration(v *NetworkConfiguration) *StartTaskInput {
 19556  	s.NetworkConfiguration = v
 19557  	return s
 19558  }
 19559  
 19560  // SetOverrides sets the Overrides field's value.
 19561  func (s *StartTaskInput) SetOverrides(v *TaskOverride) *StartTaskInput {
 19562  	s.Overrides = v
 19563  	return s
 19564  }
 19565  
 19566  // SetPropagateTags sets the PropagateTags field's value.
 19567  func (s *StartTaskInput) SetPropagateTags(v string) *StartTaskInput {
 19568  	s.PropagateTags = &v
 19569  	return s
 19570  }
 19571  
 19572  // SetReferenceId sets the ReferenceId field's value.
 19573  func (s *StartTaskInput) SetReferenceId(v string) *StartTaskInput {
 19574  	s.ReferenceId = &v
 19575  	return s
 19576  }
 19577  
 19578  // SetStartedBy sets the StartedBy field's value.
 19579  func (s *StartTaskInput) SetStartedBy(v string) *StartTaskInput {
 19580  	s.StartedBy = &v
 19581  	return s
 19582  }
 19583  
 19584  // SetTags sets the Tags field's value.
 19585  func (s *StartTaskInput) SetTags(v []*Tag) *StartTaskInput {
 19586  	s.Tags = v
 19587  	return s
 19588  }
 19589  
 19590  // SetTaskDefinition sets the TaskDefinition field's value.
 19591  func (s *StartTaskInput) SetTaskDefinition(v string) *StartTaskInput {
 19592  	s.TaskDefinition = &v
 19593  	return s
 19594  }
 19595  
 19596  type StartTaskOutput struct {
 19597  	_ struct{} `type:"structure"`
 19598  
 19599  	// Any failures associated with the call.
 19600  	Failures []*Failure `locationName:"failures" type:"list"`
 19601  
 19602  	// A full description of the tasks that were started. Each task that was successfully
 19603  	// placed on your container instances is described.
 19604  	Tasks []*Task `locationName:"tasks" type:"list"`
 19605  }
 19606  
 19607  // String returns the string representation.
 19608  //
 19609  // API parameter values that are decorated as "sensitive" in the API will not
 19610  // be included in the string output. The member name will be present, but the
 19611  // value will be replaced with "sensitive".
 19612  func (s StartTaskOutput) String() string {
 19613  	return awsutil.Prettify(s)
 19614  }
 19615  
 19616  // GoString returns the string representation.
 19617  //
 19618  // API parameter values that are decorated as "sensitive" in the API will not
 19619  // be included in the string output. The member name will be present, but the
 19620  // value will be replaced with "sensitive".
 19621  func (s StartTaskOutput) GoString() string {
 19622  	return s.String()
 19623  }
 19624  
 19625  // SetFailures sets the Failures field's value.
 19626  func (s *StartTaskOutput) SetFailures(v []*Failure) *StartTaskOutput {
 19627  	s.Failures = v
 19628  	return s
 19629  }
 19630  
 19631  // SetTasks sets the Tasks field's value.
 19632  func (s *StartTaskOutput) SetTasks(v []*Task) *StartTaskOutput {
 19633  	s.Tasks = v
 19634  	return s
 19635  }
 19636  
 19637  type StopTaskInput struct {
 19638  	_ struct{} `type:"structure"`
 19639  
 19640  	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
 19641  	// the task to stop. If you do not specify a cluster, the default cluster is
 19642  	// assumed.
 19643  	Cluster *string `locationName:"cluster" type:"string"`
 19644  
 19645  	// An optional message specified when a task is stopped. For example, if you
 19646  	// are using a custom scheduler, you can use this parameter to specify the reason
 19647  	// for stopping the task here, and the message appears in subsequent DescribeTasks
 19648  	// API operations on this task. Up to 255 characters are allowed in this message.
 19649  	Reason *string `locationName:"reason" type:"string"`
 19650  
 19651  	// The task ID or full Amazon Resource Name (ARN) of the task to stop.
 19652  	//
 19653  	// Task is a required field
 19654  	Task *string `locationName:"task" type:"string" required:"true"`
 19655  }
 19656  
 19657  // String returns the string representation.
 19658  //
 19659  // API parameter values that are decorated as "sensitive" in the API will not
 19660  // be included in the string output. The member name will be present, but the
 19661  // value will be replaced with "sensitive".
 19662  func (s StopTaskInput) String() string {
 19663  	return awsutil.Prettify(s)
 19664  }
 19665  
 19666  // GoString returns the string representation.
 19667  //
 19668  // API parameter values that are decorated as "sensitive" in the API will not
 19669  // be included in the string output. The member name will be present, but the
 19670  // value will be replaced with "sensitive".
 19671  func (s StopTaskInput) GoString() string {
 19672  	return s.String()
 19673  }
 19674  
 19675  // Validate inspects the fields of the type to determine if they are valid.
 19676  func (s *StopTaskInput) Validate() error {
 19677  	invalidParams := request.ErrInvalidParams{Context: "StopTaskInput"}
 19678  	if s.Task == nil {
 19679  		invalidParams.Add(request.NewErrParamRequired("Task"))
 19680  	}
 19681  
 19682  	if invalidParams.Len() > 0 {
 19683  		return invalidParams
 19684  	}
 19685  	return nil
 19686  }
 19687  
 19688  // SetCluster sets the Cluster field's value.
 19689  func (s *StopTaskInput) SetCluster(v string) *StopTaskInput {
 19690  	s.Cluster = &v
 19691  	return s
 19692  }
 19693  
 19694  // SetReason sets the Reason field's value.
 19695  func (s *StopTaskInput) SetReason(v string) *StopTaskInput {
 19696  	s.Reason = &v
 19697  	return s
 19698  }
 19699  
 19700  // SetTask sets the Task field's value.
 19701  func (s *StopTaskInput) SetTask(v string) *StopTaskInput {
 19702  	s.Task = &v
 19703  	return s
 19704  }
 19705  
 19706  type StopTaskOutput struct {
 19707  	_ struct{} `type:"structure"`
 19708  
 19709  	// The task that was stopped.
 19710  	Task *Task `locationName:"task" type:"structure"`
 19711  }
 19712  
 19713  // String returns the string representation.
 19714  //
 19715  // API parameter values that are decorated as "sensitive" in the API will not
 19716  // be included in the string output. The member name will be present, but the
 19717  // value will be replaced with "sensitive".
 19718  func (s StopTaskOutput) String() string {
 19719  	return awsutil.Prettify(s)
 19720  }
 19721  
 19722  // GoString returns the string representation.
 19723  //
 19724  // API parameter values that are decorated as "sensitive" in the API will not
 19725  // be included in the string output. The member name will be present, but the
 19726  // value will be replaced with "sensitive".
 19727  func (s StopTaskOutput) GoString() string {
 19728  	return s.String()
 19729  }
 19730  
 19731  // SetTask sets the Task field's value.
 19732  func (s *StopTaskOutput) SetTask(v *Task) *StopTaskOutput {
 19733  	s.Task = v
 19734  	return s
 19735  }
 19736  
 19737  type SubmitAttachmentStateChangesInput struct {
 19738  	_ struct{} `type:"structure"`
 19739  
 19740  	// Any attachments associated with the state change request.
 19741  	//
 19742  	// Attachments is a required field
 19743  	Attachments []*AttachmentStateChange `locationName:"attachments" type:"list" required:"true"`
 19744  
 19745  	// The short name or full ARN of the cluster that hosts the container instance
 19746  	// the attachment belongs to.
 19747  	Cluster *string `locationName:"cluster" type:"string"`
 19748  }
 19749  
 19750  // String returns the string representation.
 19751  //
 19752  // API parameter values that are decorated as "sensitive" in the API will not
 19753  // be included in the string output. The member name will be present, but the
 19754  // value will be replaced with "sensitive".
 19755  func (s SubmitAttachmentStateChangesInput) String() string {
 19756  	return awsutil.Prettify(s)
 19757  }
 19758  
 19759  // GoString returns the string representation.
 19760  //
 19761  // API parameter values that are decorated as "sensitive" in the API will not
 19762  // be included in the string output. The member name will be present, but the
 19763  // value will be replaced with "sensitive".
 19764  func (s SubmitAttachmentStateChangesInput) GoString() string {
 19765  	return s.String()
 19766  }
 19767  
 19768  // Validate inspects the fields of the type to determine if they are valid.
 19769  func (s *SubmitAttachmentStateChangesInput) Validate() error {
 19770  	invalidParams := request.ErrInvalidParams{Context: "SubmitAttachmentStateChangesInput"}
 19771  	if s.Attachments == nil {
 19772  		invalidParams.Add(request.NewErrParamRequired("Attachments"))
 19773  	}
 19774  	if s.Attachments != nil {
 19775  		for i, v := range s.Attachments {
 19776  			if v == nil {
 19777  				continue
 19778  			}
 19779  			if err := v.Validate(); err != nil {
 19780  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams))
 19781  			}
 19782  		}
 19783  	}
 19784  
 19785  	if invalidParams.Len() > 0 {
 19786  		return invalidParams
 19787  	}
 19788  	return nil
 19789  }
 19790  
 19791  // SetAttachments sets the Attachments field's value.
 19792  func (s *SubmitAttachmentStateChangesInput) SetAttachments(v []*AttachmentStateChange) *SubmitAttachmentStateChangesInput {
 19793  	s.Attachments = v
 19794  	return s
 19795  }
 19796  
 19797  // SetCluster sets the Cluster field's value.
 19798  func (s *SubmitAttachmentStateChangesInput) SetCluster(v string) *SubmitAttachmentStateChangesInput {
 19799  	s.Cluster = &v
 19800  	return s
 19801  }
 19802  
 19803  type SubmitAttachmentStateChangesOutput struct {
 19804  	_ struct{} `type:"structure"`
 19805  
 19806  	// Acknowledgement of the state change.
 19807  	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
 19808  }
 19809  
 19810  // String returns the string representation.
 19811  //
 19812  // API parameter values that are decorated as "sensitive" in the API will not
 19813  // be included in the string output. The member name will be present, but the
 19814  // value will be replaced with "sensitive".
 19815  func (s SubmitAttachmentStateChangesOutput) String() string {
 19816  	return awsutil.Prettify(s)
 19817  }
 19818  
 19819  // GoString returns the string representation.
 19820  //
 19821  // API parameter values that are decorated as "sensitive" in the API will not
 19822  // be included in the string output. The member name will be present, but the
 19823  // value will be replaced with "sensitive".
 19824  func (s SubmitAttachmentStateChangesOutput) GoString() string {
 19825  	return s.String()
 19826  }
 19827  
 19828  // SetAcknowledgment sets the Acknowledgment field's value.
 19829  func (s *SubmitAttachmentStateChangesOutput) SetAcknowledgment(v string) *SubmitAttachmentStateChangesOutput {
 19830  	s.Acknowledgment = &v
 19831  	return s
 19832  }
 19833  
 19834  type SubmitContainerStateChangeInput struct {
 19835  	_ struct{} `type:"structure"`
 19836  
 19837  	// The short name or full ARN of the cluster that hosts the container.
 19838  	Cluster *string `locationName:"cluster" type:"string"`
 19839  
 19840  	// The name of the container.
 19841  	ContainerName *string `locationName:"containerName" type:"string"`
 19842  
 19843  	// The exit code returned for the state change request.
 19844  	ExitCode *int64 `locationName:"exitCode" type:"integer"`
 19845  
 19846  	// The network bindings of the container.
 19847  	NetworkBindings []*NetworkBinding `locationName:"networkBindings" type:"list"`
 19848  
 19849  	// The reason for the state change request.
 19850  	Reason *string `locationName:"reason" type:"string"`
 19851  
 19852  	// The ID of the Docker container.
 19853  	RuntimeId *string `locationName:"runtimeId" type:"string"`
 19854  
 19855  	// The status of the state change request.
 19856  	Status *string `locationName:"status" type:"string"`
 19857  
 19858  	// The task ID or full Amazon Resource Name (ARN) of the task that hosts the
 19859  	// container.
 19860  	Task *string `locationName:"task" type:"string"`
 19861  }
 19862  
 19863  // String returns the string representation.
 19864  //
 19865  // API parameter values that are decorated as "sensitive" in the API will not
 19866  // be included in the string output. The member name will be present, but the
 19867  // value will be replaced with "sensitive".
 19868  func (s SubmitContainerStateChangeInput) String() string {
 19869  	return awsutil.Prettify(s)
 19870  }
 19871  
 19872  // GoString returns the string representation.
 19873  //
 19874  // API parameter values that are decorated as "sensitive" in the API will not
 19875  // be included in the string output. The member name will be present, but the
 19876  // value will be replaced with "sensitive".
 19877  func (s SubmitContainerStateChangeInput) GoString() string {
 19878  	return s.String()
 19879  }
 19880  
 19881  // SetCluster sets the Cluster field's value.
 19882  func (s *SubmitContainerStateChangeInput) SetCluster(v string) *SubmitContainerStateChangeInput {
 19883  	s.Cluster = &v
 19884  	return s
 19885  }
 19886  
 19887  // SetContainerName sets the ContainerName field's value.
 19888  func (s *SubmitContainerStateChangeInput) SetContainerName(v string) *SubmitContainerStateChangeInput {
 19889  	s.ContainerName = &v
 19890  	return s
 19891  }
 19892  
 19893  // SetExitCode sets the ExitCode field's value.
 19894  func (s *SubmitContainerStateChangeInput) SetExitCode(v int64) *SubmitContainerStateChangeInput {
 19895  	s.ExitCode = &v
 19896  	return s
 19897  }
 19898  
 19899  // SetNetworkBindings sets the NetworkBindings field's value.
 19900  func (s *SubmitContainerStateChangeInput) SetNetworkBindings(v []*NetworkBinding) *SubmitContainerStateChangeInput {
 19901  	s.NetworkBindings = v
 19902  	return s
 19903  }
 19904  
 19905  // SetReason sets the Reason field's value.
 19906  func (s *SubmitContainerStateChangeInput) SetReason(v string) *SubmitContainerStateChangeInput {
 19907  	s.Reason = &v
 19908  	return s
 19909  }
 19910  
 19911  // SetRuntimeId sets the RuntimeId field's value.
 19912  func (s *SubmitContainerStateChangeInput) SetRuntimeId(v string) *SubmitContainerStateChangeInput {
 19913  	s.RuntimeId = &v
 19914  	return s
 19915  }
 19916  
 19917  // SetStatus sets the Status field's value.
 19918  func (s *SubmitContainerStateChangeInput) SetStatus(v string) *SubmitContainerStateChangeInput {
 19919  	s.Status = &v
 19920  	return s
 19921  }
 19922  
 19923  // SetTask sets the Task field's value.
 19924  func (s *SubmitContainerStateChangeInput) SetTask(v string) *SubmitContainerStateChangeInput {
 19925  	s.Task = &v
 19926  	return s
 19927  }
 19928  
 19929  type SubmitContainerStateChangeOutput struct {
 19930  	_ struct{} `type:"structure"`
 19931  
 19932  	// Acknowledgement of the state change.
 19933  	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
 19934  }
 19935  
 19936  // String returns the string representation.
 19937  //
 19938  // API parameter values that are decorated as "sensitive" in the API will not
 19939  // be included in the string output. The member name will be present, but the
 19940  // value will be replaced with "sensitive".
 19941  func (s SubmitContainerStateChangeOutput) String() string {
 19942  	return awsutil.Prettify(s)
 19943  }
 19944  
 19945  // GoString returns the string representation.
 19946  //
 19947  // API parameter values that are decorated as "sensitive" in the API will not
 19948  // be included in the string output. The member name will be present, but the
 19949  // value will be replaced with "sensitive".
 19950  func (s SubmitContainerStateChangeOutput) GoString() string {
 19951  	return s.String()
 19952  }
 19953  
 19954  // SetAcknowledgment sets the Acknowledgment field's value.
 19955  func (s *SubmitContainerStateChangeOutput) SetAcknowledgment(v string) *SubmitContainerStateChangeOutput {
 19956  	s.Acknowledgment = &v
 19957  	return s
 19958  }
 19959  
 19960  type SubmitTaskStateChangeInput struct {
 19961  	_ struct{} `type:"structure"`
 19962  
 19963  	// Any attachments associated with the state change request.
 19964  	Attachments []*AttachmentStateChange `locationName:"attachments" type:"list"`
 19965  
 19966  	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
 19967  	// the task.
 19968  	Cluster *string `locationName:"cluster" type:"string"`
 19969  
 19970  	// Any containers associated with the state change request.
 19971  	Containers []*ContainerStateChange `locationName:"containers" type:"list"`
 19972  
 19973  	// The Unix timestamp for when the task execution stopped.
 19974  	ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"`
 19975  
 19976  	// The details for the managed agent associated with the task.
 19977  	ManagedAgents []*ManagedAgentStateChange `locationName:"managedAgents" type:"list"`
 19978  
 19979  	// The Unix timestamp for when the container image pull began.
 19980  	PullStartedAt *time.Time `locationName:"pullStartedAt" type:"timestamp"`
 19981  
 19982  	// The Unix timestamp for when the container image pull completed.
 19983  	PullStoppedAt *time.Time `locationName:"pullStoppedAt" type:"timestamp"`
 19984  
 19985  	// The reason for the state change request.
 19986  	Reason *string `locationName:"reason" type:"string"`
 19987  
 19988  	// The status of the state change request.
 19989  	Status *string `locationName:"status" type:"string"`
 19990  
 19991  	// The task ID or full ARN of the task in the state change request.
 19992  	Task *string `locationName:"task" type:"string"`
 19993  }
 19994  
 19995  // String returns the string representation.
 19996  //
 19997  // API parameter values that are decorated as "sensitive" in the API will not
 19998  // be included in the string output. The member name will be present, but the
 19999  // value will be replaced with "sensitive".
 20000  func (s SubmitTaskStateChangeInput) String() string {
 20001  	return awsutil.Prettify(s)
 20002  }
 20003  
 20004  // GoString returns the string representation.
 20005  //
 20006  // API parameter values that are decorated as "sensitive" in the API will not
 20007  // be included in the string output. The member name will be present, but the
 20008  // value will be replaced with "sensitive".
 20009  func (s SubmitTaskStateChangeInput) GoString() string {
 20010  	return s.String()
 20011  }
 20012  
 20013  // Validate inspects the fields of the type to determine if they are valid.
 20014  func (s *SubmitTaskStateChangeInput) Validate() error {
 20015  	invalidParams := request.ErrInvalidParams{Context: "SubmitTaskStateChangeInput"}
 20016  	if s.Attachments != nil {
 20017  		for i, v := range s.Attachments {
 20018  			if v == nil {
 20019  				continue
 20020  			}
 20021  			if err := v.Validate(); err != nil {
 20022  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams))
 20023  			}
 20024  		}
 20025  	}
 20026  	if s.ManagedAgents != nil {
 20027  		for i, v := range s.ManagedAgents {
 20028  			if v == nil {
 20029  				continue
 20030  			}
 20031  			if err := v.Validate(); err != nil {
 20032  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ManagedAgents", i), err.(request.ErrInvalidParams))
 20033  			}
 20034  		}
 20035  	}
 20036  
 20037  	if invalidParams.Len() > 0 {
 20038  		return invalidParams
 20039  	}
 20040  	return nil
 20041  }
 20042  
 20043  // SetAttachments sets the Attachments field's value.
 20044  func (s *SubmitTaskStateChangeInput) SetAttachments(v []*AttachmentStateChange) *SubmitTaskStateChangeInput {
 20045  	s.Attachments = v
 20046  	return s
 20047  }
 20048  
 20049  // SetCluster sets the Cluster field's value.
 20050  func (s *SubmitTaskStateChangeInput) SetCluster(v string) *SubmitTaskStateChangeInput {
 20051  	s.Cluster = &v
 20052  	return s
 20053  }
 20054  
 20055  // SetContainers sets the Containers field's value.
 20056  func (s *SubmitTaskStateChangeInput) SetContainers(v []*ContainerStateChange) *SubmitTaskStateChangeInput {
 20057  	s.Containers = v
 20058  	return s
 20059  }
 20060  
 20061  // SetExecutionStoppedAt sets the ExecutionStoppedAt field's value.
 20062  func (s *SubmitTaskStateChangeInput) SetExecutionStoppedAt(v time.Time) *SubmitTaskStateChangeInput {
 20063  	s.ExecutionStoppedAt = &v
 20064  	return s
 20065  }
 20066  
 20067  // SetManagedAgents sets the ManagedAgents field's value.
 20068  func (s *SubmitTaskStateChangeInput) SetManagedAgents(v []*ManagedAgentStateChange) *SubmitTaskStateChangeInput {
 20069  	s.ManagedAgents = v
 20070  	return s
 20071  }
 20072  
 20073  // SetPullStartedAt sets the PullStartedAt field's value.
 20074  func (s *SubmitTaskStateChangeInput) SetPullStartedAt(v time.Time) *SubmitTaskStateChangeInput {
 20075  	s.PullStartedAt = &v
 20076  	return s
 20077  }
 20078  
 20079  // SetPullStoppedAt sets the PullStoppedAt field's value.
 20080  func (s *SubmitTaskStateChangeInput) SetPullStoppedAt(v time.Time) *SubmitTaskStateChangeInput {
 20081  	s.PullStoppedAt = &v
 20082  	return s
 20083  }
 20084  
 20085  // SetReason sets the Reason field's value.
 20086  func (s *SubmitTaskStateChangeInput) SetReason(v string) *SubmitTaskStateChangeInput {
 20087  	s.Reason = &v
 20088  	return s
 20089  }
 20090  
 20091  // SetStatus sets the Status field's value.
 20092  func (s *SubmitTaskStateChangeInput) SetStatus(v string) *SubmitTaskStateChangeInput {
 20093  	s.Status = &v
 20094  	return s
 20095  }
 20096  
 20097  // SetTask sets the Task field's value.
 20098  func (s *SubmitTaskStateChangeInput) SetTask(v string) *SubmitTaskStateChangeInput {
 20099  	s.Task = &v
 20100  	return s
 20101  }
 20102  
 20103  type SubmitTaskStateChangeOutput struct {
 20104  	_ struct{} `type:"structure"`
 20105  
 20106  	// Acknowledgement of the state change.
 20107  	Acknowledgment *string `locationName:"acknowledgment" type:"string"`
 20108  }
 20109  
 20110  // String returns the string representation.
 20111  //
 20112  // API parameter values that are decorated as "sensitive" in the API will not
 20113  // be included in the string output. The member name will be present, but the
 20114  // value will be replaced with "sensitive".
 20115  func (s SubmitTaskStateChangeOutput) String() string {
 20116  	return awsutil.Prettify(s)
 20117  }
 20118  
 20119  // GoString returns the string representation.
 20120  //
 20121  // API parameter values that are decorated as "sensitive" in the API will not
 20122  // be included in the string output. The member name will be present, but the
 20123  // value will be replaced with "sensitive".
 20124  func (s SubmitTaskStateChangeOutput) GoString() string {
 20125  	return s.String()
 20126  }
 20127  
 20128  // SetAcknowledgment sets the Acknowledgment field's value.
 20129  func (s *SubmitTaskStateChangeOutput) SetAcknowledgment(v string) *SubmitTaskStateChangeOutput {
 20130  	s.Acknowledgment = &v
 20131  	return s
 20132  }
 20133  
 20134  // A list of namespaced kernel parameters to set in the container. This parameter
 20135  // maps to Sysctls in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
 20136  // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
 20137  // and the --sysctl option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration).
 20138  //
 20139  // It is not recommended that you specify network-related systemControls parameters
 20140  // for multiple containers in a single task that also uses either the awsvpc
 20141  // or host network mode for the following reasons:
 20142  //
 20143  //    * For tasks that use the awsvpc network mode, if you set systemControls
 20144  //    for any container, it applies to all containers in the task. If you set
 20145  //    different systemControls for multiple containers in a single task, the
 20146  //    container that is started last determines which systemControls take effect.
 20147  //
 20148  //    * For tasks that use the host network mode, the systemControls parameter
 20149  //    applies to the container instance's kernel parameter as well as that of
 20150  //    all containers of any tasks running on that container instance.
 20151  type SystemControl struct {
 20152  	_ struct{} `type:"structure"`
 20153  
 20154  	// The namespaced kernel parameter for which to set a value.
 20155  	Namespace *string `locationName:"namespace" type:"string"`
 20156  
 20157  	// The value for the namespaced kernel parameter specified in namespace.
 20158  	Value *string `locationName:"value" type:"string"`
 20159  }
 20160  
 20161  // String returns the string representation.
 20162  //
 20163  // API parameter values that are decorated as "sensitive" in the API will not
 20164  // be included in the string output. The member name will be present, but the
 20165  // value will be replaced with "sensitive".
 20166  func (s SystemControl) String() string {
 20167  	return awsutil.Prettify(s)
 20168  }
 20169  
 20170  // GoString returns the string representation.
 20171  //
 20172  // API parameter values that are decorated as "sensitive" in the API will not
 20173  // be included in the string output. The member name will be present, but the
 20174  // value will be replaced with "sensitive".
 20175  func (s SystemControl) GoString() string {
 20176  	return s.String()
 20177  }
 20178  
 20179  // SetNamespace sets the Namespace field's value.
 20180  func (s *SystemControl) SetNamespace(v string) *SystemControl {
 20181  	s.Namespace = &v
 20182  	return s
 20183  }
 20184  
 20185  // SetValue sets the Value field's value.
 20186  func (s *SystemControl) SetValue(v string) *SystemControl {
 20187  	s.Value = &v
 20188  	return s
 20189  }
 20190  
 20191  // The metadata that you apply to a resource to help you categorize and organize
 20192  // them. Each tag consists of a key and an optional value, both of which you
 20193  // define.
 20194  //
 20195  // The following basic restrictions apply to tags:
 20196  //
 20197  //    * Maximum number of tags per resource - 50
 20198  //
 20199  //    * For each resource, each tag key must be unique, and each tag key can
 20200  //    have only one value.
 20201  //
 20202  //    * Maximum key length - 128 Unicode characters in UTF-8
 20203  //
 20204  //    * Maximum value length - 256 Unicode characters in UTF-8
 20205  //
 20206  //    * If your tagging schema is used across multiple services and resources,
 20207  //    remember that other services may have restrictions on allowed characters.
 20208  //    Generally allowed characters are: letters, numbers, and spaces representable
 20209  //    in UTF-8, and the following characters: + - = . _ : / @.
 20210  //
 20211  //    * Tag keys and values are case-sensitive.
 20212  //
 20213  //    * Do not use aws:, AWS:, or any upper or lowercase combination of such
 20214  //    as a prefix for either keys or values as it is reserved for Amazon Web
 20215  //    Services use. You cannot edit or delete tag keys or values with this prefix.
 20216  //    Tags with this prefix do not count against your tags per resource limit.
 20217  type Tag struct {
 20218  	_ struct{} `type:"structure"`
 20219  
 20220  	// One part of a key-value pair that make up a tag. A key is a general label
 20221  	// that acts like a category for more specific tag values.
 20222  	Key *string `locationName:"key" min:"1" type:"string"`
 20223  
 20224  	// The optional part of a key-value pair that make up a tag. A value acts as
 20225  	// a descriptor within a tag category (key).
 20226  	Value *string `locationName:"value" type:"string"`
 20227  }
 20228  
 20229  // String returns the string representation.
 20230  //
 20231  // API parameter values that are decorated as "sensitive" in the API will not
 20232  // be included in the string output. The member name will be present, but the
 20233  // value will be replaced with "sensitive".
 20234  func (s Tag) String() string {
 20235  	return awsutil.Prettify(s)
 20236  }
 20237  
 20238  // GoString returns the string representation.
 20239  //
 20240  // API parameter values that are decorated as "sensitive" in the API will not
 20241  // be included in the string output. The member name will be present, but the
 20242  // value will be replaced with "sensitive".
 20243  func (s Tag) GoString() string {
 20244  	return s.String()
 20245  }
 20246  
 20247  // Validate inspects the fields of the type to determine if they are valid.
 20248  func (s *Tag) Validate() error {
 20249  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
 20250  	if s.Key != nil && len(*s.Key) < 1 {
 20251  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
 20252  	}
 20253  
 20254  	if invalidParams.Len() > 0 {
 20255  		return invalidParams
 20256  	}
 20257  	return nil
 20258  }
 20259  
 20260  // SetKey sets the Key field's value.
 20261  func (s *Tag) SetKey(v string) *Tag {
 20262  	s.Key = &v
 20263  	return s
 20264  }
 20265  
 20266  // SetValue sets the Value field's value.
 20267  func (s *Tag) SetValue(v string) *Tag {
 20268  	s.Value = &v
 20269  	return s
 20270  }
 20271  
 20272  type TagResourceInput struct {
 20273  	_ struct{} `type:"structure"`
 20274  
 20275  	// The Amazon Resource Name (ARN) of the resource to which to add tags. Currently,
 20276  	// the supported resources are Amazon ECS capacity providers, tasks, services,
 20277  	// task definitions, clusters, and container instances.
 20278  	//
 20279  	// ResourceArn is a required field
 20280  	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
 20281  
 20282  	// The tags to add to the resource. A tag is an array of key-value pairs.
 20283  	//
 20284  	// The following basic restrictions apply to tags:
 20285  	//
 20286  	//    * Maximum number of tags per resource - 50
 20287  	//
 20288  	//    * For each resource, each tag key must be unique, and each tag key can
 20289  	//    have only one value.
 20290  	//
 20291  	//    * Maximum key length - 128 Unicode characters in UTF-8
 20292  	//
 20293  	//    * Maximum value length - 256 Unicode characters in UTF-8
 20294  	//
 20295  	//    * If your tagging schema is used across multiple services and resources,
 20296  	//    remember that other services may have restrictions on allowed characters.
 20297  	//    Generally allowed characters are: letters, numbers, and spaces representable
 20298  	//    in UTF-8, and the following characters: + - = . _ : / @.
 20299  	//
 20300  	//    * Tag keys and values are case-sensitive.
 20301  	//
 20302  	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
 20303  	//    as a prefix for either keys or values as it is reserved for Amazon Web
 20304  	//    Services use. You cannot edit or delete tag keys or values with this prefix.
 20305  	//    Tags with this prefix do not count against your tags per resource limit.
 20306  	//
 20307  	// Tags is a required field
 20308  	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
 20309  }
 20310  
 20311  // String returns the string representation.
 20312  //
 20313  // API parameter values that are decorated as "sensitive" in the API will not
 20314  // be included in the string output. The member name will be present, but the
 20315  // value will be replaced with "sensitive".
 20316  func (s TagResourceInput) String() string {
 20317  	return awsutil.Prettify(s)
 20318  }
 20319  
 20320  // GoString returns the string representation.
 20321  //
 20322  // API parameter values that are decorated as "sensitive" in the API will not
 20323  // be included in the string output. The member name will be present, but the
 20324  // value will be replaced with "sensitive".
 20325  func (s TagResourceInput) GoString() string {
 20326  	return s.String()
 20327  }
 20328  
 20329  // Validate inspects the fields of the type to determine if they are valid.
 20330  func (s *TagResourceInput) Validate() error {
 20331  	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
 20332  	if s.ResourceArn == nil {
 20333  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 20334  	}
 20335  	if s.Tags == nil {
 20336  		invalidParams.Add(request.NewErrParamRequired("Tags"))
 20337  	}
 20338  	if s.Tags != nil {
 20339  		for i, v := range s.Tags {
 20340  			if v == nil {
 20341  				continue
 20342  			}
 20343  			if err := v.Validate(); err != nil {
 20344  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 20345  			}
 20346  		}
 20347  	}
 20348  
 20349  	if invalidParams.Len() > 0 {
 20350  		return invalidParams
 20351  	}
 20352  	return nil
 20353  }
 20354  
 20355  // SetResourceArn sets the ResourceArn field's value.
 20356  func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
 20357  	s.ResourceArn = &v
 20358  	return s
 20359  }
 20360  
 20361  // SetTags sets the Tags field's value.
 20362  func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
 20363  	s.Tags = v
 20364  	return s
 20365  }
 20366  
 20367  type TagResourceOutput struct {
 20368  	_ struct{} `type:"structure"`
 20369  }
 20370  
 20371  // String returns the string representation.
 20372  //
 20373  // API parameter values that are decorated as "sensitive" in the API will not
 20374  // be included in the string output. The member name will be present, but the
 20375  // value will be replaced with "sensitive".
 20376  func (s TagResourceOutput) String() string {
 20377  	return awsutil.Prettify(s)
 20378  }
 20379  
 20380  // GoString returns the string representation.
 20381  //
 20382  // API parameter values that are decorated as "sensitive" in the API will not
 20383  // be included in the string output. The member name will be present, but the
 20384  // value will be replaced with "sensitive".
 20385  func (s TagResourceOutput) GoString() string {
 20386  	return s.String()
 20387  }
 20388  
 20389  // The target container is not properly configured with the execute command
 20390  // agent or the container is no longer active or running.
 20391  type TargetNotConnectedException struct {
 20392  	_            struct{}                  `type:"structure"`
 20393  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 20394  
 20395  	Message_ *string `locationName:"message" type:"string"`
 20396  }
 20397  
 20398  // String returns the string representation.
 20399  //
 20400  // API parameter values that are decorated as "sensitive" in the API will not
 20401  // be included in the string output. The member name will be present, but the
 20402  // value will be replaced with "sensitive".
 20403  func (s TargetNotConnectedException) String() string {
 20404  	return awsutil.Prettify(s)
 20405  }
 20406  
 20407  // GoString returns the string representation.
 20408  //
 20409  // API parameter values that are decorated as "sensitive" in the API will not
 20410  // be included in the string output. The member name will be present, but the
 20411  // value will be replaced with "sensitive".
 20412  func (s TargetNotConnectedException) GoString() string {
 20413  	return s.String()
 20414  }
 20415  
 20416  func newErrorTargetNotConnectedException(v protocol.ResponseMetadata) error {
 20417  	return &TargetNotConnectedException{
 20418  		RespMetadata: v,
 20419  	}
 20420  }
 20421  
 20422  // Code returns the exception type name.
 20423  func (s *TargetNotConnectedException) Code() string {
 20424  	return "TargetNotConnectedException"
 20425  }
 20426  
 20427  // Message returns the exception's message.
 20428  func (s *TargetNotConnectedException) Message() string {
 20429  	if s.Message_ != nil {
 20430  		return *s.Message_
 20431  	}
 20432  	return ""
 20433  }
 20434  
 20435  // OrigErr always returns nil, satisfies awserr.Error interface.
 20436  func (s *TargetNotConnectedException) OrigErr() error {
 20437  	return nil
 20438  }
 20439  
 20440  func (s *TargetNotConnectedException) Error() string {
 20441  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 20442  }
 20443  
 20444  // Status code returns the HTTP status code for the request's response error.
 20445  func (s *TargetNotConnectedException) StatusCode() int {
 20446  	return s.RespMetadata.StatusCode
 20447  }
 20448  
 20449  // RequestID returns the service's response RequestID for request.
 20450  func (s *TargetNotConnectedException) RequestID() string {
 20451  	return s.RespMetadata.RequestID
 20452  }
 20453  
 20454  // The specified target could not be found. You can view your available container
 20455  // instances with ListContainerInstances. Amazon ECS container instances are
 20456  // cluster-specific and Region-specific.
 20457  type TargetNotFoundException struct {
 20458  	_            struct{}                  `type:"structure"`
 20459  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 20460  
 20461  	Message_ *string `locationName:"message" type:"string"`
 20462  }
 20463  
 20464  // String returns the string representation.
 20465  //
 20466  // API parameter values that are decorated as "sensitive" in the API will not
 20467  // be included in the string output. The member name will be present, but the
 20468  // value will be replaced with "sensitive".
 20469  func (s TargetNotFoundException) String() string {
 20470  	return awsutil.Prettify(s)
 20471  }
 20472  
 20473  // GoString returns the string representation.
 20474  //
 20475  // API parameter values that are decorated as "sensitive" in the API will not
 20476  // be included in the string output. The member name will be present, but the
 20477  // value will be replaced with "sensitive".
 20478  func (s TargetNotFoundException) GoString() string {
 20479  	return s.String()
 20480  }
 20481  
 20482  func newErrorTargetNotFoundException(v protocol.ResponseMetadata) error {
 20483  	return &TargetNotFoundException{
 20484  		RespMetadata: v,
 20485  	}
 20486  }
 20487  
 20488  // Code returns the exception type name.
 20489  func (s *TargetNotFoundException) Code() string {
 20490  	return "TargetNotFoundException"
 20491  }
 20492  
 20493  // Message returns the exception's message.
 20494  func (s *TargetNotFoundException) Message() string {
 20495  	if s.Message_ != nil {
 20496  		return *s.Message_
 20497  	}
 20498  	return ""
 20499  }
 20500  
 20501  // OrigErr always returns nil, satisfies awserr.Error interface.
 20502  func (s *TargetNotFoundException) OrigErr() error {
 20503  	return nil
 20504  }
 20505  
 20506  func (s *TargetNotFoundException) Error() string {
 20507  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 20508  }
 20509  
 20510  // Status code returns the HTTP status code for the request's response error.
 20511  func (s *TargetNotFoundException) StatusCode() int {
 20512  	return s.RespMetadata.StatusCode
 20513  }
 20514  
 20515  // RequestID returns the service's response RequestID for request.
 20516  func (s *TargetNotFoundException) RequestID() string {
 20517  	return s.RespMetadata.RequestID
 20518  }
 20519  
 20520  // Details on a task in a cluster.
 20521  type Task struct {
 20522  	_ struct{} `type:"structure"`
 20523  
 20524  	// The Elastic Network Adapter associated with the task if the task uses the
 20525  	// awsvpc network mode.
 20526  	Attachments []*Attachment `locationName:"attachments" type:"list"`
 20527  
 20528  	// The attributes of the task
 20529  	Attributes []*Attribute `locationName:"attributes" type:"list"`
 20530  
 20531  	// The availability zone of the task.
 20532  	AvailabilityZone *string `locationName:"availabilityZone" type:"string"`
 20533  
 20534  	// The capacity provider associated with the task.
 20535  	CapacityProviderName *string `locationName:"capacityProviderName" type:"string"`
 20536  
 20537  	// The ARN of the cluster that hosts the task.
 20538  	ClusterArn *string `locationName:"clusterArn" type:"string"`
 20539  
 20540  	// The connectivity status of a task.
 20541  	Connectivity *string `locationName:"connectivity" type:"string" enum:"Connectivity"`
 20542  
 20543  	// The Unix timestamp for when the task last went into CONNECTED status.
 20544  	ConnectivityAt *time.Time `locationName:"connectivityAt" type:"timestamp"`
 20545  
 20546  	// The ARN of the container instances that host the task.
 20547  	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
 20548  
 20549  	// The containers associated with the task.
 20550  	Containers []*Container `locationName:"containers" type:"list"`
 20551  
 20552  	// The number of CPU units used by the task as expressed in a task definition.
 20553  	// It can be expressed as an integer using CPU units, for example 1024. It can
 20554  	// also be expressed as a string using vCPUs, for example 1 vCPU or 1 vcpu.
 20555  	// String values are converted to an integer indicating the CPU units when the
 20556  	// task definition is registered.
 20557  	//
 20558  	// If you are using the EC2 launch type, this field is optional. Supported values
 20559  	// are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).
 20560  	//
 20561  	// If you are using the Fargate launch type, this field is required and you
 20562  	// must use one of the following values, which determines your range of supported
 20563  	// values for the memory parameter:
 20564  	//
 20565  	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
 20566  	//    2048 (2 GB)
 20567  	//
 20568  	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
 20569  	//    (3 GB), 4096 (4 GB)
 20570  	//
 20571  	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
 20572  	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
 20573  	//
 20574  	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
 20575  	//    (16 GB) in increments of 1024 (1 GB)
 20576  	//
 20577  	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
 20578  	//    (30 GB) in increments of 1024 (1 GB)
 20579  	Cpu *string `locationName:"cpu" type:"string"`
 20580  
 20581  	// The Unix timestamp for when the task was created (the task entered the PENDING
 20582  	// state).
 20583  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
 20584  
 20585  	// The desired status of the task. For more information, see Task Lifecycle
 20586  	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html).
 20587  	DesiredStatus *string `locationName:"desiredStatus" type:"string"`
 20588  
 20589  	// Whether or not execute command functionality is enabled for this task. If
 20590  	// true, this enables execute command functionality on all containers in the
 20591  	// task.
 20592  	EnableExecuteCommand *bool `locationName:"enableExecuteCommand" type:"boolean"`
 20593  
 20594  	// The ephemeral storage settings for the task.
 20595  	EphemeralStorage *EphemeralStorage `locationName:"ephemeralStorage" type:"structure"`
 20596  
 20597  	// The Unix timestamp for when the task execution stopped.
 20598  	ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"`
 20599  
 20600  	// The name of the task group associated with the task.
 20601  	Group *string `locationName:"group" type:"string"`
 20602  
 20603  	// The health status for the task, which is determined by the health of the
 20604  	// essential containers in the task. If all essential containers in the task
 20605  	// are reporting as HEALTHY, then the task status also reports as HEALTHY. If
 20606  	// any essential containers in the task are reporting as UNHEALTHY or UNKNOWN,
 20607  	// then the task status also reports as UNHEALTHY or UNKNOWN, accordingly.
 20608  	//
 20609  	// The Amazon ECS container agent does not monitor or report on Docker health
 20610  	// checks that are embedded in a container image (such as those specified in
 20611  	// a parent image or from the image's Dockerfile) and not specified in the container
 20612  	// definition. Health check parameters that are specified in a container definition
 20613  	// override any Docker health checks that exist in the container image.
 20614  	HealthStatus *string `locationName:"healthStatus" type:"string" enum:"HealthStatus"`
 20615  
 20616  	// The Elastic Inference accelerator associated with the task.
 20617  	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
 20618  
 20619  	// The last known status of the task. For more information, see Task Lifecycle
 20620  	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html).
 20621  	LastStatus *string `locationName:"lastStatus" type:"string"`
 20622  
 20623  	// The infrastructure on which your task is running. For more information, see
 20624  	// Amazon ECS launch types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
 20625  	// in the Amazon Elastic Container Service Developer Guide.
 20626  	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
 20627  
 20628  	// The amount of memory (in MiB) used by the task as expressed in a task definition.
 20629  	// It can be expressed as an integer using MiB, for example 1024. It can also
 20630  	// be expressed as a string using GB, for example 1GB or 1 GB. String values
 20631  	// are converted to an integer indicating the MiB when the task definition is
 20632  	// registered.
 20633  	//
 20634  	// If you are using the EC2 launch type, this field is optional.
 20635  	//
 20636  	// If you are using the Fargate launch type, this field is required and you
 20637  	// must use one of the following values, which determines your range of supported
 20638  	// values for the cpu parameter:
 20639  	//
 20640  	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
 20641  	//    vCPU)
 20642  	//
 20643  	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
 20644  	//    512 (.5 vCPU)
 20645  	//
 20646  	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
 20647  	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
 20648  	//
 20649  	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
 20650  	//    Available cpu values: 2048 (2 vCPU)
 20651  	//
 20652  	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
 20653  	//    Available cpu values: 4096 (4 vCPU)
 20654  	Memory *string `locationName:"memory" type:"string"`
 20655  
 20656  	// One or more container overrides.
 20657  	Overrides *TaskOverride `locationName:"overrides" type:"structure"`
 20658  
 20659  	// The platform version on which your task is running. A platform version is
 20660  	// only specified for tasks using the Fargate launch type. If one is not specified,
 20661  	// the LATEST platform version is used by default. For more information, see
 20662  	// Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
 20663  	// in the Amazon Elastic Container Service Developer Guide.
 20664  	PlatformVersion *string `locationName:"platformVersion" type:"string"`
 20665  
 20666  	// The Unix timestamp for when the container image pull began.
 20667  	PullStartedAt *time.Time `locationName:"pullStartedAt" type:"timestamp"`
 20668  
 20669  	// The Unix timestamp for when the container image pull completed.
 20670  	PullStoppedAt *time.Time `locationName:"pullStoppedAt" type:"timestamp"`
 20671  
 20672  	// The Unix timestamp for when the task started (the task transitioned from
 20673  	// the PENDING state to the RUNNING state).
 20674  	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
 20675  
 20676  	// The tag specified when a task is started. If the task is started by an Amazon
 20677  	// ECS service, then the startedBy parameter contains the deployment ID of the
 20678  	// service that starts it.
 20679  	StartedBy *string `locationName:"startedBy" type:"string"`
 20680  
 20681  	// The stop code indicating why a task was stopped. The stoppedReason may contain
 20682  	// additional details.
 20683  	StopCode *string `locationName:"stopCode" type:"string" enum:"TaskStopCode"`
 20684  
 20685  	// The Unix timestamp for when the task was stopped (the task transitioned from
 20686  	// the RUNNING state to the STOPPED state).
 20687  	StoppedAt *time.Time `locationName:"stoppedAt" type:"timestamp"`
 20688  
 20689  	// The reason that the task was stopped.
 20690  	StoppedReason *string `locationName:"stoppedReason" type:"string"`
 20691  
 20692  	// The Unix timestamp for when the task stops (transitions from the RUNNING
 20693  	// state to STOPPED).
 20694  	StoppingAt *time.Time `locationName:"stoppingAt" type:"timestamp"`
 20695  
 20696  	// The metadata that you apply to the task to help you categorize and organize
 20697  	// them. Each tag consists of a key and an optional value, both of which you
 20698  	// define.
 20699  	//
 20700  	// The following basic restrictions apply to tags:
 20701  	//
 20702  	//    * Maximum number of tags per resource - 50
 20703  	//
 20704  	//    * For each resource, each tag key must be unique, and each tag key can
 20705  	//    have only one value.
 20706  	//
 20707  	//    * Maximum key length - 128 Unicode characters in UTF-8
 20708  	//
 20709  	//    * Maximum value length - 256 Unicode characters in UTF-8
 20710  	//
 20711  	//    * If your tagging schema is used across multiple services and resources,
 20712  	//    remember that other services may have restrictions on allowed characters.
 20713  	//    Generally allowed characters are: letters, numbers, and spaces representable
 20714  	//    in UTF-8, and the following characters: + - = . _ : / @.
 20715  	//
 20716  	//    * Tag keys and values are case-sensitive.
 20717  	//
 20718  	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
 20719  	//    as a prefix for either keys or values as it is reserved for Amazon Web
 20720  	//    Services use. You cannot edit or delete tag keys or values with this prefix.
 20721  	//    Tags with this prefix do not count against your tags per resource limit.
 20722  	Tags []*Tag `locationName:"tags" type:"list"`
 20723  
 20724  	// The Amazon Resource Name (ARN) of the task.
 20725  	TaskArn *string `locationName:"taskArn" type:"string"`
 20726  
 20727  	// The ARN of the task definition that creates the task.
 20728  	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
 20729  
 20730  	// The version counter for the task. Every time a task experiences a change
 20731  	// that triggers a CloudWatch event, the version counter is incremented. If
 20732  	// you are replicating your Amazon ECS task state with CloudWatch Events, you
 20733  	// can compare the version of a task reported by the Amazon ECS API actions
 20734  	// with the version reported in CloudWatch Events for the task (inside the detail
 20735  	// object) to verify that the version in your event stream is current.
 20736  	Version *int64 `locationName:"version" type:"long"`
 20737  }
 20738  
 20739  // String returns the string representation.
 20740  //
 20741  // API parameter values that are decorated as "sensitive" in the API will not
 20742  // be included in the string output. The member name will be present, but the
 20743  // value will be replaced with "sensitive".
 20744  func (s Task) String() string {
 20745  	return awsutil.Prettify(s)
 20746  }
 20747  
 20748  // GoString returns the string representation.
 20749  //
 20750  // API parameter values that are decorated as "sensitive" in the API will not
 20751  // be included in the string output. The member name will be present, but the
 20752  // value will be replaced with "sensitive".
 20753  func (s Task) GoString() string {
 20754  	return s.String()
 20755  }
 20756  
 20757  // SetAttachments sets the Attachments field's value.
 20758  func (s *Task) SetAttachments(v []*Attachment) *Task {
 20759  	s.Attachments = v
 20760  	return s
 20761  }
 20762  
 20763  // SetAttributes sets the Attributes field's value.
 20764  func (s *Task) SetAttributes(v []*Attribute) *Task {
 20765  	s.Attributes = v
 20766  	return s
 20767  }
 20768  
 20769  // SetAvailabilityZone sets the AvailabilityZone field's value.
 20770  func (s *Task) SetAvailabilityZone(v string) *Task {
 20771  	s.AvailabilityZone = &v
 20772  	return s
 20773  }
 20774  
 20775  // SetCapacityProviderName sets the CapacityProviderName field's value.
 20776  func (s *Task) SetCapacityProviderName(v string) *Task {
 20777  	s.CapacityProviderName = &v
 20778  	return s
 20779  }
 20780  
 20781  // SetClusterArn sets the ClusterArn field's value.
 20782  func (s *Task) SetClusterArn(v string) *Task {
 20783  	s.ClusterArn = &v
 20784  	return s
 20785  }
 20786  
 20787  // SetConnectivity sets the Connectivity field's value.
 20788  func (s *Task) SetConnectivity(v string) *Task {
 20789  	s.Connectivity = &v
 20790  	return s
 20791  }
 20792  
 20793  // SetConnectivityAt sets the ConnectivityAt field's value.
 20794  func (s *Task) SetConnectivityAt(v time.Time) *Task {
 20795  	s.ConnectivityAt = &v
 20796  	return s
 20797  }
 20798  
 20799  // SetContainerInstanceArn sets the ContainerInstanceArn field's value.
 20800  func (s *Task) SetContainerInstanceArn(v string) *Task {
 20801  	s.ContainerInstanceArn = &v
 20802  	return s
 20803  }
 20804  
 20805  // SetContainers sets the Containers field's value.
 20806  func (s *Task) SetContainers(v []*Container) *Task {
 20807  	s.Containers = v
 20808  	return s
 20809  }
 20810  
 20811  // SetCpu sets the Cpu field's value.
 20812  func (s *Task) SetCpu(v string) *Task {
 20813  	s.Cpu = &v
 20814  	return s
 20815  }
 20816  
 20817  // SetCreatedAt sets the CreatedAt field's value.
 20818  func (s *Task) SetCreatedAt(v time.Time) *Task {
 20819  	s.CreatedAt = &v
 20820  	return s
 20821  }
 20822  
 20823  // SetDesiredStatus sets the DesiredStatus field's value.
 20824  func (s *Task) SetDesiredStatus(v string) *Task {
 20825  	s.DesiredStatus = &v
 20826  	return s
 20827  }
 20828  
 20829  // SetEnableExecuteCommand sets the EnableExecuteCommand field's value.
 20830  func (s *Task) SetEnableExecuteCommand(v bool) *Task {
 20831  	s.EnableExecuteCommand = &v
 20832  	return s
 20833  }
 20834  
 20835  // SetEphemeralStorage sets the EphemeralStorage field's value.
 20836  func (s *Task) SetEphemeralStorage(v *EphemeralStorage) *Task {
 20837  	s.EphemeralStorage = v
 20838  	return s
 20839  }
 20840  
 20841  // SetExecutionStoppedAt sets the ExecutionStoppedAt field's value.
 20842  func (s *Task) SetExecutionStoppedAt(v time.Time) *Task {
 20843  	s.ExecutionStoppedAt = &v
 20844  	return s
 20845  }
 20846  
 20847  // SetGroup sets the Group field's value.
 20848  func (s *Task) SetGroup(v string) *Task {
 20849  	s.Group = &v
 20850  	return s
 20851  }
 20852  
 20853  // SetHealthStatus sets the HealthStatus field's value.
 20854  func (s *Task) SetHealthStatus(v string) *Task {
 20855  	s.HealthStatus = &v
 20856  	return s
 20857  }
 20858  
 20859  // SetInferenceAccelerators sets the InferenceAccelerators field's value.
 20860  func (s *Task) SetInferenceAccelerators(v []*InferenceAccelerator) *Task {
 20861  	s.InferenceAccelerators = v
 20862  	return s
 20863  }
 20864  
 20865  // SetLastStatus sets the LastStatus field's value.
 20866  func (s *Task) SetLastStatus(v string) *Task {
 20867  	s.LastStatus = &v
 20868  	return s
 20869  }
 20870  
 20871  // SetLaunchType sets the LaunchType field's value.
 20872  func (s *Task) SetLaunchType(v string) *Task {
 20873  	s.LaunchType = &v
 20874  	return s
 20875  }
 20876  
 20877  // SetMemory sets the Memory field's value.
 20878  func (s *Task) SetMemory(v string) *Task {
 20879  	s.Memory = &v
 20880  	return s
 20881  }
 20882  
 20883  // SetOverrides sets the Overrides field's value.
 20884  func (s *Task) SetOverrides(v *TaskOverride) *Task {
 20885  	s.Overrides = v
 20886  	return s
 20887  }
 20888  
 20889  // SetPlatformVersion sets the PlatformVersion field's value.
 20890  func (s *Task) SetPlatformVersion(v string) *Task {
 20891  	s.PlatformVersion = &v
 20892  	return s
 20893  }
 20894  
 20895  // SetPullStartedAt sets the PullStartedAt field's value.
 20896  func (s *Task) SetPullStartedAt(v time.Time) *Task {
 20897  	s.PullStartedAt = &v
 20898  	return s
 20899  }
 20900  
 20901  // SetPullStoppedAt sets the PullStoppedAt field's value.
 20902  func (s *Task) SetPullStoppedAt(v time.Time) *Task {
 20903  	s.PullStoppedAt = &v
 20904  	return s
 20905  }
 20906  
 20907  // SetStartedAt sets the StartedAt field's value.
 20908  func (s *Task) SetStartedAt(v time.Time) *Task {
 20909  	s.StartedAt = &v
 20910  	return s
 20911  }
 20912  
 20913  // SetStartedBy sets the StartedBy field's value.
 20914  func (s *Task) SetStartedBy(v string) *Task {
 20915  	s.StartedBy = &v
 20916  	return s
 20917  }
 20918  
 20919  // SetStopCode sets the StopCode field's value.
 20920  func (s *Task) SetStopCode(v string) *Task {
 20921  	s.StopCode = &v
 20922  	return s
 20923  }
 20924  
 20925  // SetStoppedAt sets the StoppedAt field's value.
 20926  func (s *Task) SetStoppedAt(v time.Time) *Task {
 20927  	s.StoppedAt = &v
 20928  	return s
 20929  }
 20930  
 20931  // SetStoppedReason sets the StoppedReason field's value.
 20932  func (s *Task) SetStoppedReason(v string) *Task {
 20933  	s.StoppedReason = &v
 20934  	return s
 20935  }
 20936  
 20937  // SetStoppingAt sets the StoppingAt field's value.
 20938  func (s *Task) SetStoppingAt(v time.Time) *Task {
 20939  	s.StoppingAt = &v
 20940  	return s
 20941  }
 20942  
 20943  // SetTags sets the Tags field's value.
 20944  func (s *Task) SetTags(v []*Tag) *Task {
 20945  	s.Tags = v
 20946  	return s
 20947  }
 20948  
 20949  // SetTaskArn sets the TaskArn field's value.
 20950  func (s *Task) SetTaskArn(v string) *Task {
 20951  	s.TaskArn = &v
 20952  	return s
 20953  }
 20954  
 20955  // SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
 20956  func (s *Task) SetTaskDefinitionArn(v string) *Task {
 20957  	s.TaskDefinitionArn = &v
 20958  	return s
 20959  }
 20960  
 20961  // SetVersion sets the Version field's value.
 20962  func (s *Task) SetVersion(v int64) *Task {
 20963  	s.Version = &v
 20964  	return s
 20965  }
 20966  
 20967  // The details of a task definition which describes the container and volume
 20968  // definitions of an Amazon Elastic Container Service task. You can specify
 20969  // which Docker images to use, the required resources, and other configurations
 20970  // related to launching the task definition through an Amazon ECS service or
 20971  // task.
 20972  type TaskDefinition struct {
 20973  	_ struct{} `type:"structure"`
 20974  
 20975  	// The task launch types the task definition validated against during task definition
 20976  	// registration. For more information, see Amazon ECS launch types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
 20977  	// in the Amazon Elastic Container Service Developer Guide.
 20978  	Compatibilities []*string `locationName:"compatibilities" type:"list"`
 20979  
 20980  	// A list of container definitions in JSON format that describe the different
 20981  	// containers that make up your task. For more information about container definition
 20982  	// parameters and defaults, see Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
 20983  	// in the Amazon Elastic Container Service Developer Guide.
 20984  	ContainerDefinitions []*ContainerDefinition `locationName:"containerDefinitions" type:"list"`
 20985  
 20986  	// The number of cpu units used by the task. If you are using the EC2 launch
 20987  	// type, this field is optional and any value can be used. If you are using
 20988  	// the Fargate launch type, this field is required and you must use one of the
 20989  	// following values, which determines your range of valid values for the memory
 20990  	// parameter:
 20991  	//
 20992  	//    * 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB),
 20993  	//    2048 (2 GB)
 20994  	//
 20995  	//    * 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072
 20996  	//    (3 GB), 4096 (4 GB)
 20997  	//
 20998  	//    * 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096
 20999  	//    (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
 21000  	//
 21001  	//    * 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384
 21002  	//    (16 GB) in increments of 1024 (1 GB)
 21003  	//
 21004  	//    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720
 21005  	//    (30 GB) in increments of 1024 (1 GB)
 21006  	Cpu *string `locationName:"cpu" type:"string"`
 21007  
 21008  	// The Unix timestamp for when the task definition was deregistered.
 21009  	DeregisteredAt *time.Time `locationName:"deregisteredAt" type:"timestamp"`
 21010  
 21011  	// The ephemeral storage settings to use for tasks run with the task definition.
 21012  	EphemeralStorage *EphemeralStorage `locationName:"ephemeralStorage" type:"structure"`
 21013  
 21014  	// The Amazon Resource Name (ARN) of the task execution role that grants the
 21015  	// Amazon ECS container agent permission to make Amazon Web Services API calls
 21016  	// on your behalf. The task execution IAM role is required depending on the
 21017  	// requirements of your task. For more information, see Amazon ECS task execution
 21018  	// IAM role (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html)
 21019  	// in the Amazon Elastic Container Service Developer Guide.
 21020  	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
 21021  
 21022  	// The name of a family that this task definition is registered to. Up to 255
 21023  	// letters (uppercase and lowercase), numbers, hyphens, and underscores are
 21024  	// allowed.
 21025  	//
 21026  	// A family groups multiple versions of a task definition. Amazon ECS gives
 21027  	// the first task definition that you registered to a family a revision number
 21028  	// of 1. Amazon ECS gives sequential revision numbers to each task definition
 21029  	// that you add.
 21030  	Family *string `locationName:"family" type:"string"`
 21031  
 21032  	// The Elastic Inference accelerator associated with the task.
 21033  	InferenceAccelerators []*InferenceAccelerator `locationName:"inferenceAccelerators" type:"list"`
 21034  
 21035  	// The IPC resource namespace to use for the containers in the task. The valid
 21036  	// values are host, task, or none. If host is specified, then all containers
 21037  	// within the tasks that specified the host IPC mode on the same container instance
 21038  	// share the same IPC resources with the host Amazon EC2 instance. If task is
 21039  	// specified, all containers within the specified task share the same IPC resources.
 21040  	// If none is specified, then IPC resources within the containers of a task
 21041  	// are private and not shared with other containers in a task or on the container
 21042  	// instance. If no value is specified, then the IPC resource namespace sharing
 21043  	// depends on the Docker daemon setting on the container instance. For more
 21044  	// information, see IPC settings (https://docs.docker.com/engine/reference/run/#ipc-settings---ipc)
 21045  	// in the Docker run reference.
 21046  	//
 21047  	// If the host IPC mode is used, be aware that there is a heightened risk of
 21048  	// undesired IPC namespace expose. For more information, see Docker security
 21049  	// (https://docs.docker.com/engine/security/security/).
 21050  	//
 21051  	// If you are setting namespaced kernel parameters using systemControls for
 21052  	// the containers in the task, the following will apply to your IPC resource
 21053  	// namespace. For more information, see System Controls (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)
 21054  	// in the Amazon Elastic Container Service Developer Guide.
 21055  	//
 21056  	//    * For tasks that use the host IPC mode, IPC namespace related systemControls
 21057  	//    are not supported.
 21058  	//
 21059  	//    * For tasks that use the task IPC mode, IPC namespace related systemControls
 21060  	//    will apply to all containers within a task.
 21061  	//
 21062  	// This parameter is not supported for Windows containers or tasks run on Fargate.
 21063  	IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"`
 21064  
 21065  	// The amount (in MiB) of memory used by the task.
 21066  	//
 21067  	// If your tasks will be run on Amazon EC2 instances, you must specify either
 21068  	// a task-level memory value or a container-level memory value. This field is
 21069  	// optional and any value can be used. If a task-level memory value is specified
 21070  	// then the container-level memory value is optional. For more information regarding
 21071  	// container-level memory and memory reservation, see ContainerDefinition (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html).
 21072  	//
 21073  	// If your tasks will be run on Fargate, this field is required and you must
 21074  	// use one of the following values, which determines your range of valid values
 21075  	// for the cpu parameter:
 21076  	//
 21077  	//    * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25
 21078  	//    vCPU)
 21079  	//
 21080  	//    * 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values:
 21081  	//    512 (.5 vCPU)
 21082  	//
 21083  	//    * 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168
 21084  	//    (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
 21085  	//
 21086  	//    * Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) -
 21087  	//    Available cpu values: 2048 (2 vCPU)
 21088  	//
 21089  	//    * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
 21090  	//    Available cpu values: 4096 (4 vCPU)
 21091  	Memory *string `locationName:"memory" type:"string"`
 21092  
 21093  	// The Docker networking mode to use for the containers in the task. The valid
 21094  	// values are none, bridge, awsvpc, and host. If no network mode is specified,
 21095  	// the default is bridge.
 21096  	//
 21097  	// For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For
 21098  	// Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used.
 21099  	// For Amazon ECS tasks on Amazon EC2 Windows instances, <default> or awsvpc
 21100  	// can be used. If the network mode is set to none, you cannot specify port
 21101  	// mappings in your container definitions, and the tasks containers do not have
 21102  	// external connectivity. The host and awsvpc network modes offer the highest
 21103  	// networking performance for containers because they use the EC2 network stack
 21104  	// instead of the virtualized network stack provided by the bridge mode.
 21105  	//
 21106  	// With the host and awsvpc network modes, exposed container ports are mapped
 21107  	// directly to the corresponding host port (for the host network mode) or the
 21108  	// attached elastic network interface port (for the awsvpc network mode), so
 21109  	// you cannot take advantage of dynamic host port mappings.
 21110  	//
 21111  	// When using the host network mode, you should not run containers using the
 21112  	// root user (UID 0). It is considered best practice to use a non-root user.
 21113  	//
 21114  	// If the network mode is awsvpc, the task is allocated an elastic network interface,
 21115  	// and you must specify a NetworkConfiguration value when you create a service
 21116  	// or run a task with the task definition. For more information, see Task Networking
 21117  	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
 21118  	// in the Amazon Elastic Container Service Developer Guide.
 21119  	//
 21120  	// If the network mode is host, you cannot run multiple instantiations of the
 21121  	// same task on a single container instance when port mappings are used.
 21122  	//
 21123  	// For more information, see Network settings (https://docs.docker.com/engine/reference/run/#network-settings)
 21124  	// in the Docker run reference.
 21125  	NetworkMode *string `locationName:"networkMode" type:"string" enum:"NetworkMode"`
 21126  
 21127  	// The process namespace to use for the containers in the task. The valid values
 21128  	// are host or task. If host is specified, then all containers within the tasks
 21129  	// that specified the host PID mode on the same container instance share the
 21130  	// same process namespace with the host Amazon EC2 instance. If task is specified,
 21131  	// all containers within the specified task share the same process namespace.
 21132  	// If no value is specified, the default is a private namespace. For more information,
 21133  	// see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid)
 21134  	// in the Docker run reference.
 21135  	//
 21136  	// If the host PID mode is used, be aware that there is a heightened risk of
 21137  	// undesired process namespace expose. For more information, see Docker security
 21138  	// (https://docs.docker.com/engine/security/security/).
 21139  	//
 21140  	// This parameter is not supported for Windows containers or tasks run on Fargate.
 21141  	PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"`
 21142  
 21143  	// An array of placement constraint objects to use for tasks.
 21144  	//
 21145  	// This parameter is not supported for tasks run on Fargate.
 21146  	PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"`
 21147  
 21148  	// The configuration details for the App Mesh proxy.
 21149  	//
 21150  	// Your Amazon ECS container instances require at least version 1.26.0 of the
 21151  	// container agent and at least version 1.26.0-1 of the ecs-init package to
 21152  	// enable a proxy configuration. If your container instances are launched from
 21153  	// the Amazon ECS-optimized AMI version 20190301 or later, then they contain
 21154  	// the required versions of the container agent and ecs-init. For more information,
 21155  	// see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
 21156  	// in the Amazon Elastic Container Service Developer Guide.
 21157  	ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"`
 21158  
 21159  	// The Unix timestamp for when the task definition was registered.
 21160  	RegisteredAt *time.Time `locationName:"registeredAt" type:"timestamp"`
 21161  
 21162  	// The principal that registered the task definition.
 21163  	RegisteredBy *string `locationName:"registeredBy" type:"string"`
 21164  
 21165  	// The container instance attributes required by your task. When an Amazon EC2
 21166  	// instance is registered to your cluster, the Amazon ECS container agent assigns
 21167  	// some standard attributes to the instance. You can apply custom attributes,
 21168  	// specified as key-value pairs using the Amazon ECS console or the PutAttributes
 21169  	// API. These attributes are used when considering task placement for tasks
 21170  	// hosted on Amazon EC2 instances. For more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes)
 21171  	// in the Amazon Elastic Container Service Developer Guide.
 21172  	//
 21173  	// This parameter is not supported for tasks run on Fargate.
 21174  	RequiresAttributes []*Attribute `locationName:"requiresAttributes" type:"list"`
 21175  
 21176  	// The task launch types the task definition was validated against. To determine
 21177  	// which task launch types the task definition is validated for, see the TaskDefinition$compatibilities
 21178  	// parameter.
 21179  	RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"`
 21180  
 21181  	// The revision of the task in a particular family. The revision is a version
 21182  	// number of a task definition in a family. When you register a task definition
 21183  	// for the first time, the revision is 1. Each time that you register a new
 21184  	// revision of a task definition in the same family, the revision value always
 21185  	// increases by one, even if you have deregistered previous revisions in this
 21186  	// family.
 21187  	Revision *int64 `locationName:"revision" type:"integer"`
 21188  
 21189  	// The status of the task definition.
 21190  	Status *string `locationName:"status" type:"string" enum:"TaskDefinitionStatus"`
 21191  
 21192  	// The full Amazon Resource Name (ARN) of the task definition.
 21193  	TaskDefinitionArn *string `locationName:"taskDefinitionArn" type:"string"`
 21194  
 21195  	// The short name or full Amazon Resource Name (ARN) of the Identity and Access
 21196  	// Management role that grants containers in the task permission to call Amazon
 21197  	// Web Services APIs on your behalf. For more information, see Amazon ECS Task
 21198  	// Role (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
 21199  	// in the Amazon Elastic Container Service Developer Guide.
 21200  	//
 21201  	// IAM roles for tasks on Windows require that the -EnableTaskIAMRole option
 21202  	// is set when you launch the Amazon ECS-optimized Windows AMI. Your containers
 21203  	// must also run some configuration code in order to take advantage of the feature.
 21204  	// For more information, see Windows IAM roles for tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html)
 21205  	// in the Amazon Elastic Container Service Developer Guide.
 21206  	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
 21207  
 21208  	// The list of data volume definitions for the task. For more information, see
 21209  	// Using data volumes in tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html)
 21210  	// in the Amazon Elastic Container Service Developer Guide.
 21211  	//
 21212  	// The host and sourcePath parameters are not supported for tasks run on Fargate.
 21213  	Volumes []*Volume `locationName:"volumes" type:"list"`
 21214  }
 21215  
 21216  // String returns the string representation.
 21217  //
 21218  // API parameter values that are decorated as "sensitive" in the API will not
 21219  // be included in the string output. The member name will be present, but the
 21220  // value will be replaced with "sensitive".
 21221  func (s TaskDefinition) String() string {
 21222  	return awsutil.Prettify(s)
 21223  }
 21224  
 21225  // GoString returns the string representation.
 21226  //
 21227  // API parameter values that are decorated as "sensitive" in the API will not
 21228  // be included in the string output. The member name will be present, but the
 21229  // value will be replaced with "sensitive".
 21230  func (s TaskDefinition) GoString() string {
 21231  	return s.String()
 21232  }
 21233  
 21234  // SetCompatibilities sets the Compatibilities field's value.
 21235  func (s *TaskDefinition) SetCompatibilities(v []*string) *TaskDefinition {
 21236  	s.Compatibilities = v
 21237  	return s
 21238  }
 21239  
 21240  // SetContainerDefinitions sets the ContainerDefinitions field's value.
 21241  func (s *TaskDefinition) SetContainerDefinitions(v []*ContainerDefinition) *TaskDefinition {
 21242  	s.ContainerDefinitions = v
 21243  	return s
 21244  }
 21245  
 21246  // SetCpu sets the Cpu field's value.
 21247  func (s *TaskDefinition) SetCpu(v string) *TaskDefinition {
 21248  	s.Cpu = &v
 21249  	return s
 21250  }
 21251  
 21252  // SetDeregisteredAt sets the DeregisteredAt field's value.
 21253  func (s *TaskDefinition) SetDeregisteredAt(v time.Time) *TaskDefinition {
 21254  	s.DeregisteredAt = &v
 21255  	return s
 21256  }
 21257  
 21258  // SetEphemeralStorage sets the EphemeralStorage field's value.
 21259  func (s *TaskDefinition) SetEphemeralStorage(v *EphemeralStorage) *TaskDefinition {
 21260  	s.EphemeralStorage = v
 21261  	return s
 21262  }
 21263  
 21264  // SetExecutionRoleArn sets the ExecutionRoleArn field's value.
 21265  func (s *TaskDefinition) SetExecutionRoleArn(v string) *TaskDefinition {
 21266  	s.ExecutionRoleArn = &v
 21267  	return s
 21268  }
 21269  
 21270  // SetFamily sets the Family field's value.
 21271  func (s *TaskDefinition) SetFamily(v string) *TaskDefinition {
 21272  	s.Family = &v
 21273  	return s
 21274  }
 21275  
 21276  // SetInferenceAccelerators sets the InferenceAccelerators field's value.
 21277  func (s *TaskDefinition) SetInferenceAccelerators(v []*InferenceAccelerator) *TaskDefinition {
 21278  	s.InferenceAccelerators = v
 21279  	return s
 21280  }
 21281  
 21282  // SetIpcMode sets the IpcMode field's value.
 21283  func (s *TaskDefinition) SetIpcMode(v string) *TaskDefinition {
 21284  	s.IpcMode = &v
 21285  	return s
 21286  }
 21287  
 21288  // SetMemory sets the Memory field's value.
 21289  func (s *TaskDefinition) SetMemory(v string) *TaskDefinition {
 21290  	s.Memory = &v
 21291  	return s
 21292  }
 21293  
 21294  // SetNetworkMode sets the NetworkMode field's value.
 21295  func (s *TaskDefinition) SetNetworkMode(v string) *TaskDefinition {
 21296  	s.NetworkMode = &v
 21297  	return s
 21298  }
 21299  
 21300  // SetPidMode sets the PidMode field's value.
 21301  func (s *TaskDefinition) SetPidMode(v string) *TaskDefinition {
 21302  	s.PidMode = &v
 21303  	return s
 21304  }
 21305  
 21306  // SetPlacementConstraints sets the PlacementConstraints field's value.
 21307  func (s *TaskDefinition) SetPlacementConstraints(v []*TaskDefinitionPlacementConstraint) *TaskDefinition {
 21308  	s.PlacementConstraints = v
 21309  	return s
 21310  }
 21311  
 21312  // SetProxyConfiguration sets the ProxyConfiguration field's value.
 21313  func (s *TaskDefinition) SetProxyConfiguration(v *ProxyConfiguration) *TaskDefinition {
 21314  	s.ProxyConfiguration = v
 21315  	return s
 21316  }
 21317  
 21318  // SetRegisteredAt sets the RegisteredAt field's value.
 21319  func (s *TaskDefinition) SetRegisteredAt(v time.Time) *TaskDefinition {
 21320  	s.RegisteredAt = &v
 21321  	return s
 21322  }
 21323  
 21324  // SetRegisteredBy sets the RegisteredBy field's value.
 21325  func (s *TaskDefinition) SetRegisteredBy(v string) *TaskDefinition {
 21326  	s.RegisteredBy = &v
 21327  	return s
 21328  }
 21329  
 21330  // SetRequiresAttributes sets the RequiresAttributes field's value.
 21331  func (s *TaskDefinition) SetRequiresAttributes(v []*Attribute) *TaskDefinition {
 21332  	s.RequiresAttributes = v
 21333  	return s
 21334  }
 21335  
 21336  // SetRequiresCompatibilities sets the RequiresCompatibilities field's value.
 21337  func (s *TaskDefinition) SetRequiresCompatibilities(v []*string) *TaskDefinition {
 21338  	s.RequiresCompatibilities = v
 21339  	return s
 21340  }
 21341  
 21342  // SetRevision sets the Revision field's value.
 21343  func (s *TaskDefinition) SetRevision(v int64) *TaskDefinition {
 21344  	s.Revision = &v
 21345  	return s
 21346  }
 21347  
 21348  // SetStatus sets the Status field's value.
 21349  func (s *TaskDefinition) SetStatus(v string) *TaskDefinition {
 21350  	s.Status = &v
 21351  	return s
 21352  }
 21353  
 21354  // SetTaskDefinitionArn sets the TaskDefinitionArn field's value.
 21355  func (s *TaskDefinition) SetTaskDefinitionArn(v string) *TaskDefinition {
 21356  	s.TaskDefinitionArn = &v
 21357  	return s
 21358  }
 21359  
 21360  // SetTaskRoleArn sets the TaskRoleArn field's value.
 21361  func (s *TaskDefinition) SetTaskRoleArn(v string) *TaskDefinition {
 21362  	s.TaskRoleArn = &v
 21363  	return s
 21364  }
 21365  
 21366  // SetVolumes sets the Volumes field's value.
 21367  func (s *TaskDefinition) SetVolumes(v []*Volume) *TaskDefinition {
 21368  	s.Volumes = v
 21369  	return s
 21370  }
 21371  
 21372  // An object representing a constraint on task placement in the task definition.
 21373  // For more information, see Task placement constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
 21374  // in the Amazon Elastic Container Service Developer Guide.
 21375  //
 21376  // Task placement constraints are not supported for tasks run on Fargate.
 21377  type TaskDefinitionPlacementConstraint struct {
 21378  	_ struct{} `type:"structure"`
 21379  
 21380  	// A cluster query language expression to apply to the constraint. For more
 21381  	// information, see Cluster query language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
 21382  	// in the Amazon Elastic Container Service Developer Guide.
 21383  	Expression *string `locationName:"expression" type:"string"`
 21384  
 21385  	// The type of constraint. The MemberOf constraint restricts selection to be
 21386  	// from a group of valid candidates.
 21387  	Type *string `locationName:"type" type:"string" enum:"TaskDefinitionPlacementConstraintType"`
 21388  }
 21389  
 21390  // String returns the string representation.
 21391  //
 21392  // API parameter values that are decorated as "sensitive" in the API will not
 21393  // be included in the string output. The member name will be present, but the
 21394  // value will be replaced with "sensitive".
 21395  func (s TaskDefinitionPlacementConstraint) String() string {
 21396  	return awsutil.Prettify(s)
 21397  }
 21398  
 21399  // GoString returns the string representation.
 21400  //
 21401  // API parameter values that are decorated as "sensitive" in the API will not
 21402  // be included in the string output. The member name will be present, but the
 21403  // value will be replaced with "sensitive".
 21404  func (s TaskDefinitionPlacementConstraint) GoString() string {
 21405  	return s.String()
 21406  }
 21407  
 21408  // SetExpression sets the Expression field's value.
 21409  func (s *TaskDefinitionPlacementConstraint) SetExpression(v string) *TaskDefinitionPlacementConstraint {
 21410  	s.Expression = &v
 21411  	return s
 21412  }
 21413  
 21414  // SetType sets the Type field's value.
 21415  func (s *TaskDefinitionPlacementConstraint) SetType(v string) *TaskDefinitionPlacementConstraint {
 21416  	s.Type = &v
 21417  	return s
 21418  }
 21419  
 21420  // The overrides associated with a task.
 21421  type TaskOverride struct {
 21422  	_ struct{} `type:"structure"`
 21423  
 21424  	// One or more container overrides sent to a task.
 21425  	ContainerOverrides []*ContainerOverride `locationName:"containerOverrides" type:"list"`
 21426  
 21427  	// The cpu override for the task.
 21428  	Cpu *string `locationName:"cpu" type:"string"`
 21429  
 21430  	// The ephemeral storage setting override for the task.
 21431  	//
 21432  	// This parameter is only supported for tasks hosted on Fargate using platform
 21433  	// version 1.4.0 or later.
 21434  	EphemeralStorage *EphemeralStorage `locationName:"ephemeralStorage" type:"structure"`
 21435  
 21436  	// The Amazon Resource Name (ARN) of the task execution IAM role override for
 21437  	// the task.
 21438  	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
 21439  
 21440  	// The Elastic Inference accelerator override for the task.
 21441  	InferenceAcceleratorOverrides []*InferenceAcceleratorOverride `locationName:"inferenceAcceleratorOverrides" type:"list"`
 21442  
 21443  	// The memory override for the task.
 21444  	Memory *string `locationName:"memory" type:"string"`
 21445  
 21446  	// The Amazon Resource Name (ARN) of the IAM role that containers in this task
 21447  	// can assume. All containers in this task are granted the permissions that
 21448  	// are specified in this role.
 21449  	TaskRoleArn *string `locationName:"taskRoleArn" type:"string"`
 21450  }
 21451  
 21452  // String returns the string representation.
 21453  //
 21454  // API parameter values that are decorated as "sensitive" in the API will not
 21455  // be included in the string output. The member name will be present, but the
 21456  // value will be replaced with "sensitive".
 21457  func (s TaskOverride) String() string {
 21458  	return awsutil.Prettify(s)
 21459  }
 21460  
 21461  // GoString returns the string representation.
 21462  //
 21463  // API parameter values that are decorated as "sensitive" in the API will not
 21464  // be included in the string output. The member name will be present, but the
 21465  // value will be replaced with "sensitive".
 21466  func (s TaskOverride) GoString() string {
 21467  	return s.String()
 21468  }
 21469  
 21470  // Validate inspects the fields of the type to determine if they are valid.
 21471  func (s *TaskOverride) Validate() error {
 21472  	invalidParams := request.ErrInvalidParams{Context: "TaskOverride"}
 21473  	if s.ContainerOverrides != nil {
 21474  		for i, v := range s.ContainerOverrides {
 21475  			if v == nil {
 21476  				continue
 21477  			}
 21478  			if err := v.Validate(); err != nil {
 21479  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContainerOverrides", i), err.(request.ErrInvalidParams))
 21480  			}
 21481  		}
 21482  	}
 21483  	if s.EphemeralStorage != nil {
 21484  		if err := s.EphemeralStorage.Validate(); err != nil {
 21485  			invalidParams.AddNested("EphemeralStorage", err.(request.ErrInvalidParams))
 21486  		}
 21487  	}
 21488  
 21489  	if invalidParams.Len() > 0 {
 21490  		return invalidParams
 21491  	}
 21492  	return nil
 21493  }
 21494  
 21495  // SetContainerOverrides sets the ContainerOverrides field's value.
 21496  func (s *TaskOverride) SetContainerOverrides(v []*ContainerOverride) *TaskOverride {
 21497  	s.ContainerOverrides = v
 21498  	return s
 21499  }
 21500  
 21501  // SetCpu sets the Cpu field's value.
 21502  func (s *TaskOverride) SetCpu(v string) *TaskOverride {
 21503  	s.Cpu = &v
 21504  	return s
 21505  }
 21506  
 21507  // SetEphemeralStorage sets the EphemeralStorage field's value.
 21508  func (s *TaskOverride) SetEphemeralStorage(v *EphemeralStorage) *TaskOverride {
 21509  	s.EphemeralStorage = v
 21510  	return s
 21511  }
 21512  
 21513  // SetExecutionRoleArn sets the ExecutionRoleArn field's value.
 21514  func (s *TaskOverride) SetExecutionRoleArn(v string) *TaskOverride {
 21515  	s.ExecutionRoleArn = &v
 21516  	return s
 21517  }
 21518  
 21519  // SetInferenceAcceleratorOverrides sets the InferenceAcceleratorOverrides field's value.
 21520  func (s *TaskOverride) SetInferenceAcceleratorOverrides(v []*InferenceAcceleratorOverride) *TaskOverride {
 21521  	s.InferenceAcceleratorOverrides = v
 21522  	return s
 21523  }
 21524  
 21525  // SetMemory sets the Memory field's value.
 21526  func (s *TaskOverride) SetMemory(v string) *TaskOverride {
 21527  	s.Memory = &v
 21528  	return s
 21529  }
 21530  
 21531  // SetTaskRoleArn sets the TaskRoleArn field's value.
 21532  func (s *TaskOverride) SetTaskRoleArn(v string) *TaskOverride {
 21533  	s.TaskRoleArn = &v
 21534  	return s
 21535  }
 21536  
 21537  // Information about a set of Amazon ECS tasks in either an CodeDeploy or an
 21538  // EXTERNAL deployment. An Amazon ECS task set includes details such as the
 21539  // desired number of tasks, how many tasks are running, and whether the task
 21540  // set serves production traffic.
 21541  type TaskSet struct {
 21542  	_ struct{} `type:"structure"`
 21543  
 21544  	// The capacity provider strategy associated with the task set.
 21545  	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
 21546  
 21547  	// The Amazon Resource Name (ARN) of the cluster that the service that hosts
 21548  	// the task set exists in.
 21549  	ClusterArn *string `locationName:"clusterArn" type:"string"`
 21550  
 21551  	// The computed desired count for the task set. This is calculated by multiplying
 21552  	// the service's desiredCount by the task set's scale percentage. The result
 21553  	// is always rounded up. For example, if the computed desired count is 1.2,
 21554  	// it rounds up to 2 tasks.
 21555  	ComputedDesiredCount *int64 `locationName:"computedDesiredCount" type:"integer"`
 21556  
 21557  	// The Unix timestamp for when the task set was created.
 21558  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
 21559  
 21560  	// The external ID associated with the task set.
 21561  	//
 21562  	// If a task set is created by an CodeDeploy deployment, the externalId parameter
 21563  	// contains the CodeDeploy deployment ID.
 21564  	//
 21565  	// If a task set is created for an external deployment and is associated with
 21566  	// a service discovery registry, the externalId parameter contains the ECS_TASK_SET_EXTERNAL_ID
 21567  	// Cloud Map attribute.
 21568  	ExternalId *string `locationName:"externalId" type:"string"`
 21569  
 21570  	// The ID of the task set.
 21571  	Id *string `locationName:"id" type:"string"`
 21572  
 21573  	// The launch type the tasks in the task set are using. For more information,
 21574  	// see Amazon ECS launch types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
 21575  	// in the Amazon Elastic Container Service Developer Guide.
 21576  	LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"`
 21577  
 21578  	// Details on a load balancer that is used with a task set.
 21579  	LoadBalancers []*LoadBalancer `locationName:"loadBalancers" type:"list"`
 21580  
 21581  	// The network configuration for the task set.
 21582  	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
 21583  
 21584  	// The number of tasks in the task set that are in the PENDING status during
 21585  	// a deployment. A task in the PENDING state is preparing to enter the RUNNING
 21586  	// state. A task set enters the PENDING status when it launches for the first
 21587  	// time or when it is restarted after being in the STOPPED state.
 21588  	PendingCount *int64 `locationName:"pendingCount" type:"integer"`
 21589  
 21590  	// The Fargate platform version on which the tasks in the task set are running.
 21591  	// A platform version is only specified for tasks run on Fargate. For more information,
 21592  	// see Fargate platform versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
 21593  	// in the Amazon Elastic Container Service Developer Guide.
 21594  	PlatformVersion *string `locationName:"platformVersion" type:"string"`
 21595  
 21596  	// The number of tasks in the task set that are in the RUNNING status during
 21597  	// a deployment. A task in the RUNNING state is running and ready for use.
 21598  	RunningCount *int64 `locationName:"runningCount" type:"integer"`
 21599  
 21600  	// A floating-point percentage of the desired number of tasks to place and keep
 21601  	// running in the task set.
 21602  	Scale *Scale `locationName:"scale" type:"structure"`
 21603  
 21604  	// The Amazon Resource Name (ARN) of the service the task set exists in.
 21605  	ServiceArn *string `locationName:"serviceArn" type:"string"`
 21606  
 21607  	// The details of the service discovery registries to assign to this task set.
 21608  	// For more information, see Service discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).
 21609  	ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"`
 21610  
 21611  	// The stability status, which indicates whether the task set has reached a
 21612  	// steady state. If the following conditions are met, the task set will be in
 21613  	// STEADY_STATE:
 21614  	//
 21615  	//    * The task runningCount is equal to the computedDesiredCount.
 21616  	//
 21617  	//    * The pendingCount is 0.
 21618  	//
 21619  	//    * There are no tasks running on container instances in the DRAINING status.
 21620  	//
 21621  	//    * All tasks are reporting a healthy status from the load balancers, service
 21622  	//    discovery, and container health checks.
 21623  	//
 21624  	// If any of those conditions are not met, the stability status returns STABILIZING.
 21625  	StabilityStatus *string `locationName:"stabilityStatus" type:"string" enum:"StabilityStatus"`
 21626  
 21627  	// The Unix timestamp for when the task set stability status was retrieved.
 21628  	StabilityStatusAt *time.Time `locationName:"stabilityStatusAt" type:"timestamp"`
 21629  
 21630  	// The tag specified when a task set is started. If the task set is created
 21631  	// by an CodeDeploy deployment, the startedBy parameter is CODE_DEPLOY. For
 21632  	// a task set created for an external deployment, the startedBy field isn't
 21633  	// used.
 21634  	StartedBy *string `locationName:"startedBy" type:"string"`
 21635  
 21636  	// The status of the task set. The following describes each state:
 21637  	//
 21638  	// PRIMARY
 21639  	//
 21640  	// The task set is serving production traffic.
 21641  	//
 21642  	// ACTIVE
 21643  	//
 21644  	// The task set is not serving production traffic.
 21645  	//
 21646  	// DRAINING
 21647  	//
 21648  	// The tasks in the task set are being stopped and their corresponding targets
 21649  	// are being deregistered from their target group.
 21650  	Status *string `locationName:"status" type:"string"`
 21651  
 21652  	// The metadata that you apply to the task set to help you categorize and organize
 21653  	// them. Each tag consists of a key and an optional value, both of which you
 21654  	// define.
 21655  	//
 21656  	// The following basic restrictions apply to tags:
 21657  	//
 21658  	//    * Maximum number of tags per resource - 50
 21659  	//
 21660  	//    * For each resource, each tag key must be unique, and each tag key can
 21661  	//    have only one value.
 21662  	//
 21663  	//    * Maximum key length - 128 Unicode characters in UTF-8
 21664  	//
 21665  	//    * Maximum value length - 256 Unicode characters in UTF-8
 21666  	//
 21667  	//    * If your tagging schema is used across multiple services and resources,
 21668  	//    remember that other services may have restrictions on allowed characters.
 21669  	//    Generally allowed characters are: letters, numbers, and spaces representable
 21670  	//    in UTF-8, and the following characters: + - = . _ : / @.
 21671  	//
 21672  	//    * Tag keys and values are case-sensitive.
 21673  	//
 21674  	//    * Do not use aws:, AWS:, or any upper or lowercase combination of such
 21675  	//    as a prefix for either keys or values as it is reserved for Amazon Web
 21676  	//    Services use. You cannot edit or delete tag keys or values with this prefix.
 21677  	//    Tags with this prefix do not count against your tags per resource limit.
 21678  	Tags []*Tag `locationName:"tags" type:"list"`
 21679  
 21680  	// The task definition the task set is using.
 21681  	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
 21682  
 21683  	// The Amazon Resource Name (ARN) of the task set.
 21684  	TaskSetArn *string `locationName:"taskSetArn" type:"string"`
 21685  
 21686  	// The Unix timestamp for when the task set was last updated.
 21687  	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`
 21688  }
 21689  
 21690  // String returns the string representation.
 21691  //
 21692  // API parameter values that are decorated as "sensitive" in the API will not
 21693  // be included in the string output. The member name will be present, but the
 21694  // value will be replaced with "sensitive".
 21695  func (s TaskSet) String() string {
 21696  	return awsutil.Prettify(s)
 21697  }
 21698  
 21699  // GoString returns the string representation.
 21700  //
 21701  // API parameter values that are decorated as "sensitive" in the API will not
 21702  // be included in the string output. The member name will be present, but the
 21703  // value will be replaced with "sensitive".
 21704  func (s TaskSet) GoString() string {
 21705  	return s.String()
 21706  }
 21707  
 21708  // SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
 21709  func (s *TaskSet) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *TaskSet {
 21710  	s.CapacityProviderStrategy = v
 21711  	return s
 21712  }
 21713  
 21714  // SetClusterArn sets the ClusterArn field's value.
 21715  func (s *TaskSet) SetClusterArn(v string) *TaskSet {
 21716  	s.ClusterArn = &v
 21717  	return s
 21718  }
 21719  
 21720  // SetComputedDesiredCount sets the ComputedDesiredCount field's value.
 21721  func (s *TaskSet) SetComputedDesiredCount(v int64) *TaskSet {
 21722  	s.ComputedDesiredCount = &v
 21723  	return s
 21724  }
 21725  
 21726  // SetCreatedAt sets the CreatedAt field's value.
 21727  func (s *TaskSet) SetCreatedAt(v time.Time) *TaskSet {
 21728  	s.CreatedAt = &v
 21729  	return s
 21730  }
 21731  
 21732  // SetExternalId sets the ExternalId field's value.
 21733  func (s *TaskSet) SetExternalId(v string) *TaskSet {
 21734  	s.ExternalId = &v
 21735  	return s
 21736  }
 21737  
 21738  // SetId sets the Id field's value.
 21739  func (s *TaskSet) SetId(v string) *TaskSet {
 21740  	s.Id = &v
 21741  	return s
 21742  }
 21743  
 21744  // SetLaunchType sets the LaunchType field's value.
 21745  func (s *TaskSet) SetLaunchType(v string) *TaskSet {
 21746  	s.LaunchType = &v
 21747  	return s
 21748  }
 21749  
 21750  // SetLoadBalancers sets the LoadBalancers field's value.
 21751  func (s *TaskSet) SetLoadBalancers(v []*LoadBalancer) *TaskSet {
 21752  	s.LoadBalancers = v
 21753  	return s
 21754  }
 21755  
 21756  // SetNetworkConfiguration sets the NetworkConfiguration field's value.
 21757  func (s *TaskSet) SetNetworkConfiguration(v *NetworkConfiguration) *TaskSet {
 21758  	s.NetworkConfiguration = v
 21759  	return s
 21760  }
 21761  
 21762  // SetPendingCount sets the PendingCount field's value.
 21763  func (s *TaskSet) SetPendingCount(v int64) *TaskSet {
 21764  	s.PendingCount = &v
 21765  	return s
 21766  }
 21767  
 21768  // SetPlatformVersion sets the PlatformVersion field's value.
 21769  func (s *TaskSet) SetPlatformVersion(v string) *TaskSet {
 21770  	s.PlatformVersion = &v
 21771  	return s
 21772  }
 21773  
 21774  // SetRunningCount sets the RunningCount field's value.
 21775  func (s *TaskSet) SetRunningCount(v int64) *TaskSet {
 21776  	s.RunningCount = &v
 21777  	return s
 21778  }
 21779  
 21780  // SetScale sets the Scale field's value.
 21781  func (s *TaskSet) SetScale(v *Scale) *TaskSet {
 21782  	s.Scale = v
 21783  	return s
 21784  }
 21785  
 21786  // SetServiceArn sets the ServiceArn field's value.
 21787  func (s *TaskSet) SetServiceArn(v string) *TaskSet {
 21788  	s.ServiceArn = &v
 21789  	return s
 21790  }
 21791  
 21792  // SetServiceRegistries sets the ServiceRegistries field's value.
 21793  func (s *TaskSet) SetServiceRegistries(v []*ServiceRegistry) *TaskSet {
 21794  	s.ServiceRegistries = v
 21795  	return s
 21796  }
 21797  
 21798  // SetStabilityStatus sets the StabilityStatus field's value.
 21799  func (s *TaskSet) SetStabilityStatus(v string) *TaskSet {
 21800  	s.StabilityStatus = &v
 21801  	return s
 21802  }
 21803  
 21804  // SetStabilityStatusAt sets the StabilityStatusAt field's value.
 21805  func (s *TaskSet) SetStabilityStatusAt(v time.Time) *TaskSet {
 21806  	s.StabilityStatusAt = &v
 21807  	return s
 21808  }
 21809  
 21810  // SetStartedBy sets the StartedBy field's value.
 21811  func (s *TaskSet) SetStartedBy(v string) *TaskSet {
 21812  	s.StartedBy = &v
 21813  	return s
 21814  }
 21815  
 21816  // SetStatus sets the Status field's value.
 21817  func (s *TaskSet) SetStatus(v string) *TaskSet {
 21818  	s.Status = &v
 21819  	return s
 21820  }
 21821  
 21822  // SetTags sets the Tags field's value.
 21823  func (s *TaskSet) SetTags(v []*Tag) *TaskSet {
 21824  	s.Tags = v
 21825  	return s
 21826  }
 21827  
 21828  // SetTaskDefinition sets the TaskDefinition field's value.
 21829  func (s *TaskSet) SetTaskDefinition(v string) *TaskSet {
 21830  	s.TaskDefinition = &v
 21831  	return s
 21832  }
 21833  
 21834  // SetTaskSetArn sets the TaskSetArn field's value.
 21835  func (s *TaskSet) SetTaskSetArn(v string) *TaskSet {
 21836  	s.TaskSetArn = &v
 21837  	return s
 21838  }
 21839  
 21840  // SetUpdatedAt sets the UpdatedAt field's value.
 21841  func (s *TaskSet) SetUpdatedAt(v time.Time) *TaskSet {
 21842  	s.UpdatedAt = &v
 21843  	return s
 21844  }
 21845  
 21846  // The specified task set could not be found. You can view your available task
 21847  // sets with DescribeTaskSets. Task sets are specific to each cluster, service
 21848  // and Region.
 21849  type TaskSetNotFoundException struct {
 21850  	_            struct{}                  `type:"structure"`
 21851  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 21852  
 21853  	Message_ *string `locationName:"message" type:"string"`
 21854  }
 21855  
 21856  // String returns the string representation.
 21857  //
 21858  // API parameter values that are decorated as "sensitive" in the API will not
 21859  // be included in the string output. The member name will be present, but the
 21860  // value will be replaced with "sensitive".
 21861  func (s TaskSetNotFoundException) String() string {
 21862  	return awsutil.Prettify(s)
 21863  }
 21864  
 21865  // GoString returns the string representation.
 21866  //
 21867  // API parameter values that are decorated as "sensitive" in the API will not
 21868  // be included in the string output. The member name will be present, but the
 21869  // value will be replaced with "sensitive".
 21870  func (s TaskSetNotFoundException) GoString() string {
 21871  	return s.String()
 21872  }
 21873  
 21874  func newErrorTaskSetNotFoundException(v protocol.ResponseMetadata) error {
 21875  	return &TaskSetNotFoundException{
 21876  		RespMetadata: v,
 21877  	}
 21878  }
 21879  
 21880  // Code returns the exception type name.
 21881  func (s *TaskSetNotFoundException) Code() string {
 21882  	return "TaskSetNotFoundException"
 21883  }
 21884  
 21885  // Message returns the exception's message.
 21886  func (s *TaskSetNotFoundException) Message() string {
 21887  	if s.Message_ != nil {
 21888  		return *s.Message_
 21889  	}
 21890  	return ""
 21891  }
 21892  
 21893  // OrigErr always returns nil, satisfies awserr.Error interface.
 21894  func (s *TaskSetNotFoundException) OrigErr() error {
 21895  	return nil
 21896  }
 21897  
 21898  func (s *TaskSetNotFoundException) Error() string {
 21899  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 21900  }
 21901  
 21902  // Status code returns the HTTP status code for the request's response error.
 21903  func (s *TaskSetNotFoundException) StatusCode() int {
 21904  	return s.RespMetadata.StatusCode
 21905  }
 21906  
 21907  // RequestID returns the service's response RequestID for request.
 21908  func (s *TaskSetNotFoundException) RequestID() string {
 21909  	return s.RespMetadata.RequestID
 21910  }
 21911  
 21912  // The container path, mount options, and size of the tmpfs mount.
 21913  type Tmpfs struct {
 21914  	_ struct{} `type:"structure"`
 21915  
 21916  	// The absolute file path where the tmpfs volume is to be mounted.
 21917  	//
 21918  	// ContainerPath is a required field
 21919  	ContainerPath *string `locationName:"containerPath" type:"string" required:"true"`
 21920  
 21921  	// The list of tmpfs volume mount options.
 21922  	//
 21923  	// Valid values: "defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev"
 21924  	// | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" |
 21925  	// "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind"
 21926  	// | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared"
 21927  	// | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime"
 21928  	// | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"
 21929  	MountOptions []*string `locationName:"mountOptions" type:"list"`
 21930  
 21931  	// The maximum size (in MiB) of the tmpfs volume.
 21932  	//
 21933  	// Size is a required field
 21934  	Size *int64 `locationName:"size" type:"integer" required:"true"`
 21935  }
 21936  
 21937  // String returns the string representation.
 21938  //
 21939  // API parameter values that are decorated as "sensitive" in the API will not
 21940  // be included in the string output. The member name will be present, but the
 21941  // value will be replaced with "sensitive".
 21942  func (s Tmpfs) String() string {
 21943  	return awsutil.Prettify(s)
 21944  }
 21945  
 21946  // GoString returns the string representation.
 21947  //
 21948  // API parameter values that are decorated as "sensitive" in the API will not
 21949  // be included in the string output. The member name will be present, but the
 21950  // value will be replaced with "sensitive".
 21951  func (s Tmpfs) GoString() string {
 21952  	return s.String()
 21953  }
 21954  
 21955  // Validate inspects the fields of the type to determine if they are valid.
 21956  func (s *Tmpfs) Validate() error {
 21957  	invalidParams := request.ErrInvalidParams{Context: "Tmpfs"}
 21958  	if s.ContainerPath == nil {
 21959  		invalidParams.Add(request.NewErrParamRequired("ContainerPath"))
 21960  	}
 21961  	if s.Size == nil {
 21962  		invalidParams.Add(request.NewErrParamRequired("Size"))
 21963  	}
 21964  
 21965  	if invalidParams.Len() > 0 {
 21966  		return invalidParams
 21967  	}
 21968  	return nil
 21969  }
 21970  
 21971  // SetContainerPath sets the ContainerPath field's value.
 21972  func (s *Tmpfs) SetContainerPath(v string) *Tmpfs {
 21973  	s.ContainerPath = &v
 21974  	return s
 21975  }
 21976  
 21977  // SetMountOptions sets the MountOptions field's value.
 21978  func (s *Tmpfs) SetMountOptions(v []*string) *Tmpfs {
 21979  	s.MountOptions = v
 21980  	return s
 21981  }
 21982  
 21983  // SetSize sets the Size field's value.
 21984  func (s *Tmpfs) SetSize(v int64) *Tmpfs {
 21985  	s.Size = &v
 21986  	return s
 21987  }
 21988  
 21989  // The ulimit settings to pass to the container.
 21990  //
 21991  // Amazon ECS tasks hosted on Fargate use the default resource limit values
 21992  // set by the operating system with the exception of the nofile resource limit
 21993  // parameter which Fargate overrides. The nofile resource limit sets a restriction
 21994  // on the number of open files that a container can use. The default nofile
 21995  // soft limit is 1024 and hard limit is 4096.
 21996  type Ulimit struct {
 21997  	_ struct{} `type:"structure"`
 21998  
 21999  	// The hard limit for the ulimit type.
 22000  	//
 22001  	// HardLimit is a required field
 22002  	HardLimit *int64 `locationName:"hardLimit" type:"integer" required:"true"`
 22003  
 22004  	// The type of the ulimit.
 22005  	//
 22006  	// Name is a required field
 22007  	Name *string `locationName:"name" type:"string" required:"true" enum:"UlimitName"`
 22008  
 22009  	// The soft limit for the ulimit type.
 22010  	//
 22011  	// SoftLimit is a required field
 22012  	SoftLimit *int64 `locationName:"softLimit" type:"integer" required:"true"`
 22013  }
 22014  
 22015  // String returns the string representation.
 22016  //
 22017  // API parameter values that are decorated as "sensitive" in the API will not
 22018  // be included in the string output. The member name will be present, but the
 22019  // value will be replaced with "sensitive".
 22020  func (s Ulimit) String() string {
 22021  	return awsutil.Prettify(s)
 22022  }
 22023  
 22024  // GoString returns the string representation.
 22025  //
 22026  // API parameter values that are decorated as "sensitive" in the API will not
 22027  // be included in the string output. The member name will be present, but the
 22028  // value will be replaced with "sensitive".
 22029  func (s Ulimit) GoString() string {
 22030  	return s.String()
 22031  }
 22032  
 22033  // Validate inspects the fields of the type to determine if they are valid.
 22034  func (s *Ulimit) Validate() error {
 22035  	invalidParams := request.ErrInvalidParams{Context: "Ulimit"}
 22036  	if s.HardLimit == nil {
 22037  		invalidParams.Add(request.NewErrParamRequired("HardLimit"))
 22038  	}
 22039  	if s.Name == nil {
 22040  		invalidParams.Add(request.NewErrParamRequired("Name"))
 22041  	}
 22042  	if s.SoftLimit == nil {
 22043  		invalidParams.Add(request.NewErrParamRequired("SoftLimit"))
 22044  	}
 22045  
 22046  	if invalidParams.Len() > 0 {
 22047  		return invalidParams
 22048  	}
 22049  	return nil
 22050  }
 22051  
 22052  // SetHardLimit sets the HardLimit field's value.
 22053  func (s *Ulimit) SetHardLimit(v int64) *Ulimit {
 22054  	s.HardLimit = &v
 22055  	return s
 22056  }
 22057  
 22058  // SetName sets the Name field's value.
 22059  func (s *Ulimit) SetName(v string) *Ulimit {
 22060  	s.Name = &v
 22061  	return s
 22062  }
 22063  
 22064  // SetSoftLimit sets the SoftLimit field's value.
 22065  func (s *Ulimit) SetSoftLimit(v int64) *Ulimit {
 22066  	s.SoftLimit = &v
 22067  	return s
 22068  }
 22069  
 22070  // The specified task is not supported in this Region.
 22071  type UnsupportedFeatureException struct {
 22072  	_            struct{}                  `type:"structure"`
 22073  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 22074  
 22075  	Message_ *string `locationName:"message" type:"string"`
 22076  }
 22077  
 22078  // String returns the string representation.
 22079  //
 22080  // API parameter values that are decorated as "sensitive" in the API will not
 22081  // be included in the string output. The member name will be present, but the
 22082  // value will be replaced with "sensitive".
 22083  func (s UnsupportedFeatureException) String() string {
 22084  	return awsutil.Prettify(s)
 22085  }
 22086  
 22087  // GoString returns the string representation.
 22088  //
 22089  // API parameter values that are decorated as "sensitive" in the API will not
 22090  // be included in the string output. The member name will be present, but the
 22091  // value will be replaced with "sensitive".
 22092  func (s UnsupportedFeatureException) GoString() string {
 22093  	return s.String()
 22094  }
 22095  
 22096  func newErrorUnsupportedFeatureException(v protocol.ResponseMetadata) error {
 22097  	return &UnsupportedFeatureException{
 22098  		RespMetadata: v,
 22099  	}
 22100  }
 22101  
 22102  // Code returns the exception type name.
 22103  func (s *UnsupportedFeatureException) Code() string {
 22104  	return "UnsupportedFeatureException"
 22105  }
 22106  
 22107  // Message returns the exception's message.
 22108  func (s *UnsupportedFeatureException) Message() string {
 22109  	if s.Message_ != nil {
 22110  		return *s.Message_
 22111  	}
 22112  	return ""
 22113  }
 22114  
 22115  // OrigErr always returns nil, satisfies awserr.Error interface.
 22116  func (s *UnsupportedFeatureException) OrigErr() error {
 22117  	return nil
 22118  }
 22119  
 22120  func (s *UnsupportedFeatureException) Error() string {
 22121  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 22122  }
 22123  
 22124  // Status code returns the HTTP status code for the request's response error.
 22125  func (s *UnsupportedFeatureException) StatusCode() int {
 22126  	return s.RespMetadata.StatusCode
 22127  }
 22128  
 22129  // RequestID returns the service's response RequestID for request.
 22130  func (s *UnsupportedFeatureException) RequestID() string {
 22131  	return s.RespMetadata.RequestID
 22132  }
 22133  
 22134  type UntagResourceInput struct {
 22135  	_ struct{} `type:"structure"`
 22136  
 22137  	// The Amazon Resource Name (ARN) of the resource from which to delete tags.
 22138  	// Currently, the supported resources are Amazon ECS capacity providers, tasks,
 22139  	// services, task definitions, clusters, and container instances.
 22140  	//
 22141  	// ResourceArn is a required field
 22142  	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
 22143  
 22144  	// The keys of the tags to be removed.
 22145  	//
 22146  	// TagKeys is a required field
 22147  	TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
 22148  }
 22149  
 22150  // String returns the string representation.
 22151  //
 22152  // API parameter values that are decorated as "sensitive" in the API will not
 22153  // be included in the string output. The member name will be present, but the
 22154  // value will be replaced with "sensitive".
 22155  func (s UntagResourceInput) String() string {
 22156  	return awsutil.Prettify(s)
 22157  }
 22158  
 22159  // GoString returns the string representation.
 22160  //
 22161  // API parameter values that are decorated as "sensitive" in the API will not
 22162  // be included in the string output. The member name will be present, but the
 22163  // value will be replaced with "sensitive".
 22164  func (s UntagResourceInput) GoString() string {
 22165  	return s.String()
 22166  }
 22167  
 22168  // Validate inspects the fields of the type to determine if they are valid.
 22169  func (s *UntagResourceInput) Validate() error {
 22170  	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
 22171  	if s.ResourceArn == nil {
 22172  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 22173  	}
 22174  	if s.TagKeys == nil {
 22175  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
 22176  	}
 22177  
 22178  	if invalidParams.Len() > 0 {
 22179  		return invalidParams
 22180  	}
 22181  	return nil
 22182  }
 22183  
 22184  // SetResourceArn sets the ResourceArn field's value.
 22185  func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
 22186  	s.ResourceArn = &v
 22187  	return s
 22188  }
 22189  
 22190  // SetTagKeys sets the TagKeys field's value.
 22191  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
 22192  	s.TagKeys = v
 22193  	return s
 22194  }
 22195  
 22196  type UntagResourceOutput struct {
 22197  	_ struct{} `type:"structure"`
 22198  }
 22199  
 22200  // String returns the string representation.
 22201  //
 22202  // API parameter values that are decorated as "sensitive" in the API will not
 22203  // be included in the string output. The member name will be present, but the
 22204  // value will be replaced with "sensitive".
 22205  func (s UntagResourceOutput) String() string {
 22206  	return awsutil.Prettify(s)
 22207  }
 22208  
 22209  // GoString returns the string representation.
 22210  //
 22211  // API parameter values that are decorated as "sensitive" in the API will not
 22212  // be included in the string output. The member name will be present, but the
 22213  // value will be replaced with "sensitive".
 22214  func (s UntagResourceOutput) GoString() string {
 22215  	return s.String()
 22216  }
 22217  
 22218  type UpdateCapacityProviderInput struct {
 22219  	_ struct{} `type:"structure"`
 22220  
 22221  	// An object representing the parameters to update for the Auto Scaling group
 22222  	// capacity provider.
 22223  	//
 22224  	// AutoScalingGroupProvider is a required field
 22225  	AutoScalingGroupProvider *AutoScalingGroupProviderUpdate `locationName:"autoScalingGroupProvider" type:"structure" required:"true"`
 22226  
 22227  	// The name of the capacity provider to update.
 22228  	//
 22229  	// Name is a required field
 22230  	Name *string `locationName:"name" type:"string" required:"true"`
 22231  }
 22232  
 22233  // String returns the string representation.
 22234  //
 22235  // API parameter values that are decorated as "sensitive" in the API will not
 22236  // be included in the string output. The member name will be present, but the
 22237  // value will be replaced with "sensitive".
 22238  func (s UpdateCapacityProviderInput) String() string {
 22239  	return awsutil.Prettify(s)
 22240  }
 22241  
 22242  // GoString returns the string representation.
 22243  //
 22244  // API parameter values that are decorated as "sensitive" in the API will not
 22245  // be included in the string output. The member name will be present, but the
 22246  // value will be replaced with "sensitive".
 22247  func (s UpdateCapacityProviderInput) GoString() string {
 22248  	return s.String()
 22249  }
 22250  
 22251  // Validate inspects the fields of the type to determine if they are valid.
 22252  func (s *UpdateCapacityProviderInput) Validate() error {
 22253  	invalidParams := request.ErrInvalidParams{Context: "UpdateCapacityProviderInput"}
 22254  	if s.AutoScalingGroupProvider == nil {
 22255  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupProvider"))
 22256  	}
 22257  	if s.Name == nil {
 22258  		invalidParams.Add(request.NewErrParamRequired("Name"))
 22259  	}
 22260  	if s.AutoScalingGroupProvider != nil {
 22261  		if err := s.AutoScalingGroupProvider.Validate(); err != nil {
 22262  			invalidParams.AddNested("AutoScalingGroupProvider", err.(request.ErrInvalidParams))
 22263  		}
 22264  	}
 22265  
 22266  	if invalidParams.Len() > 0 {
 22267  		return invalidParams
 22268  	}
 22269  	return nil
 22270  }
 22271  
 22272  // SetAutoScalingGroupProvider sets the AutoScalingGroupProvider field's value.
 22273  func (s *UpdateCapacityProviderInput) SetAutoScalingGroupProvider(v *AutoScalingGroupProviderUpdate) *UpdateCapacityProviderInput {
 22274  	s.AutoScalingGroupProvider = v
 22275  	return s
 22276  }
 22277  
 22278  // SetName sets the Name field's value.
 22279  func (s *UpdateCapacityProviderInput) SetName(v string) *UpdateCapacityProviderInput {
 22280  	s.Name = &v
 22281  	return s
 22282  }
 22283  
 22284  type UpdateCapacityProviderOutput struct {
 22285  	_ struct{} `type:"structure"`
 22286  
 22287  	// Details about the capacity provider.
 22288  	CapacityProvider *CapacityProvider `locationName:"capacityProvider" type:"structure"`
 22289  }
 22290  
 22291  // String returns the string representation.
 22292  //
 22293  // API parameter values that are decorated as "sensitive" in the API will not
 22294  // be included in the string output. The member name will be present, but the
 22295  // value will be replaced with "sensitive".
 22296  func (s UpdateCapacityProviderOutput) String() string {
 22297  	return awsutil.Prettify(s)
 22298  }
 22299  
 22300  // GoString returns the string representation.
 22301  //
 22302  // API parameter values that are decorated as "sensitive" in the API will not
 22303  // be included in the string output. The member name will be present, but the
 22304  // value will be replaced with "sensitive".
 22305  func (s UpdateCapacityProviderOutput) GoString() string {
 22306  	return s.String()
 22307  }
 22308  
 22309  // SetCapacityProvider sets the CapacityProvider field's value.
 22310  func (s *UpdateCapacityProviderOutput) SetCapacityProvider(v *CapacityProvider) *UpdateCapacityProviderOutput {
 22311  	s.CapacityProvider = v
 22312  	return s
 22313  }
 22314  
 22315  type UpdateClusterInput struct {
 22316  	_ struct{} `type:"structure"`
 22317  
 22318  	// The name of the cluster to modify the settings for.
 22319  	//
 22320  	// Cluster is a required field
 22321  	Cluster *string `locationName:"cluster" type:"string" required:"true"`
 22322  
 22323  	// The execute command configuration for the cluster.
 22324  	Configuration *ClusterConfiguration `locationName:"configuration" type:"structure"`
 22325  
 22326  	// The cluster settings for your cluster.
 22327  	Settings []*ClusterSetting `locationName:"settings" type:"list"`
 22328  }
 22329  
 22330  // String returns the string representation.
 22331  //
 22332  // API parameter values that are decorated as "sensitive" in the API will not
 22333  // be included in the string output. The member name will be present, but the
 22334  // value will be replaced with "sensitive".
 22335  func (s UpdateClusterInput) String() string {
 22336  	return awsutil.Prettify(s)
 22337  }
 22338  
 22339  // GoString returns the string representation.
 22340  //
 22341  // API parameter values that are decorated as "sensitive" in the API will not
 22342  // be included in the string output. The member name will be present, but the
 22343  // value will be replaced with "sensitive".
 22344  func (s UpdateClusterInput) GoString() string {
 22345  	return s.String()
 22346  }
 22347  
 22348  // Validate inspects the fields of the type to determine if they are valid.
 22349  func (s *UpdateClusterInput) Validate() error {
 22350  	invalidParams := request.ErrInvalidParams{Context: "UpdateClusterInput"}
 22351  	if s.Cluster == nil {
 22352  		invalidParams.Add(request.NewErrParamRequired("Cluster"))
 22353  	}
 22354  
 22355  	if invalidParams.Len() > 0 {
 22356  		return invalidParams
 22357  	}
 22358  	return nil
 22359  }
 22360  
 22361  // SetCluster sets the Cluster field's value.
 22362  func (s *UpdateClusterInput) SetCluster(v string) *UpdateClusterInput {
 22363  	s.Cluster = &v
 22364  	return s
 22365  }
 22366  
 22367  // SetConfiguration sets the Configuration field's value.
 22368  func (s *UpdateClusterInput) SetConfiguration(v *ClusterConfiguration) *UpdateClusterInput {
 22369  	s.Configuration = v
 22370  	return s
 22371  }
 22372  
 22373  // SetSettings sets the Settings field's value.
 22374  func (s *UpdateClusterInput) SetSettings(v []*ClusterSetting) *UpdateClusterInput {
 22375  	s.Settings = v
 22376  	return s
 22377  }
 22378  
 22379  type UpdateClusterOutput struct {
 22380  	_ struct{} `type:"structure"`
 22381  
 22382  	// Details about the cluster.
 22383  	Cluster *Cluster `locationName:"cluster" type:"structure"`
 22384  }
 22385  
 22386  // String returns the string representation.
 22387  //
 22388  // API parameter values that are decorated as "sensitive" in the API will not
 22389  // be included in the string output. The member name will be present, but the
 22390  // value will be replaced with "sensitive".
 22391  func (s UpdateClusterOutput) String() string {
 22392  	return awsutil.Prettify(s)
 22393  }
 22394  
 22395  // GoString returns the string representation.
 22396  //
 22397  // API parameter values that are decorated as "sensitive" in the API will not
 22398  // be included in the string output. The member name will be present, but the
 22399  // value will be replaced with "sensitive".
 22400  func (s UpdateClusterOutput) GoString() string {
 22401  	return s.String()
 22402  }
 22403  
 22404  // SetCluster sets the Cluster field's value.
 22405  func (s *UpdateClusterOutput) SetCluster(v *Cluster) *UpdateClusterOutput {
 22406  	s.Cluster = v
 22407  	return s
 22408  }
 22409  
 22410  type UpdateClusterSettingsInput struct {
 22411  	_ struct{} `type:"structure"`
 22412  
 22413  	// The name of the cluster to modify the settings for.
 22414  	//
 22415  	// Cluster is a required field
 22416  	Cluster *string `locationName:"cluster" type:"string" required:"true"`
 22417  
 22418  	// The setting to use by default for a cluster. This parameter is used to enable
 22419  	// CloudWatch Container Insights for a cluster. If this value is specified,
 22420  	// it will override the containerInsights value set with PutAccountSetting or
 22421  	// PutAccountSettingDefault.
 22422  	//
 22423  	// Settings is a required field
 22424  	Settings []*ClusterSetting `locationName:"settings" type:"list" required:"true"`
 22425  }
 22426  
 22427  // String returns the string representation.
 22428  //
 22429  // API parameter values that are decorated as "sensitive" in the API will not
 22430  // be included in the string output. The member name will be present, but the
 22431  // value will be replaced with "sensitive".
 22432  func (s UpdateClusterSettingsInput) String() string {
 22433  	return awsutil.Prettify(s)
 22434  }
 22435  
 22436  // GoString returns the string representation.
 22437  //
 22438  // API parameter values that are decorated as "sensitive" in the API will not
 22439  // be included in the string output. The member name will be present, but the
 22440  // value will be replaced with "sensitive".
 22441  func (s UpdateClusterSettingsInput) GoString() string {
 22442  	return s.String()
 22443  }
 22444  
 22445  // Validate inspects the fields of the type to determine if they are valid.
 22446  func (s *UpdateClusterSettingsInput) Validate() error {
 22447  	invalidParams := request.ErrInvalidParams{Context: "UpdateClusterSettingsInput"}
 22448  	if s.Cluster == nil {
 22449  		invalidParams.Add(request.NewErrParamRequired("Cluster"))
 22450  	}
 22451  	if s.Settings == nil {
 22452  		invalidParams.Add(request.NewErrParamRequired("Settings"))
 22453  	}
 22454  
 22455  	if invalidParams.Len() > 0 {
 22456  		return invalidParams
 22457  	}
 22458  	return nil
 22459  }
 22460  
 22461  // SetCluster sets the Cluster field's value.
 22462  func (s *UpdateClusterSettingsInput) SetCluster(v string) *UpdateClusterSettingsInput {
 22463  	s.Cluster = &v
 22464  	return s
 22465  }
 22466  
 22467  // SetSettings sets the Settings field's value.
 22468  func (s *UpdateClusterSettingsInput) SetSettings(v []*ClusterSetting) *UpdateClusterSettingsInput {
 22469  	s.Settings = v
 22470  	return s
 22471  }
 22472  
 22473  type UpdateClusterSettingsOutput struct {
 22474  	_ struct{} `type:"structure"`
 22475  
 22476  	// Details about the cluster
 22477  	Cluster *Cluster `locationName:"cluster" type:"structure"`
 22478  }
 22479  
 22480  // String returns the string representation.
 22481  //
 22482  // API parameter values that are decorated as "sensitive" in the API will not
 22483  // be included in the string output. The member name will be present, but the
 22484  // value will be replaced with "sensitive".
 22485  func (s UpdateClusterSettingsOutput) String() string {
 22486  	return awsutil.Prettify(s)
 22487  }
 22488  
 22489  // GoString returns the string representation.
 22490  //
 22491  // API parameter values that are decorated as "sensitive" in the API will not
 22492  // be included in the string output. The member name will be present, but the
 22493  // value will be replaced with "sensitive".
 22494  func (s UpdateClusterSettingsOutput) GoString() string {
 22495  	return s.String()
 22496  }
 22497  
 22498  // SetCluster sets the Cluster field's value.
 22499  func (s *UpdateClusterSettingsOutput) SetCluster(v *Cluster) *UpdateClusterSettingsOutput {
 22500  	s.Cluster = v
 22501  	return s
 22502  }
 22503  
 22504  type UpdateContainerAgentInput struct {
 22505  	_ struct{} `type:"structure"`
 22506  
 22507  	// The short name or full Amazon Resource Name (ARN) of the cluster that your
 22508  	// container instance is running on. If you do not specify a cluster, the default
 22509  	// cluster is assumed.
 22510  	Cluster *string `locationName:"cluster" type:"string"`
 22511  
 22512  	// The container instance ID or full ARN entries for the container instance
 22513  	// on which you would like to update the Amazon ECS container agent.
 22514  	//
 22515  	// ContainerInstance is a required field
 22516  	ContainerInstance *string `locationName:"containerInstance" type:"string" required:"true"`
 22517  }
 22518  
 22519  // String returns the string representation.
 22520  //
 22521  // API parameter values that are decorated as "sensitive" in the API will not
 22522  // be included in the string output. The member name will be present, but the
 22523  // value will be replaced with "sensitive".
 22524  func (s UpdateContainerAgentInput) String() string {
 22525  	return awsutil.Prettify(s)
 22526  }
 22527  
 22528  // GoString returns the string representation.
 22529  //
 22530  // API parameter values that are decorated as "sensitive" in the API will not
 22531  // be included in the string output. The member name will be present, but the
 22532  // value will be replaced with "sensitive".
 22533  func (s UpdateContainerAgentInput) GoString() string {
 22534  	return s.String()
 22535  }
 22536  
 22537  // Validate inspects the fields of the type to determine if they are valid.
 22538  func (s *UpdateContainerAgentInput) Validate() error {
 22539  	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerAgentInput"}
 22540  	if s.ContainerInstance == nil {
 22541  		invalidParams.Add(request.NewErrParamRequired("ContainerInstance"))
 22542  	}
 22543  
 22544  	if invalidParams.Len() > 0 {
 22545  		return invalidParams
 22546  	}
 22547  	return nil
 22548  }
 22549  
 22550  // SetCluster sets the Cluster field's value.
 22551  func (s *UpdateContainerAgentInput) SetCluster(v string) *UpdateContainerAgentInput {
 22552  	s.Cluster = &v
 22553  	return s
 22554  }
 22555  
 22556  // SetContainerInstance sets the ContainerInstance field's value.
 22557  func (s *UpdateContainerAgentInput) SetContainerInstance(v string) *UpdateContainerAgentInput {
 22558  	s.ContainerInstance = &v
 22559  	return s
 22560  }
 22561  
 22562  type UpdateContainerAgentOutput struct {
 22563  	_ struct{} `type:"structure"`
 22564  
 22565  	// The container instance for which the container agent was updated.
 22566  	ContainerInstance *ContainerInstance `locationName:"containerInstance" type:"structure"`
 22567  }
 22568  
 22569  // String returns the string representation.
 22570  //
 22571  // API parameter values that are decorated as "sensitive" in the API will not
 22572  // be included in the string output. The member name will be present, but the
 22573  // value will be replaced with "sensitive".
 22574  func (s UpdateContainerAgentOutput) String() string {
 22575  	return awsutil.Prettify(s)
 22576  }
 22577  
 22578  // GoString returns the string representation.
 22579  //
 22580  // API parameter values that are decorated as "sensitive" in the API will not
 22581  // be included in the string output. The member name will be present, but the
 22582  // value will be replaced with "sensitive".
 22583  func (s UpdateContainerAgentOutput) GoString() string {
 22584  	return s.String()
 22585  }
 22586  
 22587  // SetContainerInstance sets the ContainerInstance field's value.
 22588  func (s *UpdateContainerAgentOutput) SetContainerInstance(v *ContainerInstance) *UpdateContainerAgentOutput {
 22589  	s.ContainerInstance = v
 22590  	return s
 22591  }
 22592  
 22593  type UpdateContainerInstancesStateInput struct {
 22594  	_ struct{} `type:"structure"`
 22595  
 22596  	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
 22597  	// the container instance to update. If you do not specify a cluster, the default
 22598  	// cluster is assumed.
 22599  	Cluster *string `locationName:"cluster" type:"string"`
 22600  
 22601  	// A list of container instance IDs or full ARN entries.
 22602  	//
 22603  	// ContainerInstances is a required field
 22604  	ContainerInstances []*string `locationName:"containerInstances" type:"list" required:"true"`
 22605  
 22606  	// The container instance state with which to update the container instance.
 22607  	// The only valid values for this action are ACTIVE and DRAINING. A container
 22608  	// instance can only be updated to DRAINING status once it has reached an ACTIVE
 22609  	// state. If a container instance is in REGISTERING, DEREGISTERING, or REGISTRATION_FAILED
 22610  	// state you can describe the container instance but will be unable to update
 22611  	// the container instance state.
 22612  	//
 22613  	// Status is a required field
 22614  	Status *string `locationName:"status" type:"string" required:"true" enum:"ContainerInstanceStatus"`
 22615  }
 22616  
 22617  // String returns the string representation.
 22618  //
 22619  // API parameter values that are decorated as "sensitive" in the API will not
 22620  // be included in the string output. The member name will be present, but the
 22621  // value will be replaced with "sensitive".
 22622  func (s UpdateContainerInstancesStateInput) String() string {
 22623  	return awsutil.Prettify(s)
 22624  }
 22625  
 22626  // GoString returns the string representation.
 22627  //
 22628  // API parameter values that are decorated as "sensitive" in the API will not
 22629  // be included in the string output. The member name will be present, but the
 22630  // value will be replaced with "sensitive".
 22631  func (s UpdateContainerInstancesStateInput) GoString() string {
 22632  	return s.String()
 22633  }
 22634  
 22635  // Validate inspects the fields of the type to determine if they are valid.
 22636  func (s *UpdateContainerInstancesStateInput) Validate() error {
 22637  	invalidParams := request.ErrInvalidParams{Context: "UpdateContainerInstancesStateInput"}
 22638  	if s.ContainerInstances == nil {
 22639  		invalidParams.Add(request.NewErrParamRequired("ContainerInstances"))
 22640  	}
 22641  	if s.Status == nil {
 22642  		invalidParams.Add(request.NewErrParamRequired("Status"))
 22643  	}
 22644  
 22645  	if invalidParams.Len() > 0 {
 22646  		return invalidParams
 22647  	}
 22648  	return nil
 22649  }
 22650  
 22651  // SetCluster sets the Cluster field's value.
 22652  func (s *UpdateContainerInstancesStateInput) SetCluster(v string) *UpdateContainerInstancesStateInput {
 22653  	s.Cluster = &v
 22654  	return s
 22655  }
 22656  
 22657  // SetContainerInstances sets the ContainerInstances field's value.
 22658  func (s *UpdateContainerInstancesStateInput) SetContainerInstances(v []*string) *UpdateContainerInstancesStateInput {
 22659  	s.ContainerInstances = v
 22660  	return s
 22661  }
 22662  
 22663  // SetStatus sets the Status field's value.
 22664  func (s *UpdateContainerInstancesStateInput) SetStatus(v string) *UpdateContainerInstancesStateInput {
 22665  	s.Status = &v
 22666  	return s
 22667  }
 22668  
 22669  type UpdateContainerInstancesStateOutput struct {
 22670  	_ struct{} `type:"structure"`
 22671  
 22672  	// The list of container instances.
 22673  	ContainerInstances []*ContainerInstance `locationName:"containerInstances" type:"list"`
 22674  
 22675  	// Any failures associated with the call.
 22676  	Failures []*Failure `locationName:"failures" type:"list"`
 22677  }
 22678  
 22679  // String returns the string representation.
 22680  //
 22681  // API parameter values that are decorated as "sensitive" in the API will not
 22682  // be included in the string output. The member name will be present, but the
 22683  // value will be replaced with "sensitive".
 22684  func (s UpdateContainerInstancesStateOutput) String() string {
 22685  	return awsutil.Prettify(s)
 22686  }
 22687  
 22688  // GoString returns the string representation.
 22689  //
 22690  // API parameter values that are decorated as "sensitive" in the API will not
 22691  // be included in the string output. The member name will be present, but the
 22692  // value will be replaced with "sensitive".
 22693  func (s UpdateContainerInstancesStateOutput) GoString() string {
 22694  	return s.String()
 22695  }
 22696  
 22697  // SetContainerInstances sets the ContainerInstances field's value.
 22698  func (s *UpdateContainerInstancesStateOutput) SetContainerInstances(v []*ContainerInstance) *UpdateContainerInstancesStateOutput {
 22699  	s.ContainerInstances = v
 22700  	return s
 22701  }
 22702  
 22703  // SetFailures sets the Failures field's value.
 22704  func (s *UpdateContainerInstancesStateOutput) SetFailures(v []*Failure) *UpdateContainerInstancesStateOutput {
 22705  	s.Failures = v
 22706  	return s
 22707  }
 22708  
 22709  // There is already a current Amazon ECS container agent update in progress
 22710  // on the specified container instance. If the container agent becomes disconnected
 22711  // while it is in a transitional stage, such as PENDING or STAGING, the update
 22712  // process can get stuck in that state. However, when the agent reconnects,
 22713  // it resumes where it stopped previously.
 22714  type UpdateInProgressException struct {
 22715  	_            struct{}                  `type:"structure"`
 22716  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 22717  
 22718  	Message_ *string `locationName:"message" type:"string"`
 22719  }
 22720  
 22721  // String returns the string representation.
 22722  //
 22723  // API parameter values that are decorated as "sensitive" in the API will not
 22724  // be included in the string output. The member name will be present, but the
 22725  // value will be replaced with "sensitive".
 22726  func (s UpdateInProgressException) String() string {
 22727  	return awsutil.Prettify(s)
 22728  }
 22729  
 22730  // GoString returns the string representation.
 22731  //
 22732  // API parameter values that are decorated as "sensitive" in the API will not
 22733  // be included in the string output. The member name will be present, but the
 22734  // value will be replaced with "sensitive".
 22735  func (s UpdateInProgressException) GoString() string {
 22736  	return s.String()
 22737  }
 22738  
 22739  func newErrorUpdateInProgressException(v protocol.ResponseMetadata) error {
 22740  	return &UpdateInProgressException{
 22741  		RespMetadata: v,
 22742  	}
 22743  }
 22744  
 22745  // Code returns the exception type name.
 22746  func (s *UpdateInProgressException) Code() string {
 22747  	return "UpdateInProgressException"
 22748  }
 22749  
 22750  // Message returns the exception's message.
 22751  func (s *UpdateInProgressException) Message() string {
 22752  	if s.Message_ != nil {
 22753  		return *s.Message_
 22754  	}
 22755  	return ""
 22756  }
 22757  
 22758  // OrigErr always returns nil, satisfies awserr.Error interface.
 22759  func (s *UpdateInProgressException) OrigErr() error {
 22760  	return nil
 22761  }
 22762  
 22763  func (s *UpdateInProgressException) Error() string {
 22764  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 22765  }
 22766  
 22767  // Status code returns the HTTP status code for the request's response error.
 22768  func (s *UpdateInProgressException) StatusCode() int {
 22769  	return s.RespMetadata.StatusCode
 22770  }
 22771  
 22772  // RequestID returns the service's response RequestID for request.
 22773  func (s *UpdateInProgressException) RequestID() string {
 22774  	return s.RespMetadata.RequestID
 22775  }
 22776  
 22777  type UpdateServiceInput struct {
 22778  	_ struct{} `type:"structure"`
 22779  
 22780  	// The capacity provider strategy to update the service to use.
 22781  	//
 22782  	// If the service is using the default capacity provider strategy for the cluster,
 22783  	// the service can be updated to use one or more capacity providers as opposed
 22784  	// to the default capacity provider strategy. However, when a service is using
 22785  	// a capacity provider strategy that is not the default capacity provider strategy,
 22786  	// the service cannot be updated to use the cluster's default capacity provider
 22787  	// strategy.
 22788  	//
 22789  	// A capacity provider strategy consists of one or more capacity providers along
 22790  	// with the base and weight to assign to them. A capacity provider must be associated
 22791  	// with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders
 22792  	// API is used to associate a capacity provider with a cluster. Only capacity
 22793  	// providers with an ACTIVE or UPDATING status can be used.
 22794  	//
 22795  	// If specifying a capacity provider that uses an Auto Scaling group, the capacity
 22796  	// provider must already be created. New capacity providers can be created with
 22797  	// the CreateCapacityProvider API operation.
 22798  	//
 22799  	// To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
 22800  	// capacity providers. The Fargate capacity providers are available to all accounts
 22801  	// and only need to be associated with a cluster to be used.
 22802  	//
 22803  	// The PutClusterCapacityProviders API operation is used to update the list
 22804  	// of available capacity providers for a cluster after the cluster is created.
 22805  	CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"`
 22806  
 22807  	// The short name or full Amazon Resource Name (ARN) of the cluster that your
 22808  	// service is running on. If you do not specify a cluster, the default cluster
 22809  	// is assumed.
 22810  	Cluster *string `locationName:"cluster" type:"string"`
 22811  
 22812  	// Optional deployment parameters that control how many tasks run during the
 22813  	// deployment and the ordering of stopping and starting tasks.
 22814  	DeploymentConfiguration *DeploymentConfiguration `locationName:"deploymentConfiguration" type:"structure"`
 22815  
 22816  	// The number of instantiations of the task to place and keep running in your
 22817  	// service.
 22818  	DesiredCount *int64 `locationName:"desiredCount" type:"integer"`
 22819  
 22820  	// If true, this enables execute command functionality on all task containers.
 22821  	//
 22822  	// If you do not want to override the value that was set when the service was
 22823  	// created, you can set this to null when performing this action.
 22824  	EnableExecuteCommand *bool `locationName:"enableExecuteCommand" type:"boolean"`
 22825  
 22826  	// Whether to force a new deployment of the service. Deployments are not forced
 22827  	// by default. You can use this option to trigger a new deployment with no service
 22828  	// definition changes. For example, you can update a service's tasks to use
 22829  	// a newer Docker image with the same image/tag combination (my_image:latest)
 22830  	// or to roll Fargate tasks onto a newer platform version.
 22831  	ForceNewDeployment *bool `locationName:"forceNewDeployment" type:"boolean"`
 22832  
 22833  	// The period of time, in seconds, that the Amazon ECS service scheduler should
 22834  	// ignore unhealthy Elastic Load Balancing target health checks after a task
 22835  	// has first started. This is only valid if your service is configured to use
 22836  	// a load balancer. If your service's tasks take a while to start and respond
 22837  	// to Elastic Load Balancing health checks, you can specify a health check grace
 22838  	// period of up to 2,147,483,647 seconds. During that time, the Amazon ECS service
 22839  	// scheduler ignores the Elastic Load Balancing health check status. This grace
 22840  	// period can prevent the ECS service scheduler from marking tasks as unhealthy
 22841  	// and stopping them before they have time to come up.
 22842  	HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"`
 22843  
 22844  	// An object representing the network configuration for the service.
 22845  	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
 22846  
 22847  	// An array of task placement constraint objects to update the service to use.
 22848  	// If no value is specified, the existing placement constraints for the service
 22849  	// will remain unchanged. If this value is specified, it will override any existing
 22850  	// placement constraints defined for the service. To remove all existing placement
 22851  	// constraints, specify an empty array.
 22852  	//
 22853  	// You can specify a maximum of 10 constraints per task (this limit includes
 22854  	// constraints in the task definition and those specified at runtime).
 22855  	PlacementConstraints []*PlacementConstraint `locationName:"placementConstraints" type:"list"`
 22856  
 22857  	// The task placement strategy objects to update the service to use. If no value
 22858  	// is specified, the existing placement strategy for the service will remain
 22859  	// unchanged. If this value is specified, it will override the existing placement
 22860  	// strategy defined for the service. To remove an existing placement strategy,
 22861  	// specify an empty object.
 22862  	//
 22863  	// You can specify a maximum of five strategy rules per service.
 22864  	PlacementStrategy []*PlacementStrategy `locationName:"placementStrategy" type:"list"`
 22865  
 22866  	// The platform version on which your tasks in the service are running. A platform
 22867  	// version is only specified for tasks using the Fargate launch type. If a platform
 22868  	// version is not specified, the LATEST platform version is used by default.
 22869  	// For more information, see Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
 22870  	// in the Amazon Elastic Container Service Developer Guide.
 22871  	PlatformVersion *string `locationName:"platformVersion" type:"string"`
 22872  
 22873  	// The name of the service to update.
 22874  	//
 22875  	// Service is a required field
 22876  	Service *string `locationName:"service" type:"string" required:"true"`
 22877  
 22878  	// The family and revision (family:revision) or full ARN of the task definition
 22879  	// to run in your service. If a revision is not specified, the latest ACTIVE
 22880  	// revision is used. If you modify the task definition with UpdateService, Amazon
 22881  	// ECS spawns a task with the new version of the task definition and then stops
 22882  	// an old task after the new version is running.
 22883  	TaskDefinition *string `locationName:"taskDefinition" type:"string"`
 22884  }
 22885  
 22886  // String returns the string representation.
 22887  //
 22888  // API parameter values that are decorated as "sensitive" in the API will not
 22889  // be included in the string output. The member name will be present, but the
 22890  // value will be replaced with "sensitive".
 22891  func (s UpdateServiceInput) String() string {
 22892  	return awsutil.Prettify(s)
 22893  }
 22894  
 22895  // GoString returns the string representation.
 22896  //
 22897  // API parameter values that are decorated as "sensitive" in the API will not
 22898  // be included in the string output. The member name will be present, but the
 22899  // value will be replaced with "sensitive".
 22900  func (s UpdateServiceInput) GoString() string {
 22901  	return s.String()
 22902  }
 22903  
 22904  // Validate inspects the fields of the type to determine if they are valid.
 22905  func (s *UpdateServiceInput) Validate() error {
 22906  	invalidParams := request.ErrInvalidParams{Context: "UpdateServiceInput"}
 22907  	if s.Service == nil {
 22908  		invalidParams.Add(request.NewErrParamRequired("Service"))
 22909  	}
 22910  	if s.CapacityProviderStrategy != nil {
 22911  		for i, v := range s.CapacityProviderStrategy {
 22912  			if v == nil {
 22913  				continue
 22914  			}
 22915  			if err := v.Validate(); err != nil {
 22916  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
 22917  			}
 22918  		}
 22919  	}
 22920  	if s.DeploymentConfiguration != nil {
 22921  		if err := s.DeploymentConfiguration.Validate(); err != nil {
 22922  			invalidParams.AddNested("DeploymentConfiguration", err.(request.ErrInvalidParams))
 22923  		}
 22924  	}
 22925  	if s.NetworkConfiguration != nil {
 22926  		if err := s.NetworkConfiguration.Validate(); err != nil {
 22927  			invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
 22928  		}
 22929  	}
 22930  
 22931  	if invalidParams.Len() > 0 {
 22932  		return invalidParams
 22933  	}
 22934  	return nil
 22935  }
 22936  
 22937  // SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
 22938  func (s *UpdateServiceInput) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *UpdateServiceInput {
 22939  	s.CapacityProviderStrategy = v
 22940  	return s
 22941  }
 22942  
 22943  // SetCluster sets the Cluster field's value.
 22944  func (s *UpdateServiceInput) SetCluster(v string) *UpdateServiceInput {
 22945  	s.Cluster = &v
 22946  	return s
 22947  }
 22948  
 22949  // SetDeploymentConfiguration sets the DeploymentConfiguration field's value.
 22950  func (s *UpdateServiceInput) SetDeploymentConfiguration(v *DeploymentConfiguration) *UpdateServiceInput {
 22951  	s.DeploymentConfiguration = v
 22952  	return s
 22953  }
 22954  
 22955  // SetDesiredCount sets the DesiredCount field's value.
 22956  func (s *UpdateServiceInput) SetDesiredCount(v int64) *UpdateServiceInput {
 22957  	s.DesiredCount = &v
 22958  	return s
 22959  }
 22960  
 22961  // SetEnableExecuteCommand sets the EnableExecuteCommand field's value.
 22962  func (s *UpdateServiceInput) SetEnableExecuteCommand(v bool) *UpdateServiceInput {
 22963  	s.EnableExecuteCommand = &v
 22964  	return s
 22965  }
 22966  
 22967  // SetForceNewDeployment sets the ForceNewDeployment field's value.
 22968  func (s *UpdateServiceInput) SetForceNewDeployment(v bool) *UpdateServiceInput {
 22969  	s.ForceNewDeployment = &v
 22970  	return s
 22971  }
 22972  
 22973  // SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value.
 22974  func (s *UpdateServiceInput) SetHealthCheckGracePeriodSeconds(v int64) *UpdateServiceInput {
 22975  	s.HealthCheckGracePeriodSeconds = &v
 22976  	return s
 22977  }
 22978  
 22979  // SetNetworkConfiguration sets the NetworkConfiguration field's value.
 22980  func (s *UpdateServiceInput) SetNetworkConfiguration(v *NetworkConfiguration) *UpdateServiceInput {
 22981  	s.NetworkConfiguration = v
 22982  	return s
 22983  }
 22984  
 22985  // SetPlacementConstraints sets the PlacementConstraints field's value.
 22986  func (s *UpdateServiceInput) SetPlacementConstraints(v []*PlacementConstraint) *UpdateServiceInput {
 22987  	s.PlacementConstraints = v
 22988  	return s
 22989  }
 22990  
 22991  // SetPlacementStrategy sets the PlacementStrategy field's value.
 22992  func (s *UpdateServiceInput) SetPlacementStrategy(v []*PlacementStrategy) *UpdateServiceInput {
 22993  	s.PlacementStrategy = v
 22994  	return s
 22995  }
 22996  
 22997  // SetPlatformVersion sets the PlatformVersion field's value.
 22998  func (s *UpdateServiceInput) SetPlatformVersion(v string) *UpdateServiceInput {
 22999  	s.PlatformVersion = &v
 23000  	return s
 23001  }
 23002  
 23003  // SetService sets the Service field's value.
 23004  func (s *UpdateServiceInput) SetService(v string) *UpdateServiceInput {
 23005  	s.Service = &v
 23006  	return s
 23007  }
 23008  
 23009  // SetTaskDefinition sets the TaskDefinition field's value.
 23010  func (s *UpdateServiceInput) SetTaskDefinition(v string) *UpdateServiceInput {
 23011  	s.TaskDefinition = &v
 23012  	return s
 23013  }
 23014  
 23015  type UpdateServiceOutput struct {
 23016  	_ struct{} `type:"structure"`
 23017  
 23018  	// The full description of your service following the update call.
 23019  	Service *Service `locationName:"service" type:"structure"`
 23020  }
 23021  
 23022  // String returns the string representation.
 23023  //
 23024  // API parameter values that are decorated as "sensitive" in the API will not
 23025  // be included in the string output. The member name will be present, but the
 23026  // value will be replaced with "sensitive".
 23027  func (s UpdateServiceOutput) String() string {
 23028  	return awsutil.Prettify(s)
 23029  }
 23030  
 23031  // GoString returns the string representation.
 23032  //
 23033  // API parameter values that are decorated as "sensitive" in the API will not
 23034  // be included in the string output. The member name will be present, but the
 23035  // value will be replaced with "sensitive".
 23036  func (s UpdateServiceOutput) GoString() string {
 23037  	return s.String()
 23038  }
 23039  
 23040  // SetService sets the Service field's value.
 23041  func (s *UpdateServiceOutput) SetService(v *Service) *UpdateServiceOutput {
 23042  	s.Service = v
 23043  	return s
 23044  }
 23045  
 23046  type UpdateServicePrimaryTaskSetInput struct {
 23047  	_ struct{} `type:"structure"`
 23048  
 23049  	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
 23050  	// the service that the task set exists in.
 23051  	//
 23052  	// Cluster is a required field
 23053  	Cluster *string `locationName:"cluster" type:"string" required:"true"`
 23054  
 23055  	// The short name or full Amazon Resource Name (ARN) of the task set to set
 23056  	// as the primary task set in the deployment.
 23057  	//
 23058  	// PrimaryTaskSet is a required field
 23059  	PrimaryTaskSet *string `locationName:"primaryTaskSet" type:"string" required:"true"`
 23060  
 23061  	// The short name or full Amazon Resource Name (ARN) of the service that the
 23062  	// task set exists in.
 23063  	//
 23064  	// Service is a required field
 23065  	Service *string `locationName:"service" type:"string" required:"true"`
 23066  }
 23067  
 23068  // String returns the string representation.
 23069  //
 23070  // API parameter values that are decorated as "sensitive" in the API will not
 23071  // be included in the string output. The member name will be present, but the
 23072  // value will be replaced with "sensitive".
 23073  func (s UpdateServicePrimaryTaskSetInput) String() string {
 23074  	return awsutil.Prettify(s)
 23075  }
 23076  
 23077  // GoString returns the string representation.
 23078  //
 23079  // API parameter values that are decorated as "sensitive" in the API will not
 23080  // be included in the string output. The member name will be present, but the
 23081  // value will be replaced with "sensitive".
 23082  func (s UpdateServicePrimaryTaskSetInput) GoString() string {
 23083  	return s.String()
 23084  }
 23085  
 23086  // Validate inspects the fields of the type to determine if they are valid.
 23087  func (s *UpdateServicePrimaryTaskSetInput) Validate() error {
 23088  	invalidParams := request.ErrInvalidParams{Context: "UpdateServicePrimaryTaskSetInput"}
 23089  	if s.Cluster == nil {
 23090  		invalidParams.Add(request.NewErrParamRequired("Cluster"))
 23091  	}
 23092  	if s.PrimaryTaskSet == nil {
 23093  		invalidParams.Add(request.NewErrParamRequired("PrimaryTaskSet"))
 23094  	}
 23095  	if s.Service == nil {
 23096  		invalidParams.Add(request.NewErrParamRequired("Service"))
 23097  	}
 23098  
 23099  	if invalidParams.Len() > 0 {
 23100  		return invalidParams
 23101  	}
 23102  	return nil
 23103  }
 23104  
 23105  // SetCluster sets the Cluster field's value.
 23106  func (s *UpdateServicePrimaryTaskSetInput) SetCluster(v string) *UpdateServicePrimaryTaskSetInput {
 23107  	s.Cluster = &v
 23108  	return s
 23109  }
 23110  
 23111  // SetPrimaryTaskSet sets the PrimaryTaskSet field's value.
 23112  func (s *UpdateServicePrimaryTaskSetInput) SetPrimaryTaskSet(v string) *UpdateServicePrimaryTaskSetInput {
 23113  	s.PrimaryTaskSet = &v
 23114  	return s
 23115  }
 23116  
 23117  // SetService sets the Service field's value.
 23118  func (s *UpdateServicePrimaryTaskSetInput) SetService(v string) *UpdateServicePrimaryTaskSetInput {
 23119  	s.Service = &v
 23120  	return s
 23121  }
 23122  
 23123  type UpdateServicePrimaryTaskSetOutput struct {
 23124  	_ struct{} `type:"structure"`
 23125  
 23126  	// Details about the task set.
 23127  	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
 23128  }
 23129  
 23130  // String returns the string representation.
 23131  //
 23132  // API parameter values that are decorated as "sensitive" in the API will not
 23133  // be included in the string output. The member name will be present, but the
 23134  // value will be replaced with "sensitive".
 23135  func (s UpdateServicePrimaryTaskSetOutput) String() string {
 23136  	return awsutil.Prettify(s)
 23137  }
 23138  
 23139  // GoString returns the string representation.
 23140  //
 23141  // API parameter values that are decorated as "sensitive" in the API will not
 23142  // be included in the string output. The member name will be present, but the
 23143  // value will be replaced with "sensitive".
 23144  func (s UpdateServicePrimaryTaskSetOutput) GoString() string {
 23145  	return s.String()
 23146  }
 23147  
 23148  // SetTaskSet sets the TaskSet field's value.
 23149  func (s *UpdateServicePrimaryTaskSetOutput) SetTaskSet(v *TaskSet) *UpdateServicePrimaryTaskSetOutput {
 23150  	s.TaskSet = v
 23151  	return s
 23152  }
 23153  
 23154  type UpdateTaskSetInput struct {
 23155  	_ struct{} `type:"structure"`
 23156  
 23157  	// The short name or full Amazon Resource Name (ARN) of the cluster that hosts
 23158  	// the service that the task set exists in.
 23159  	//
 23160  	// Cluster is a required field
 23161  	Cluster *string `locationName:"cluster" type:"string" required:"true"`
 23162  
 23163  	// A floating-point percentage of the desired number of tasks to place and keep
 23164  	// running in the task set.
 23165  	//
 23166  	// Scale is a required field
 23167  	Scale *Scale `locationName:"scale" type:"structure" required:"true"`
 23168  
 23169  	// The short name or full Amazon Resource Name (ARN) of the service that the
 23170  	// task set exists in.
 23171  	//
 23172  	// Service is a required field
 23173  	Service *string `locationName:"service" type:"string" required:"true"`
 23174  
 23175  	// The short name or full Amazon Resource Name (ARN) of the task set to update.
 23176  	//
 23177  	// TaskSet is a required field
 23178  	TaskSet *string `locationName:"taskSet" type:"string" required:"true"`
 23179  }
 23180  
 23181  // String returns the string representation.
 23182  //
 23183  // API parameter values that are decorated as "sensitive" in the API will not
 23184  // be included in the string output. The member name will be present, but the
 23185  // value will be replaced with "sensitive".
 23186  func (s UpdateTaskSetInput) String() string {
 23187  	return awsutil.Prettify(s)
 23188  }
 23189  
 23190  // GoString returns the string representation.
 23191  //
 23192  // API parameter values that are decorated as "sensitive" in the API will not
 23193  // be included in the string output. The member name will be present, but the
 23194  // value will be replaced with "sensitive".
 23195  func (s UpdateTaskSetInput) GoString() string {
 23196  	return s.String()
 23197  }
 23198  
 23199  // Validate inspects the fields of the type to determine if they are valid.
 23200  func (s *UpdateTaskSetInput) Validate() error {
 23201  	invalidParams := request.ErrInvalidParams{Context: "UpdateTaskSetInput"}
 23202  	if s.Cluster == nil {
 23203  		invalidParams.Add(request.NewErrParamRequired("Cluster"))
 23204  	}
 23205  	if s.Scale == nil {
 23206  		invalidParams.Add(request.NewErrParamRequired("Scale"))
 23207  	}
 23208  	if s.Service == nil {
 23209  		invalidParams.Add(request.NewErrParamRequired("Service"))
 23210  	}
 23211  	if s.TaskSet == nil {
 23212  		invalidParams.Add(request.NewErrParamRequired("TaskSet"))
 23213  	}
 23214  
 23215  	if invalidParams.Len() > 0 {
 23216  		return invalidParams
 23217  	}
 23218  	return nil
 23219  }
 23220  
 23221  // SetCluster sets the Cluster field's value.
 23222  func (s *UpdateTaskSetInput) SetCluster(v string) *UpdateTaskSetInput {
 23223  	s.Cluster = &v
 23224  	return s
 23225  }
 23226  
 23227  // SetScale sets the Scale field's value.
 23228  func (s *UpdateTaskSetInput) SetScale(v *Scale) *UpdateTaskSetInput {
 23229  	s.Scale = v
 23230  	return s
 23231  }
 23232  
 23233  // SetService sets the Service field's value.
 23234  func (s *UpdateTaskSetInput) SetService(v string) *UpdateTaskSetInput {
 23235  	s.Service = &v
 23236  	return s
 23237  }
 23238  
 23239  // SetTaskSet sets the TaskSet field's value.
 23240  func (s *UpdateTaskSetInput) SetTaskSet(v string) *UpdateTaskSetInput {
 23241  	s.TaskSet = &v
 23242  	return s
 23243  }
 23244  
 23245  type UpdateTaskSetOutput struct {
 23246  	_ struct{} `type:"structure"`
 23247  
 23248  	// Details about the task set.
 23249  	TaskSet *TaskSet `locationName:"taskSet" type:"structure"`
 23250  }
 23251  
 23252  // String returns the string representation.
 23253  //
 23254  // API parameter values that are decorated as "sensitive" in the API will not
 23255  // be included in the string output. The member name will be present, but the
 23256  // value will be replaced with "sensitive".
 23257  func (s UpdateTaskSetOutput) String() string {
 23258  	return awsutil.Prettify(s)
 23259  }
 23260  
 23261  // GoString returns the string representation.
 23262  //
 23263  // API parameter values that are decorated as "sensitive" in the API will not
 23264  // be included in the string output. The member name will be present, but the
 23265  // value will be replaced with "sensitive".
 23266  func (s UpdateTaskSetOutput) GoString() string {
 23267  	return s.String()
 23268  }
 23269  
 23270  // SetTaskSet sets the TaskSet field's value.
 23271  func (s *UpdateTaskSetOutput) SetTaskSet(v *TaskSet) *UpdateTaskSetOutput {
 23272  	s.TaskSet = v
 23273  	return s
 23274  }
 23275  
 23276  // The Docker and Amazon ECS container agent version information about a container
 23277  // instance.
 23278  type VersionInfo struct {
 23279  	_ struct{} `type:"structure"`
 23280  
 23281  	// The Git commit hash for the Amazon ECS container agent build on the amazon-ecs-agent
 23282  	// (https://github.com/aavshr/amazon-ecs-agent/commits/master) GitHub repository.
 23283  	AgentHash *string `locationName:"agentHash" type:"string"`
 23284  
 23285  	// The version number of the Amazon ECS container agent.
 23286  	AgentVersion *string `locationName:"agentVersion" type:"string"`
 23287  
 23288  	// The Docker version running on the container instance.
 23289  	DockerVersion *string `locationName:"dockerVersion" type:"string"`
 23290  }
 23291  
 23292  // String returns the string representation.
 23293  //
 23294  // API parameter values that are decorated as "sensitive" in the API will not
 23295  // be included in the string output. The member name will be present, but the
 23296  // value will be replaced with "sensitive".
 23297  func (s VersionInfo) String() string {
 23298  	return awsutil.Prettify(s)
 23299  }
 23300  
 23301  // GoString returns the string representation.
 23302  //
 23303  // API parameter values that are decorated as "sensitive" in the API will not
 23304  // be included in the string output. The member name will be present, but the
 23305  // value will be replaced with "sensitive".
 23306  func (s VersionInfo) GoString() string {
 23307  	return s.String()
 23308  }
 23309  
 23310  // SetAgentHash sets the AgentHash field's value.
 23311  func (s *VersionInfo) SetAgentHash(v string) *VersionInfo {
 23312  	s.AgentHash = &v
 23313  	return s
 23314  }
 23315  
 23316  // SetAgentVersion sets the AgentVersion field's value.
 23317  func (s *VersionInfo) SetAgentVersion(v string) *VersionInfo {
 23318  	s.AgentVersion = &v
 23319  	return s
 23320  }
 23321  
 23322  // SetDockerVersion sets the DockerVersion field's value.
 23323  func (s *VersionInfo) SetDockerVersion(v string) *VersionInfo {
 23324  	s.DockerVersion = &v
 23325  	return s
 23326  }
 23327  
 23328  // A data volume used in a task definition. For tasks that use the Amazon Elastic
 23329  // File System (Amazon EFS), specify an efsVolumeConfiguration. For Windows
 23330  // tasks that use Amazon FSx for Windows File Server file system, specify a
 23331  // fsxWindowsFileServerVolumeConfiguration. For tasks that use a Docker volume,
 23332  // specify a DockerVolumeConfiguration. For tasks that use a bind mount host
 23333  // volume, specify a host and optional sourcePath. For more information, see
 23334  // Using Data Volumes in Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html).
 23335  type Volume struct {
 23336  	_ struct{} `type:"structure"`
 23337  
 23338  	// This parameter is specified when you are using Docker volumes.
 23339  	//
 23340  	// Windows containers only support the use of the local driver. To use bind
 23341  	// mounts, specify the host parameter instead.
 23342  	//
 23343  	// Docker volumes are not supported by tasks run on Fargate.
 23344  	DockerVolumeConfiguration *DockerVolumeConfiguration `locationName:"dockerVolumeConfiguration" type:"structure"`
 23345  
 23346  	// This parameter is specified when you are using an Amazon Elastic File System
 23347  	// file system for task storage.
 23348  	EfsVolumeConfiguration *EFSVolumeConfiguration `locationName:"efsVolumeConfiguration" type:"structure"`
 23349  
 23350  	// This parameter is specified when you are using Amazon FSx for Windows File
 23351  	// Server file system for task storage.
 23352  	FsxWindowsFileServerVolumeConfiguration *FSxWindowsFileServerVolumeConfiguration `locationName:"fsxWindowsFileServerVolumeConfiguration" type:"structure"`
 23353  
 23354  	// This parameter is specified when you are using bind mount host volumes. The
 23355  	// contents of the host parameter determine whether your bind mount host volume
 23356  	// persists on the host container instance and where it is stored. If the host
 23357  	// parameter is empty, then the Docker daemon assigns a host path for your data
 23358  	// volume. However, the data is not guaranteed to persist after the containers
 23359  	// associated with it stop running.
 23360  	//
 23361  	// Windows containers can mount whole directories on the same drive as $env:ProgramData.
 23362  	// Windows containers cannot mount directories on a different drive, and mount
 23363  	// point cannot be across drives. For example, you can mount C:\my\path:C:\my\path
 23364  	// and D:\:D:\, but not D:\my\path:C:\my\path or D:\:C:\my\path.
 23365  	Host *HostVolumeProperties `locationName:"host" type:"structure"`
 23366  
 23367  	// The name of the volume. Up to 255 letters (uppercase and lowercase), numbers,
 23368  	// underscores, and hyphens are allowed. This name is referenced in the sourceVolume
 23369  	// parameter of container definition mountPoints.
 23370  	Name *string `locationName:"name" type:"string"`
 23371  }
 23372  
 23373  // String returns the string representation.
 23374  //
 23375  // API parameter values that are decorated as "sensitive" in the API will not
 23376  // be included in the string output. The member name will be present, but the
 23377  // value will be replaced with "sensitive".
 23378  func (s Volume) String() string {
 23379  	return awsutil.Prettify(s)
 23380  }
 23381  
 23382  // GoString returns the string representation.
 23383  //
 23384  // API parameter values that are decorated as "sensitive" in the API will not
 23385  // be included in the string output. The member name will be present, but the
 23386  // value will be replaced with "sensitive".
 23387  func (s Volume) GoString() string {
 23388  	return s.String()
 23389  }
 23390  
 23391  // Validate inspects the fields of the type to determine if they are valid.
 23392  func (s *Volume) Validate() error {
 23393  	invalidParams := request.ErrInvalidParams{Context: "Volume"}
 23394  	if s.EfsVolumeConfiguration != nil {
 23395  		if err := s.EfsVolumeConfiguration.Validate(); err != nil {
 23396  			invalidParams.AddNested("EfsVolumeConfiguration", err.(request.ErrInvalidParams))
 23397  		}
 23398  	}
 23399  	if s.FsxWindowsFileServerVolumeConfiguration != nil {
 23400  		if err := s.FsxWindowsFileServerVolumeConfiguration.Validate(); err != nil {
 23401  			invalidParams.AddNested("FsxWindowsFileServerVolumeConfiguration", err.(request.ErrInvalidParams))
 23402  		}
 23403  	}
 23404  
 23405  	if invalidParams.Len() > 0 {
 23406  		return invalidParams
 23407  	}
 23408  	return nil
 23409  }
 23410  
 23411  // SetDockerVolumeConfiguration sets the DockerVolumeConfiguration field's value.
 23412  func (s *Volume) SetDockerVolumeConfiguration(v *DockerVolumeConfiguration) *Volume {
 23413  	s.DockerVolumeConfiguration = v
 23414  	return s
 23415  }
 23416  
 23417  // SetEfsVolumeConfiguration sets the EfsVolumeConfiguration field's value.
 23418  func (s *Volume) SetEfsVolumeConfiguration(v *EFSVolumeConfiguration) *Volume {
 23419  	s.EfsVolumeConfiguration = v
 23420  	return s
 23421  }
 23422  
 23423  // SetFsxWindowsFileServerVolumeConfiguration sets the FsxWindowsFileServerVolumeConfiguration field's value.
 23424  func (s *Volume) SetFsxWindowsFileServerVolumeConfiguration(v *FSxWindowsFileServerVolumeConfiguration) *Volume {
 23425  	s.FsxWindowsFileServerVolumeConfiguration = v
 23426  	return s
 23427  }
 23428  
 23429  // SetHost sets the Host field's value.
 23430  func (s *Volume) SetHost(v *HostVolumeProperties) *Volume {
 23431  	s.Host = v
 23432  	return s
 23433  }
 23434  
 23435  // SetName sets the Name field's value.
 23436  func (s *Volume) SetName(v string) *Volume {
 23437  	s.Name = &v
 23438  	return s
 23439  }
 23440  
 23441  // Details on a data volume from another container in the same task definition.
 23442  type VolumeFrom struct {
 23443  	_ struct{} `type:"structure"`
 23444  
 23445  	// If this value is true, the container has read-only access to the volume.
 23446  	// If this value is false, then the container can write to the volume. The default
 23447  	// value is false.
 23448  	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
 23449  
 23450  	// The name of another container within the same task definition from which
 23451  	// to mount volumes.
 23452  	SourceContainer *string `locationName:"sourceContainer" type:"string"`
 23453  }
 23454  
 23455  // String returns the string representation.
 23456  //
 23457  // API parameter values that are decorated as "sensitive" in the API will not
 23458  // be included in the string output. The member name will be present, but the
 23459  // value will be replaced with "sensitive".
 23460  func (s VolumeFrom) String() string {
 23461  	return awsutil.Prettify(s)
 23462  }
 23463  
 23464  // GoString returns the string representation.
 23465  //
 23466  // API parameter values that are decorated as "sensitive" in the API will not
 23467  // be included in the string output. The member name will be present, but the
 23468  // value will be replaced with "sensitive".
 23469  func (s VolumeFrom) GoString() string {
 23470  	return s.String()
 23471  }
 23472  
 23473  // SetReadOnly sets the ReadOnly field's value.
 23474  func (s *VolumeFrom) SetReadOnly(v bool) *VolumeFrom {
 23475  	s.ReadOnly = &v
 23476  	return s
 23477  }
 23478  
 23479  // SetSourceContainer sets the SourceContainer field's value.
 23480  func (s *VolumeFrom) SetSourceContainer(v string) *VolumeFrom {
 23481  	s.SourceContainer = &v
 23482  	return s
 23483  }
 23484  
 23485  const (
 23486  	// AgentUpdateStatusPending is a AgentUpdateStatus enum value
 23487  	AgentUpdateStatusPending = "PENDING"
 23488  
 23489  	// AgentUpdateStatusStaging is a AgentUpdateStatus enum value
 23490  	AgentUpdateStatusStaging = "STAGING"
 23491  
 23492  	// AgentUpdateStatusStaged is a AgentUpdateStatus enum value
 23493  	AgentUpdateStatusStaged = "STAGED"
 23494  
 23495  	// AgentUpdateStatusUpdating is a AgentUpdateStatus enum value
 23496  	AgentUpdateStatusUpdating = "UPDATING"
 23497  
 23498  	// AgentUpdateStatusUpdated is a AgentUpdateStatus enum value
 23499  	AgentUpdateStatusUpdated = "UPDATED"
 23500  
 23501  	// AgentUpdateStatusFailed is a AgentUpdateStatus enum value
 23502  	AgentUpdateStatusFailed = "FAILED"
 23503  )
 23504  
 23505  // AgentUpdateStatus_Values returns all elements of the AgentUpdateStatus enum
 23506  func AgentUpdateStatus_Values() []string {
 23507  	return []string{
 23508  		AgentUpdateStatusPending,
 23509  		AgentUpdateStatusStaging,
 23510  		AgentUpdateStatusStaged,
 23511  		AgentUpdateStatusUpdating,
 23512  		AgentUpdateStatusUpdated,
 23513  		AgentUpdateStatusFailed,
 23514  	}
 23515  }
 23516  
 23517  const (
 23518  	// AssignPublicIpEnabled is a AssignPublicIp enum value
 23519  	AssignPublicIpEnabled = "ENABLED"
 23520  
 23521  	// AssignPublicIpDisabled is a AssignPublicIp enum value
 23522  	AssignPublicIpDisabled = "DISABLED"
 23523  )
 23524  
 23525  // AssignPublicIp_Values returns all elements of the AssignPublicIp enum
 23526  func AssignPublicIp_Values() []string {
 23527  	return []string{
 23528  		AssignPublicIpEnabled,
 23529  		AssignPublicIpDisabled,
 23530  	}
 23531  }
 23532  
 23533  const (
 23534  	// CapacityProviderFieldTags is a CapacityProviderField enum value
 23535  	CapacityProviderFieldTags = "TAGS"
 23536  )
 23537  
 23538  // CapacityProviderField_Values returns all elements of the CapacityProviderField enum
 23539  func CapacityProviderField_Values() []string {
 23540  	return []string{
 23541  		CapacityProviderFieldTags,
 23542  	}
 23543  }
 23544  
 23545  const (
 23546  	// CapacityProviderStatusActive is a CapacityProviderStatus enum value
 23547  	CapacityProviderStatusActive = "ACTIVE"
 23548  
 23549  	// CapacityProviderStatusInactive is a CapacityProviderStatus enum value
 23550  	CapacityProviderStatusInactive = "INACTIVE"
 23551  )
 23552  
 23553  // CapacityProviderStatus_Values returns all elements of the CapacityProviderStatus enum
 23554  func CapacityProviderStatus_Values() []string {
 23555  	return []string{
 23556  		CapacityProviderStatusActive,
 23557  		CapacityProviderStatusInactive,
 23558  	}
 23559  }
 23560  
 23561  const (
 23562  	// CapacityProviderUpdateStatusDeleteInProgress is a CapacityProviderUpdateStatus enum value
 23563  	CapacityProviderUpdateStatusDeleteInProgress = "DELETE_IN_PROGRESS"
 23564  
 23565  	// CapacityProviderUpdateStatusDeleteComplete is a CapacityProviderUpdateStatus enum value
 23566  	CapacityProviderUpdateStatusDeleteComplete = "DELETE_COMPLETE"
 23567  
 23568  	// CapacityProviderUpdateStatusDeleteFailed is a CapacityProviderUpdateStatus enum value
 23569  	CapacityProviderUpdateStatusDeleteFailed = "DELETE_FAILED"
 23570  
 23571  	// CapacityProviderUpdateStatusUpdateInProgress is a CapacityProviderUpdateStatus enum value
 23572  	CapacityProviderUpdateStatusUpdateInProgress = "UPDATE_IN_PROGRESS"
 23573  
 23574  	// CapacityProviderUpdateStatusUpdateComplete is a CapacityProviderUpdateStatus enum value
 23575  	CapacityProviderUpdateStatusUpdateComplete = "UPDATE_COMPLETE"
 23576  
 23577  	// CapacityProviderUpdateStatusUpdateFailed is a CapacityProviderUpdateStatus enum value
 23578  	CapacityProviderUpdateStatusUpdateFailed = "UPDATE_FAILED"
 23579  )
 23580  
 23581  // CapacityProviderUpdateStatus_Values returns all elements of the CapacityProviderUpdateStatus enum
 23582  func CapacityProviderUpdateStatus_Values() []string {
 23583  	return []string{
 23584  		CapacityProviderUpdateStatusDeleteInProgress,
 23585  		CapacityProviderUpdateStatusDeleteComplete,
 23586  		CapacityProviderUpdateStatusDeleteFailed,
 23587  		CapacityProviderUpdateStatusUpdateInProgress,
 23588  		CapacityProviderUpdateStatusUpdateComplete,
 23589  		CapacityProviderUpdateStatusUpdateFailed,
 23590  	}
 23591  }
 23592  
 23593  const (
 23594  	// ClusterFieldAttachments is a ClusterField enum value
 23595  	ClusterFieldAttachments = "ATTACHMENTS"
 23596  
 23597  	// ClusterFieldConfigurations is a ClusterField enum value
 23598  	ClusterFieldConfigurations = "CONFIGURATIONS"
 23599  
 23600  	// ClusterFieldSettings is a ClusterField enum value
 23601  	ClusterFieldSettings = "SETTINGS"
 23602  
 23603  	// ClusterFieldStatistics is a ClusterField enum value
 23604  	ClusterFieldStatistics = "STATISTICS"
 23605  
 23606  	// ClusterFieldTags is a ClusterField enum value
 23607  	ClusterFieldTags = "TAGS"
 23608  )
 23609  
 23610  // ClusterField_Values returns all elements of the ClusterField enum
 23611  func ClusterField_Values() []string {
 23612  	return []string{
 23613  		ClusterFieldAttachments,
 23614  		ClusterFieldConfigurations,
 23615  		ClusterFieldSettings,
 23616  		ClusterFieldStatistics,
 23617  		ClusterFieldTags,
 23618  	}
 23619  }
 23620  
 23621  const (
 23622  	// ClusterSettingNameContainerInsights is a ClusterSettingName enum value
 23623  	ClusterSettingNameContainerInsights = "containerInsights"
 23624  )
 23625  
 23626  // ClusterSettingName_Values returns all elements of the ClusterSettingName enum
 23627  func ClusterSettingName_Values() []string {
 23628  	return []string{
 23629  		ClusterSettingNameContainerInsights,
 23630  	}
 23631  }
 23632  
 23633  const (
 23634  	// CompatibilityEc2 is a Compatibility enum value
 23635  	CompatibilityEc2 = "EC2"
 23636  
 23637  	// CompatibilityFargate is a Compatibility enum value
 23638  	CompatibilityFargate = "FARGATE"
 23639  
 23640  	// CompatibilityExternal is a Compatibility enum value
 23641  	CompatibilityExternal = "EXTERNAL"
 23642  )
 23643  
 23644  // Compatibility_Values returns all elements of the Compatibility enum
 23645  func Compatibility_Values() []string {
 23646  	return []string{
 23647  		CompatibilityEc2,
 23648  		CompatibilityFargate,
 23649  		CompatibilityExternal,
 23650  	}
 23651  }
 23652  
 23653  const (
 23654  	// ConnectivityConnected is a Connectivity enum value
 23655  	ConnectivityConnected = "CONNECTED"
 23656  
 23657  	// ConnectivityDisconnected is a Connectivity enum value
 23658  	ConnectivityDisconnected = "DISCONNECTED"
 23659  )
 23660  
 23661  // Connectivity_Values returns all elements of the Connectivity enum
 23662  func Connectivity_Values() []string {
 23663  	return []string{
 23664  		ConnectivityConnected,
 23665  		ConnectivityDisconnected,
 23666  	}
 23667  }
 23668  
 23669  const (
 23670  	// ContainerConditionStart is a ContainerCondition enum value
 23671  	ContainerConditionStart = "START"
 23672  
 23673  	// ContainerConditionComplete is a ContainerCondition enum value
 23674  	ContainerConditionComplete = "COMPLETE"
 23675  
 23676  	// ContainerConditionSuccess is a ContainerCondition enum value
 23677  	ContainerConditionSuccess = "SUCCESS"
 23678  
 23679  	// ContainerConditionHealthy is a ContainerCondition enum value
 23680  	ContainerConditionHealthy = "HEALTHY"
 23681  )
 23682  
 23683  // ContainerCondition_Values returns all elements of the ContainerCondition enum
 23684  func ContainerCondition_Values() []string {
 23685  	return []string{
 23686  		ContainerConditionStart,
 23687  		ContainerConditionComplete,
 23688  		ContainerConditionSuccess,
 23689  		ContainerConditionHealthy,
 23690  	}
 23691  }
 23692  
 23693  const (
 23694  	// ContainerInstanceFieldTags is a ContainerInstanceField enum value
 23695  	ContainerInstanceFieldTags = "TAGS"
 23696  )
 23697  
 23698  // ContainerInstanceField_Values returns all elements of the ContainerInstanceField enum
 23699  func ContainerInstanceField_Values() []string {
 23700  	return []string{
 23701  		ContainerInstanceFieldTags,
 23702  	}
 23703  }
 23704  
 23705  const (
 23706  	// ContainerInstanceStatusActive is a ContainerInstanceStatus enum value
 23707  	ContainerInstanceStatusActive = "ACTIVE"
 23708  
 23709  	// ContainerInstanceStatusDraining is a ContainerInstanceStatus enum value
 23710  	ContainerInstanceStatusDraining = "DRAINING"
 23711  
 23712  	// ContainerInstanceStatusRegistering is a ContainerInstanceStatus enum value
 23713  	ContainerInstanceStatusRegistering = "REGISTERING"
 23714  
 23715  	// ContainerInstanceStatusDeregistering is a ContainerInstanceStatus enum value
 23716  	ContainerInstanceStatusDeregistering = "DEREGISTERING"
 23717  
 23718  	// ContainerInstanceStatusRegistrationFailed is a ContainerInstanceStatus enum value
 23719  	ContainerInstanceStatusRegistrationFailed = "REGISTRATION_FAILED"
 23720  )
 23721  
 23722  // ContainerInstanceStatus_Values returns all elements of the ContainerInstanceStatus enum
 23723  func ContainerInstanceStatus_Values() []string {
 23724  	return []string{
 23725  		ContainerInstanceStatusActive,
 23726  		ContainerInstanceStatusDraining,
 23727  		ContainerInstanceStatusRegistering,
 23728  		ContainerInstanceStatusDeregistering,
 23729  		ContainerInstanceStatusRegistrationFailed,
 23730  	}
 23731  }
 23732  
 23733  const (
 23734  	// DeploymentControllerTypeEcs is a DeploymentControllerType enum value
 23735  	DeploymentControllerTypeEcs = "ECS"
 23736  
 23737  	// DeploymentControllerTypeCodeDeploy is a DeploymentControllerType enum value
 23738  	DeploymentControllerTypeCodeDeploy = "CODE_DEPLOY"
 23739  
 23740  	// DeploymentControllerTypeExternal is a DeploymentControllerType enum value
 23741  	DeploymentControllerTypeExternal = "EXTERNAL"
 23742  )
 23743  
 23744  // DeploymentControllerType_Values returns all elements of the DeploymentControllerType enum
 23745  func DeploymentControllerType_Values() []string {
 23746  	return []string{
 23747  		DeploymentControllerTypeEcs,
 23748  		DeploymentControllerTypeCodeDeploy,
 23749  		DeploymentControllerTypeExternal,
 23750  	}
 23751  }
 23752  
 23753  const (
 23754  	// DeploymentRolloutStateCompleted is a DeploymentRolloutState enum value
 23755  	DeploymentRolloutStateCompleted = "COMPLETED"
 23756  
 23757  	// DeploymentRolloutStateFailed is a DeploymentRolloutState enum value
 23758  	DeploymentRolloutStateFailed = "FAILED"
 23759  
 23760  	// DeploymentRolloutStateInProgress is a DeploymentRolloutState enum value
 23761  	DeploymentRolloutStateInProgress = "IN_PROGRESS"
 23762  )
 23763  
 23764  // DeploymentRolloutState_Values returns all elements of the DeploymentRolloutState enum
 23765  func DeploymentRolloutState_Values() []string {
 23766  	return []string{
 23767  		DeploymentRolloutStateCompleted,
 23768  		DeploymentRolloutStateFailed,
 23769  		DeploymentRolloutStateInProgress,
 23770  	}
 23771  }
 23772  
 23773  const (
 23774  	// DesiredStatusRunning is a DesiredStatus enum value
 23775  	DesiredStatusRunning = "RUNNING"
 23776  
 23777  	// DesiredStatusPending is a DesiredStatus enum value
 23778  	DesiredStatusPending = "PENDING"
 23779  
 23780  	// DesiredStatusStopped is a DesiredStatus enum value
 23781  	DesiredStatusStopped = "STOPPED"
 23782  )
 23783  
 23784  // DesiredStatus_Values returns all elements of the DesiredStatus enum
 23785  func DesiredStatus_Values() []string {
 23786  	return []string{
 23787  		DesiredStatusRunning,
 23788  		DesiredStatusPending,
 23789  		DesiredStatusStopped,
 23790  	}
 23791  }
 23792  
 23793  const (
 23794  	// DeviceCgroupPermissionRead is a DeviceCgroupPermission enum value
 23795  	DeviceCgroupPermissionRead = "read"
 23796  
 23797  	// DeviceCgroupPermissionWrite is a DeviceCgroupPermission enum value
 23798  	DeviceCgroupPermissionWrite = "write"
 23799  
 23800  	// DeviceCgroupPermissionMknod is a DeviceCgroupPermission enum value
 23801  	DeviceCgroupPermissionMknod = "mknod"
 23802  )
 23803  
 23804  // DeviceCgroupPermission_Values returns all elements of the DeviceCgroupPermission enum
 23805  func DeviceCgroupPermission_Values() []string {
 23806  	return []string{
 23807  		DeviceCgroupPermissionRead,
 23808  		DeviceCgroupPermissionWrite,
 23809  		DeviceCgroupPermissionMknod,
 23810  	}
 23811  }
 23812  
 23813  const (
 23814  	// EFSAuthorizationConfigIAMEnabled is a EFSAuthorizationConfigIAM enum value
 23815  	EFSAuthorizationConfigIAMEnabled = "ENABLED"
 23816  
 23817  	// EFSAuthorizationConfigIAMDisabled is a EFSAuthorizationConfigIAM enum value
 23818  	EFSAuthorizationConfigIAMDisabled = "DISABLED"
 23819  )
 23820  
 23821  // EFSAuthorizationConfigIAM_Values returns all elements of the EFSAuthorizationConfigIAM enum
 23822  func EFSAuthorizationConfigIAM_Values() []string {
 23823  	return []string{
 23824  		EFSAuthorizationConfigIAMEnabled,
 23825  		EFSAuthorizationConfigIAMDisabled,
 23826  	}
 23827  }
 23828  
 23829  const (
 23830  	// EFSTransitEncryptionEnabled is a EFSTransitEncryption enum value
 23831  	EFSTransitEncryptionEnabled = "ENABLED"
 23832  
 23833  	// EFSTransitEncryptionDisabled is a EFSTransitEncryption enum value
 23834  	EFSTransitEncryptionDisabled = "DISABLED"
 23835  )
 23836  
 23837  // EFSTransitEncryption_Values returns all elements of the EFSTransitEncryption enum
 23838  func EFSTransitEncryption_Values() []string {
 23839  	return []string{
 23840  		EFSTransitEncryptionEnabled,
 23841  		EFSTransitEncryptionDisabled,
 23842  	}
 23843  }
 23844  
 23845  const (
 23846  	// EnvironmentFileTypeS3 is a EnvironmentFileType enum value
 23847  	EnvironmentFileTypeS3 = "s3"
 23848  )
 23849  
 23850  // EnvironmentFileType_Values returns all elements of the EnvironmentFileType enum
 23851  func EnvironmentFileType_Values() []string {
 23852  	return []string{
 23853  		EnvironmentFileTypeS3,
 23854  	}
 23855  }
 23856  
 23857  const (
 23858  	// ExecuteCommandLoggingNone is a ExecuteCommandLogging enum value
 23859  	ExecuteCommandLoggingNone = "NONE"
 23860  
 23861  	// ExecuteCommandLoggingDefault is a ExecuteCommandLogging enum value
 23862  	ExecuteCommandLoggingDefault = "DEFAULT"
 23863  
 23864  	// ExecuteCommandLoggingOverride is a ExecuteCommandLogging enum value
 23865  	ExecuteCommandLoggingOverride = "OVERRIDE"
 23866  )
 23867  
 23868  // ExecuteCommandLogging_Values returns all elements of the ExecuteCommandLogging enum
 23869  func ExecuteCommandLogging_Values() []string {
 23870  	return []string{
 23871  		ExecuteCommandLoggingNone,
 23872  		ExecuteCommandLoggingDefault,
 23873  		ExecuteCommandLoggingOverride,
 23874  	}
 23875  }
 23876  
 23877  const (
 23878  	// FirelensConfigurationTypeFluentd is a FirelensConfigurationType enum value
 23879  	FirelensConfigurationTypeFluentd = "fluentd"
 23880  
 23881  	// FirelensConfigurationTypeFluentbit is a FirelensConfigurationType enum value
 23882  	FirelensConfigurationTypeFluentbit = "fluentbit"
 23883  )
 23884  
 23885  // FirelensConfigurationType_Values returns all elements of the FirelensConfigurationType enum
 23886  func FirelensConfigurationType_Values() []string {
 23887  	return []string{
 23888  		FirelensConfigurationTypeFluentd,
 23889  		FirelensConfigurationTypeFluentbit,
 23890  	}
 23891  }
 23892  
 23893  const (
 23894  	// HealthStatusHealthy is a HealthStatus enum value
 23895  	HealthStatusHealthy = "HEALTHY"
 23896  
 23897  	// HealthStatusUnhealthy is a HealthStatus enum value
 23898  	HealthStatusUnhealthy = "UNHEALTHY"
 23899  
 23900  	// HealthStatusUnknown is a HealthStatus enum value
 23901  	HealthStatusUnknown = "UNKNOWN"
 23902  )
 23903  
 23904  // HealthStatus_Values returns all elements of the HealthStatus enum
 23905  func HealthStatus_Values() []string {
 23906  	return []string{
 23907  		HealthStatusHealthy,
 23908  		HealthStatusUnhealthy,
 23909  		HealthStatusUnknown,
 23910  	}
 23911  }
 23912  
 23913  const (
 23914  	// IpcModeHost is a IpcMode enum value
 23915  	IpcModeHost = "host"
 23916  
 23917  	// IpcModeTask is a IpcMode enum value
 23918  	IpcModeTask = "task"
 23919  
 23920  	// IpcModeNone is a IpcMode enum value
 23921  	IpcModeNone = "none"
 23922  )
 23923  
 23924  // IpcMode_Values returns all elements of the IpcMode enum
 23925  func IpcMode_Values() []string {
 23926  	return []string{
 23927  		IpcModeHost,
 23928  		IpcModeTask,
 23929  		IpcModeNone,
 23930  	}
 23931  }
 23932  
 23933  const (
 23934  	// LaunchTypeEc2 is a LaunchType enum value
 23935  	LaunchTypeEc2 = "EC2"
 23936  
 23937  	// LaunchTypeFargate is a LaunchType enum value
 23938  	LaunchTypeFargate = "FARGATE"
 23939  
 23940  	// LaunchTypeExternal is a LaunchType enum value
 23941  	LaunchTypeExternal = "EXTERNAL"
 23942  )
 23943  
 23944  // LaunchType_Values returns all elements of the LaunchType enum
 23945  func LaunchType_Values() []string {
 23946  	return []string{
 23947  		LaunchTypeEc2,
 23948  		LaunchTypeFargate,
 23949  		LaunchTypeExternal,
 23950  	}
 23951  }
 23952  
 23953  const (
 23954  	// LogDriverJsonFile is a LogDriver enum value
 23955  	LogDriverJsonFile = "json-file"
 23956  
 23957  	// LogDriverSyslog is a LogDriver enum value
 23958  	LogDriverSyslog = "syslog"
 23959  
 23960  	// LogDriverJournald is a LogDriver enum value
 23961  	LogDriverJournald = "journald"
 23962  
 23963  	// LogDriverGelf is a LogDriver enum value
 23964  	LogDriverGelf = "gelf"
 23965  
 23966  	// LogDriverFluentd is a LogDriver enum value
 23967  	LogDriverFluentd = "fluentd"
 23968  
 23969  	// LogDriverAwslogs is a LogDriver enum value
 23970  	LogDriverAwslogs = "awslogs"
 23971  
 23972  	// LogDriverSplunk is a LogDriver enum value
 23973  	LogDriverSplunk = "splunk"
 23974  
 23975  	// LogDriverAwsfirelens is a LogDriver enum value
 23976  	LogDriverAwsfirelens = "awsfirelens"
 23977  )
 23978  
 23979  // LogDriver_Values returns all elements of the LogDriver enum
 23980  func LogDriver_Values() []string {
 23981  	return []string{
 23982  		LogDriverJsonFile,
 23983  		LogDriverSyslog,
 23984  		LogDriverJournald,
 23985  		LogDriverGelf,
 23986  		LogDriverFluentd,
 23987  		LogDriverAwslogs,
 23988  		LogDriverSplunk,
 23989  		LogDriverAwsfirelens,
 23990  	}
 23991  }
 23992  
 23993  const (
 23994  	// ManagedAgentNameExecuteCommandAgent is a ManagedAgentName enum value
 23995  	ManagedAgentNameExecuteCommandAgent = "ExecuteCommandAgent"
 23996  )
 23997  
 23998  // ManagedAgentName_Values returns all elements of the ManagedAgentName enum
 23999  func ManagedAgentName_Values() []string {
 24000  	return []string{
 24001  		ManagedAgentNameExecuteCommandAgent,
 24002  	}
 24003  }
 24004  
 24005  const (
 24006  	// ManagedScalingStatusEnabled is a ManagedScalingStatus enum value
 24007  	ManagedScalingStatusEnabled = "ENABLED"
 24008  
 24009  	// ManagedScalingStatusDisabled is a ManagedScalingStatus enum value
 24010  	ManagedScalingStatusDisabled = "DISABLED"
 24011  )
 24012  
 24013  // ManagedScalingStatus_Values returns all elements of the ManagedScalingStatus enum
 24014  func ManagedScalingStatus_Values() []string {
 24015  	return []string{
 24016  		ManagedScalingStatusEnabled,
 24017  		ManagedScalingStatusDisabled,
 24018  	}
 24019  }
 24020  
 24021  const (
 24022  	// ManagedTerminationProtectionEnabled is a ManagedTerminationProtection enum value
 24023  	ManagedTerminationProtectionEnabled = "ENABLED"
 24024  
 24025  	// ManagedTerminationProtectionDisabled is a ManagedTerminationProtection enum value
 24026  	ManagedTerminationProtectionDisabled = "DISABLED"
 24027  )
 24028  
 24029  // ManagedTerminationProtection_Values returns all elements of the ManagedTerminationProtection enum
 24030  func ManagedTerminationProtection_Values() []string {
 24031  	return []string{
 24032  		ManagedTerminationProtectionEnabled,
 24033  		ManagedTerminationProtectionDisabled,
 24034  	}
 24035  }
 24036  
 24037  const (
 24038  	// NetworkModeBridge is a NetworkMode enum value
 24039  	NetworkModeBridge = "bridge"
 24040  
 24041  	// NetworkModeHost is a NetworkMode enum value
 24042  	NetworkModeHost = "host"
 24043  
 24044  	// NetworkModeAwsvpc is a NetworkMode enum value
 24045  	NetworkModeAwsvpc = "awsvpc"
 24046  
 24047  	// NetworkModeNone is a NetworkMode enum value
 24048  	NetworkModeNone = "none"
 24049  )
 24050  
 24051  // NetworkMode_Values returns all elements of the NetworkMode enum
 24052  func NetworkMode_Values() []string {
 24053  	return []string{
 24054  		NetworkModeBridge,
 24055  		NetworkModeHost,
 24056  		NetworkModeAwsvpc,
 24057  		NetworkModeNone,
 24058  	}
 24059  }
 24060  
 24061  const (
 24062  	// PidModeHost is a PidMode enum value
 24063  	PidModeHost = "host"
 24064  
 24065  	// PidModeTask is a PidMode enum value
 24066  	PidModeTask = "task"
 24067  )
 24068  
 24069  // PidMode_Values returns all elements of the PidMode enum
 24070  func PidMode_Values() []string {
 24071  	return []string{
 24072  		PidModeHost,
 24073  		PidModeTask,
 24074  	}
 24075  }
 24076  
 24077  const (
 24078  	// PlacementConstraintTypeDistinctInstance is a PlacementConstraintType enum value
 24079  	PlacementConstraintTypeDistinctInstance = "distinctInstance"
 24080  
 24081  	// PlacementConstraintTypeMemberOf is a PlacementConstraintType enum value
 24082  	PlacementConstraintTypeMemberOf = "memberOf"
 24083  )
 24084  
 24085  // PlacementConstraintType_Values returns all elements of the PlacementConstraintType enum
 24086  func PlacementConstraintType_Values() []string {
 24087  	return []string{
 24088  		PlacementConstraintTypeDistinctInstance,
 24089  		PlacementConstraintTypeMemberOf,
 24090  	}
 24091  }
 24092  
 24093  const (
 24094  	// PlacementStrategyTypeRandom is a PlacementStrategyType enum value
 24095  	PlacementStrategyTypeRandom = "random"
 24096  
 24097  	// PlacementStrategyTypeSpread is a PlacementStrategyType enum value
 24098  	PlacementStrategyTypeSpread = "spread"
 24099  
 24100  	// PlacementStrategyTypeBinpack is a PlacementStrategyType enum value
 24101  	PlacementStrategyTypeBinpack = "binpack"
 24102  )
 24103  
 24104  // PlacementStrategyType_Values returns all elements of the PlacementStrategyType enum
 24105  func PlacementStrategyType_Values() []string {
 24106  	return []string{
 24107  		PlacementStrategyTypeRandom,
 24108  		PlacementStrategyTypeSpread,
 24109  		PlacementStrategyTypeBinpack,
 24110  	}
 24111  }
 24112  
 24113  const (
 24114  	// PlatformDeviceTypeGpu is a PlatformDeviceType enum value
 24115  	PlatformDeviceTypeGpu = "GPU"
 24116  )
 24117  
 24118  // PlatformDeviceType_Values returns all elements of the PlatformDeviceType enum
 24119  func PlatformDeviceType_Values() []string {
 24120  	return []string{
 24121  		PlatformDeviceTypeGpu,
 24122  	}
 24123  }
 24124  
 24125  const (
 24126  	// PropagateTagsTaskDefinition is a PropagateTags enum value
 24127  	PropagateTagsTaskDefinition = "TASK_DEFINITION"
 24128  
 24129  	// PropagateTagsService is a PropagateTags enum value
 24130  	PropagateTagsService = "SERVICE"
 24131  )
 24132  
 24133  // PropagateTags_Values returns all elements of the PropagateTags enum
 24134  func PropagateTags_Values() []string {
 24135  	return []string{
 24136  		PropagateTagsTaskDefinition,
 24137  		PropagateTagsService,
 24138  	}
 24139  }
 24140  
 24141  const (
 24142  	// ProxyConfigurationTypeAppmesh is a ProxyConfigurationType enum value
 24143  	ProxyConfigurationTypeAppmesh = "APPMESH"
 24144  )
 24145  
 24146  // ProxyConfigurationType_Values returns all elements of the ProxyConfigurationType enum
 24147  func ProxyConfigurationType_Values() []string {
 24148  	return []string{
 24149  		ProxyConfigurationTypeAppmesh,
 24150  	}
 24151  }
 24152  
 24153  const (
 24154  	// ResourceTypeGpu is a ResourceType enum value
 24155  	ResourceTypeGpu = "GPU"
 24156  
 24157  	// ResourceTypeInferenceAccelerator is a ResourceType enum value
 24158  	ResourceTypeInferenceAccelerator = "InferenceAccelerator"
 24159  )
 24160  
 24161  // ResourceType_Values returns all elements of the ResourceType enum
 24162  func ResourceType_Values() []string {
 24163  	return []string{
 24164  		ResourceTypeGpu,
 24165  		ResourceTypeInferenceAccelerator,
 24166  	}
 24167  }
 24168  
 24169  const (
 24170  	// ScaleUnitPercent is a ScaleUnit enum value
 24171  	ScaleUnitPercent = "PERCENT"
 24172  )
 24173  
 24174  // ScaleUnit_Values returns all elements of the ScaleUnit enum
 24175  func ScaleUnit_Values() []string {
 24176  	return []string{
 24177  		ScaleUnitPercent,
 24178  	}
 24179  }
 24180  
 24181  const (
 24182  	// SchedulingStrategyReplica is a SchedulingStrategy enum value
 24183  	SchedulingStrategyReplica = "REPLICA"
 24184  
 24185  	// SchedulingStrategyDaemon is a SchedulingStrategy enum value
 24186  	SchedulingStrategyDaemon = "DAEMON"
 24187  )
 24188  
 24189  // SchedulingStrategy_Values returns all elements of the SchedulingStrategy enum
 24190  func SchedulingStrategy_Values() []string {
 24191  	return []string{
 24192  		SchedulingStrategyReplica,
 24193  		SchedulingStrategyDaemon,
 24194  	}
 24195  }
 24196  
 24197  const (
 24198  	// ScopeTask is a Scope enum value
 24199  	ScopeTask = "task"
 24200  
 24201  	// ScopeShared is a Scope enum value
 24202  	ScopeShared = "shared"
 24203  )
 24204  
 24205  // Scope_Values returns all elements of the Scope enum
 24206  func Scope_Values() []string {
 24207  	return []string{
 24208  		ScopeTask,
 24209  		ScopeShared,
 24210  	}
 24211  }
 24212  
 24213  const (
 24214  	// ServiceFieldTags is a ServiceField enum value
 24215  	ServiceFieldTags = "TAGS"
 24216  )
 24217  
 24218  // ServiceField_Values returns all elements of the ServiceField enum
 24219  func ServiceField_Values() []string {
 24220  	return []string{
 24221  		ServiceFieldTags,
 24222  	}
 24223  }
 24224  
 24225  const (
 24226  	// SettingNameServiceLongArnFormat is a SettingName enum value
 24227  	SettingNameServiceLongArnFormat = "serviceLongArnFormat"
 24228  
 24229  	// SettingNameTaskLongArnFormat is a SettingName enum value
 24230  	SettingNameTaskLongArnFormat = "taskLongArnFormat"
 24231  
 24232  	// SettingNameContainerInstanceLongArnFormat is a SettingName enum value
 24233  	SettingNameContainerInstanceLongArnFormat = "containerInstanceLongArnFormat"
 24234  
 24235  	// SettingNameAwsvpcTrunking is a SettingName enum value
 24236  	SettingNameAwsvpcTrunking = "awsvpcTrunking"
 24237  
 24238  	// SettingNameContainerInsights is a SettingName enum value
 24239  	SettingNameContainerInsights = "containerInsights"
 24240  )
 24241  
 24242  // SettingName_Values returns all elements of the SettingName enum
 24243  func SettingName_Values() []string {
 24244  	return []string{
 24245  		SettingNameServiceLongArnFormat,
 24246  		SettingNameTaskLongArnFormat,
 24247  		SettingNameContainerInstanceLongArnFormat,
 24248  		SettingNameAwsvpcTrunking,
 24249  		SettingNameContainerInsights,
 24250  	}
 24251  }
 24252  
 24253  const (
 24254  	// SortOrderAsc is a SortOrder enum value
 24255  	SortOrderAsc = "ASC"
 24256  
 24257  	// SortOrderDesc is a SortOrder enum value
 24258  	SortOrderDesc = "DESC"
 24259  )
 24260  
 24261  // SortOrder_Values returns all elements of the SortOrder enum
 24262  func SortOrder_Values() []string {
 24263  	return []string{
 24264  		SortOrderAsc,
 24265  		SortOrderDesc,
 24266  	}
 24267  }
 24268  
 24269  const (
 24270  	// StabilityStatusSteadyState is a StabilityStatus enum value
 24271  	StabilityStatusSteadyState = "STEADY_STATE"
 24272  
 24273  	// StabilityStatusStabilizing is a StabilityStatus enum value
 24274  	StabilityStatusStabilizing = "STABILIZING"
 24275  )
 24276  
 24277  // StabilityStatus_Values returns all elements of the StabilityStatus enum
 24278  func StabilityStatus_Values() []string {
 24279  	return []string{
 24280  		StabilityStatusSteadyState,
 24281  		StabilityStatusStabilizing,
 24282  	}
 24283  }
 24284  
 24285  const (
 24286  	// TargetTypeContainerInstance is a TargetType enum value
 24287  	TargetTypeContainerInstance = "container-instance"
 24288  )
 24289  
 24290  // TargetType_Values returns all elements of the TargetType enum
 24291  func TargetType_Values() []string {
 24292  	return []string{
 24293  		TargetTypeContainerInstance,
 24294  	}
 24295  }
 24296  
 24297  const (
 24298  	// TaskDefinitionFamilyStatusActive is a TaskDefinitionFamilyStatus enum value
 24299  	TaskDefinitionFamilyStatusActive = "ACTIVE"
 24300  
 24301  	// TaskDefinitionFamilyStatusInactive is a TaskDefinitionFamilyStatus enum value
 24302  	TaskDefinitionFamilyStatusInactive = "INACTIVE"
 24303  
 24304  	// TaskDefinitionFamilyStatusAll is a TaskDefinitionFamilyStatus enum value
 24305  	TaskDefinitionFamilyStatusAll = "ALL"
 24306  )
 24307  
 24308  // TaskDefinitionFamilyStatus_Values returns all elements of the TaskDefinitionFamilyStatus enum
 24309  func TaskDefinitionFamilyStatus_Values() []string {
 24310  	return []string{
 24311  		TaskDefinitionFamilyStatusActive,
 24312  		TaskDefinitionFamilyStatusInactive,
 24313  		TaskDefinitionFamilyStatusAll,
 24314  	}
 24315  }
 24316  
 24317  const (
 24318  	// TaskDefinitionFieldTags is a TaskDefinitionField enum value
 24319  	TaskDefinitionFieldTags = "TAGS"
 24320  )
 24321  
 24322  // TaskDefinitionField_Values returns all elements of the TaskDefinitionField enum
 24323  func TaskDefinitionField_Values() []string {
 24324  	return []string{
 24325  		TaskDefinitionFieldTags,
 24326  	}
 24327  }
 24328  
 24329  const (
 24330  	// TaskDefinitionPlacementConstraintTypeMemberOf is a TaskDefinitionPlacementConstraintType enum value
 24331  	TaskDefinitionPlacementConstraintTypeMemberOf = "memberOf"
 24332  )
 24333  
 24334  // TaskDefinitionPlacementConstraintType_Values returns all elements of the TaskDefinitionPlacementConstraintType enum
 24335  func TaskDefinitionPlacementConstraintType_Values() []string {
 24336  	return []string{
 24337  		TaskDefinitionPlacementConstraintTypeMemberOf,
 24338  	}
 24339  }
 24340  
 24341  const (
 24342  	// TaskDefinitionStatusActive is a TaskDefinitionStatus enum value
 24343  	TaskDefinitionStatusActive = "ACTIVE"
 24344  
 24345  	// TaskDefinitionStatusInactive is a TaskDefinitionStatus enum value
 24346  	TaskDefinitionStatusInactive = "INACTIVE"
 24347  )
 24348  
 24349  // TaskDefinitionStatus_Values returns all elements of the TaskDefinitionStatus enum
 24350  func TaskDefinitionStatus_Values() []string {
 24351  	return []string{
 24352  		TaskDefinitionStatusActive,
 24353  		TaskDefinitionStatusInactive,
 24354  	}
 24355  }
 24356  
 24357  const (
 24358  	// TaskFieldTags is a TaskField enum value
 24359  	TaskFieldTags = "TAGS"
 24360  )
 24361  
 24362  // TaskField_Values returns all elements of the TaskField enum
 24363  func TaskField_Values() []string {
 24364  	return []string{
 24365  		TaskFieldTags,
 24366  	}
 24367  }
 24368  
 24369  const (
 24370  	// TaskSetFieldTags is a TaskSetField enum value
 24371  	TaskSetFieldTags = "TAGS"
 24372  )
 24373  
 24374  // TaskSetField_Values returns all elements of the TaskSetField enum
 24375  func TaskSetField_Values() []string {
 24376  	return []string{
 24377  		TaskSetFieldTags,
 24378  	}
 24379  }
 24380  
 24381  const (
 24382  	// TaskStopCodeTaskFailedToStart is a TaskStopCode enum value
 24383  	TaskStopCodeTaskFailedToStart = "TaskFailedToStart"
 24384  
 24385  	// TaskStopCodeEssentialContainerExited is a TaskStopCode enum value
 24386  	TaskStopCodeEssentialContainerExited = "EssentialContainerExited"
 24387  
 24388  	// TaskStopCodeUserInitiated is a TaskStopCode enum value
 24389  	TaskStopCodeUserInitiated = "UserInitiated"
 24390  )
 24391  
 24392  // TaskStopCode_Values returns all elements of the TaskStopCode enum
 24393  func TaskStopCode_Values() []string {
 24394  	return []string{
 24395  		TaskStopCodeTaskFailedToStart,
 24396  		TaskStopCodeEssentialContainerExited,
 24397  		TaskStopCodeUserInitiated,
 24398  	}
 24399  }
 24400  
 24401  const (
 24402  	// TransportProtocolTcp is a TransportProtocol enum value
 24403  	TransportProtocolTcp = "tcp"
 24404  
 24405  	// TransportProtocolUdp is a TransportProtocol enum value
 24406  	TransportProtocolUdp = "udp"
 24407  )
 24408  
 24409  // TransportProtocol_Values returns all elements of the TransportProtocol enum
 24410  func TransportProtocol_Values() []string {
 24411  	return []string{
 24412  		TransportProtocolTcp,
 24413  		TransportProtocolUdp,
 24414  	}
 24415  }
 24416  
 24417  const (
 24418  	// UlimitNameCore is a UlimitName enum value
 24419  	UlimitNameCore = "core"
 24420  
 24421  	// UlimitNameCpu is a UlimitName enum value
 24422  	UlimitNameCpu = "cpu"
 24423  
 24424  	// UlimitNameData is a UlimitName enum value
 24425  	UlimitNameData = "data"
 24426  
 24427  	// UlimitNameFsize is a UlimitName enum value
 24428  	UlimitNameFsize = "fsize"
 24429  
 24430  	// UlimitNameLocks is a UlimitName enum value
 24431  	UlimitNameLocks = "locks"
 24432  
 24433  	// UlimitNameMemlock is a UlimitName enum value
 24434  	UlimitNameMemlock = "memlock"
 24435  
 24436  	// UlimitNameMsgqueue is a UlimitName enum value
 24437  	UlimitNameMsgqueue = "msgqueue"
 24438  
 24439  	// UlimitNameNice is a UlimitName enum value
 24440  	UlimitNameNice = "nice"
 24441  
 24442  	// UlimitNameNofile is a UlimitName enum value
 24443  	UlimitNameNofile = "nofile"
 24444  
 24445  	// UlimitNameNproc is a UlimitName enum value
 24446  	UlimitNameNproc = "nproc"
 24447  
 24448  	// UlimitNameRss is a UlimitName enum value
 24449  	UlimitNameRss = "rss"
 24450  
 24451  	// UlimitNameRtprio is a UlimitName enum value
 24452  	UlimitNameRtprio = "rtprio"
 24453  
 24454  	// UlimitNameRttime is a UlimitName enum value
 24455  	UlimitNameRttime = "rttime"
 24456  
 24457  	// UlimitNameSigpending is a UlimitName enum value
 24458  	UlimitNameSigpending = "sigpending"
 24459  
 24460  	// UlimitNameStack is a UlimitName enum value
 24461  	UlimitNameStack = "stack"
 24462  )
 24463  
 24464  // UlimitName_Values returns all elements of the UlimitName enum
 24465  func UlimitName_Values() []string {
 24466  	return []string{
 24467  		UlimitNameCore,
 24468  		UlimitNameCpu,
 24469  		UlimitNameData,
 24470  		UlimitNameFsize,
 24471  		UlimitNameLocks,
 24472  		UlimitNameMemlock,
 24473  		UlimitNameMsgqueue,
 24474  		UlimitNameNice,
 24475  		UlimitNameNofile,
 24476  		UlimitNameNproc,
 24477  		UlimitNameRss,
 24478  		UlimitNameRtprio,
 24479  		UlimitNameRttime,
 24480  		UlimitNameSigpending,
 24481  		UlimitNameStack,
 24482  	}
 24483  }