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

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