1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package batch
4
5import (
6	"fmt"
7
8	"github.com/aws/aws-sdk-go/aws"
9	"github.com/aws/aws-sdk-go/aws/awsutil"
10	"github.com/aws/aws-sdk-go/aws/request"
11	"github.com/aws/aws-sdk-go/private/protocol"
12	"github.com/aws/aws-sdk-go/private/protocol/restjson"
13)
14
15const 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
41func (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
82func (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.
96func (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
103const 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
129func (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
208func (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.
222func (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
229const 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
255func (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
300func (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.
314func (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
321const 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
347func (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
392func (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.
406func (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
413const 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
439func (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
483func (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.
497func (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
504const 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
530func (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
569func (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.
583func (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
590const 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
616func (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
663func (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.
677func (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//
701func (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.
712func (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
736const 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
762func (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
806func (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.
820func (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//
844func (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.
855func (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
879const 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
905func (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
948func (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.
962func (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//
986func (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.
997func (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
1021const 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
1047func (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
1084func (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.
1098func (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
1105const 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
1131func (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
1185func (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.
1199func (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//
1223func (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.
1234func (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
1258const 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
1284func (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
1323func (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.
1337func (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
1344const 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
1370func (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
1407func (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.
1421func (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
1428const 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
1454func (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
1501func (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.
1515func (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
1522const 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
1548func (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
1591func (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.
1605func (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
1612const 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
1638func (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
1678func (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.
1692func (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
1699const 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
1725func (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
1763func (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.
1777func (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
1784const 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
1810func (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
1847func (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.
1861func (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
1868const 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
1894func (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
1931func (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.
1945func (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.
1953type 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
1961func (s ArrayProperties) String() string {
1962	return awsutil.Prettify(s)
1963}
1964
1965// GoString returns the string representation
1966func (s ArrayProperties) GoString() string {
1967	return s.String()
1968}
1969
1970// SetSize sets the Size field's value.
1971func (s *ArrayProperties) SetSize(v int64) *ArrayProperties {
1972	s.Size = &v
1973	return s
1974}
1975
1976// An object representing the array properties of a job.
1977type ArrayPropertiesDetail struct {
1978	_ struct{} `type:"structure"`
1979
1980	// The job index within the array that's associated with this job. This parameter
1981	// is returned for array job children.
1982	Index *int64 `locationName:"index" type:"integer"`
1983
1984	// The size of the array job. This parameter is returned for parent array jobs.
1985	Size *int64 `locationName:"size" type:"integer"`
1986
1987	// A summary of the number of array job children in each available job status.
1988	// This parameter is returned for parent array jobs.
1989	StatusSummary map[string]*int64 `locationName:"statusSummary" type:"map"`
1990}
1991
1992// String returns the string representation
1993func (s ArrayPropertiesDetail) String() string {
1994	return awsutil.Prettify(s)
1995}
1996
1997// GoString returns the string representation
1998func (s ArrayPropertiesDetail) GoString() string {
1999	return s.String()
2000}
2001
2002// SetIndex sets the Index field's value.
2003func (s *ArrayPropertiesDetail) SetIndex(v int64) *ArrayPropertiesDetail {
2004	s.Index = &v
2005	return s
2006}
2007
2008// SetSize sets the Size field's value.
2009func (s *ArrayPropertiesDetail) SetSize(v int64) *ArrayPropertiesDetail {
2010	s.Size = &v
2011	return s
2012}
2013
2014// SetStatusSummary sets the StatusSummary field's value.
2015func (s *ArrayPropertiesDetail) SetStatusSummary(v map[string]*int64) *ArrayPropertiesDetail {
2016	s.StatusSummary = v
2017	return s
2018}
2019
2020// An object representing the array properties of a job.
2021type ArrayPropertiesSummary struct {
2022	_ struct{} `type:"structure"`
2023
2024	// The job index within the array that's associated with this job. This parameter
2025	// is returned for children of array jobs.
2026	Index *int64 `locationName:"index" type:"integer"`
2027
2028	// The size of the array job. This parameter is returned for parent array jobs.
2029	Size *int64 `locationName:"size" type:"integer"`
2030}
2031
2032// String returns the string representation
2033func (s ArrayPropertiesSummary) String() string {
2034	return awsutil.Prettify(s)
2035}
2036
2037// GoString returns the string representation
2038func (s ArrayPropertiesSummary) GoString() string {
2039	return s.String()
2040}
2041
2042// SetIndex sets the Index field's value.
2043func (s *ArrayPropertiesSummary) SetIndex(v int64) *ArrayPropertiesSummary {
2044	s.Index = &v
2045	return s
2046}
2047
2048// SetSize sets the Size field's value.
2049func (s *ArrayPropertiesSummary) SetSize(v int64) *ArrayPropertiesSummary {
2050	s.Size = &v
2051	return s
2052}
2053
2054// An object representing the details of a container that's part of a job attempt.
2055type AttemptContainerDetail struct {
2056	_ struct{} `type:"structure"`
2057
2058	// The Amazon Resource Name (ARN) of the Amazon ECS container instance that
2059	// hosts the job attempt.
2060	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
2061
2062	// The exit code for the job attempt. A non-zero exit code is considered a failure.
2063	ExitCode *int64 `locationName:"exitCode" type:"integer"`
2064
2065	// The name of the CloudWatch Logs log stream associated with the container.
2066	// The log group for Batch jobs is /aws/batch/job. Each container attempt receives
2067	// a log stream name when they reach the RUNNING status.
2068	LogStreamName *string `locationName:"logStreamName" type:"string"`
2069
2070	// The network interfaces associated with the job attempt.
2071	NetworkInterfaces []*NetworkInterface `locationName:"networkInterfaces" type:"list"`
2072
2073	// A short (255 max characters) human-readable string to provide additional
2074	// details about a running or stopped container.
2075	Reason *string `locationName:"reason" type:"string"`
2076
2077	// The Amazon Resource Name (ARN) of the Amazon ECS task that's associated with
2078	// the job attempt. Each container attempt receives a task ARN when they reach
2079	// the STARTING status.
2080	TaskArn *string `locationName:"taskArn" type:"string"`
2081}
2082
2083// String returns the string representation
2084func (s AttemptContainerDetail) String() string {
2085	return awsutil.Prettify(s)
2086}
2087
2088// GoString returns the string representation
2089func (s AttemptContainerDetail) GoString() string {
2090	return s.String()
2091}
2092
2093// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
2094func (s *AttemptContainerDetail) SetContainerInstanceArn(v string) *AttemptContainerDetail {
2095	s.ContainerInstanceArn = &v
2096	return s
2097}
2098
2099// SetExitCode sets the ExitCode field's value.
2100func (s *AttemptContainerDetail) SetExitCode(v int64) *AttemptContainerDetail {
2101	s.ExitCode = &v
2102	return s
2103}
2104
2105// SetLogStreamName sets the LogStreamName field's value.
2106func (s *AttemptContainerDetail) SetLogStreamName(v string) *AttemptContainerDetail {
2107	s.LogStreamName = &v
2108	return s
2109}
2110
2111// SetNetworkInterfaces sets the NetworkInterfaces field's value.
2112func (s *AttemptContainerDetail) SetNetworkInterfaces(v []*NetworkInterface) *AttemptContainerDetail {
2113	s.NetworkInterfaces = v
2114	return s
2115}
2116
2117// SetReason sets the Reason field's value.
2118func (s *AttemptContainerDetail) SetReason(v string) *AttemptContainerDetail {
2119	s.Reason = &v
2120	return s
2121}
2122
2123// SetTaskArn sets the TaskArn field's value.
2124func (s *AttemptContainerDetail) SetTaskArn(v string) *AttemptContainerDetail {
2125	s.TaskArn = &v
2126	return s
2127}
2128
2129// An object representing a job attempt.
2130type AttemptDetail struct {
2131	_ struct{} `type:"structure"`
2132
2133	// Details about the container in this job attempt.
2134	Container *AttemptContainerDetail `locationName:"container" type:"structure"`
2135
2136	// The Unix timestamp (in milliseconds) for when the attempt was started (when
2137	// the attempt transitioned from the STARTING state to the RUNNING state).
2138	StartedAt *int64 `locationName:"startedAt" type:"long"`
2139
2140	// A short, human-readable string to provide additional details about the current
2141	// status of the job attempt.
2142	StatusReason *string `locationName:"statusReason" type:"string"`
2143
2144	// The Unix timestamp (in milliseconds) for when the attempt was stopped (when
2145	// the attempt transitioned from the RUNNING state to a terminal state, such
2146	// as SUCCEEDED or FAILED).
2147	StoppedAt *int64 `locationName:"stoppedAt" type:"long"`
2148}
2149
2150// String returns the string representation
2151func (s AttemptDetail) String() string {
2152	return awsutil.Prettify(s)
2153}
2154
2155// GoString returns the string representation
2156func (s AttemptDetail) GoString() string {
2157	return s.String()
2158}
2159
2160// SetContainer sets the Container field's value.
2161func (s *AttemptDetail) SetContainer(v *AttemptContainerDetail) *AttemptDetail {
2162	s.Container = v
2163	return s
2164}
2165
2166// SetStartedAt sets the StartedAt field's value.
2167func (s *AttemptDetail) SetStartedAt(v int64) *AttemptDetail {
2168	s.StartedAt = &v
2169	return s
2170}
2171
2172// SetStatusReason sets the StatusReason field's value.
2173func (s *AttemptDetail) SetStatusReason(v string) *AttemptDetail {
2174	s.StatusReason = &v
2175	return s
2176}
2177
2178// SetStoppedAt sets the StoppedAt field's value.
2179func (s *AttemptDetail) SetStoppedAt(v int64) *AttemptDetail {
2180	s.StoppedAt = &v
2181	return s
2182}
2183
2184// Contains the parameters for CancelJob.
2185type CancelJobInput struct {
2186	_ struct{} `type:"structure"`
2187
2188	// The Batch job ID of the job to cancel.
2189	//
2190	// JobId is a required field
2191	JobId *string `locationName:"jobId" type:"string" required:"true"`
2192
2193	// A message to attach to the job that explains the reason for canceling it.
2194	// This message is returned by future DescribeJobs operations on the job. This
2195	// message is also recorded in the Batch activity logs.
2196	//
2197	// Reason is a required field
2198	Reason *string `locationName:"reason" type:"string" required:"true"`
2199}
2200
2201// String returns the string representation
2202func (s CancelJobInput) String() string {
2203	return awsutil.Prettify(s)
2204}
2205
2206// GoString returns the string representation
2207func (s CancelJobInput) GoString() string {
2208	return s.String()
2209}
2210
2211// Validate inspects the fields of the type to determine if they are valid.
2212func (s *CancelJobInput) Validate() error {
2213	invalidParams := request.ErrInvalidParams{Context: "CancelJobInput"}
2214	if s.JobId == nil {
2215		invalidParams.Add(request.NewErrParamRequired("JobId"))
2216	}
2217	if s.Reason == nil {
2218		invalidParams.Add(request.NewErrParamRequired("Reason"))
2219	}
2220
2221	if invalidParams.Len() > 0 {
2222		return invalidParams
2223	}
2224	return nil
2225}
2226
2227// SetJobId sets the JobId field's value.
2228func (s *CancelJobInput) SetJobId(v string) *CancelJobInput {
2229	s.JobId = &v
2230	return s
2231}
2232
2233// SetReason sets the Reason field's value.
2234func (s *CancelJobInput) SetReason(v string) *CancelJobInput {
2235	s.Reason = &v
2236	return s
2237}
2238
2239type CancelJobOutput struct {
2240	_ struct{} `type:"structure"`
2241}
2242
2243// String returns the string representation
2244func (s CancelJobOutput) String() string {
2245	return awsutil.Prettify(s)
2246}
2247
2248// GoString returns the string representation
2249func (s CancelJobOutput) GoString() string {
2250	return s.String()
2251}
2252
2253// These errors are usually caused by a client action, such as using an action
2254// or resource on behalf of a user that doesn't have permissions to use the
2255// action or resource, or specifying an identifier that's not valid.
2256type ClientException struct {
2257	_            struct{}                  `type:"structure"`
2258	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2259
2260	Message_ *string `locationName:"message" type:"string"`
2261}
2262
2263// String returns the string representation
2264func (s ClientException) String() string {
2265	return awsutil.Prettify(s)
2266}
2267
2268// GoString returns the string representation
2269func (s ClientException) GoString() string {
2270	return s.String()
2271}
2272
2273func newErrorClientException(v protocol.ResponseMetadata) error {
2274	return &ClientException{
2275		RespMetadata: v,
2276	}
2277}
2278
2279// Code returns the exception type name.
2280func (s *ClientException) Code() string {
2281	return "ClientException"
2282}
2283
2284// Message returns the exception's message.
2285func (s *ClientException) Message() string {
2286	if s.Message_ != nil {
2287		return *s.Message_
2288	}
2289	return ""
2290}
2291
2292// OrigErr always returns nil, satisfies awserr.Error interface.
2293func (s *ClientException) OrigErr() error {
2294	return nil
2295}
2296
2297func (s *ClientException) Error() string {
2298	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2299}
2300
2301// Status code returns the HTTP status code for the request's response error.
2302func (s *ClientException) StatusCode() int {
2303	return s.RespMetadata.StatusCode
2304}
2305
2306// RequestID returns the service's response RequestID for request.
2307func (s *ClientException) RequestID() string {
2308	return s.RespMetadata.RequestID
2309}
2310
2311// An object representing an Batch compute environment.
2312type ComputeEnvironmentDetail struct {
2313	_ struct{} `type:"structure"`
2314
2315	// The Amazon Resource Name (ARN) of the compute environment.
2316	//
2317	// ComputeEnvironmentArn is a required field
2318	ComputeEnvironmentArn *string `locationName:"computeEnvironmentArn" type:"string" required:"true"`
2319
2320	// The name of the compute environment. Up to 128 letters (uppercase and lowercase),
2321	// numbers, hyphens, and underscores are allowed.
2322	//
2323	// ComputeEnvironmentName is a required field
2324	ComputeEnvironmentName *string `locationName:"computeEnvironmentName" type:"string" required:"true"`
2325
2326	// The compute resources defined for the compute environment. For more information,
2327	// see Compute Environments (https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html)
2328	// in the Batch User Guide.
2329	ComputeResources *ComputeResource `locationName:"computeResources" type:"structure"`
2330
2331	// The Amazon Resource Name (ARN) of the underlying Amazon ECS cluster used
2332	// by the compute environment.
2333	//
2334	// EcsClusterArn is a required field
2335	EcsClusterArn *string `locationName:"ecsClusterArn" type:"string" required:"true"`
2336
2337	// The service role associated with the compute environment that allows Batch
2338	// to make calls to Amazon Web Services API operations on your behalf. For more
2339	// information, see Batch service IAM role (https://docs.aws.amazon.com/batch/latest/userguide/service_IAM_role.html)
2340	// in the Batch User Guide.
2341	ServiceRole *string `locationName:"serviceRole" type:"string"`
2342
2343	// The state of the compute environment. The valid values are ENABLED or DISABLED.
2344	//
2345	// If the state is ENABLED, then the Batch scheduler can attempt to place jobs
2346	// from an associated job queue on the compute resources within the environment.
2347	// If the compute environment is managed, then it can scale its instances out
2348	// or in automatically, based on the job queue demand.
2349	//
2350	// If the state is DISABLED, then the Batch scheduler doesn't attempt to place
2351	// jobs within the environment. Jobs in a STARTING or RUNNING state continue
2352	// to progress normally. Managed compute environments in the DISABLED state
2353	// don't scale out. However, they scale in to minvCpus value after instances
2354	// become idle.
2355	State *string `locationName:"state" type:"string" enum:"CEState"`
2356
2357	// The current status of the compute environment (for example, CREATING or VALID).
2358	Status *string `locationName:"status" type:"string" enum:"CEStatus"`
2359
2360	// A short, human-readable string to provide additional details about the current
2361	// status of the compute environment.
2362	StatusReason *string `locationName:"statusReason" type:"string"`
2363
2364	// The tags applied to the compute environment.
2365	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
2366
2367	// The type of the compute environment: MANAGED or UNMANAGED. For more information,
2368	// see Compute Environments (https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html)
2369	// in the Batch User Guide.
2370	Type *string `locationName:"type" type:"string" enum:"CEType"`
2371}
2372
2373// String returns the string representation
2374func (s ComputeEnvironmentDetail) String() string {
2375	return awsutil.Prettify(s)
2376}
2377
2378// GoString returns the string representation
2379func (s ComputeEnvironmentDetail) GoString() string {
2380	return s.String()
2381}
2382
2383// SetComputeEnvironmentArn sets the ComputeEnvironmentArn field's value.
2384func (s *ComputeEnvironmentDetail) SetComputeEnvironmentArn(v string) *ComputeEnvironmentDetail {
2385	s.ComputeEnvironmentArn = &v
2386	return s
2387}
2388
2389// SetComputeEnvironmentName sets the ComputeEnvironmentName field's value.
2390func (s *ComputeEnvironmentDetail) SetComputeEnvironmentName(v string) *ComputeEnvironmentDetail {
2391	s.ComputeEnvironmentName = &v
2392	return s
2393}
2394
2395// SetComputeResources sets the ComputeResources field's value.
2396func (s *ComputeEnvironmentDetail) SetComputeResources(v *ComputeResource) *ComputeEnvironmentDetail {
2397	s.ComputeResources = v
2398	return s
2399}
2400
2401// SetEcsClusterArn sets the EcsClusterArn field's value.
2402func (s *ComputeEnvironmentDetail) SetEcsClusterArn(v string) *ComputeEnvironmentDetail {
2403	s.EcsClusterArn = &v
2404	return s
2405}
2406
2407// SetServiceRole sets the ServiceRole field's value.
2408func (s *ComputeEnvironmentDetail) SetServiceRole(v string) *ComputeEnvironmentDetail {
2409	s.ServiceRole = &v
2410	return s
2411}
2412
2413// SetState sets the State field's value.
2414func (s *ComputeEnvironmentDetail) SetState(v string) *ComputeEnvironmentDetail {
2415	s.State = &v
2416	return s
2417}
2418
2419// SetStatus sets the Status field's value.
2420func (s *ComputeEnvironmentDetail) SetStatus(v string) *ComputeEnvironmentDetail {
2421	s.Status = &v
2422	return s
2423}
2424
2425// SetStatusReason sets the StatusReason field's value.
2426func (s *ComputeEnvironmentDetail) SetStatusReason(v string) *ComputeEnvironmentDetail {
2427	s.StatusReason = &v
2428	return s
2429}
2430
2431// SetTags sets the Tags field's value.
2432func (s *ComputeEnvironmentDetail) SetTags(v map[string]*string) *ComputeEnvironmentDetail {
2433	s.Tags = v
2434	return s
2435}
2436
2437// SetType sets the Type field's value.
2438func (s *ComputeEnvironmentDetail) SetType(v string) *ComputeEnvironmentDetail {
2439	s.Type = &v
2440	return s
2441}
2442
2443// The order in which compute environments are tried for job placement within
2444// a queue. Compute environments are tried in ascending order. For example,
2445// if two compute environments are associated with a job queue, the compute
2446// environment with a lower order integer value is tried for job placement first.
2447// Compute environments must be in the VALID state before you can associate
2448// them with a job queue. All of the compute environments must be either EC2
2449// (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT); EC2 and Fargate compute
2450// environments can't be mixed.
2451//
2452// All compute environments that are associated with a job queue must share
2453// the same architecture. Batch doesn't support mixing compute environment architecture
2454// types in a single job queue.
2455type ComputeEnvironmentOrder struct {
2456	_ struct{} `type:"structure"`
2457
2458	// The Amazon Resource Name (ARN) of the compute environment.
2459	//
2460	// ComputeEnvironment is a required field
2461	ComputeEnvironment *string `locationName:"computeEnvironment" type:"string" required:"true"`
2462
2463	// The order of the compute environment. Compute environments are tried in ascending
2464	// order. For example, if two compute environments are associated with a job
2465	// queue, the compute environment with a lower order integer value is tried
2466	// for job placement first.
2467	//
2468	// Order is a required field
2469	Order *int64 `locationName:"order" type:"integer" required:"true"`
2470}
2471
2472// String returns the string representation
2473func (s ComputeEnvironmentOrder) String() string {
2474	return awsutil.Prettify(s)
2475}
2476
2477// GoString returns the string representation
2478func (s ComputeEnvironmentOrder) GoString() string {
2479	return s.String()
2480}
2481
2482// Validate inspects the fields of the type to determine if they are valid.
2483func (s *ComputeEnvironmentOrder) Validate() error {
2484	invalidParams := request.ErrInvalidParams{Context: "ComputeEnvironmentOrder"}
2485	if s.ComputeEnvironment == nil {
2486		invalidParams.Add(request.NewErrParamRequired("ComputeEnvironment"))
2487	}
2488	if s.Order == nil {
2489		invalidParams.Add(request.NewErrParamRequired("Order"))
2490	}
2491
2492	if invalidParams.Len() > 0 {
2493		return invalidParams
2494	}
2495	return nil
2496}
2497
2498// SetComputeEnvironment sets the ComputeEnvironment field's value.
2499func (s *ComputeEnvironmentOrder) SetComputeEnvironment(v string) *ComputeEnvironmentOrder {
2500	s.ComputeEnvironment = &v
2501	return s
2502}
2503
2504// SetOrder sets the Order field's value.
2505func (s *ComputeEnvironmentOrder) SetOrder(v int64) *ComputeEnvironmentOrder {
2506	s.Order = &v
2507	return s
2508}
2509
2510// An object representing an Batch compute resource. For more information, see
2511// Compute Environments (https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html)
2512// in the Batch User Guide.
2513type ComputeResource struct {
2514	_ struct{} `type:"structure"`
2515
2516	// The allocation strategy to use for the compute resource if not enough instances
2517	// of the best fitting instance type can be allocated. This might be because
2518	// of availability of the instance type in the Region or Amazon EC2 service
2519	// limits (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html).
2520	// For more information, see Allocation Strategies (https://docs.aws.amazon.com/batch/latest/userguide/allocation-strategies.html)
2521	// in the Batch User Guide.
2522	//
2523	// This parameter isn't applicable to jobs that are running on Fargate resources,
2524	// and shouldn't be specified.
2525	//
2526	// BEST_FIT (default)
2527	//
2528	// Batch selects an instance type that best fits the needs of the jobs with
2529	// a preference for the lowest-cost instance type. If additional instances of
2530	// the selected instance type aren't available, Batch waits for the additional
2531	// instances to be available. If there aren't enough instances available, or
2532	// if the user is reaching Amazon EC2 service limits (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html)
2533	// then additional jobs aren't run until the currently running jobs have completed.
2534	// This allocation strategy keeps costs lower but can limit scaling. If you
2535	// are using Spot Fleets with BEST_FIT then the Spot Fleet IAM Role must be
2536	// specified.
2537	//
2538	// BEST_FIT_PROGRESSIVE
2539	//
2540	// Batch will select additional instance types that are large enough to meet
2541	// the requirements of the jobs in the queue, with a preference for instance
2542	// types with a lower cost per unit vCPU. If additional instances of the previously
2543	// selected instance types aren't available, Batch will select new instance
2544	// types.
2545	//
2546	// SPOT_CAPACITY_OPTIMIZED
2547	//
2548	// Batch will select one or more instance types that are large enough to meet
2549	// the requirements of the jobs in the queue, with a preference for instance
2550	// types that are less likely to be interrupted. This allocation strategy is
2551	// only available for Spot Instance compute resources.
2552	//
2553	// With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED strategies, Batch
2554	// might need to go above maxvCpus to meet your capacity requirements. In this
2555	// event, Batch never exceeds maxvCpus by more than a single instance.
2556	AllocationStrategy *string `locationName:"allocationStrategy" type:"string" enum:"CRAllocationStrategy"`
2557
2558	// The maximum percentage that a Spot Instance price can be when compared with
2559	// the On-Demand price for that instance type before instances are launched.
2560	// For example, if your maximum percentage is 20%, then the Spot price must
2561	// be less than 20% of the current On-Demand price for that Amazon EC2 instance.
2562	// You always pay the lowest (market) price and never more than your maximum
2563	// percentage. If you leave this field empty, the default value is 100% of the
2564	// On-Demand price.
2565	//
2566	// This parameter isn't applicable to jobs that are running on Fargate resources,
2567	// and shouldn't be specified.
2568	BidPercentage *int64 `locationName:"bidPercentage" type:"integer"`
2569
2570	// The desired number of Amazon EC2 vCPUS in the compute environment. Batch
2571	// modifies this value between the minimum and maximum values, based on job
2572	// queue demand.
2573	//
2574	// This parameter isn't applicable to jobs that are running on Fargate resources,
2575	// and shouldn't be specified.
2576	DesiredvCpus *int64 `locationName:"desiredvCpus" type:"integer"`
2577
2578	// Provides information used to select Amazon Machine Images (AMIs) for EC2
2579	// instances in the compute environment. If Ec2Configuration isn't specified,
2580	// the default is ECS_AL1.
2581	//
2582	// This parameter isn't applicable to jobs that are running on Fargate resources,
2583	// and shouldn't be specified.
2584	Ec2Configuration []*Ec2Configuration `locationName:"ec2Configuration" type:"list"`
2585
2586	// The Amazon EC2 key pair that's used for instances launched in the compute
2587	// environment. You can use this key pair to log in to your instances with SSH.
2588	//
2589	// This parameter isn't applicable to jobs that are running on Fargate resources,
2590	// and shouldn't be specified.
2591	Ec2KeyPair *string `locationName:"ec2KeyPair" type:"string"`
2592
2593	// The Amazon Machine Image (AMI) ID used for instances launched in the compute
2594	// environment. This parameter is overridden by the imageIdOverride member of
2595	// the Ec2Configuration structure.
2596	//
2597	// This parameter isn't applicable to jobs that are running on Fargate resources,
2598	// and shouldn't be specified.
2599	//
2600	// The AMI that you choose for a compute environment must match the architecture
2601	// of the instance types that you intend to use for that compute environment.
2602	// For example, if your compute environment uses A1 instance types, the compute
2603	// resource AMI that you choose must support ARM instances. Amazon ECS vends
2604	// both x86 and ARM versions of the Amazon ECS-optimized Amazon Linux 2 AMI.
2605	// 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)
2606	// in the Amazon Elastic Container Service Developer Guide.
2607	//
2608	// Deprecated: This field is deprecated, use ec2Configuration[].imageIdOverride instead.
2609	ImageId *string `locationName:"imageId" deprecated:"true" type:"string"`
2610
2611	// The Amazon ECS instance profile applied to Amazon EC2 instances in a compute
2612	// environment. You can specify the short name or full Amazon Resource Name
2613	// (ARN) of an instance profile. For example, ecsInstanceRole or arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole
2614	// . For more information, see Amazon ECS Instance Role (https://docs.aws.amazon.com/batch/latest/userguide/instance_IAM_role.html)
2615	// in the Batch User Guide.
2616	//
2617	// This parameter isn't applicable to jobs that are running on Fargate resources,
2618	// and shouldn't be specified.
2619	InstanceRole *string `locationName:"instanceRole" type:"string"`
2620
2621	// The instances types that can be launched. You can specify instance families
2622	// to launch any instance type within those families (for example, c5 or p3),
2623	// or you can specify specific sizes within a family (such as c5.8xlarge). You
2624	// can also choose optimal to select instance types (from the C4, M4, and R4
2625	// instance families) that match the demand of your job queues.
2626	//
2627	// This parameter isn't applicable to jobs that are running on Fargate resources,
2628	// and shouldn't be specified.
2629	//
2630	// When you create a compute environment, the instance types that you select
2631	// for the compute environment must share the same architecture. For example,
2632	// you can't mix x86 and ARM instances in the same compute environment.
2633	//
2634	// Currently, optimal uses instance types from the C4, M4, and R4 instance families.
2635	// In Regions that don't have instance types from those instance families, instance
2636	// types from the C5, M5. and R5 instance families are used.
2637	InstanceTypes []*string `locationName:"instanceTypes" type:"list"`
2638
2639	// The launch template to use for your compute resources. Any other compute
2640	// resource parameters that you specify in a CreateComputeEnvironment API operation
2641	// override the same parameters in the launch template. You must specify either
2642	// the launch template ID or launch template name in the request, but not both.
2643	// For more information, see Launch Template Support (https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html)
2644	// in the Batch User Guide.
2645	//
2646	// This parameter isn't applicable to jobs that are running on Fargate resources,
2647	// and shouldn't be specified.
2648	LaunchTemplate *LaunchTemplateSpecification `locationName:"launchTemplate" type:"structure"`
2649
2650	// The maximum number of Amazon EC2 vCPUs that a compute environment can reach.
2651	//
2652	// With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED allocation strategies,
2653	// Batch might need to exceed maxvCpus to meet your capacity requirements. In
2654	// this event, Batch never exceeds maxvCpus by more than a single instance.
2655	// For example, no more than a single instance from among those specified in
2656	// your compute environment is allocated.
2657	//
2658	// MaxvCpus is a required field
2659	MaxvCpus *int64 `locationName:"maxvCpus" type:"integer" required:"true"`
2660
2661	// The minimum number of Amazon EC2 vCPUs that an environment should maintain
2662	// (even if the compute environment is DISABLED).
2663	//
2664	// This parameter isn't applicable to jobs that are running on Fargate resources,
2665	// and shouldn't be specified.
2666	MinvCpus *int64 `locationName:"minvCpus" type:"integer"`
2667
2668	// The Amazon EC2 placement group to associate with your compute resources.
2669	// If you intend to submit multi-node parallel jobs to your compute environment,
2670	// you should consider creating a cluster placement group and associate it with
2671	// your compute resources. This keeps your multi-node parallel job on a logical
2672	// grouping of instances within a single Availability Zone with high network
2673	// flow potential. For more information, see Placement Groups (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html)
2674	// in the Amazon EC2 User Guide for Linux Instances.
2675	//
2676	// This parameter isn't applicable to jobs that are running on Fargate resources,
2677	// and shouldn't be specified.
2678	PlacementGroup *string `locationName:"placementGroup" type:"string"`
2679
2680	// The Amazon EC2 security groups associated with instances launched in the
2681	// compute environment. One or more security groups must be specified, either
2682	// in securityGroupIds or using a launch template referenced in launchTemplate.
2683	// This parameter is required for jobs that are running on Fargate resources
2684	// and must contain at least one security group. Fargate doesn't support launch
2685	// templates. If security groups are specified using both securityGroupIds and
2686	// launchTemplate, the values in securityGroupIds are used.
2687	SecurityGroupIds []*string `locationName:"securityGroupIds" type:"list"`
2688
2689	// The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied
2690	// to a SPOT compute environment. This role is required if the allocation strategy
2691	// set to BEST_FIT or if the allocation strategy isn't specified. For more information,
2692	// see Amazon EC2 Spot Fleet Role (https://docs.aws.amazon.com/batch/latest/userguide/spot_fleet_IAM_role.html)
2693	// in the Batch User Guide.
2694	//
2695	// This parameter isn't applicable to jobs that are running on Fargate resources,
2696	// and shouldn't be specified.
2697	//
2698	// To tag your Spot Instances on creation, the Spot Fleet IAM role specified
2699	// here must use the newer AmazonEC2SpotFleetTaggingRole managed policy. The
2700	// previously recommended AmazonEC2SpotFleetRole managed policy doesn't have
2701	// the required permissions to tag Spot Instances. For more information, see
2702	// Spot Instances not tagged on creation (https://docs.aws.amazon.com/batch/latest/userguide/troubleshooting.html#spot-instance-no-tag)
2703	// in the Batch User Guide.
2704	SpotIamFleetRole *string `locationName:"spotIamFleetRole" type:"string"`
2705
2706	// The VPC subnets where the compute resources are launched. These subnets must
2707	// be within the same VPC. Fargate compute resources can contain up to 16 subnets.
2708	// For more information, see VPCs and Subnets (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)
2709	// in the Amazon VPC User Guide.
2710	//
2711	// Subnets is a required field
2712	Subnets []*string `locationName:"subnets" type:"list" required:"true"`
2713
2714	// Key-value pair tags to be applied to EC2 resources that are launched in the
2715	// compute environment. For Batch, these take the form of "String1": "String2",
2716	// where String1 is the tag key and String2 is the tag value−for example,
2717	// { "Name": "Batch Instance - C4OnDemand" }. This is helpful for recognizing
2718	// your Batch instances in the Amazon EC2 console. These tags can't be updated
2719	// or removed after the compute environment is created.Aany changes to these
2720	// tags require that you create a new compute environment and remove the old
2721	// compute environment. These tags aren't seen when using the Batch ListTagsForResource
2722	// API operation.
2723	//
2724	// This parameter isn't applicable to jobs that are running on Fargate resources,
2725	// and shouldn't be specified.
2726	Tags map[string]*string `locationName:"tags" type:"map"`
2727
2728	// The type of compute environment: EC2, SPOT, FARGATE, or FARGATE_SPOT. For
2729	// more information, see Compute Environments (https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html)
2730	// in the Batch User Guide.
2731	//
2732	// If you choose SPOT, you must also specify an Amazon EC2 Spot Fleet role with
2733	// the spotIamFleetRole parameter. For more information, see Amazon EC2 Spot
2734	// Fleet role (https://docs.aws.amazon.com/batch/latest/userguide/spot_fleet_IAM_role.html)
2735	// in the Batch User Guide.
2736	//
2737	// Type is a required field
2738	Type *string `locationName:"type" type:"string" required:"true" enum:"CRType"`
2739}
2740
2741// String returns the string representation
2742func (s ComputeResource) String() string {
2743	return awsutil.Prettify(s)
2744}
2745
2746// GoString returns the string representation
2747func (s ComputeResource) GoString() string {
2748	return s.String()
2749}
2750
2751// Validate inspects the fields of the type to determine if they are valid.
2752func (s *ComputeResource) Validate() error {
2753	invalidParams := request.ErrInvalidParams{Context: "ComputeResource"}
2754	if s.MaxvCpus == nil {
2755		invalidParams.Add(request.NewErrParamRequired("MaxvCpus"))
2756	}
2757	if s.Subnets == nil {
2758		invalidParams.Add(request.NewErrParamRequired("Subnets"))
2759	}
2760	if s.Type == nil {
2761		invalidParams.Add(request.NewErrParamRequired("Type"))
2762	}
2763	if s.Ec2Configuration != nil {
2764		for i, v := range s.Ec2Configuration {
2765			if v == nil {
2766				continue
2767			}
2768			if err := v.Validate(); err != nil {
2769				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Ec2Configuration", i), err.(request.ErrInvalidParams))
2770			}
2771		}
2772	}
2773
2774	if invalidParams.Len() > 0 {
2775		return invalidParams
2776	}
2777	return nil
2778}
2779
2780// SetAllocationStrategy sets the AllocationStrategy field's value.
2781func (s *ComputeResource) SetAllocationStrategy(v string) *ComputeResource {
2782	s.AllocationStrategy = &v
2783	return s
2784}
2785
2786// SetBidPercentage sets the BidPercentage field's value.
2787func (s *ComputeResource) SetBidPercentage(v int64) *ComputeResource {
2788	s.BidPercentage = &v
2789	return s
2790}
2791
2792// SetDesiredvCpus sets the DesiredvCpus field's value.
2793func (s *ComputeResource) SetDesiredvCpus(v int64) *ComputeResource {
2794	s.DesiredvCpus = &v
2795	return s
2796}
2797
2798// SetEc2Configuration sets the Ec2Configuration field's value.
2799func (s *ComputeResource) SetEc2Configuration(v []*Ec2Configuration) *ComputeResource {
2800	s.Ec2Configuration = v
2801	return s
2802}
2803
2804// SetEc2KeyPair sets the Ec2KeyPair field's value.
2805func (s *ComputeResource) SetEc2KeyPair(v string) *ComputeResource {
2806	s.Ec2KeyPair = &v
2807	return s
2808}
2809
2810// SetImageId sets the ImageId field's value.
2811func (s *ComputeResource) SetImageId(v string) *ComputeResource {
2812	s.ImageId = &v
2813	return s
2814}
2815
2816// SetInstanceRole sets the InstanceRole field's value.
2817func (s *ComputeResource) SetInstanceRole(v string) *ComputeResource {
2818	s.InstanceRole = &v
2819	return s
2820}
2821
2822// SetInstanceTypes sets the InstanceTypes field's value.
2823func (s *ComputeResource) SetInstanceTypes(v []*string) *ComputeResource {
2824	s.InstanceTypes = v
2825	return s
2826}
2827
2828// SetLaunchTemplate sets the LaunchTemplate field's value.
2829func (s *ComputeResource) SetLaunchTemplate(v *LaunchTemplateSpecification) *ComputeResource {
2830	s.LaunchTemplate = v
2831	return s
2832}
2833
2834// SetMaxvCpus sets the MaxvCpus field's value.
2835func (s *ComputeResource) SetMaxvCpus(v int64) *ComputeResource {
2836	s.MaxvCpus = &v
2837	return s
2838}
2839
2840// SetMinvCpus sets the MinvCpus field's value.
2841func (s *ComputeResource) SetMinvCpus(v int64) *ComputeResource {
2842	s.MinvCpus = &v
2843	return s
2844}
2845
2846// SetPlacementGroup sets the PlacementGroup field's value.
2847func (s *ComputeResource) SetPlacementGroup(v string) *ComputeResource {
2848	s.PlacementGroup = &v
2849	return s
2850}
2851
2852// SetSecurityGroupIds sets the SecurityGroupIds field's value.
2853func (s *ComputeResource) SetSecurityGroupIds(v []*string) *ComputeResource {
2854	s.SecurityGroupIds = v
2855	return s
2856}
2857
2858// SetSpotIamFleetRole sets the SpotIamFleetRole field's value.
2859func (s *ComputeResource) SetSpotIamFleetRole(v string) *ComputeResource {
2860	s.SpotIamFleetRole = &v
2861	return s
2862}
2863
2864// SetSubnets sets the Subnets field's value.
2865func (s *ComputeResource) SetSubnets(v []*string) *ComputeResource {
2866	s.Subnets = v
2867	return s
2868}
2869
2870// SetTags sets the Tags field's value.
2871func (s *ComputeResource) SetTags(v map[string]*string) *ComputeResource {
2872	s.Tags = v
2873	return s
2874}
2875
2876// SetType sets the Type field's value.
2877func (s *ComputeResource) SetType(v string) *ComputeResource {
2878	s.Type = &v
2879	return s
2880}
2881
2882// An object representing the attributes of a compute environment that can be
2883// updated. For more information, see Compute Environments (https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html)
2884// in the Batch User Guide.
2885type ComputeResourceUpdate struct {
2886	_ struct{} `type:"structure"`
2887
2888	// The desired number of Amazon EC2 vCPUS in the compute environment.
2889	//
2890	// This parameter isn't applicable to jobs that are running on Fargate resources,
2891	// and shouldn't be specified.
2892	DesiredvCpus *int64 `locationName:"desiredvCpus" type:"integer"`
2893
2894	// The maximum number of Amazon EC2 vCPUs that an environment can reach.
2895	//
2896	// With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED allocation strategies,
2897	// Batch might need to exceed maxvCpus to meet your capacity requirements. In
2898	// this event, Batch never exceeds maxvCpus by more than a single instance.
2899	// That is, no more than a single instance from among those specified in your
2900	// compute environment.
2901	MaxvCpus *int64 `locationName:"maxvCpus" type:"integer"`
2902
2903	// The minimum number of Amazon EC2 vCPUs that an environment should maintain.
2904	//
2905	// This parameter isn't applicable to jobs that are running on Fargate resources,
2906	// and shouldn't be specified.
2907	MinvCpus *int64 `locationName:"minvCpus" type:"integer"`
2908
2909	// The Amazon EC2 security groups associated with instances launched in the
2910	// compute environment. This parameter is required for Fargate compute resources,
2911	// where it can contain up to 5 security groups. This can't be specified for
2912	// EC2 compute resources. Providing an empty list is handled as if this parameter
2913	// wasn't specified and no change is made.
2914	SecurityGroupIds []*string `locationName:"securityGroupIds" type:"list"`
2915
2916	// The VPC subnets where the compute resources are launched. Fargate compute
2917	// resources can contain up to 16 subnets. Providing an empty list will be handled
2918	// as if this parameter wasn't specified and no change is made. This can't be
2919	// specified for EC2 compute resources. For more information, see VPCs and Subnets
2920	// (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) in the
2921	// Amazon VPC User Guide.
2922	Subnets []*string `locationName:"subnets" type:"list"`
2923}
2924
2925// String returns the string representation
2926func (s ComputeResourceUpdate) String() string {
2927	return awsutil.Prettify(s)
2928}
2929
2930// GoString returns the string representation
2931func (s ComputeResourceUpdate) GoString() string {
2932	return s.String()
2933}
2934
2935// SetDesiredvCpus sets the DesiredvCpus field's value.
2936func (s *ComputeResourceUpdate) SetDesiredvCpus(v int64) *ComputeResourceUpdate {
2937	s.DesiredvCpus = &v
2938	return s
2939}
2940
2941// SetMaxvCpus sets the MaxvCpus field's value.
2942func (s *ComputeResourceUpdate) SetMaxvCpus(v int64) *ComputeResourceUpdate {
2943	s.MaxvCpus = &v
2944	return s
2945}
2946
2947// SetMinvCpus sets the MinvCpus field's value.
2948func (s *ComputeResourceUpdate) SetMinvCpus(v int64) *ComputeResourceUpdate {
2949	s.MinvCpus = &v
2950	return s
2951}
2952
2953// SetSecurityGroupIds sets the SecurityGroupIds field's value.
2954func (s *ComputeResourceUpdate) SetSecurityGroupIds(v []*string) *ComputeResourceUpdate {
2955	s.SecurityGroupIds = v
2956	return s
2957}
2958
2959// SetSubnets sets the Subnets field's value.
2960func (s *ComputeResourceUpdate) SetSubnets(v []*string) *ComputeResourceUpdate {
2961	s.Subnets = v
2962	return s
2963}
2964
2965// An object representing the details of a container that's part of a job.
2966type ContainerDetail struct {
2967	_ struct{} `type:"structure"`
2968
2969	// The command that's passed to the container.
2970	Command []*string `locationName:"command" type:"list"`
2971
2972	// The Amazon Resource Name (ARN) of the container instance that the container
2973	// is running on.
2974	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
2975
2976	// The environment variables to pass to a container.
2977	//
2978	// Environment variables must not start with AWS_BATCH; this naming convention
2979	// is reserved for variables that are set by the Batch service.
2980	Environment []*KeyValuePair `locationName:"environment" type:"list"`
2981
2982	// The Amazon Resource Name (ARN) of the execution role that Batch can assume.
2983	// For more information, see Batch execution IAM role (https://docs.aws.amazon.com/batch/latest/userguide/execution-IAM-role.html)
2984	// in the Batch User Guide.
2985	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
2986
2987	// The exit code to return upon completion.
2988	ExitCode *int64 `locationName:"exitCode" type:"integer"`
2989
2990	// The platform configuration for jobs that are running on Fargate resources.
2991	// Jobs that are running on EC2 resources must not specify this parameter.
2992	FargatePlatformConfiguration *FargatePlatformConfiguration `locationName:"fargatePlatformConfiguration" type:"structure"`
2993
2994	// The image used to start the container.
2995	Image *string `locationName:"image" type:"string"`
2996
2997	// The instance type of the underlying host infrastructure of a multi-node parallel
2998	// job.
2999	//
3000	// This parameter isn't applicable to jobs that are running on Fargate resources.
3001	InstanceType *string `locationName:"instanceType" type:"string"`
3002
3003	// The Amazon Resource Name (ARN) associated with the job upon execution.
3004	JobRoleArn *string `locationName:"jobRoleArn" type:"string"`
3005
3006	// Linux-specific modifications that are applied to the container, such as details
3007	// for device mappings.
3008	LinuxParameters *LinuxParameters `locationName:"linuxParameters" type:"structure"`
3009
3010	// The log configuration specification for the container.
3011	//
3012	// This parameter maps to LogConfig in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
3013	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
3014	// and the --log-driver option to docker run (https://docs.docker.com/engine/reference/run/).
3015	// By default, containers use the same logging driver that the Docker daemon
3016	// uses. However, the container might use a different logging driver than the
3017	// Docker daemon by specifying a log driver with this parameter in the container
3018	// definition. To use a different logging driver for a container, the log system
3019	// must be configured properly on the container instance. Or, alternatively,
3020	// it must be configured on a different log server for remote logging options.
3021	// For more information on the options for different supported log drivers,
3022	// see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
3023	// in the Docker documentation.
3024	//
3025	// Batch currently supports a subset of the logging drivers available to the
3026	// Docker daemon (shown in the LogConfiguration data type). Additional log drivers
3027	// might be available in future releases of the Amazon ECS container agent.
3028	//
3029	// This parameter requires version 1.18 of the Docker Remote API or greater
3030	// on your container instance. To check the Docker Remote API version on your
3031	// container instance, log into your container instance and run the following
3032	// command: sudo docker version | grep "Server API version"
3033	//
3034	// The Amazon ECS container agent running on a container instance must register
3035	// the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS
3036	// environment variable before containers placed on that instance can use these
3037	// log configuration options. For more information, see Amazon ECS Container
3038	// Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
3039	// in the Amazon Elastic Container Service Developer Guide.
3040	LogConfiguration *LogConfiguration `locationName:"logConfiguration" type:"structure"`
3041
3042	// The name of the CloudWatch Logs log stream associated with the container.
3043	// The log group for Batch jobs is /aws/batch/job. Each container attempt receives
3044	// a log stream name when they reach the RUNNING status.
3045	LogStreamName *string `locationName:"logStreamName" type:"string"`
3046
3047	// For jobs run on EC2 resources that didn't specify memory requirements using
3048	// ResourceRequirement, the number of MiB of memory reserved for the job. For
3049	// other jobs, including all run on Fargate resources, see resourceRequirements.
3050	Memory *int64 `locationName:"memory" type:"integer"`
3051
3052	// The mount points for data volumes in your container.
3053	MountPoints []*MountPoint `locationName:"mountPoints" type:"list"`
3054
3055	// The network configuration for jobs that are running on Fargate resources.
3056	// Jobs that are running on EC2 resources must not specify this parameter.
3057	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
3058
3059	// The network interfaces associated with the job.
3060	NetworkInterfaces []*NetworkInterface `locationName:"networkInterfaces" type:"list"`
3061
3062	// When this parameter is true, the container is given elevated permissions
3063	// on the host container instance (similar to the root user). The default value
3064	// is false.
3065	//
3066	// This parameter isn't applicable to jobs that are running on Fargate resources
3067	// and shouldn't be provided, or specified as false.
3068	Privileged *bool `locationName:"privileged" type:"boolean"`
3069
3070	// When this parameter is true, the container is given read-only access to its
3071	// root file system. This parameter maps to ReadonlyRootfs in the Create a container
3072	// (https://docs.docker.com/engine/api/v1.23/#create-a-container) section of
3073	// the Docker Remote API (https://docs.docker.com/engine/api/v1.23/) and the
3074	// --read-only option to docker run (https://docs.docker.com/engine/reference/commandline/run/).
3075	ReadonlyRootFilesystem *bool `locationName:"readonlyRootFilesystem" type:"boolean"`
3076
3077	// A short (255 max characters) human-readable string to provide additional
3078	// details about a running or stopped container.
3079	Reason *string `locationName:"reason" type:"string"`
3080
3081	// The type and amount of resources to assign to a container. The supported
3082	// resources include GPU, MEMORY, and VCPU.
3083	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
3084
3085	// The secrets to pass to the container. For more information, see Specifying
3086	// sensitive data (https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html)
3087	// in the Batch User Guide.
3088	Secrets []*Secret `locationName:"secrets" type:"list"`
3089
3090	// The Amazon Resource Name (ARN) of the Amazon ECS task that's associated with
3091	// the container job. Each container attempt receives a task ARN when they reach
3092	// the STARTING status.
3093	TaskArn *string `locationName:"taskArn" type:"string"`
3094
3095	// A list of ulimit values to set in the container. This parameter maps to Ulimits
3096	// in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
3097	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
3098	// and the --ulimit option to docker run (https://docs.docker.com/engine/reference/run/).
3099	//
3100	// This parameter isn't applicable to jobs that are running on Fargate resources.
3101	Ulimits []*Ulimit `locationName:"ulimits" type:"list"`
3102
3103	// The user name to use inside the container. This parameter maps to User in
3104	// the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
3105	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
3106	// and the --user option to docker run (https://docs.docker.com/engine/reference/run/).
3107	User *string `locationName:"user" type:"string"`
3108
3109	// The number of vCPUs reserved for the container. For jobs that run on EC2
3110	// resources, you can specify the vCPU requirement for the job using resourceRequirements,
3111	// but you can't specify the vCPU requirements in both the vcpus and resourceRequirement
3112	// object. This parameter maps to CpuShares in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
3113	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
3114	// and the --cpu-shares option to docker run (https://docs.docker.com/engine/reference/run/).
3115	// Each vCPU is equivalent to 1,024 CPU shares. You must specify at least one
3116	// vCPU. This is required but can be specified in several places. It must be
3117	// specified for each node at least once.
3118	//
3119	// This parameter isn't applicable to jobs that run on Fargate resources. For
3120	// jobs that run on Fargate resources, you must specify the vCPU requirement
3121	// for the job using resourceRequirements.
3122	Vcpus *int64 `locationName:"vcpus" type:"integer"`
3123
3124	// A list of volumes associated with the job.
3125	Volumes []*Volume `locationName:"volumes" type:"list"`
3126}
3127
3128// String returns the string representation
3129func (s ContainerDetail) String() string {
3130	return awsutil.Prettify(s)
3131}
3132
3133// GoString returns the string representation
3134func (s ContainerDetail) GoString() string {
3135	return s.String()
3136}
3137
3138// SetCommand sets the Command field's value.
3139func (s *ContainerDetail) SetCommand(v []*string) *ContainerDetail {
3140	s.Command = v
3141	return s
3142}
3143
3144// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
3145func (s *ContainerDetail) SetContainerInstanceArn(v string) *ContainerDetail {
3146	s.ContainerInstanceArn = &v
3147	return s
3148}
3149
3150// SetEnvironment sets the Environment field's value.
3151func (s *ContainerDetail) SetEnvironment(v []*KeyValuePair) *ContainerDetail {
3152	s.Environment = v
3153	return s
3154}
3155
3156// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
3157func (s *ContainerDetail) SetExecutionRoleArn(v string) *ContainerDetail {
3158	s.ExecutionRoleArn = &v
3159	return s
3160}
3161
3162// SetExitCode sets the ExitCode field's value.
3163func (s *ContainerDetail) SetExitCode(v int64) *ContainerDetail {
3164	s.ExitCode = &v
3165	return s
3166}
3167
3168// SetFargatePlatformConfiguration sets the FargatePlatformConfiguration field's value.
3169func (s *ContainerDetail) SetFargatePlatformConfiguration(v *FargatePlatformConfiguration) *ContainerDetail {
3170	s.FargatePlatformConfiguration = v
3171	return s
3172}
3173
3174// SetImage sets the Image field's value.
3175func (s *ContainerDetail) SetImage(v string) *ContainerDetail {
3176	s.Image = &v
3177	return s
3178}
3179
3180// SetInstanceType sets the InstanceType field's value.
3181func (s *ContainerDetail) SetInstanceType(v string) *ContainerDetail {
3182	s.InstanceType = &v
3183	return s
3184}
3185
3186// SetJobRoleArn sets the JobRoleArn field's value.
3187func (s *ContainerDetail) SetJobRoleArn(v string) *ContainerDetail {
3188	s.JobRoleArn = &v
3189	return s
3190}
3191
3192// SetLinuxParameters sets the LinuxParameters field's value.
3193func (s *ContainerDetail) SetLinuxParameters(v *LinuxParameters) *ContainerDetail {
3194	s.LinuxParameters = v
3195	return s
3196}
3197
3198// SetLogConfiguration sets the LogConfiguration field's value.
3199func (s *ContainerDetail) SetLogConfiguration(v *LogConfiguration) *ContainerDetail {
3200	s.LogConfiguration = v
3201	return s
3202}
3203
3204// SetLogStreamName sets the LogStreamName field's value.
3205func (s *ContainerDetail) SetLogStreamName(v string) *ContainerDetail {
3206	s.LogStreamName = &v
3207	return s
3208}
3209
3210// SetMemory sets the Memory field's value.
3211func (s *ContainerDetail) SetMemory(v int64) *ContainerDetail {
3212	s.Memory = &v
3213	return s
3214}
3215
3216// SetMountPoints sets the MountPoints field's value.
3217func (s *ContainerDetail) SetMountPoints(v []*MountPoint) *ContainerDetail {
3218	s.MountPoints = v
3219	return s
3220}
3221
3222// SetNetworkConfiguration sets the NetworkConfiguration field's value.
3223func (s *ContainerDetail) SetNetworkConfiguration(v *NetworkConfiguration) *ContainerDetail {
3224	s.NetworkConfiguration = v
3225	return s
3226}
3227
3228// SetNetworkInterfaces sets the NetworkInterfaces field's value.
3229func (s *ContainerDetail) SetNetworkInterfaces(v []*NetworkInterface) *ContainerDetail {
3230	s.NetworkInterfaces = v
3231	return s
3232}
3233
3234// SetPrivileged sets the Privileged field's value.
3235func (s *ContainerDetail) SetPrivileged(v bool) *ContainerDetail {
3236	s.Privileged = &v
3237	return s
3238}
3239
3240// SetReadonlyRootFilesystem sets the ReadonlyRootFilesystem field's value.
3241func (s *ContainerDetail) SetReadonlyRootFilesystem(v bool) *ContainerDetail {
3242	s.ReadonlyRootFilesystem = &v
3243	return s
3244}
3245
3246// SetReason sets the Reason field's value.
3247func (s *ContainerDetail) SetReason(v string) *ContainerDetail {
3248	s.Reason = &v
3249	return s
3250}
3251
3252// SetResourceRequirements sets the ResourceRequirements field's value.
3253func (s *ContainerDetail) SetResourceRequirements(v []*ResourceRequirement) *ContainerDetail {
3254	s.ResourceRequirements = v
3255	return s
3256}
3257
3258// SetSecrets sets the Secrets field's value.
3259func (s *ContainerDetail) SetSecrets(v []*Secret) *ContainerDetail {
3260	s.Secrets = v
3261	return s
3262}
3263
3264// SetTaskArn sets the TaskArn field's value.
3265func (s *ContainerDetail) SetTaskArn(v string) *ContainerDetail {
3266	s.TaskArn = &v
3267	return s
3268}
3269
3270// SetUlimits sets the Ulimits field's value.
3271func (s *ContainerDetail) SetUlimits(v []*Ulimit) *ContainerDetail {
3272	s.Ulimits = v
3273	return s
3274}
3275
3276// SetUser sets the User field's value.
3277func (s *ContainerDetail) SetUser(v string) *ContainerDetail {
3278	s.User = &v
3279	return s
3280}
3281
3282// SetVcpus sets the Vcpus field's value.
3283func (s *ContainerDetail) SetVcpus(v int64) *ContainerDetail {
3284	s.Vcpus = &v
3285	return s
3286}
3287
3288// SetVolumes sets the Volumes field's value.
3289func (s *ContainerDetail) SetVolumes(v []*Volume) *ContainerDetail {
3290	s.Volumes = v
3291	return s
3292}
3293
3294// The overrides that should be sent to a container.
3295type ContainerOverrides struct {
3296	_ struct{} `type:"structure"`
3297
3298	// The command to send to the container that overrides the default command from
3299	// the Docker image or the job definition.
3300	Command []*string `locationName:"command" type:"list"`
3301
3302	// The environment variables to send to the container. You can add new environment
3303	// variables, which are added to the container at launch, or you can override
3304	// the existing environment variables from the Docker image or the job definition.
3305	//
3306	// Environment variables must not start with AWS_BATCH; this naming convention
3307	// is reserved for variables that are set by the Batch service.
3308	Environment []*KeyValuePair `locationName:"environment" type:"list"`
3309
3310	// The instance type to use for a multi-node parallel job.
3311	//
3312	// This parameter isn't applicable to single-node container jobs or jobs that
3313	// run on Fargate resources, and shouldn't be provided.
3314	InstanceType *string `locationName:"instanceType" type:"string"`
3315
3316	// This parameter indicates the amount of memory (in MiB) that's reserved for
3317	// the job. It overrides the memory parameter set in the job definition, but
3318	// doesn't override any memory requirement specified in the ResourceRequirement
3319	// structure in the job definition. To override memory requirements that are
3320	// specified in the ResourceRequirement structure in the job definition, ResourceRequirement
3321	// must be specified in the SubmitJob request, with type set to MEMORY and value
3322	// set to the new value.
3323	//
3324	// This parameter is supported for jobs that run on EC2 resources, but isn't
3325	// supported for jobs that run on Fargate resources. For these resources, use
3326	// resourceRequirement instead.
3327	//
3328	// Deprecated: This field is deprecated, use resourceRequirements instead.
3329	Memory *int64 `locationName:"memory" deprecated:"true" type:"integer"`
3330
3331	// The type and amount of resources to assign to a container. This overrides
3332	// the settings in the job definition. The supported resources include GPU,
3333	// MEMORY, and VCPU.
3334	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
3335
3336	// This parameter indicates the number of vCPUs reserved for the container.It
3337	// overrides the vcpus parameter that's set in the job definition, but doesn't
3338	// override any vCPU requirement specified in the resourceRequirement structure
3339	// in the job definition. To override vCPU requirements that are specified in
3340	// the ResourceRequirement structure in the job definition, ResourceRequirement
3341	// must be specified in the SubmitJob request, with type set to VCPU and value
3342	// set to the new value.
3343	//
3344	// This parameter maps to CpuShares in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
3345	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
3346	// and the --cpu-shares option to docker run (https://docs.docker.com/engine/reference/run/).
3347	// Each vCPU is equivalent to 1,024 CPU shares. You must specify at least one
3348	// vCPU.
3349	//
3350	// This parameter is supported for jobs that run on EC2 resources, but isn't
3351	// supported for jobs that run on Fargate resources. For Fargate resources,
3352	// you can only use resourceRequirement. For EC2 resources, you can use either
3353	// this parameter or resourceRequirement but not both.
3354	//
3355	// Deprecated: This field is deprecated, use resourceRequirements instead.
3356	Vcpus *int64 `locationName:"vcpus" deprecated:"true" type:"integer"`
3357}
3358
3359// String returns the string representation
3360func (s ContainerOverrides) String() string {
3361	return awsutil.Prettify(s)
3362}
3363
3364// GoString returns the string representation
3365func (s ContainerOverrides) GoString() string {
3366	return s.String()
3367}
3368
3369// Validate inspects the fields of the type to determine if they are valid.
3370func (s *ContainerOverrides) Validate() error {
3371	invalidParams := request.ErrInvalidParams{Context: "ContainerOverrides"}
3372	if s.ResourceRequirements != nil {
3373		for i, v := range s.ResourceRequirements {
3374			if v == nil {
3375				continue
3376			}
3377			if err := v.Validate(); err != nil {
3378				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
3379			}
3380		}
3381	}
3382
3383	if invalidParams.Len() > 0 {
3384		return invalidParams
3385	}
3386	return nil
3387}
3388
3389// SetCommand sets the Command field's value.
3390func (s *ContainerOverrides) SetCommand(v []*string) *ContainerOverrides {
3391	s.Command = v
3392	return s
3393}
3394
3395// SetEnvironment sets the Environment field's value.
3396func (s *ContainerOverrides) SetEnvironment(v []*KeyValuePair) *ContainerOverrides {
3397	s.Environment = v
3398	return s
3399}
3400
3401// SetInstanceType sets the InstanceType field's value.
3402func (s *ContainerOverrides) SetInstanceType(v string) *ContainerOverrides {
3403	s.InstanceType = &v
3404	return s
3405}
3406
3407// SetMemory sets the Memory field's value.
3408func (s *ContainerOverrides) SetMemory(v int64) *ContainerOverrides {
3409	s.Memory = &v
3410	return s
3411}
3412
3413// SetResourceRequirements sets the ResourceRequirements field's value.
3414func (s *ContainerOverrides) SetResourceRequirements(v []*ResourceRequirement) *ContainerOverrides {
3415	s.ResourceRequirements = v
3416	return s
3417}
3418
3419// SetVcpus sets the Vcpus field's value.
3420func (s *ContainerOverrides) SetVcpus(v int64) *ContainerOverrides {
3421	s.Vcpus = &v
3422	return s
3423}
3424
3425// Container properties are used in job definitions to describe the container
3426// that's launched as part of a job.
3427type ContainerProperties struct {
3428	_ struct{} `type:"structure"`
3429
3430	// The command that's passed to the container. This parameter maps to Cmd in
3431	// the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
3432	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
3433	// and the COMMAND parameter to docker run (https://docs.docker.com/engine/reference/run/).
3434	// For more information, see https://docs.docker.com/engine/reference/builder/#cmd
3435	// (https://docs.docker.com/engine/reference/builder/#cmd).
3436	Command []*string `locationName:"command" type:"list"`
3437
3438	// The environment variables to pass to a container. This parameter maps to
3439	// Env in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
3440	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
3441	// and the --env option to docker run (https://docs.docker.com/engine/reference/run/).
3442	//
3443	// We don't recommend using plaintext environment variables for sensitive information,
3444	// such as credential data.
3445	//
3446	// Environment variables must not start with AWS_BATCH; this naming convention
3447	// is reserved for variables that are set by the Batch service.
3448	Environment []*KeyValuePair `locationName:"environment" type:"list"`
3449
3450	// The Amazon Resource Name (ARN) of the execution role that Batch can assume.
3451	// For jobs that run on Fargate resources, you must provide an execution role.
3452	// For more information, see Batch execution IAM role (https://docs.aws.amazon.com/batch/latest/userguide/execution-IAM-role.html)
3453	// in the Batch User Guide.
3454	ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"`
3455
3456	// The platform configuration for jobs that are running on Fargate resources.
3457	// Jobs that are running on EC2 resources must not specify this parameter.
3458	FargatePlatformConfiguration *FargatePlatformConfiguration `locationName:"fargatePlatformConfiguration" type:"structure"`
3459
3460	// The image used to start a container. This string is passed directly to the
3461	// Docker daemon. Images in the Docker Hub registry are available by default.
3462	// Other repositories are specified with repository-url/image:tag . Up to 255
3463	// letters (uppercase and lowercase), numbers, hyphens, underscores, colons,
3464	// periods, forward slashes, and number signs are allowed. This parameter maps
3465	// to Image in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
3466	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
3467	// and the IMAGE parameter of docker run (https://docs.docker.com/engine/reference/run/).
3468	//
3469	// Docker image architecture must match the processor architecture of the compute
3470	// resources that they're scheduled on. For example, ARM-based Docker images
3471	// can only run on ARM-based compute resources.
3472	//
3473	//    * Images in Amazon ECR repositories use the full registry and repository
3474	//    URI (for example, 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>).
3475	//
3476	//    * Images in official repositories on Docker Hub use a single name (for
3477	//    example, ubuntu or mongo).
3478	//
3479	//    * Images in other repositories on Docker Hub are qualified with an organization
3480	//    name (for example, amazon/amazon-ecs-agent).
3481	//
3482	//    * Images in other online repositories are qualified further by a domain
3483	//    name (for example, quay.io/assemblyline/ubuntu).
3484	Image *string `locationName:"image" type:"string"`
3485
3486	// The instance type to use for a multi-node parallel job. All node groups in
3487	// a multi-node parallel job must use the same instance type.
3488	//
3489	// This parameter isn't applicable to single-node container jobs or jobs that
3490	// run on Fargate resources, and shouldn't be provided.
3491	InstanceType *string `locationName:"instanceType" type:"string"`
3492
3493	// The Amazon Resource Name (ARN) of the IAM role that the container can assume
3494	// for Amazon Web Services permissions. For more information, see IAM Roles
3495	// for Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
3496	// in the Amazon Elastic Container Service Developer Guide.
3497	JobRoleArn *string `locationName:"jobRoleArn" type:"string"`
3498
3499	// Linux-specific modifications that are applied to the container, such as details
3500	// for device mappings.
3501	LinuxParameters *LinuxParameters `locationName:"linuxParameters" type:"structure"`
3502
3503	// The log configuration specification for the container.
3504	//
3505	// This parameter maps to LogConfig in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
3506	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
3507	// and the --log-driver option to docker run (https://docs.docker.com/engine/reference/run/).
3508	// By default, containers use the same logging driver that the Docker daemon
3509	// uses. However the container might use a different logging driver than the
3510	// Docker daemon by specifying a log driver with this parameter in the container
3511	// definition. To use a different logging driver for a container, the log system
3512	// must be configured properly on the container instance (or on a different
3513	// log server for remote logging options). For more information on the options
3514	// for different supported log drivers, see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
3515	// in the Docker documentation.
3516	//
3517	// Batch currently supports a subset of the logging drivers available to the
3518	// Docker daemon (shown in the LogConfiguration data type).
3519	//
3520	// This parameter requires version 1.18 of the Docker Remote API or greater
3521	// on your container instance. To check the Docker Remote API version on your
3522	// container instance, log into your container instance and run the following
3523	// command: sudo docker version | grep "Server API version"
3524	//
3525	// The Amazon ECS container agent running on a container instance must register
3526	// the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS
3527	// environment variable before containers placed on that instance can use these
3528	// log configuration options. For more information, see Amazon ECS Container
3529	// Agent Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
3530	// in the Amazon Elastic Container Service Developer Guide.
3531	LogConfiguration *LogConfiguration `locationName:"logConfiguration" type:"structure"`
3532
3533	// This parameter indicates the memory hard limit (in MiB) for a container.
3534	// If your container attempts to exceed the specified number, it's terminated.
3535	// You must specify at least 4 MiB of memory for a job using this parameter.
3536	// The memory hard limit can be specified in several places. It must be specified
3537	// for each node at least once.
3538	//
3539	// This parameter maps to Memory in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
3540	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
3541	// and the --memory option to docker run (https://docs.docker.com/engine/reference/run/).
3542	//
3543	// This parameter is supported on EC2 resources but isn't supported on Fargate
3544	// resources. For Fargate resources, you should specify the memory requirement
3545	// using resourceRequirement. You can also do this for EC2 resources.
3546	//
3547	// If you're trying to maximize your resource utilization by providing your
3548	// jobs as much memory as possible for a particular instance type, see Memory
3549	// Management (https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html)
3550	// in the Batch User Guide.
3551	//
3552	// Deprecated: This field is deprecated, use resourceRequirements instead.
3553	Memory *int64 `locationName:"memory" deprecated:"true" type:"integer"`
3554
3555	// The mount points for data volumes in your container. This parameter maps
3556	// to Volumes in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
3557	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
3558	// and the --volume option to docker run (https://docs.docker.com/engine/reference/run/).
3559	MountPoints []*MountPoint `locationName:"mountPoints" type:"list"`
3560
3561	// The network configuration for jobs that are running on Fargate resources.
3562	// Jobs that are running on EC2 resources must not specify this parameter.
3563	NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"`
3564
3565	// When this parameter is true, the container is given elevated permissions
3566	// on the host container instance (similar to the root user). This parameter
3567	// maps to Privileged in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
3568	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
3569	// and the --privileged option to docker run (https://docs.docker.com/engine/reference/run/).
3570	// The default value is false.
3571	//
3572	// This parameter isn't applicable to jobs that are running on Fargate resources
3573	// and shouldn't be provided, or specified as false.
3574	Privileged *bool `locationName:"privileged" type:"boolean"`
3575
3576	// When this parameter is true, the container is given read-only access to its
3577	// root file system. This parameter maps to ReadonlyRootfs in the Create a container
3578	// (https://docs.docker.com/engine/api/v1.23/#create-a-container) section of
3579	// the Docker Remote API (https://docs.docker.com/engine/api/v1.23/) and the
3580	// --read-only option to docker run.
3581	ReadonlyRootFilesystem *bool `locationName:"readonlyRootFilesystem" type:"boolean"`
3582
3583	// The type and amount of resources to assign to a container. The supported
3584	// resources include GPU, MEMORY, and VCPU.
3585	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
3586
3587	// The secrets for the container. For more information, see Specifying sensitive
3588	// data (https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html)
3589	// in the Batch User Guide.
3590	Secrets []*Secret `locationName:"secrets" type:"list"`
3591
3592	// A list of ulimits to set in the container. This parameter maps to Ulimits
3593	// in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
3594	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
3595	// and the --ulimit option to docker run (https://docs.docker.com/engine/reference/run/).
3596	//
3597	// This parameter isn't applicable to jobs that are running on Fargate resources
3598	// and shouldn't be provided.
3599	Ulimits []*Ulimit `locationName:"ulimits" type:"list"`
3600
3601	// The user name to use inside the container. This parameter maps to User in
3602	// the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
3603	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
3604	// and the --user option to docker run (https://docs.docker.com/engine/reference/run/).
3605	User *string `locationName:"user" type:"string"`
3606
3607	// The number of vCPUs reserved for the job. Each vCPU is equivalent to 1,024
3608	// CPU shares. This parameter maps to CpuShares in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
3609	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
3610	// and the --cpu-shares option to docker run (https://docs.docker.com/engine/reference/run/).
3611	// The number of vCPUs must be specified but can be specified in several places.
3612	// You must specify it at least once for each node.
3613	//
3614	// This parameter is supported on EC2 resources but isn't supported for jobs
3615	// that run on Fargate resources. For these resources, use resourceRequirement
3616	// instead. You can use this parameter or resourceRequirements structure but
3617	// not both.
3618	//
3619	// This parameter isn't applicable to jobs that are running on Fargate resources
3620	// and shouldn't be provided. For jobs that run on Fargate resources, you must
3621	// specify the vCPU requirement for the job using resourceRequirements.
3622	//
3623	// Deprecated: This field is deprecated, use resourceRequirements instead.
3624	Vcpus *int64 `locationName:"vcpus" deprecated:"true" type:"integer"`
3625
3626	// A list of data volumes used in a job.
3627	Volumes []*Volume `locationName:"volumes" type:"list"`
3628}
3629
3630// String returns the string representation
3631func (s ContainerProperties) String() string {
3632	return awsutil.Prettify(s)
3633}
3634
3635// GoString returns the string representation
3636func (s ContainerProperties) GoString() string {
3637	return s.String()
3638}
3639
3640// Validate inspects the fields of the type to determine if they are valid.
3641func (s *ContainerProperties) Validate() error {
3642	invalidParams := request.ErrInvalidParams{Context: "ContainerProperties"}
3643	if s.LinuxParameters != nil {
3644		if err := s.LinuxParameters.Validate(); err != nil {
3645			invalidParams.AddNested("LinuxParameters", err.(request.ErrInvalidParams))
3646		}
3647	}
3648	if s.LogConfiguration != nil {
3649		if err := s.LogConfiguration.Validate(); err != nil {
3650			invalidParams.AddNested("LogConfiguration", err.(request.ErrInvalidParams))
3651		}
3652	}
3653	if s.ResourceRequirements != nil {
3654		for i, v := range s.ResourceRequirements {
3655			if v == nil {
3656				continue
3657			}
3658			if err := v.Validate(); err != nil {
3659				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
3660			}
3661		}
3662	}
3663	if s.Secrets != nil {
3664		for i, v := range s.Secrets {
3665			if v == nil {
3666				continue
3667			}
3668			if err := v.Validate(); err != nil {
3669				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Secrets", i), err.(request.ErrInvalidParams))
3670			}
3671		}
3672	}
3673	if s.Ulimits != nil {
3674		for i, v := range s.Ulimits {
3675			if v == nil {
3676				continue
3677			}
3678			if err := v.Validate(); err != nil {
3679				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Ulimits", i), err.(request.ErrInvalidParams))
3680			}
3681		}
3682	}
3683	if s.Volumes != nil {
3684		for i, v := range s.Volumes {
3685			if v == nil {
3686				continue
3687			}
3688			if err := v.Validate(); err != nil {
3689				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Volumes", i), err.(request.ErrInvalidParams))
3690			}
3691		}
3692	}
3693
3694	if invalidParams.Len() > 0 {
3695		return invalidParams
3696	}
3697	return nil
3698}
3699
3700// SetCommand sets the Command field's value.
3701func (s *ContainerProperties) SetCommand(v []*string) *ContainerProperties {
3702	s.Command = v
3703	return s
3704}
3705
3706// SetEnvironment sets the Environment field's value.
3707func (s *ContainerProperties) SetEnvironment(v []*KeyValuePair) *ContainerProperties {
3708	s.Environment = v
3709	return s
3710}
3711
3712// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
3713func (s *ContainerProperties) SetExecutionRoleArn(v string) *ContainerProperties {
3714	s.ExecutionRoleArn = &v
3715	return s
3716}
3717
3718// SetFargatePlatformConfiguration sets the FargatePlatformConfiguration field's value.
3719func (s *ContainerProperties) SetFargatePlatformConfiguration(v *FargatePlatformConfiguration) *ContainerProperties {
3720	s.FargatePlatformConfiguration = v
3721	return s
3722}
3723
3724// SetImage sets the Image field's value.
3725func (s *ContainerProperties) SetImage(v string) *ContainerProperties {
3726	s.Image = &v
3727	return s
3728}
3729
3730// SetInstanceType sets the InstanceType field's value.
3731func (s *ContainerProperties) SetInstanceType(v string) *ContainerProperties {
3732	s.InstanceType = &v
3733	return s
3734}
3735
3736// SetJobRoleArn sets the JobRoleArn field's value.
3737func (s *ContainerProperties) SetJobRoleArn(v string) *ContainerProperties {
3738	s.JobRoleArn = &v
3739	return s
3740}
3741
3742// SetLinuxParameters sets the LinuxParameters field's value.
3743func (s *ContainerProperties) SetLinuxParameters(v *LinuxParameters) *ContainerProperties {
3744	s.LinuxParameters = v
3745	return s
3746}
3747
3748// SetLogConfiguration sets the LogConfiguration field's value.
3749func (s *ContainerProperties) SetLogConfiguration(v *LogConfiguration) *ContainerProperties {
3750	s.LogConfiguration = v
3751	return s
3752}
3753
3754// SetMemory sets the Memory field's value.
3755func (s *ContainerProperties) SetMemory(v int64) *ContainerProperties {
3756	s.Memory = &v
3757	return s
3758}
3759
3760// SetMountPoints sets the MountPoints field's value.
3761func (s *ContainerProperties) SetMountPoints(v []*MountPoint) *ContainerProperties {
3762	s.MountPoints = v
3763	return s
3764}
3765
3766// SetNetworkConfiguration sets the NetworkConfiguration field's value.
3767func (s *ContainerProperties) SetNetworkConfiguration(v *NetworkConfiguration) *ContainerProperties {
3768	s.NetworkConfiguration = v
3769	return s
3770}
3771
3772// SetPrivileged sets the Privileged field's value.
3773func (s *ContainerProperties) SetPrivileged(v bool) *ContainerProperties {
3774	s.Privileged = &v
3775	return s
3776}
3777
3778// SetReadonlyRootFilesystem sets the ReadonlyRootFilesystem field's value.
3779func (s *ContainerProperties) SetReadonlyRootFilesystem(v bool) *ContainerProperties {
3780	s.ReadonlyRootFilesystem = &v
3781	return s
3782}
3783
3784// SetResourceRequirements sets the ResourceRequirements field's value.
3785func (s *ContainerProperties) SetResourceRequirements(v []*ResourceRequirement) *ContainerProperties {
3786	s.ResourceRequirements = v
3787	return s
3788}
3789
3790// SetSecrets sets the Secrets field's value.
3791func (s *ContainerProperties) SetSecrets(v []*Secret) *ContainerProperties {
3792	s.Secrets = v
3793	return s
3794}
3795
3796// SetUlimits sets the Ulimits field's value.
3797func (s *ContainerProperties) SetUlimits(v []*Ulimit) *ContainerProperties {
3798	s.Ulimits = v
3799	return s
3800}
3801
3802// SetUser sets the User field's value.
3803func (s *ContainerProperties) SetUser(v string) *ContainerProperties {
3804	s.User = &v
3805	return s
3806}
3807
3808// SetVcpus sets the Vcpus field's value.
3809func (s *ContainerProperties) SetVcpus(v int64) *ContainerProperties {
3810	s.Vcpus = &v
3811	return s
3812}
3813
3814// SetVolumes sets the Volumes field's value.
3815func (s *ContainerProperties) SetVolumes(v []*Volume) *ContainerProperties {
3816	s.Volumes = v
3817	return s
3818}
3819
3820// An object representing summary details of a container within a job.
3821type ContainerSummary struct {
3822	_ struct{} `type:"structure"`
3823
3824	// The exit code to return upon completion.
3825	ExitCode *int64 `locationName:"exitCode" type:"integer"`
3826
3827	// A short (255 max characters) human-readable string to provide additional
3828	// details about a running or stopped container.
3829	Reason *string `locationName:"reason" type:"string"`
3830}
3831
3832// String returns the string representation
3833func (s ContainerSummary) String() string {
3834	return awsutil.Prettify(s)
3835}
3836
3837// GoString returns the string representation
3838func (s ContainerSummary) GoString() string {
3839	return s.String()
3840}
3841
3842// SetExitCode sets the ExitCode field's value.
3843func (s *ContainerSummary) SetExitCode(v int64) *ContainerSummary {
3844	s.ExitCode = &v
3845	return s
3846}
3847
3848// SetReason sets the Reason field's value.
3849func (s *ContainerSummary) SetReason(v string) *ContainerSummary {
3850	s.Reason = &v
3851	return s
3852}
3853
3854// Contains the parameters for CreateComputeEnvironment.
3855type CreateComputeEnvironmentInput struct {
3856	_ struct{} `type:"structure"`
3857
3858	// The name for your compute environment. Up to 128 letters (uppercase and lowercase),
3859	// numbers, hyphens, and underscores are allowed.
3860	//
3861	// ComputeEnvironmentName is a required field
3862	ComputeEnvironmentName *string `locationName:"computeEnvironmentName" type:"string" required:"true"`
3863
3864	// Details about the compute resources managed by the compute environment. This
3865	// parameter is required for managed compute environments. For more information,
3866	// see Compute Environments (https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html)
3867	// in the Batch User Guide.
3868	ComputeResources *ComputeResource `locationName:"computeResources" type:"structure"`
3869
3870	// The full Amazon Resource Name (ARN) of the IAM role that allows Batch to
3871	// make calls to other Amazon Web Services services on your behalf. For more
3872	// information, see Batch service IAM role (https://docs.aws.amazon.com/batch/latest/userguide/service_IAM_role.html)
3873	// in the Batch User Guide.
3874	//
3875	// If your account already created the Batch service-linked role, that role
3876	// is used by default for your compute environment unless you specify a different
3877	// role here. If the Batch service-linked role doesn't exist in your account,
3878	// and no role is specified here, the service attempts to create the Batch service-linked
3879	// role in your account.
3880	//
3881	// If your specified role has a path other than /, then you must specify either
3882	// the full role ARN (recommended) or prefix the role name with the path. For
3883	// example, if a role with the name bar has a path of /foo/ then you would specify
3884	// /foo/bar as the role name. For more information, see Friendly names and paths
3885	// (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names)
3886	// in the IAM User Guide.
3887	//
3888	// Depending on how you created your Batch service role, its ARN might contain
3889	// the service-role path prefix. When you only specify the name of the service
3890	// role, Batch assumes that your ARN doesn't use the service-role path prefix.
3891	// Because of this, we recommend that you specify the full ARN of your service
3892	// role when you create compute environments.
3893	ServiceRole *string `locationName:"serviceRole" type:"string"`
3894
3895	// The state of the compute environment. If the state is ENABLED, then the compute
3896	// environment accepts jobs from a queue and can scale out automatically based
3897	// on queues.
3898	//
3899	// If the state is ENABLED, then the Batch scheduler can attempt to place jobs
3900	// from an associated job queue on the compute resources within the environment.
3901	// If the compute environment is managed, then it can scale its instances out
3902	// or in automatically, based on the job queue demand.
3903	//
3904	// If the state is DISABLED, then the Batch scheduler doesn't attempt to place
3905	// jobs within the environment. Jobs in a STARTING or RUNNING state continue
3906	// to progress normally. Managed compute environments in the DISABLED state
3907	// don't scale out. However, they scale in to minvCpus value after instances
3908	// become idle.
3909	State *string `locationName:"state" type:"string" enum:"CEState"`
3910
3911	// The tags that you apply to the compute environment to help you categorize
3912	// and organize your resources. Each tag consists of a key and an optional value.
3913	// For more information, see Tagging Amazon Web Services Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
3914	// in Amazon Web Services General Reference.
3915	//
3916	// These tags can be updated or removed using the TagResource (https://docs.aws.amazon.com/batch/latest/APIReference/API_TagResource.html)
3917	// and UntagResource (https://docs.aws.amazon.com/batch/latest/APIReference/API_UntagResource.html)
3918	// API operations. These tags don't propagate to the underlying compute resources.
3919	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
3920
3921	// The type of the compute environment: MANAGED or UNMANAGED. For more information,
3922	// see Compute Environments (https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html)
3923	// in the Batch User Guide.
3924	//
3925	// Type is a required field
3926	Type *string `locationName:"type" type:"string" required:"true" enum:"CEType"`
3927}
3928
3929// String returns the string representation
3930func (s CreateComputeEnvironmentInput) String() string {
3931	return awsutil.Prettify(s)
3932}
3933
3934// GoString returns the string representation
3935func (s CreateComputeEnvironmentInput) GoString() string {
3936	return s.String()
3937}
3938
3939// Validate inspects the fields of the type to determine if they are valid.
3940func (s *CreateComputeEnvironmentInput) Validate() error {
3941	invalidParams := request.ErrInvalidParams{Context: "CreateComputeEnvironmentInput"}
3942	if s.ComputeEnvironmentName == nil {
3943		invalidParams.Add(request.NewErrParamRequired("ComputeEnvironmentName"))
3944	}
3945	if s.Tags != nil && len(s.Tags) < 1 {
3946		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
3947	}
3948	if s.Type == nil {
3949		invalidParams.Add(request.NewErrParamRequired("Type"))
3950	}
3951	if s.ComputeResources != nil {
3952		if err := s.ComputeResources.Validate(); err != nil {
3953			invalidParams.AddNested("ComputeResources", err.(request.ErrInvalidParams))
3954		}
3955	}
3956
3957	if invalidParams.Len() > 0 {
3958		return invalidParams
3959	}
3960	return nil
3961}
3962
3963// SetComputeEnvironmentName sets the ComputeEnvironmentName field's value.
3964func (s *CreateComputeEnvironmentInput) SetComputeEnvironmentName(v string) *CreateComputeEnvironmentInput {
3965	s.ComputeEnvironmentName = &v
3966	return s
3967}
3968
3969// SetComputeResources sets the ComputeResources field's value.
3970func (s *CreateComputeEnvironmentInput) SetComputeResources(v *ComputeResource) *CreateComputeEnvironmentInput {
3971	s.ComputeResources = v
3972	return s
3973}
3974
3975// SetServiceRole sets the ServiceRole field's value.
3976func (s *CreateComputeEnvironmentInput) SetServiceRole(v string) *CreateComputeEnvironmentInput {
3977	s.ServiceRole = &v
3978	return s
3979}
3980
3981// SetState sets the State field's value.
3982func (s *CreateComputeEnvironmentInput) SetState(v string) *CreateComputeEnvironmentInput {
3983	s.State = &v
3984	return s
3985}
3986
3987// SetTags sets the Tags field's value.
3988func (s *CreateComputeEnvironmentInput) SetTags(v map[string]*string) *CreateComputeEnvironmentInput {
3989	s.Tags = v
3990	return s
3991}
3992
3993// SetType sets the Type field's value.
3994func (s *CreateComputeEnvironmentInput) SetType(v string) *CreateComputeEnvironmentInput {
3995	s.Type = &v
3996	return s
3997}
3998
3999type CreateComputeEnvironmentOutput struct {
4000	_ struct{} `type:"structure"`
4001
4002	// The Amazon Resource Name (ARN) of the compute environment.
4003	ComputeEnvironmentArn *string `locationName:"computeEnvironmentArn" type:"string"`
4004
4005	// The name of the compute environment. Up to 128 letters (uppercase and lowercase),
4006	// numbers, hyphens, and underscores are allowed.
4007	ComputeEnvironmentName *string `locationName:"computeEnvironmentName" type:"string"`
4008}
4009
4010// String returns the string representation
4011func (s CreateComputeEnvironmentOutput) String() string {
4012	return awsutil.Prettify(s)
4013}
4014
4015// GoString returns the string representation
4016func (s CreateComputeEnvironmentOutput) GoString() string {
4017	return s.String()
4018}
4019
4020// SetComputeEnvironmentArn sets the ComputeEnvironmentArn field's value.
4021func (s *CreateComputeEnvironmentOutput) SetComputeEnvironmentArn(v string) *CreateComputeEnvironmentOutput {
4022	s.ComputeEnvironmentArn = &v
4023	return s
4024}
4025
4026// SetComputeEnvironmentName sets the ComputeEnvironmentName field's value.
4027func (s *CreateComputeEnvironmentOutput) SetComputeEnvironmentName(v string) *CreateComputeEnvironmentOutput {
4028	s.ComputeEnvironmentName = &v
4029	return s
4030}
4031
4032// Contains the parameters for CreateJobQueue.
4033type CreateJobQueueInput struct {
4034	_ struct{} `type:"structure"`
4035
4036	// The set of compute environments mapped to a job queue and their order relative
4037	// to each other. The job scheduler uses this parameter to determine which compute
4038	// environment should run a specific job. Compute environments must be in the
4039	// VALID state before you can associate them with a job queue. You can associate
4040	// up to three compute environments with a job queue. All of the compute environments
4041	// must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT); EC2
4042	// and Fargate compute environments can't be mixed.
4043	//
4044	// All compute environments that are associated with a job queue must share
4045	// the same architecture. Batch doesn't support mixing compute environment architecture
4046	// types in a single job queue.
4047	//
4048	// ComputeEnvironmentOrder is a required field
4049	ComputeEnvironmentOrder []*ComputeEnvironmentOrder `locationName:"computeEnvironmentOrder" type:"list" required:"true"`
4050
4051	// The name of the job queue. Up to 128 letters (uppercase and lowercase), numbers,
4052	// and underscores are allowed.
4053	//
4054	// JobQueueName is a required field
4055	JobQueueName *string `locationName:"jobQueueName" type:"string" required:"true"`
4056
4057	// The priority of the job queue. Job queues with a higher priority (or a higher
4058	// integer value for the priority parameter) are evaluated first when associated
4059	// with the same compute environment. Priority is determined in descending order.
4060	// For example, a job queue with a priority value of 10 is given scheduling
4061	// preference over a job queue with a priority value of 1. All of the compute
4062	// environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT);
4063	// EC2 and Fargate compute environments can't be mixed.
4064	//
4065	// Priority is a required field
4066	Priority *int64 `locationName:"priority" type:"integer" required:"true"`
4067
4068	// The state of the job queue. If the job queue state is ENABLED, it is able
4069	// to accept jobs. If the job queue state is DISABLED, new jobs can't be added
4070	// to the queue, but jobs already in the queue can finish.
4071	State *string `locationName:"state" type:"string" enum:"JQState"`
4072
4073	// The tags that you apply to the job queue to help you categorize and organize
4074	// your resources. Each tag consists of a key and an optional value. For more
4075	// information, see Tagging your Batch resources (https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html)
4076	// in Batch User Guide.
4077	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
4078}
4079
4080// String returns the string representation
4081func (s CreateJobQueueInput) String() string {
4082	return awsutil.Prettify(s)
4083}
4084
4085// GoString returns the string representation
4086func (s CreateJobQueueInput) GoString() string {
4087	return s.String()
4088}
4089
4090// Validate inspects the fields of the type to determine if they are valid.
4091func (s *CreateJobQueueInput) Validate() error {
4092	invalidParams := request.ErrInvalidParams{Context: "CreateJobQueueInput"}
4093	if s.ComputeEnvironmentOrder == nil {
4094		invalidParams.Add(request.NewErrParamRequired("ComputeEnvironmentOrder"))
4095	}
4096	if s.JobQueueName == nil {
4097		invalidParams.Add(request.NewErrParamRequired("JobQueueName"))
4098	}
4099	if s.Priority == nil {
4100		invalidParams.Add(request.NewErrParamRequired("Priority"))
4101	}
4102	if s.Tags != nil && len(s.Tags) < 1 {
4103		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
4104	}
4105	if s.ComputeEnvironmentOrder != nil {
4106		for i, v := range s.ComputeEnvironmentOrder {
4107			if v == nil {
4108				continue
4109			}
4110			if err := v.Validate(); err != nil {
4111				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ComputeEnvironmentOrder", i), err.(request.ErrInvalidParams))
4112			}
4113		}
4114	}
4115
4116	if invalidParams.Len() > 0 {
4117		return invalidParams
4118	}
4119	return nil
4120}
4121
4122// SetComputeEnvironmentOrder sets the ComputeEnvironmentOrder field's value.
4123func (s *CreateJobQueueInput) SetComputeEnvironmentOrder(v []*ComputeEnvironmentOrder) *CreateJobQueueInput {
4124	s.ComputeEnvironmentOrder = v
4125	return s
4126}
4127
4128// SetJobQueueName sets the JobQueueName field's value.
4129func (s *CreateJobQueueInput) SetJobQueueName(v string) *CreateJobQueueInput {
4130	s.JobQueueName = &v
4131	return s
4132}
4133
4134// SetPriority sets the Priority field's value.
4135func (s *CreateJobQueueInput) SetPriority(v int64) *CreateJobQueueInput {
4136	s.Priority = &v
4137	return s
4138}
4139
4140// SetState sets the State field's value.
4141func (s *CreateJobQueueInput) SetState(v string) *CreateJobQueueInput {
4142	s.State = &v
4143	return s
4144}
4145
4146// SetTags sets the Tags field's value.
4147func (s *CreateJobQueueInput) SetTags(v map[string]*string) *CreateJobQueueInput {
4148	s.Tags = v
4149	return s
4150}
4151
4152type CreateJobQueueOutput struct {
4153	_ struct{} `type:"structure"`
4154
4155	// The Amazon Resource Name (ARN) of the job queue.
4156	//
4157	// JobQueueArn is a required field
4158	JobQueueArn *string `locationName:"jobQueueArn" type:"string" required:"true"`
4159
4160	// The name of the job queue.
4161	//
4162	// JobQueueName is a required field
4163	JobQueueName *string `locationName:"jobQueueName" type:"string" required:"true"`
4164}
4165
4166// String returns the string representation
4167func (s CreateJobQueueOutput) String() string {
4168	return awsutil.Prettify(s)
4169}
4170
4171// GoString returns the string representation
4172func (s CreateJobQueueOutput) GoString() string {
4173	return s.String()
4174}
4175
4176// SetJobQueueArn sets the JobQueueArn field's value.
4177func (s *CreateJobQueueOutput) SetJobQueueArn(v string) *CreateJobQueueOutput {
4178	s.JobQueueArn = &v
4179	return s
4180}
4181
4182// SetJobQueueName sets the JobQueueName field's value.
4183func (s *CreateJobQueueOutput) SetJobQueueName(v string) *CreateJobQueueOutput {
4184	s.JobQueueName = &v
4185	return s
4186}
4187
4188// Contains the parameters for DeleteComputeEnvironment.
4189type DeleteComputeEnvironmentInput struct {
4190	_ struct{} `type:"structure"`
4191
4192	// The name or Amazon Resource Name (ARN) of the compute environment to delete.
4193	//
4194	// ComputeEnvironment is a required field
4195	ComputeEnvironment *string `locationName:"computeEnvironment" type:"string" required:"true"`
4196}
4197
4198// String returns the string representation
4199func (s DeleteComputeEnvironmentInput) String() string {
4200	return awsutil.Prettify(s)
4201}
4202
4203// GoString returns the string representation
4204func (s DeleteComputeEnvironmentInput) GoString() string {
4205	return s.String()
4206}
4207
4208// Validate inspects the fields of the type to determine if they are valid.
4209func (s *DeleteComputeEnvironmentInput) Validate() error {
4210	invalidParams := request.ErrInvalidParams{Context: "DeleteComputeEnvironmentInput"}
4211	if s.ComputeEnvironment == nil {
4212		invalidParams.Add(request.NewErrParamRequired("ComputeEnvironment"))
4213	}
4214
4215	if invalidParams.Len() > 0 {
4216		return invalidParams
4217	}
4218	return nil
4219}
4220
4221// SetComputeEnvironment sets the ComputeEnvironment field's value.
4222func (s *DeleteComputeEnvironmentInput) SetComputeEnvironment(v string) *DeleteComputeEnvironmentInput {
4223	s.ComputeEnvironment = &v
4224	return s
4225}
4226
4227type DeleteComputeEnvironmentOutput struct {
4228	_ struct{} `type:"structure"`
4229}
4230
4231// String returns the string representation
4232func (s DeleteComputeEnvironmentOutput) String() string {
4233	return awsutil.Prettify(s)
4234}
4235
4236// GoString returns the string representation
4237func (s DeleteComputeEnvironmentOutput) GoString() string {
4238	return s.String()
4239}
4240
4241// Contains the parameters for DeleteJobQueue.
4242type DeleteJobQueueInput struct {
4243	_ struct{} `type:"structure"`
4244
4245	// The short name or full Amazon Resource Name (ARN) of the queue to delete.
4246	//
4247	// JobQueue is a required field
4248	JobQueue *string `locationName:"jobQueue" type:"string" required:"true"`
4249}
4250
4251// String returns the string representation
4252func (s DeleteJobQueueInput) String() string {
4253	return awsutil.Prettify(s)
4254}
4255
4256// GoString returns the string representation
4257func (s DeleteJobQueueInput) GoString() string {
4258	return s.String()
4259}
4260
4261// Validate inspects the fields of the type to determine if they are valid.
4262func (s *DeleteJobQueueInput) Validate() error {
4263	invalidParams := request.ErrInvalidParams{Context: "DeleteJobQueueInput"}
4264	if s.JobQueue == nil {
4265		invalidParams.Add(request.NewErrParamRequired("JobQueue"))
4266	}
4267
4268	if invalidParams.Len() > 0 {
4269		return invalidParams
4270	}
4271	return nil
4272}
4273
4274// SetJobQueue sets the JobQueue field's value.
4275func (s *DeleteJobQueueInput) SetJobQueue(v string) *DeleteJobQueueInput {
4276	s.JobQueue = &v
4277	return s
4278}
4279
4280type DeleteJobQueueOutput struct {
4281	_ struct{} `type:"structure"`
4282}
4283
4284// String returns the string representation
4285func (s DeleteJobQueueOutput) String() string {
4286	return awsutil.Prettify(s)
4287}
4288
4289// GoString returns the string representation
4290func (s DeleteJobQueueOutput) GoString() string {
4291	return s.String()
4292}
4293
4294type DeregisterJobDefinitionInput struct {
4295	_ struct{} `type:"structure"`
4296
4297	// The name and revision (name:revision) or full Amazon Resource Name (ARN)
4298	// of the job definition to deregister.
4299	//
4300	// JobDefinition is a required field
4301	JobDefinition *string `locationName:"jobDefinition" type:"string" required:"true"`
4302}
4303
4304// String returns the string representation
4305func (s DeregisterJobDefinitionInput) String() string {
4306	return awsutil.Prettify(s)
4307}
4308
4309// GoString returns the string representation
4310func (s DeregisterJobDefinitionInput) GoString() string {
4311	return s.String()
4312}
4313
4314// Validate inspects the fields of the type to determine if they are valid.
4315func (s *DeregisterJobDefinitionInput) Validate() error {
4316	invalidParams := request.ErrInvalidParams{Context: "DeregisterJobDefinitionInput"}
4317	if s.JobDefinition == nil {
4318		invalidParams.Add(request.NewErrParamRequired("JobDefinition"))
4319	}
4320
4321	if invalidParams.Len() > 0 {
4322		return invalidParams
4323	}
4324	return nil
4325}
4326
4327// SetJobDefinition sets the JobDefinition field's value.
4328func (s *DeregisterJobDefinitionInput) SetJobDefinition(v string) *DeregisterJobDefinitionInput {
4329	s.JobDefinition = &v
4330	return s
4331}
4332
4333type DeregisterJobDefinitionOutput struct {
4334	_ struct{} `type:"structure"`
4335}
4336
4337// String returns the string representation
4338func (s DeregisterJobDefinitionOutput) String() string {
4339	return awsutil.Prettify(s)
4340}
4341
4342// GoString returns the string representation
4343func (s DeregisterJobDefinitionOutput) GoString() string {
4344	return s.String()
4345}
4346
4347// Contains the parameters for DescribeComputeEnvironments.
4348type DescribeComputeEnvironmentsInput struct {
4349	_ struct{} `type:"structure"`
4350
4351	// A list of up to 100 compute environment names or full Amazon Resource Name
4352	// (ARN) entries.
4353	ComputeEnvironments []*string `locationName:"computeEnvironments" type:"list"`
4354
4355	// The maximum number of cluster results returned by DescribeComputeEnvironments
4356	// in paginated output. When this parameter is used, DescribeComputeEnvironments
4357	// only returns maxResults results in a single page along with a nextToken response
4358	// element. The remaining results of the initial request can be seen by sending
4359	// another DescribeComputeEnvironments request with the returned nextToken value.
4360	// This value can be between 1 and 100. If this parameter isn't used, then DescribeComputeEnvironments
4361	// returns up to 100 results and a nextToken value if applicable.
4362	MaxResults *int64 `locationName:"maxResults" type:"integer"`
4363
4364	// The nextToken value returned from a previous paginated DescribeComputeEnvironments
4365	// request where maxResults was used and the results exceeded the value of that
4366	// parameter. Pagination continues from the end of the previous results that
4367	// returned the nextToken value. This value is null when there are no more results
4368	// to return.
4369	//
4370	// This token should be treated as an opaque identifier that's only used to
4371	// retrieve the next items in a list and not for other programmatic purposes.
4372	NextToken *string `locationName:"nextToken" type:"string"`
4373}
4374
4375// String returns the string representation
4376func (s DescribeComputeEnvironmentsInput) String() string {
4377	return awsutil.Prettify(s)
4378}
4379
4380// GoString returns the string representation
4381func (s DescribeComputeEnvironmentsInput) GoString() string {
4382	return s.String()
4383}
4384
4385// SetComputeEnvironments sets the ComputeEnvironments field's value.
4386func (s *DescribeComputeEnvironmentsInput) SetComputeEnvironments(v []*string) *DescribeComputeEnvironmentsInput {
4387	s.ComputeEnvironments = v
4388	return s
4389}
4390
4391// SetMaxResults sets the MaxResults field's value.
4392func (s *DescribeComputeEnvironmentsInput) SetMaxResults(v int64) *DescribeComputeEnvironmentsInput {
4393	s.MaxResults = &v
4394	return s
4395}
4396
4397// SetNextToken sets the NextToken field's value.
4398func (s *DescribeComputeEnvironmentsInput) SetNextToken(v string) *DescribeComputeEnvironmentsInput {
4399	s.NextToken = &v
4400	return s
4401}
4402
4403type DescribeComputeEnvironmentsOutput struct {
4404	_ struct{} `type:"structure"`
4405
4406	// The list of compute environments.
4407	ComputeEnvironments []*ComputeEnvironmentDetail `locationName:"computeEnvironments" type:"list"`
4408
4409	// The nextToken value to include in a future DescribeComputeEnvironments request.
4410	// When the results of a DescribeJobDefinitions request exceed maxResults, this
4411	// value can be used to retrieve the next page of results. This value is null
4412	// when there are no more results to return.
4413	NextToken *string `locationName:"nextToken" type:"string"`
4414}
4415
4416// String returns the string representation
4417func (s DescribeComputeEnvironmentsOutput) String() string {
4418	return awsutil.Prettify(s)
4419}
4420
4421// GoString returns the string representation
4422func (s DescribeComputeEnvironmentsOutput) GoString() string {
4423	return s.String()
4424}
4425
4426// SetComputeEnvironments sets the ComputeEnvironments field's value.
4427func (s *DescribeComputeEnvironmentsOutput) SetComputeEnvironments(v []*ComputeEnvironmentDetail) *DescribeComputeEnvironmentsOutput {
4428	s.ComputeEnvironments = v
4429	return s
4430}
4431
4432// SetNextToken sets the NextToken field's value.
4433func (s *DescribeComputeEnvironmentsOutput) SetNextToken(v string) *DescribeComputeEnvironmentsOutput {
4434	s.NextToken = &v
4435	return s
4436}
4437
4438// Contains the parameters for DescribeJobDefinitions.
4439type DescribeJobDefinitionsInput struct {
4440	_ struct{} `type:"structure"`
4441
4442	// The name of the job definition to describe.
4443	JobDefinitionName *string `locationName:"jobDefinitionName" type:"string"`
4444
4445	// A list of up to 100 job definitions. Each entry in the list can either be
4446	// an ARN of the form arn:aws:batch:${Region}:${Account}:job-definition/${JobDefinitionName}:${Revision}
4447	// or a short version using the form ${JobDefinitionName}:${Revision}.
4448	JobDefinitions []*string `locationName:"jobDefinitions" type:"list"`
4449
4450	// The maximum number of results returned by DescribeJobDefinitions in paginated
4451	// output. When this parameter is used, DescribeJobDefinitions only returns
4452	// maxResults results in a single page and a nextToken response element. The
4453	// remaining results of the initial request can be seen by sending another DescribeJobDefinitions
4454	// request with the returned nextToken value. This value can be between 1 and
4455	// 100. If this parameter isn't used, then DescribeJobDefinitions returns up
4456	// to 100 results and a nextToken value if applicable.
4457	MaxResults *int64 `locationName:"maxResults" type:"integer"`
4458
4459	// The nextToken value returned from a previous paginated DescribeJobDefinitions
4460	// request where maxResults was used and the results exceeded the value of that
4461	// parameter. Pagination continues from the end of the previous results that
4462	// returned the nextToken value. This value is null when there are no more results
4463	// to return.
4464	//
4465	// This token should be treated as an opaque identifier that's only used to
4466	// retrieve the next items in a list and not for other programmatic purposes.
4467	NextToken *string `locationName:"nextToken" type:"string"`
4468
4469	// The status used to filter job definitions.
4470	Status *string `locationName:"status" type:"string"`
4471}
4472
4473// String returns the string representation
4474func (s DescribeJobDefinitionsInput) String() string {
4475	return awsutil.Prettify(s)
4476}
4477
4478// GoString returns the string representation
4479func (s DescribeJobDefinitionsInput) GoString() string {
4480	return s.String()
4481}
4482
4483// SetJobDefinitionName sets the JobDefinitionName field's value.
4484func (s *DescribeJobDefinitionsInput) SetJobDefinitionName(v string) *DescribeJobDefinitionsInput {
4485	s.JobDefinitionName = &v
4486	return s
4487}
4488
4489// SetJobDefinitions sets the JobDefinitions field's value.
4490func (s *DescribeJobDefinitionsInput) SetJobDefinitions(v []*string) *DescribeJobDefinitionsInput {
4491	s.JobDefinitions = v
4492	return s
4493}
4494
4495// SetMaxResults sets the MaxResults field's value.
4496func (s *DescribeJobDefinitionsInput) SetMaxResults(v int64) *DescribeJobDefinitionsInput {
4497	s.MaxResults = &v
4498	return s
4499}
4500
4501// SetNextToken sets the NextToken field's value.
4502func (s *DescribeJobDefinitionsInput) SetNextToken(v string) *DescribeJobDefinitionsInput {
4503	s.NextToken = &v
4504	return s
4505}
4506
4507// SetStatus sets the Status field's value.
4508func (s *DescribeJobDefinitionsInput) SetStatus(v string) *DescribeJobDefinitionsInput {
4509	s.Status = &v
4510	return s
4511}
4512
4513type DescribeJobDefinitionsOutput struct {
4514	_ struct{} `type:"structure"`
4515
4516	// The list of job definitions.
4517	JobDefinitions []*JobDefinition `locationName:"jobDefinitions" type:"list"`
4518
4519	// The nextToken value to include in a future DescribeJobDefinitions request.
4520	// When the results of a DescribeJobDefinitions request exceed maxResults, this
4521	// value can be used to retrieve the next page of results. This value is null
4522	// when there are no more results to return.
4523	NextToken *string `locationName:"nextToken" type:"string"`
4524}
4525
4526// String returns the string representation
4527func (s DescribeJobDefinitionsOutput) String() string {
4528	return awsutil.Prettify(s)
4529}
4530
4531// GoString returns the string representation
4532func (s DescribeJobDefinitionsOutput) GoString() string {
4533	return s.String()
4534}
4535
4536// SetJobDefinitions sets the JobDefinitions field's value.
4537func (s *DescribeJobDefinitionsOutput) SetJobDefinitions(v []*JobDefinition) *DescribeJobDefinitionsOutput {
4538	s.JobDefinitions = v
4539	return s
4540}
4541
4542// SetNextToken sets the NextToken field's value.
4543func (s *DescribeJobDefinitionsOutput) SetNextToken(v string) *DescribeJobDefinitionsOutput {
4544	s.NextToken = &v
4545	return s
4546}
4547
4548// Contains the parameters for DescribeJobQueues.
4549type DescribeJobQueuesInput struct {
4550	_ struct{} `type:"structure"`
4551
4552	// A list of up to 100 queue names or full queue Amazon Resource Name (ARN)
4553	// entries.
4554	JobQueues []*string `locationName:"jobQueues" type:"list"`
4555
4556	// The maximum number of results returned by DescribeJobQueues in paginated
4557	// output. When this parameter is used, DescribeJobQueues only returns maxResults
4558	// results in a single page and a nextToken response element. The remaining
4559	// results of the initial request can be seen by sending another DescribeJobQueues
4560	// request with the returned nextToken value. This value can be between 1 and
4561	// 100. If this parameter isn't used, then DescribeJobQueues returns up to 100
4562	// results and a nextToken value if applicable.
4563	MaxResults *int64 `locationName:"maxResults" type:"integer"`
4564
4565	// The nextToken value returned from a previous paginated DescribeJobQueues
4566	// request where maxResults was used and the results exceeded the value of that
4567	// parameter. Pagination continues from the end of the previous results that
4568	// returned the nextToken value. This value is null when there are no more results
4569	// to return.
4570	//
4571	// This token should be treated as an opaque identifier that's only used to
4572	// retrieve the next items in a list and not for other programmatic purposes.
4573	NextToken *string `locationName:"nextToken" type:"string"`
4574}
4575
4576// String returns the string representation
4577func (s DescribeJobQueuesInput) String() string {
4578	return awsutil.Prettify(s)
4579}
4580
4581// GoString returns the string representation
4582func (s DescribeJobQueuesInput) GoString() string {
4583	return s.String()
4584}
4585
4586// SetJobQueues sets the JobQueues field's value.
4587func (s *DescribeJobQueuesInput) SetJobQueues(v []*string) *DescribeJobQueuesInput {
4588	s.JobQueues = v
4589	return s
4590}
4591
4592// SetMaxResults sets the MaxResults field's value.
4593func (s *DescribeJobQueuesInput) SetMaxResults(v int64) *DescribeJobQueuesInput {
4594	s.MaxResults = &v
4595	return s
4596}
4597
4598// SetNextToken sets the NextToken field's value.
4599func (s *DescribeJobQueuesInput) SetNextToken(v string) *DescribeJobQueuesInput {
4600	s.NextToken = &v
4601	return s
4602}
4603
4604type DescribeJobQueuesOutput struct {
4605	_ struct{} `type:"structure"`
4606
4607	// The list of job queues.
4608	JobQueues []*JobQueueDetail `locationName:"jobQueues" type:"list"`
4609
4610	// The nextToken value to include in a future DescribeJobQueues request. When
4611	// the results of a DescribeJobQueues request exceed maxResults, this value
4612	// can be used to retrieve the next page of results. This value is null when
4613	// there are no more results to return.
4614	NextToken *string `locationName:"nextToken" type:"string"`
4615}
4616
4617// String returns the string representation
4618func (s DescribeJobQueuesOutput) String() string {
4619	return awsutil.Prettify(s)
4620}
4621
4622// GoString returns the string representation
4623func (s DescribeJobQueuesOutput) GoString() string {
4624	return s.String()
4625}
4626
4627// SetJobQueues sets the JobQueues field's value.
4628func (s *DescribeJobQueuesOutput) SetJobQueues(v []*JobQueueDetail) *DescribeJobQueuesOutput {
4629	s.JobQueues = v
4630	return s
4631}
4632
4633// SetNextToken sets the NextToken field's value.
4634func (s *DescribeJobQueuesOutput) SetNextToken(v string) *DescribeJobQueuesOutput {
4635	s.NextToken = &v
4636	return s
4637}
4638
4639// Contains the parameters for DescribeJobs.
4640type DescribeJobsInput struct {
4641	_ struct{} `type:"structure"`
4642
4643	// A list of up to 100 job IDs.
4644	//
4645	// Jobs is a required field
4646	Jobs []*string `locationName:"jobs" type:"list" required:"true"`
4647}
4648
4649// String returns the string representation
4650func (s DescribeJobsInput) String() string {
4651	return awsutil.Prettify(s)
4652}
4653
4654// GoString returns the string representation
4655func (s DescribeJobsInput) GoString() string {
4656	return s.String()
4657}
4658
4659// Validate inspects the fields of the type to determine if they are valid.
4660func (s *DescribeJobsInput) Validate() error {
4661	invalidParams := request.ErrInvalidParams{Context: "DescribeJobsInput"}
4662	if s.Jobs == nil {
4663		invalidParams.Add(request.NewErrParamRequired("Jobs"))
4664	}
4665
4666	if invalidParams.Len() > 0 {
4667		return invalidParams
4668	}
4669	return nil
4670}
4671
4672// SetJobs sets the Jobs field's value.
4673func (s *DescribeJobsInput) SetJobs(v []*string) *DescribeJobsInput {
4674	s.Jobs = v
4675	return s
4676}
4677
4678type DescribeJobsOutput struct {
4679	_ struct{} `type:"structure"`
4680
4681	// The list of jobs.
4682	Jobs []*JobDetail `locationName:"jobs" type:"list"`
4683}
4684
4685// String returns the string representation
4686func (s DescribeJobsOutput) String() string {
4687	return awsutil.Prettify(s)
4688}
4689
4690// GoString returns the string representation
4691func (s DescribeJobsOutput) GoString() string {
4692	return s.String()
4693}
4694
4695// SetJobs sets the Jobs field's value.
4696func (s *DescribeJobsOutput) SetJobs(v []*JobDetail) *DescribeJobsOutput {
4697	s.Jobs = v
4698	return s
4699}
4700
4701// An object representing a container instance host device.
4702//
4703// This object isn't applicable to jobs that are running on Fargate resources
4704// and shouldn't be provided.
4705type Device struct {
4706	_ struct{} `type:"structure"`
4707
4708	// The path inside the container that's used to expose the host device. By default,
4709	// the hostPath value is used.
4710	ContainerPath *string `locationName:"containerPath" type:"string"`
4711
4712	// The path for the device on the host container instance.
4713	//
4714	// HostPath is a required field
4715	HostPath *string `locationName:"hostPath" type:"string" required:"true"`
4716
4717	// The explicit permissions to provide to the container for the device. By default,
4718	// the container has permissions for read, write, and mknod for the device.
4719	Permissions []*string `locationName:"permissions" type:"list"`
4720}
4721
4722// String returns the string representation
4723func (s Device) String() string {
4724	return awsutil.Prettify(s)
4725}
4726
4727// GoString returns the string representation
4728func (s Device) GoString() string {
4729	return s.String()
4730}
4731
4732// Validate inspects the fields of the type to determine if they are valid.
4733func (s *Device) Validate() error {
4734	invalidParams := request.ErrInvalidParams{Context: "Device"}
4735	if s.HostPath == nil {
4736		invalidParams.Add(request.NewErrParamRequired("HostPath"))
4737	}
4738
4739	if invalidParams.Len() > 0 {
4740		return invalidParams
4741	}
4742	return nil
4743}
4744
4745// SetContainerPath sets the ContainerPath field's value.
4746func (s *Device) SetContainerPath(v string) *Device {
4747	s.ContainerPath = &v
4748	return s
4749}
4750
4751// SetHostPath sets the HostPath field's value.
4752func (s *Device) SetHostPath(v string) *Device {
4753	s.HostPath = &v
4754	return s
4755}
4756
4757// SetPermissions sets the Permissions field's value.
4758func (s *Device) SetPermissions(v []*string) *Device {
4759	s.Permissions = v
4760	return s
4761}
4762
4763// The authorization configuration details for the Amazon EFS file system.
4764type EFSAuthorizationConfig struct {
4765	_ struct{} `type:"structure"`
4766
4767	// The Amazon EFS access point ID to use. If an access point is specified, the
4768	// root directory value specified in the EFSVolumeConfiguration must either
4769	// be omitted or set to / which will enforce the path set on the EFS access
4770	// point. If an access point is used, transit encryption must be enabled in
4771	// the EFSVolumeConfiguration. For more information, see Working with Amazon
4772	// EFS Access Points (https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html)
4773	// in the Amazon Elastic File System User Guide.
4774	AccessPointId *string `locationName:"accessPointId" type:"string"`
4775
4776	// Whether or not to use the Batch job IAM role defined in a job definition
4777	// when mounting the Amazon EFS file system. If enabled, transit encryption
4778	// must be enabled in the EFSVolumeConfiguration. If this parameter is omitted,
4779	// the default value of DISABLED is used. For more information, see Using Amazon
4780	// EFS Access Points (https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html#efs-volume-accesspoints)
4781	// in the Batch User Guide. EFS IAM authorization requires that TransitEncryption
4782	// be ENABLED and that a JobRoleArn is specified.
4783	Iam *string `locationName:"iam" type:"string" enum:"EFSAuthorizationConfigIAM"`
4784}
4785
4786// String returns the string representation
4787func (s EFSAuthorizationConfig) String() string {
4788	return awsutil.Prettify(s)
4789}
4790
4791// GoString returns the string representation
4792func (s EFSAuthorizationConfig) GoString() string {
4793	return s.String()
4794}
4795
4796// SetAccessPointId sets the AccessPointId field's value.
4797func (s *EFSAuthorizationConfig) SetAccessPointId(v string) *EFSAuthorizationConfig {
4798	s.AccessPointId = &v
4799	return s
4800}
4801
4802// SetIam sets the Iam field's value.
4803func (s *EFSAuthorizationConfig) SetIam(v string) *EFSAuthorizationConfig {
4804	s.Iam = &v
4805	return s
4806}
4807
4808// This is used when you're using an Amazon Elastic File System file system
4809// for job storage. For more information, see Amazon EFS Volumes (https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html)
4810// in the Batch User Guide.
4811type EFSVolumeConfiguration struct {
4812	_ struct{} `type:"structure"`
4813
4814	// The authorization configuration details for the Amazon EFS file system.
4815	AuthorizationConfig *EFSAuthorizationConfig `locationName:"authorizationConfig" type:"structure"`
4816
4817	// The Amazon EFS file system ID to use.
4818	//
4819	// FileSystemId is a required field
4820	FileSystemId *string `locationName:"fileSystemId" type:"string" required:"true"`
4821
4822	// The directory within the Amazon EFS file system to mount as the root directory
4823	// inside the host. If this parameter is omitted, the root of the Amazon EFS
4824	// volume is used instead. Specifying / has the same effect as omitting this
4825	// parameter. The maximum length is 4,096 characters.
4826	//
4827	// If an EFS access point is specified in the authorizationConfig, the root
4828	// directory parameter must either be omitted or set to /, which enforces the
4829	// path set on the Amazon EFS access point.
4830	RootDirectory *string `locationName:"rootDirectory" type:"string"`
4831
4832	// Determines whether to enable encryption for Amazon EFS data in transit between
4833	// the Amazon ECS host and the Amazon EFS server. Transit encryption must be
4834	// enabled if Amazon EFS IAM authorization is used. If this parameter is omitted,
4835	// the default value of DISABLED is used. For more information, see Encrypting
4836	// data in transit (https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html)
4837	// in the Amazon Elastic File System User Guide.
4838	TransitEncryption *string `locationName:"transitEncryption" type:"string" enum:"EFSTransitEncryption"`
4839
4840	// The port to use when sending encrypted data between the Amazon ECS host and
4841	// the Amazon EFS server. If you don't specify a transit encryption port, it
4842	// uses the port selection strategy that the Amazon EFS mount helper uses. The
4843	// value must be between 0 and 65,535. For more information, see EFS Mount Helper
4844	// (https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html) in the
4845	// Amazon Elastic File System User Guide.
4846	TransitEncryptionPort *int64 `locationName:"transitEncryptionPort" type:"integer"`
4847}
4848
4849// String returns the string representation
4850func (s EFSVolumeConfiguration) String() string {
4851	return awsutil.Prettify(s)
4852}
4853
4854// GoString returns the string representation
4855func (s EFSVolumeConfiguration) GoString() string {
4856	return s.String()
4857}
4858
4859// Validate inspects the fields of the type to determine if they are valid.
4860func (s *EFSVolumeConfiguration) Validate() error {
4861	invalidParams := request.ErrInvalidParams{Context: "EFSVolumeConfiguration"}
4862	if s.FileSystemId == nil {
4863		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
4864	}
4865
4866	if invalidParams.Len() > 0 {
4867		return invalidParams
4868	}
4869	return nil
4870}
4871
4872// SetAuthorizationConfig sets the AuthorizationConfig field's value.
4873func (s *EFSVolumeConfiguration) SetAuthorizationConfig(v *EFSAuthorizationConfig) *EFSVolumeConfiguration {
4874	s.AuthorizationConfig = v
4875	return s
4876}
4877
4878// SetFileSystemId sets the FileSystemId field's value.
4879func (s *EFSVolumeConfiguration) SetFileSystemId(v string) *EFSVolumeConfiguration {
4880	s.FileSystemId = &v
4881	return s
4882}
4883
4884// SetRootDirectory sets the RootDirectory field's value.
4885func (s *EFSVolumeConfiguration) SetRootDirectory(v string) *EFSVolumeConfiguration {
4886	s.RootDirectory = &v
4887	return s
4888}
4889
4890// SetTransitEncryption sets the TransitEncryption field's value.
4891func (s *EFSVolumeConfiguration) SetTransitEncryption(v string) *EFSVolumeConfiguration {
4892	s.TransitEncryption = &v
4893	return s
4894}
4895
4896// SetTransitEncryptionPort sets the TransitEncryptionPort field's value.
4897func (s *EFSVolumeConfiguration) SetTransitEncryptionPort(v int64) *EFSVolumeConfiguration {
4898	s.TransitEncryptionPort = &v
4899	return s
4900}
4901
4902// Provides information used to select Amazon Machine Images (AMIs) for instances
4903// in the compute environment. If Ec2Configuration isn't specified, the default
4904// is currently ECS_AL1 (Amazon Linux (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#alami))
4905// for non-GPU, non AWSGraviton instances. Starting on March 31, 2021, this
4906// default will be changing to ECS_AL2 (Amazon Linux 2 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami)).
4907//
4908// This object isn't applicable to jobs that are running on Fargate resources.
4909type Ec2Configuration struct {
4910	_ struct{} `type:"structure"`
4911
4912	// The AMI ID used for instances launched in the compute environment that match
4913	// the image type. This setting overrides the imageId set in the computeResource
4914	// object.
4915	ImageIdOverride *string `locationName:"imageIdOverride" min:"1" type:"string"`
4916
4917	// The image type to match with the instance type to select an AMI. If the imageIdOverride
4918	// parameter isn't specified, then a recent Amazon ECS-optimized AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)
4919	// (ECS_AL1) is used. Starting on March 31, 2021, this default will be changing
4920	// to ECS_AL2 (Amazon Linux 2 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami)).
4921	//
4922	// ECS_AL2
4923	//
4924	// Amazon Linux 2 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami)
4925	// Default for all Amazon Web Services Graviton-based instance families (for
4926	// example, C6g, M6g, R6g, and T4g) and can be used for all non-GPU instance
4927	// types.
4928	//
4929	// ECS_AL2_NVIDIA
4930	//
4931	// Amazon Linux 2 (GPU) (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#gpuami)−Default
4932	// for all GPU instance families (for example P4 and G4) and can be used for
4933	// all non Amazon Web Services Graviton-based instance types.
4934	//
4935	// ECS_AL1
4936	//
4937	// Amazon Linux (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#alami)−Default
4938	// for all non-GPU, non Amazon Web Services Graviton instance families. Amazon
4939	// Linux is reaching the end-of-life of standard support. For more information,
4940	// see Amazon Linux AMI (http://aws.amazon.com/amazon-linux-ami/).
4941	//
4942	// ImageType is a required field
4943	ImageType *string `locationName:"imageType" min:"1" type:"string" required:"true"`
4944}
4945
4946// String returns the string representation
4947func (s Ec2Configuration) String() string {
4948	return awsutil.Prettify(s)
4949}
4950
4951// GoString returns the string representation
4952func (s Ec2Configuration) GoString() string {
4953	return s.String()
4954}
4955
4956// Validate inspects the fields of the type to determine if they are valid.
4957func (s *Ec2Configuration) Validate() error {
4958	invalidParams := request.ErrInvalidParams{Context: "Ec2Configuration"}
4959	if s.ImageIdOverride != nil && len(*s.ImageIdOverride) < 1 {
4960		invalidParams.Add(request.NewErrParamMinLen("ImageIdOverride", 1))
4961	}
4962	if s.ImageType == nil {
4963		invalidParams.Add(request.NewErrParamRequired("ImageType"))
4964	}
4965	if s.ImageType != nil && len(*s.ImageType) < 1 {
4966		invalidParams.Add(request.NewErrParamMinLen("ImageType", 1))
4967	}
4968
4969	if invalidParams.Len() > 0 {
4970		return invalidParams
4971	}
4972	return nil
4973}
4974
4975// SetImageIdOverride sets the ImageIdOverride field's value.
4976func (s *Ec2Configuration) SetImageIdOverride(v string) *Ec2Configuration {
4977	s.ImageIdOverride = &v
4978	return s
4979}
4980
4981// SetImageType sets the ImageType field's value.
4982func (s *Ec2Configuration) SetImageType(v string) *Ec2Configuration {
4983	s.ImageType = &v
4984	return s
4985}
4986
4987// Specifies a set of conditions to be met, and an action to take (RETRY or
4988// EXIT) if all conditions are met.
4989type EvaluateOnExit struct {
4990	_ struct{} `type:"structure"`
4991
4992	// Specifies the action to take if all of the specified conditions (onStatusReason,
4993	// onReason, and onExitCode) are met. The values aren't case sensitive.
4994	//
4995	// Action is a required field
4996	Action *string `locationName:"action" type:"string" required:"true" enum:"RetryAction"`
4997
4998	// Contains a glob pattern to match against the decimal representation of the
4999	// ExitCode returned for a job. The pattern can be up to 512 characters in length.
5000	// It can contain only numbers, and can optionally end with an asterisk (*)
5001	// so that only the start of the string needs to be an exact match.
5002	OnExitCode *string `locationName:"onExitCode" type:"string"`
5003
5004	// Contains a glob pattern to match against the Reason returned for a job. The
5005	// pattern can be up to 512 characters in length. It can contain letters, numbers,
5006	// periods (.), colons (:), and white space (including spaces and tabs). It
5007	// can optionally end with an asterisk (*) so that only the start of the string
5008	// needs to be an exact match.
5009	OnReason *string `locationName:"onReason" type:"string"`
5010
5011	// Contains a glob pattern to match against the StatusReason returned for a
5012	// job. The pattern can be up to 512 characters in length. It can contain letters,
5013	// numbers, periods (.), colons (:), and white space (including spaces or tabs).
5014	// It can optionally end with an asterisk (*) so that only the start of the
5015	// string needs to be an exact match.
5016	OnStatusReason *string `locationName:"onStatusReason" type:"string"`
5017}
5018
5019// String returns the string representation
5020func (s EvaluateOnExit) String() string {
5021	return awsutil.Prettify(s)
5022}
5023
5024// GoString returns the string representation
5025func (s EvaluateOnExit) GoString() string {
5026	return s.String()
5027}
5028
5029// Validate inspects the fields of the type to determine if they are valid.
5030func (s *EvaluateOnExit) Validate() error {
5031	invalidParams := request.ErrInvalidParams{Context: "EvaluateOnExit"}
5032	if s.Action == nil {
5033		invalidParams.Add(request.NewErrParamRequired("Action"))
5034	}
5035
5036	if invalidParams.Len() > 0 {
5037		return invalidParams
5038	}
5039	return nil
5040}
5041
5042// SetAction sets the Action field's value.
5043func (s *EvaluateOnExit) SetAction(v string) *EvaluateOnExit {
5044	s.Action = &v
5045	return s
5046}
5047
5048// SetOnExitCode sets the OnExitCode field's value.
5049func (s *EvaluateOnExit) SetOnExitCode(v string) *EvaluateOnExit {
5050	s.OnExitCode = &v
5051	return s
5052}
5053
5054// SetOnReason sets the OnReason field's value.
5055func (s *EvaluateOnExit) SetOnReason(v string) *EvaluateOnExit {
5056	s.OnReason = &v
5057	return s
5058}
5059
5060// SetOnStatusReason sets the OnStatusReason field's value.
5061func (s *EvaluateOnExit) SetOnStatusReason(v string) *EvaluateOnExit {
5062	s.OnStatusReason = &v
5063	return s
5064}
5065
5066// The platform configuration for jobs that are running on Fargate resources.
5067// Jobs that run on EC2 resources must not specify this parameter.
5068type FargatePlatformConfiguration struct {
5069	_ struct{} `type:"structure"`
5070
5071	// The Fargate platform version where the jobs are running. A platform version
5072	// is specified only for jobs that are running on Fargate resources. If one
5073	// isn't specified, the LATEST platform version is used by default. This uses
5074	// a recent, approved version of the Fargate platform for compute resources.
5075	// For more information, see Fargate platform versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
5076	// in the Amazon Elastic Container Service Developer Guide.
5077	PlatformVersion *string `locationName:"platformVersion" type:"string"`
5078}
5079
5080// String returns the string representation
5081func (s FargatePlatformConfiguration) String() string {
5082	return awsutil.Prettify(s)
5083}
5084
5085// GoString returns the string representation
5086func (s FargatePlatformConfiguration) GoString() string {
5087	return s.String()
5088}
5089
5090// SetPlatformVersion sets the PlatformVersion field's value.
5091func (s *FargatePlatformConfiguration) SetPlatformVersion(v string) *FargatePlatformConfiguration {
5092	s.PlatformVersion = &v
5093	return s
5094}
5095
5096// Determine whether your data volume persists on the host container instance
5097// and where it is stored. If this parameter is empty, then the Docker daemon
5098// assigns a host path for your data volume, but the data isn't guaranteed to
5099// persist after the containers associated with it stop running.
5100type Host struct {
5101	_ struct{} `type:"structure"`
5102
5103	// The path on the host container instance that's presented to the container.
5104	// If this parameter is empty, then the Docker daemon has assigned a host path
5105	// for you. If this parameter contains a file location, then the data volume
5106	// persists at the specified location on the host container instance until you
5107	// delete it manually. If the source path location doesn't exist on the host
5108	// container instance, the Docker daemon creates it. If the location does exist,
5109	// the contents of the source path folder are exported.
5110	//
5111	// This parameter isn't applicable to jobs that run on Fargate resources and
5112	// shouldn't be provided.
5113	SourcePath *string `locationName:"sourcePath" type:"string"`
5114}
5115
5116// String returns the string representation
5117func (s Host) String() string {
5118	return awsutil.Prettify(s)
5119}
5120
5121// GoString returns the string representation
5122func (s Host) GoString() string {
5123	return s.String()
5124}
5125
5126// SetSourcePath sets the SourcePath field's value.
5127func (s *Host) SetSourcePath(v string) *Host {
5128	s.SourcePath = &v
5129	return s
5130}
5131
5132// An object representing an Batch job definition.
5133type JobDefinition struct {
5134	_ struct{} `type:"structure"`
5135
5136	// An object with various properties specific to container-based jobs.
5137	ContainerProperties *ContainerProperties `locationName:"containerProperties" type:"structure"`
5138
5139	// The Amazon Resource Name (ARN) for the job definition.
5140	//
5141	// JobDefinitionArn is a required field
5142	JobDefinitionArn *string `locationName:"jobDefinitionArn" type:"string" required:"true"`
5143
5144	// The name of the job definition.
5145	//
5146	// JobDefinitionName is a required field
5147	JobDefinitionName *string `locationName:"jobDefinitionName" type:"string" required:"true"`
5148
5149	// An object with various properties specific to multi-node parallel jobs.
5150	//
5151	// If the job runs on Fargate resources, then you must not specify nodeProperties;
5152	// use containerProperties instead.
5153	NodeProperties *NodeProperties `locationName:"nodeProperties" type:"structure"`
5154
5155	// Default parameters or parameter substitution placeholders that are set in
5156	// the job definition. Parameters are specified as a key-value pair mapping.
5157	// Parameters in a SubmitJob request override any corresponding parameter defaults
5158	// from the job definition. For more information about specifying parameters,
5159	// see Job Definition Parameters (https://docs.aws.amazon.com/batch/latest/userguide/job_definition_parameters.html)
5160	// in the Batch User Guide.
5161	Parameters map[string]*string `locationName:"parameters" type:"map"`
5162
5163	// The platform capabilities required by the job definition. If no value is
5164	// specified, it defaults to EC2. Jobs run on Fargate resources specify FARGATE.
5165	PlatformCapabilities []*string `locationName:"platformCapabilities" type:"list"`
5166
5167	// Specifies whether to propagate the tags from the job or job definition to
5168	// the corresponding Amazon ECS task. If no value is specified, the tags aren't
5169	// propagated. Tags can only be propagated to the tasks during task creation.
5170	// For tags with the same name, job tags are given priority over job definitions
5171	// tags. If the total number of combined tags from the job and job definition
5172	// is over 50, the job is moved to the FAILED state.
5173	PropagateTags *bool `locationName:"propagateTags" type:"boolean"`
5174
5175	// The retry strategy to use for failed jobs that are submitted with this job
5176	// definition.
5177	RetryStrategy *RetryStrategy `locationName:"retryStrategy" type:"structure"`
5178
5179	// The revision of the job definition.
5180	//
5181	// Revision is a required field
5182	Revision *int64 `locationName:"revision" type:"integer" required:"true"`
5183
5184	// The status of the job definition.
5185	Status *string `locationName:"status" type:"string"`
5186
5187	// The tags applied to the job definition.
5188	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
5189
5190	// The timeout configuration for jobs that are submitted with this job definition.
5191	// You can specify a timeout duration after which Batch terminates your jobs
5192	// if they haven't finished.
5193	Timeout *JobTimeout `locationName:"timeout" type:"structure"`
5194
5195	// The type of job definition. If the job is run on Fargate resources, then
5196	// multinode isn't supported. For more information about multi-node parallel
5197	// jobs, see Creating a multi-node parallel job definition (https://docs.aws.amazon.com/batch/latest/userguide/multi-node-job-def.html)
5198	// in the Batch User Guide.
5199	//
5200	// Type is a required field
5201	Type *string `locationName:"type" type:"string" required:"true"`
5202}
5203
5204// String returns the string representation
5205func (s JobDefinition) String() string {
5206	return awsutil.Prettify(s)
5207}
5208
5209// GoString returns the string representation
5210func (s JobDefinition) GoString() string {
5211	return s.String()
5212}
5213
5214// SetContainerProperties sets the ContainerProperties field's value.
5215func (s *JobDefinition) SetContainerProperties(v *ContainerProperties) *JobDefinition {
5216	s.ContainerProperties = v
5217	return s
5218}
5219
5220// SetJobDefinitionArn sets the JobDefinitionArn field's value.
5221func (s *JobDefinition) SetJobDefinitionArn(v string) *JobDefinition {
5222	s.JobDefinitionArn = &v
5223	return s
5224}
5225
5226// SetJobDefinitionName sets the JobDefinitionName field's value.
5227func (s *JobDefinition) SetJobDefinitionName(v string) *JobDefinition {
5228	s.JobDefinitionName = &v
5229	return s
5230}
5231
5232// SetNodeProperties sets the NodeProperties field's value.
5233func (s *JobDefinition) SetNodeProperties(v *NodeProperties) *JobDefinition {
5234	s.NodeProperties = v
5235	return s
5236}
5237
5238// SetParameters sets the Parameters field's value.
5239func (s *JobDefinition) SetParameters(v map[string]*string) *JobDefinition {
5240	s.Parameters = v
5241	return s
5242}
5243
5244// SetPlatformCapabilities sets the PlatformCapabilities field's value.
5245func (s *JobDefinition) SetPlatformCapabilities(v []*string) *JobDefinition {
5246	s.PlatformCapabilities = v
5247	return s
5248}
5249
5250// SetPropagateTags sets the PropagateTags field's value.
5251func (s *JobDefinition) SetPropagateTags(v bool) *JobDefinition {
5252	s.PropagateTags = &v
5253	return s
5254}
5255
5256// SetRetryStrategy sets the RetryStrategy field's value.
5257func (s *JobDefinition) SetRetryStrategy(v *RetryStrategy) *JobDefinition {
5258	s.RetryStrategy = v
5259	return s
5260}
5261
5262// SetRevision sets the Revision field's value.
5263func (s *JobDefinition) SetRevision(v int64) *JobDefinition {
5264	s.Revision = &v
5265	return s
5266}
5267
5268// SetStatus sets the Status field's value.
5269func (s *JobDefinition) SetStatus(v string) *JobDefinition {
5270	s.Status = &v
5271	return s
5272}
5273
5274// SetTags sets the Tags field's value.
5275func (s *JobDefinition) SetTags(v map[string]*string) *JobDefinition {
5276	s.Tags = v
5277	return s
5278}
5279
5280// SetTimeout sets the Timeout field's value.
5281func (s *JobDefinition) SetTimeout(v *JobTimeout) *JobDefinition {
5282	s.Timeout = v
5283	return s
5284}
5285
5286// SetType sets the Type field's value.
5287func (s *JobDefinition) SetType(v string) *JobDefinition {
5288	s.Type = &v
5289	return s
5290}
5291
5292// An object representing an Batch job dependency.
5293type JobDependency struct {
5294	_ struct{} `type:"structure"`
5295
5296	// The job ID of the Batch job associated with this dependency.
5297	JobId *string `locationName:"jobId" type:"string"`
5298
5299	// The type of the job dependency.
5300	Type *string `locationName:"type" type:"string" enum:"ArrayJobDependency"`
5301}
5302
5303// String returns the string representation
5304func (s JobDependency) String() string {
5305	return awsutil.Prettify(s)
5306}
5307
5308// GoString returns the string representation
5309func (s JobDependency) GoString() string {
5310	return s.String()
5311}
5312
5313// SetJobId sets the JobId field's value.
5314func (s *JobDependency) SetJobId(v string) *JobDependency {
5315	s.JobId = &v
5316	return s
5317}
5318
5319// SetType sets the Type field's value.
5320func (s *JobDependency) SetType(v string) *JobDependency {
5321	s.Type = &v
5322	return s
5323}
5324
5325// An object representing an Batch job.
5326type JobDetail struct {
5327	_ struct{} `type:"structure"`
5328
5329	// The array properties of the job, if it is an array job.
5330	ArrayProperties *ArrayPropertiesDetail `locationName:"arrayProperties" type:"structure"`
5331
5332	// A list of job attempts associated with this job.
5333	Attempts []*AttemptDetail `locationName:"attempts" type:"list"`
5334
5335	// An object representing the details of the container that's associated with
5336	// the job.
5337	Container *ContainerDetail `locationName:"container" type:"structure"`
5338
5339	// The Unix timestamp (in milliseconds) for when the job was created. For non-array
5340	// jobs and parent array jobs, this is when the job entered the SUBMITTED state
5341	// (at the time SubmitJob was called). For array child jobs, this is when the
5342	// child job was spawned by its parent and entered the PENDING state.
5343	CreatedAt *int64 `locationName:"createdAt" type:"long"`
5344
5345	// A list of job IDs that this job depends on.
5346	DependsOn []*JobDependency `locationName:"dependsOn" type:"list"`
5347
5348	// The Amazon Resource Name (ARN) of the job.
5349	JobArn *string `locationName:"jobArn" type:"string"`
5350
5351	// The job definition that's used by this job.
5352	//
5353	// JobDefinition is a required field
5354	JobDefinition *string `locationName:"jobDefinition" type:"string" required:"true"`
5355
5356	// The ID for the job.
5357	//
5358	// JobId is a required field
5359	JobId *string `locationName:"jobId" type:"string" required:"true"`
5360
5361	// The name of the job.
5362	//
5363	// JobName is a required field
5364	JobName *string `locationName:"jobName" type:"string" required:"true"`
5365
5366	// The Amazon Resource Name (ARN) of the job queue that the job is associated
5367	// with.
5368	//
5369	// JobQueue is a required field
5370	JobQueue *string `locationName:"jobQueue" type:"string" required:"true"`
5371
5372	// An object representing the details of a node that's associated with a multi-node
5373	// parallel job.
5374	NodeDetails *NodeDetails `locationName:"nodeDetails" type:"structure"`
5375
5376	// An object representing the node properties of a multi-node parallel job.
5377	//
5378	// This isn't applicable to jobs that are running on Fargate resources.
5379	NodeProperties *NodeProperties `locationName:"nodeProperties" type:"structure"`
5380
5381	// Additional parameters passed to the job that replace parameter substitution
5382	// placeholders or override any corresponding parameter defaults from the job
5383	// definition.
5384	Parameters map[string]*string `locationName:"parameters" type:"map"`
5385
5386	// The platform capabilities required by the job definition. If no value is
5387	// specified, it defaults to EC2. Jobs run on Fargate resources specify FARGATE.
5388	PlatformCapabilities []*string `locationName:"platformCapabilities" type:"list"`
5389
5390	// Specifies whether to propagate the tags from the job or job definition to
5391	// the corresponding Amazon ECS task. If no value is specified, the tags aren't
5392	// propagated. Tags can only be propagated to the tasks during task creation.
5393	// For tags with the same name, job tags are given priority over job definitions
5394	// tags. If the total number of combined tags from the job and job definition
5395	// is over 50, the job is moved to the FAILED state.
5396	PropagateTags *bool `locationName:"propagateTags" type:"boolean"`
5397
5398	// The retry strategy to use for this job if an attempt fails.
5399	RetryStrategy *RetryStrategy `locationName:"retryStrategy" type:"structure"`
5400
5401	// The Unix timestamp (in milliseconds) for when the job was started (when the
5402	// job transitioned from the STARTING state to the RUNNING state). This parameter
5403	// isn't provided for child jobs of array jobs or multi-node parallel jobs.
5404	//
5405	// StartedAt is a required field
5406	StartedAt *int64 `locationName:"startedAt" type:"long" required:"true"`
5407
5408	// The current status for the job.
5409	//
5410	// If your jobs don't progress to STARTING, see Jobs Stuck in RUNNABLE Status
5411	// (https://docs.aws.amazon.com/batch/latest/userguide/troubleshooting.html#job_stuck_in_runnable)
5412	// in the troubleshooting section of the Batch User Guide.
5413	//
5414	// Status is a required field
5415	Status *string `locationName:"status" type:"string" required:"true" enum:"JobStatus"`
5416
5417	// A short, human-readable string to provide additional details about the current
5418	// status of the job.
5419	StatusReason *string `locationName:"statusReason" type:"string"`
5420
5421	// The Unix timestamp (in milliseconds) for when the job was stopped (when the
5422	// job transitioned from the RUNNING state to a terminal state, such as SUCCEEDED
5423	// or FAILED).
5424	StoppedAt *int64 `locationName:"stoppedAt" type:"long"`
5425
5426	// The tags applied to the job.
5427	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
5428
5429	// The timeout configuration for the job.
5430	Timeout *JobTimeout `locationName:"timeout" type:"structure"`
5431}
5432
5433// String returns the string representation
5434func (s JobDetail) String() string {
5435	return awsutil.Prettify(s)
5436}
5437
5438// GoString returns the string representation
5439func (s JobDetail) GoString() string {
5440	return s.String()
5441}
5442
5443// SetArrayProperties sets the ArrayProperties field's value.
5444func (s *JobDetail) SetArrayProperties(v *ArrayPropertiesDetail) *JobDetail {
5445	s.ArrayProperties = v
5446	return s
5447}
5448
5449// SetAttempts sets the Attempts field's value.
5450func (s *JobDetail) SetAttempts(v []*AttemptDetail) *JobDetail {
5451	s.Attempts = v
5452	return s
5453}
5454
5455// SetContainer sets the Container field's value.
5456func (s *JobDetail) SetContainer(v *ContainerDetail) *JobDetail {
5457	s.Container = v
5458	return s
5459}
5460
5461// SetCreatedAt sets the CreatedAt field's value.
5462func (s *JobDetail) SetCreatedAt(v int64) *JobDetail {
5463	s.CreatedAt = &v
5464	return s
5465}
5466
5467// SetDependsOn sets the DependsOn field's value.
5468func (s *JobDetail) SetDependsOn(v []*JobDependency) *JobDetail {
5469	s.DependsOn = v
5470	return s
5471}
5472
5473// SetJobArn sets the JobArn field's value.
5474func (s *JobDetail) SetJobArn(v string) *JobDetail {
5475	s.JobArn = &v
5476	return s
5477}
5478
5479// SetJobDefinition sets the JobDefinition field's value.
5480func (s *JobDetail) SetJobDefinition(v string) *JobDetail {
5481	s.JobDefinition = &v
5482	return s
5483}
5484
5485// SetJobId sets the JobId field's value.
5486func (s *JobDetail) SetJobId(v string) *JobDetail {
5487	s.JobId = &v
5488	return s
5489}
5490
5491// SetJobName sets the JobName field's value.
5492func (s *JobDetail) SetJobName(v string) *JobDetail {
5493	s.JobName = &v
5494	return s
5495}
5496
5497// SetJobQueue sets the JobQueue field's value.
5498func (s *JobDetail) SetJobQueue(v string) *JobDetail {
5499	s.JobQueue = &v
5500	return s
5501}
5502
5503// SetNodeDetails sets the NodeDetails field's value.
5504func (s *JobDetail) SetNodeDetails(v *NodeDetails) *JobDetail {
5505	s.NodeDetails = v
5506	return s
5507}
5508
5509// SetNodeProperties sets the NodeProperties field's value.
5510func (s *JobDetail) SetNodeProperties(v *NodeProperties) *JobDetail {
5511	s.NodeProperties = v
5512	return s
5513}
5514
5515// SetParameters sets the Parameters field's value.
5516func (s *JobDetail) SetParameters(v map[string]*string) *JobDetail {
5517	s.Parameters = v
5518	return s
5519}
5520
5521// SetPlatformCapabilities sets the PlatformCapabilities field's value.
5522func (s *JobDetail) SetPlatformCapabilities(v []*string) *JobDetail {
5523	s.PlatformCapabilities = v
5524	return s
5525}
5526
5527// SetPropagateTags sets the PropagateTags field's value.
5528func (s *JobDetail) SetPropagateTags(v bool) *JobDetail {
5529	s.PropagateTags = &v
5530	return s
5531}
5532
5533// SetRetryStrategy sets the RetryStrategy field's value.
5534func (s *JobDetail) SetRetryStrategy(v *RetryStrategy) *JobDetail {
5535	s.RetryStrategy = v
5536	return s
5537}
5538
5539// SetStartedAt sets the StartedAt field's value.
5540func (s *JobDetail) SetStartedAt(v int64) *JobDetail {
5541	s.StartedAt = &v
5542	return s
5543}
5544
5545// SetStatus sets the Status field's value.
5546func (s *JobDetail) SetStatus(v string) *JobDetail {
5547	s.Status = &v
5548	return s
5549}
5550
5551// SetStatusReason sets the StatusReason field's value.
5552func (s *JobDetail) SetStatusReason(v string) *JobDetail {
5553	s.StatusReason = &v
5554	return s
5555}
5556
5557// SetStoppedAt sets the StoppedAt field's value.
5558func (s *JobDetail) SetStoppedAt(v int64) *JobDetail {
5559	s.StoppedAt = &v
5560	return s
5561}
5562
5563// SetTags sets the Tags field's value.
5564func (s *JobDetail) SetTags(v map[string]*string) *JobDetail {
5565	s.Tags = v
5566	return s
5567}
5568
5569// SetTimeout sets the Timeout field's value.
5570func (s *JobDetail) SetTimeout(v *JobTimeout) *JobDetail {
5571	s.Timeout = v
5572	return s
5573}
5574
5575// An object representing the details of an Batch job queue.
5576type JobQueueDetail struct {
5577	_ struct{} `type:"structure"`
5578
5579	// The compute environments that are attached to the job queue and the order
5580	// that job placement is preferred. Compute environments are selected for job
5581	// placement in ascending order.
5582	//
5583	// ComputeEnvironmentOrder is a required field
5584	ComputeEnvironmentOrder []*ComputeEnvironmentOrder `locationName:"computeEnvironmentOrder" type:"list" required:"true"`
5585
5586	// The Amazon Resource Name (ARN) of the job queue.
5587	//
5588	// JobQueueArn is a required field
5589	JobQueueArn *string `locationName:"jobQueueArn" type:"string" required:"true"`
5590
5591	// The name of the job queue.
5592	//
5593	// JobQueueName is a required field
5594	JobQueueName *string `locationName:"jobQueueName" type:"string" required:"true"`
5595
5596	// The priority of the job queue. Job queues with a higher priority (or a higher
5597	// integer value for the priority parameter) are evaluated first when associated
5598	// with the same compute environment. Priority is determined in descending order,
5599	// for example, a job queue with a priority value of 10 is given scheduling
5600	// preference over a job queue with a priority value of 1. All of the compute
5601	// environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT);
5602	// EC2 and Fargate compute environments can't be mixed.
5603	//
5604	// Priority is a required field
5605	Priority *int64 `locationName:"priority" type:"integer" required:"true"`
5606
5607	// Describes the ability of the queue to accept new jobs. If the job queue state
5608	// is ENABLED, it's able to accept jobs. If the job queue state is DISABLED,
5609	// new jobs can't be added to the queue, but jobs already in the queue can finish.
5610	//
5611	// State is a required field
5612	State *string `locationName:"state" type:"string" required:"true" enum:"JQState"`
5613
5614	// The status of the job queue (for example, CREATING or VALID).
5615	Status *string `locationName:"status" type:"string" enum:"JQStatus"`
5616
5617	// A short, human-readable string to provide additional details about the current
5618	// status of the job queue.
5619	StatusReason *string `locationName:"statusReason" type:"string"`
5620
5621	// The tags applied to the job queue. For more information, see Tagging your
5622	// Batch resources (https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html)
5623	// in Batch User Guide.
5624	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
5625}
5626
5627// String returns the string representation
5628func (s JobQueueDetail) String() string {
5629	return awsutil.Prettify(s)
5630}
5631
5632// GoString returns the string representation
5633func (s JobQueueDetail) GoString() string {
5634	return s.String()
5635}
5636
5637// SetComputeEnvironmentOrder sets the ComputeEnvironmentOrder field's value.
5638func (s *JobQueueDetail) SetComputeEnvironmentOrder(v []*ComputeEnvironmentOrder) *JobQueueDetail {
5639	s.ComputeEnvironmentOrder = v
5640	return s
5641}
5642
5643// SetJobQueueArn sets the JobQueueArn field's value.
5644func (s *JobQueueDetail) SetJobQueueArn(v string) *JobQueueDetail {
5645	s.JobQueueArn = &v
5646	return s
5647}
5648
5649// SetJobQueueName sets the JobQueueName field's value.
5650func (s *JobQueueDetail) SetJobQueueName(v string) *JobQueueDetail {
5651	s.JobQueueName = &v
5652	return s
5653}
5654
5655// SetPriority sets the Priority field's value.
5656func (s *JobQueueDetail) SetPriority(v int64) *JobQueueDetail {
5657	s.Priority = &v
5658	return s
5659}
5660
5661// SetState sets the State field's value.
5662func (s *JobQueueDetail) SetState(v string) *JobQueueDetail {
5663	s.State = &v
5664	return s
5665}
5666
5667// SetStatus sets the Status field's value.
5668func (s *JobQueueDetail) SetStatus(v string) *JobQueueDetail {
5669	s.Status = &v
5670	return s
5671}
5672
5673// SetStatusReason sets the StatusReason field's value.
5674func (s *JobQueueDetail) SetStatusReason(v string) *JobQueueDetail {
5675	s.StatusReason = &v
5676	return s
5677}
5678
5679// SetTags sets the Tags field's value.
5680func (s *JobQueueDetail) SetTags(v map[string]*string) *JobQueueDetail {
5681	s.Tags = v
5682	return s
5683}
5684
5685// An object representing summary details of a job.
5686type JobSummary struct {
5687	_ struct{} `type:"structure"`
5688
5689	// The array properties of the job, if it is an array job.
5690	ArrayProperties *ArrayPropertiesSummary `locationName:"arrayProperties" type:"structure"`
5691
5692	// An object representing the details of the container that's associated with
5693	// the job.
5694	Container *ContainerSummary `locationName:"container" type:"structure"`
5695
5696	// The Unix timestamp for when the job was created. For non-array jobs and parent
5697	// array jobs, this is when the job entered the SUBMITTED state (at the time
5698	// SubmitJob was called). For array child jobs, this is when the child job was
5699	// spawned by its parent and entered the PENDING state.
5700	CreatedAt *int64 `locationName:"createdAt" type:"long"`
5701
5702	// The Amazon Resource Name (ARN) of the job.
5703	JobArn *string `locationName:"jobArn" type:"string"`
5704
5705	// The Amazon Resource Name (ARN) of the job definition.
5706	JobDefinition *string `locationName:"jobDefinition" type:"string"`
5707
5708	// The ID of the job.
5709	//
5710	// JobId is a required field
5711	JobId *string `locationName:"jobId" type:"string" required:"true"`
5712
5713	// The name of the job.
5714	//
5715	// JobName is a required field
5716	JobName *string `locationName:"jobName" type:"string" required:"true"`
5717
5718	// The node properties for a single node in a job summary list.
5719	//
5720	// This isn't applicable to jobs that are running on Fargate resources.
5721	NodeProperties *NodePropertiesSummary `locationName:"nodeProperties" type:"structure"`
5722
5723	// The Unix timestamp for when the job was started (when the job transitioned
5724	// from the STARTING state to the RUNNING state).
5725	StartedAt *int64 `locationName:"startedAt" type:"long"`
5726
5727	// The current status for the job.
5728	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
5729
5730	// A short, human-readable string to provide additional details about the current
5731	// status of the job.
5732	StatusReason *string `locationName:"statusReason" type:"string"`
5733
5734	// The Unix timestamp for when the job was stopped (when the job transitioned
5735	// from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED).
5736	StoppedAt *int64 `locationName:"stoppedAt" type:"long"`
5737}
5738
5739// String returns the string representation
5740func (s JobSummary) String() string {
5741	return awsutil.Prettify(s)
5742}
5743
5744// GoString returns the string representation
5745func (s JobSummary) GoString() string {
5746	return s.String()
5747}
5748
5749// SetArrayProperties sets the ArrayProperties field's value.
5750func (s *JobSummary) SetArrayProperties(v *ArrayPropertiesSummary) *JobSummary {
5751	s.ArrayProperties = v
5752	return s
5753}
5754
5755// SetContainer sets the Container field's value.
5756func (s *JobSummary) SetContainer(v *ContainerSummary) *JobSummary {
5757	s.Container = v
5758	return s
5759}
5760
5761// SetCreatedAt sets the CreatedAt field's value.
5762func (s *JobSummary) SetCreatedAt(v int64) *JobSummary {
5763	s.CreatedAt = &v
5764	return s
5765}
5766
5767// SetJobArn sets the JobArn field's value.
5768func (s *JobSummary) SetJobArn(v string) *JobSummary {
5769	s.JobArn = &v
5770	return s
5771}
5772
5773// SetJobDefinition sets the JobDefinition field's value.
5774func (s *JobSummary) SetJobDefinition(v string) *JobSummary {
5775	s.JobDefinition = &v
5776	return s
5777}
5778
5779// SetJobId sets the JobId field's value.
5780func (s *JobSummary) SetJobId(v string) *JobSummary {
5781	s.JobId = &v
5782	return s
5783}
5784
5785// SetJobName sets the JobName field's value.
5786func (s *JobSummary) SetJobName(v string) *JobSummary {
5787	s.JobName = &v
5788	return s
5789}
5790
5791// SetNodeProperties sets the NodeProperties field's value.
5792func (s *JobSummary) SetNodeProperties(v *NodePropertiesSummary) *JobSummary {
5793	s.NodeProperties = v
5794	return s
5795}
5796
5797// SetStartedAt sets the StartedAt field's value.
5798func (s *JobSummary) SetStartedAt(v int64) *JobSummary {
5799	s.StartedAt = &v
5800	return s
5801}
5802
5803// SetStatus sets the Status field's value.
5804func (s *JobSummary) SetStatus(v string) *JobSummary {
5805	s.Status = &v
5806	return s
5807}
5808
5809// SetStatusReason sets the StatusReason field's value.
5810func (s *JobSummary) SetStatusReason(v string) *JobSummary {
5811	s.StatusReason = &v
5812	return s
5813}
5814
5815// SetStoppedAt sets the StoppedAt field's value.
5816func (s *JobSummary) SetStoppedAt(v int64) *JobSummary {
5817	s.StoppedAt = &v
5818	return s
5819}
5820
5821// An object representing a job timeout configuration.
5822type JobTimeout struct {
5823	_ struct{} `type:"structure"`
5824
5825	// The time duration in seconds (measured from the job attempt's startedAt timestamp)
5826	// after which Batch terminates your jobs if they have not finished. The minimum
5827	// value for the timeout is 60 seconds.
5828	AttemptDurationSeconds *int64 `locationName:"attemptDurationSeconds" type:"integer"`
5829}
5830
5831// String returns the string representation
5832func (s JobTimeout) String() string {
5833	return awsutil.Prettify(s)
5834}
5835
5836// GoString returns the string representation
5837func (s JobTimeout) GoString() string {
5838	return s.String()
5839}
5840
5841// SetAttemptDurationSeconds sets the AttemptDurationSeconds field's value.
5842func (s *JobTimeout) SetAttemptDurationSeconds(v int64) *JobTimeout {
5843	s.AttemptDurationSeconds = &v
5844	return s
5845}
5846
5847// A key-value pair object.
5848type KeyValuePair struct {
5849	_ struct{} `type:"structure"`
5850
5851	// The name of the key-value pair. For environment variables, this is the name
5852	// of the environment variable.
5853	Name *string `locationName:"name" type:"string"`
5854
5855	// The value of the key-value pair. For environment variables, this is the value
5856	// of the environment variable.
5857	Value *string `locationName:"value" type:"string"`
5858}
5859
5860// String returns the string representation
5861func (s KeyValuePair) String() string {
5862	return awsutil.Prettify(s)
5863}
5864
5865// GoString returns the string representation
5866func (s KeyValuePair) GoString() string {
5867	return s.String()
5868}
5869
5870// SetName sets the Name field's value.
5871func (s *KeyValuePair) SetName(v string) *KeyValuePair {
5872	s.Name = &v
5873	return s
5874}
5875
5876// SetValue sets the Value field's value.
5877func (s *KeyValuePair) SetValue(v string) *KeyValuePair {
5878	s.Value = &v
5879	return s
5880}
5881
5882// A filter name and value pair that's used to return a more specific list of
5883// results from a ListJobs API operation.
5884type KeyValuesPair struct {
5885	_ struct{} `type:"structure"`
5886
5887	// The name of the filter. Filter names are case sensitive.
5888	Name *string `locationName:"name" type:"string"`
5889
5890	// The filter values.
5891	Values []*string `locationName:"values" type:"list"`
5892}
5893
5894// String returns the string representation
5895func (s KeyValuesPair) String() string {
5896	return awsutil.Prettify(s)
5897}
5898
5899// GoString returns the string representation
5900func (s KeyValuesPair) GoString() string {
5901	return s.String()
5902}
5903
5904// SetName sets the Name field's value.
5905func (s *KeyValuesPair) SetName(v string) *KeyValuesPair {
5906	s.Name = &v
5907	return s
5908}
5909
5910// SetValues sets the Values field's value.
5911func (s *KeyValuesPair) SetValues(v []*string) *KeyValuesPair {
5912	s.Values = v
5913	return s
5914}
5915
5916// An object representing a launch template associated with a compute resource.
5917// You must specify either the launch template ID or launch template name in
5918// the request, but not both.
5919//
5920// If security groups are specified using both the securityGroupIds parameter
5921// of CreateComputeEnvironment and the launch template, the values in the securityGroupIds
5922// parameter of CreateComputeEnvironment will be used.
5923//
5924// This object isn't applicable to jobs that are running on Fargate resources.
5925type LaunchTemplateSpecification struct {
5926	_ struct{} `type:"structure"`
5927
5928	// The ID of the launch template.
5929	LaunchTemplateId *string `locationName:"launchTemplateId" type:"string"`
5930
5931	// The name of the launch template.
5932	LaunchTemplateName *string `locationName:"launchTemplateName" type:"string"`
5933
5934	// The version number of the launch template, $Latest, or $Default.
5935	//
5936	// If the value is $Latest, the latest version of the launch template is used.
5937	// If the value is $Default, the default version of the launch template is used.
5938	//
5939	// After the compute environment is created, the launch template version that's
5940	// used isn't changed, even if the $Default or $Latest version for the launch
5941	// template is updated. To use a new launch template version, create a new compute
5942	// environment, add the new compute environment to the existing job queue, remove
5943	// the old compute environment from the job queue, and delete the old compute
5944	// environment.
5945	//
5946	// Default: $Default.
5947	Version *string `locationName:"version" type:"string"`
5948}
5949
5950// String returns the string representation
5951func (s LaunchTemplateSpecification) String() string {
5952	return awsutil.Prettify(s)
5953}
5954
5955// GoString returns the string representation
5956func (s LaunchTemplateSpecification) GoString() string {
5957	return s.String()
5958}
5959
5960// SetLaunchTemplateId sets the LaunchTemplateId field's value.
5961func (s *LaunchTemplateSpecification) SetLaunchTemplateId(v string) *LaunchTemplateSpecification {
5962	s.LaunchTemplateId = &v
5963	return s
5964}
5965
5966// SetLaunchTemplateName sets the LaunchTemplateName field's value.
5967func (s *LaunchTemplateSpecification) SetLaunchTemplateName(v string) *LaunchTemplateSpecification {
5968	s.LaunchTemplateName = &v
5969	return s
5970}
5971
5972// SetVersion sets the Version field's value.
5973func (s *LaunchTemplateSpecification) SetVersion(v string) *LaunchTemplateSpecification {
5974	s.Version = &v
5975	return s
5976}
5977
5978// Linux-specific modifications that are applied to the container, such as details
5979// for device mappings.
5980type LinuxParameters struct {
5981	_ struct{} `type:"structure"`
5982
5983	// Any host devices to expose to the container. This parameter maps to Devices
5984	// in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
5985	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
5986	// and the --device option to docker run (https://docs.docker.com/engine/reference/run/).
5987	//
5988	// This parameter isn't applicable to jobs that are running on Fargate resources
5989	// and shouldn't be provided.
5990	Devices []*Device `locationName:"devices" type:"list"`
5991
5992	// If true, run an init process inside the container that forwards signals and
5993	// reaps processes. This parameter maps to the --init option to docker run (https://docs.docker.com/engine/reference/run/).
5994	// This parameter requires version 1.25 of the Docker Remote API or greater
5995	// on your container instance. To check the Docker Remote API version on your
5996	// container instance, log into your container instance and run the following
5997	// command: sudo docker version | grep "Server API version"
5998	InitProcessEnabled *bool `locationName:"initProcessEnabled" type:"boolean"`
5999
6000	// The total amount of swap memory (in MiB) a container can use. This parameter
6001	// is translated to the --memory-swap option to docker run (https://docs.docker.com/engine/reference/run/)
6002	// where the value is the sum of the container memory plus the maxSwap value.
6003	// For more information, see --memory-swap details (https://docs.docker.com/config/containers/resource_constraints/#--memory-swap-details)
6004	// in the Docker documentation.
6005	//
6006	// If a maxSwap value of 0 is specified, the container doesn't use swap. Accepted
6007	// values are 0 or any positive integer. If the maxSwap parameter is omitted,
6008	// the container doesn't use the swap configuration for the container instance
6009	// it is running on. A maxSwap value must be set for the swappiness parameter
6010	// to be used.
6011	//
6012	// This parameter isn't applicable to jobs that are running on Fargate resources
6013	// and shouldn't be provided.
6014	MaxSwap *int64 `locationName:"maxSwap" type:"integer"`
6015
6016	// The value for the size (in MiB) of the /dev/shm volume. This parameter maps
6017	// to the --shm-size option to docker run (https://docs.docker.com/engine/reference/run/).
6018	//
6019	// This parameter isn't applicable to jobs that are running on Fargate resources
6020	// and shouldn't be provided.
6021	SharedMemorySize *int64 `locationName:"sharedMemorySize" type:"integer"`
6022
6023	// This allows you to tune a container's memory swappiness behavior. A swappiness
6024	// value of 0 causes swapping not to happen unless absolutely necessary. A swappiness
6025	// value of 100 causes pages to be swapped very aggressively. Accepted values
6026	// are whole numbers between 0 and 100. If the swappiness parameter isn't specified,
6027	// a default value of 60 is used. If a value isn't specified for maxSwap, then
6028	// this parameter is ignored. If maxSwap is set to 0, the container doesn't
6029	// use swap. This parameter maps to the --memory-swappiness option to docker
6030	// run (https://docs.docker.com/engine/reference/run/).
6031	//
6032	// Consider the following when you use a per-container swap configuration.
6033	//
6034	//    * Swap space must be enabled and allocated on the container instance for
6035	//    the containers to use. The Amazon ECS optimized AMIs don't have swap enabled
6036	//    by default. You must enable swap on the instance to use this feature.
6037	//    For more information, see Instance Store Swap Volumes (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-store-swap-volumes.html)
6038	//    in the Amazon EC2 User Guide for Linux Instances or How do I allocate
6039	//    memory to work as swap space in an Amazon EC2 instance by using a swap
6040	//    file? (http://aws.amazon.com/premiumsupport/knowledge-center/ec2-memory-swap-file/)
6041	//
6042	//    * The swap space parameters are only supported for job definitions using
6043	//    EC2 resources.
6044	//
6045	//    * If the maxSwap and swappiness parameters are omitted from a job definition,
6046	//    each container will have a default swappiness value of 60, and the total
6047	//    swap usage will be limited to two times the memory reservation of the
6048	//    container.
6049	//
6050	// This parameter isn't applicable to jobs that are running on Fargate resources
6051	// and shouldn't be provided.
6052	Swappiness *int64 `locationName:"swappiness" type:"integer"`
6053
6054	// The container path, mount options, and size (in MiB) of the tmpfs mount.
6055	// This parameter maps to the --tmpfs option to docker run (https://docs.docker.com/engine/reference/run/).
6056	//
6057	// This parameter isn't applicable to jobs that are running on Fargate resources
6058	// and shouldn't be provided.
6059	Tmpfs []*Tmpfs `locationName:"tmpfs" type:"list"`
6060}
6061
6062// String returns the string representation
6063func (s LinuxParameters) String() string {
6064	return awsutil.Prettify(s)
6065}
6066
6067// GoString returns the string representation
6068func (s LinuxParameters) GoString() string {
6069	return s.String()
6070}
6071
6072// Validate inspects the fields of the type to determine if they are valid.
6073func (s *LinuxParameters) Validate() error {
6074	invalidParams := request.ErrInvalidParams{Context: "LinuxParameters"}
6075	if s.Devices != nil {
6076		for i, v := range s.Devices {
6077			if v == nil {
6078				continue
6079			}
6080			if err := v.Validate(); err != nil {
6081				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Devices", i), err.(request.ErrInvalidParams))
6082			}
6083		}
6084	}
6085	if s.Tmpfs != nil {
6086		for i, v := range s.Tmpfs {
6087			if v == nil {
6088				continue
6089			}
6090			if err := v.Validate(); err != nil {
6091				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tmpfs", i), err.(request.ErrInvalidParams))
6092			}
6093		}
6094	}
6095
6096	if invalidParams.Len() > 0 {
6097		return invalidParams
6098	}
6099	return nil
6100}
6101
6102// SetDevices sets the Devices field's value.
6103func (s *LinuxParameters) SetDevices(v []*Device) *LinuxParameters {
6104	s.Devices = v
6105	return s
6106}
6107
6108// SetInitProcessEnabled sets the InitProcessEnabled field's value.
6109func (s *LinuxParameters) SetInitProcessEnabled(v bool) *LinuxParameters {
6110	s.InitProcessEnabled = &v
6111	return s
6112}
6113
6114// SetMaxSwap sets the MaxSwap field's value.
6115func (s *LinuxParameters) SetMaxSwap(v int64) *LinuxParameters {
6116	s.MaxSwap = &v
6117	return s
6118}
6119
6120// SetSharedMemorySize sets the SharedMemorySize field's value.
6121func (s *LinuxParameters) SetSharedMemorySize(v int64) *LinuxParameters {
6122	s.SharedMemorySize = &v
6123	return s
6124}
6125
6126// SetSwappiness sets the Swappiness field's value.
6127func (s *LinuxParameters) SetSwappiness(v int64) *LinuxParameters {
6128	s.Swappiness = &v
6129	return s
6130}
6131
6132// SetTmpfs sets the Tmpfs field's value.
6133func (s *LinuxParameters) SetTmpfs(v []*Tmpfs) *LinuxParameters {
6134	s.Tmpfs = v
6135	return s
6136}
6137
6138// Contains the parameters for ListJobs.
6139type ListJobsInput struct {
6140	_ struct{} `type:"structure"`
6141
6142	// The job ID for an array job. Specifying an array job ID with this parameter
6143	// lists all child jobs from within the specified array.
6144	ArrayJobId *string `locationName:"arrayJobId" type:"string"`
6145
6146	// The filter to apply to the query. Only one filter can be used at a time.
6147	// When the filter is used, jobStatus is ignored. The filter doesn't apply to
6148	// child jobs in an array or multi-node parallel (MNP) jobs. The results are
6149	// sorted by the createdAt field, with the most recent jobs being first.
6150	//
6151	// JOB_NAME
6152	//
6153	// The value of the filter is a case-insensitive match for the job name. If
6154	// the value ends with an asterisk (*), the filter will match any job name that
6155	// begins with the string before the '*'. This corresponds to the jobName value.
6156	// For example, test1 matches both Test1 and test1, and test1* matches both
6157	// test1 and Test10. When the JOB_NAME filter is used, the results are grouped
6158	// by the job name and version.
6159	//
6160	// JOB_DEFINITION
6161	//
6162	// The value for the filter is the name or Amazon Resource Name (ARN) of the
6163	// job definition. This corresponds to the jobDefinition value. The value is
6164	// case sensitive. When the value for the filter is the job definition name,
6165	// the results include all the jobs that used any revision of that job definition
6166	// name. If the value ends with an asterisk (*), the filter will match any job
6167	// definition name that begins with the string before the '*'. For example,
6168	// jd1 matches only jd1, and jd1* matches both jd1 and jd1A. The version of
6169	// the job definition that's used doesn't affect the sort order. When the JOB_DEFINITION
6170	// filter is used and the ARN is used (which is in the form arn:${Partition}:batch:${Region}:${Account}:job-definition/${JobDefinitionName}:${Revision}),
6171	// the results include jobs that used the specified revision of the job definition.
6172	// Asterisk (*) is not supported when the ARN is used.
6173	//
6174	// BEFORE_CREATED_AT
6175	//
6176	// The value for the filter is the time that's before the job was created. This
6177	// corresponds to the createdAt value. The value is a string representation
6178	// of the number of seconds since 00:00:00 UTC (midnight) on January 1, 1970.
6179	//
6180	// AFTER_CREATED_AT
6181	//
6182	// The value for the filter is the time that's after the job was created. This
6183	// corresponds to the createdAt value. The value is a string representation
6184	// of the number of seconds since 00:00:00 UTC (midnight) on January 1, 1970.
6185	Filters []*KeyValuesPair `locationName:"filters" type:"list"`
6186
6187	// The name or full Amazon Resource Name (ARN) of the job queue used to list
6188	// jobs.
6189	JobQueue *string `locationName:"jobQueue" type:"string"`
6190
6191	// The job status used to filter jobs in the specified queue. If the filters
6192	// parameter is specified, the jobStatus parameter is ignored and jobs with
6193	// any status are returned. If you don't specify a status, only RUNNING jobs
6194	// are returned.
6195	JobStatus *string `locationName:"jobStatus" type:"string" enum:"JobStatus"`
6196
6197	// The maximum number of results returned by ListJobs in paginated output. When
6198	// this parameter is used, ListJobs only returns maxResults results in a single
6199	// page and a nextToken response element. The remaining results of the initial
6200	// request can be seen by sending another ListJobs request with the returned
6201	// nextToken value. This value can be between 1 and 100. If this parameter isn't
6202	// used, then ListJobs returns up to 100 results and a nextToken value if applicable.
6203	MaxResults *int64 `locationName:"maxResults" type:"integer"`
6204
6205	// The job ID for a multi-node parallel job. Specifying a multi-node parallel
6206	// job ID with this parameter lists all nodes that are associated with the specified
6207	// job.
6208	MultiNodeJobId *string `locationName:"multiNodeJobId" type:"string"`
6209
6210	// The nextToken value returned from a previous paginated ListJobs request where
6211	// maxResults was used and the results exceeded the value of that parameter.
6212	// Pagination continues from the end of the previous results that returned the
6213	// nextToken value. This value is null when there are no more results to return.
6214	//
6215	// This token should be treated as an opaque identifier that's only used to
6216	// retrieve the next items in a list and not for other programmatic purposes.
6217	NextToken *string `locationName:"nextToken" type:"string"`
6218}
6219
6220// String returns the string representation
6221func (s ListJobsInput) String() string {
6222	return awsutil.Prettify(s)
6223}
6224
6225// GoString returns the string representation
6226func (s ListJobsInput) GoString() string {
6227	return s.String()
6228}
6229
6230// SetArrayJobId sets the ArrayJobId field's value.
6231func (s *ListJobsInput) SetArrayJobId(v string) *ListJobsInput {
6232	s.ArrayJobId = &v
6233	return s
6234}
6235
6236// SetFilters sets the Filters field's value.
6237func (s *ListJobsInput) SetFilters(v []*KeyValuesPair) *ListJobsInput {
6238	s.Filters = v
6239	return s
6240}
6241
6242// SetJobQueue sets the JobQueue field's value.
6243func (s *ListJobsInput) SetJobQueue(v string) *ListJobsInput {
6244	s.JobQueue = &v
6245	return s
6246}
6247
6248// SetJobStatus sets the JobStatus field's value.
6249func (s *ListJobsInput) SetJobStatus(v string) *ListJobsInput {
6250	s.JobStatus = &v
6251	return s
6252}
6253
6254// SetMaxResults sets the MaxResults field's value.
6255func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput {
6256	s.MaxResults = &v
6257	return s
6258}
6259
6260// SetMultiNodeJobId sets the MultiNodeJobId field's value.
6261func (s *ListJobsInput) SetMultiNodeJobId(v string) *ListJobsInput {
6262	s.MultiNodeJobId = &v
6263	return s
6264}
6265
6266// SetNextToken sets the NextToken field's value.
6267func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
6268	s.NextToken = &v
6269	return s
6270}
6271
6272type ListJobsOutput struct {
6273	_ struct{} `type:"structure"`
6274
6275	// A list of job summaries that match the request.
6276	//
6277	// JobSummaryList is a required field
6278	JobSummaryList []*JobSummary `locationName:"jobSummaryList" type:"list" required:"true"`
6279
6280	// The nextToken value to include in a future ListJobs request. When the results
6281	// of a ListJobs request exceed maxResults, this value can be used to retrieve
6282	// the next page of results. This value is null when there are no more results
6283	// to return.
6284	NextToken *string `locationName:"nextToken" type:"string"`
6285}
6286
6287// String returns the string representation
6288func (s ListJobsOutput) String() string {
6289	return awsutil.Prettify(s)
6290}
6291
6292// GoString returns the string representation
6293func (s ListJobsOutput) GoString() string {
6294	return s.String()
6295}
6296
6297// SetJobSummaryList sets the JobSummaryList field's value.
6298func (s *ListJobsOutput) SetJobSummaryList(v []*JobSummary) *ListJobsOutput {
6299	s.JobSummaryList = v
6300	return s
6301}
6302
6303// SetNextToken sets the NextToken field's value.
6304func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
6305	s.NextToken = &v
6306	return s
6307}
6308
6309type ListTagsForResourceInput struct {
6310	_ struct{} `type:"structure"`
6311
6312	// The Amazon Resource Name (ARN) that identifies the resource that tags are
6313	// listed for. Batch resources that support tags are compute environments, jobs,
6314	// job definitions, and job queues. ARNs for child jobs of array and multi-node
6315	// parallel (MNP) jobs are not supported.
6316	//
6317	// ResourceArn is a required field
6318	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
6319}
6320
6321// String returns the string representation
6322func (s ListTagsForResourceInput) String() string {
6323	return awsutil.Prettify(s)
6324}
6325
6326// GoString returns the string representation
6327func (s ListTagsForResourceInput) GoString() string {
6328	return s.String()
6329}
6330
6331// Validate inspects the fields of the type to determine if they are valid.
6332func (s *ListTagsForResourceInput) Validate() error {
6333	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
6334	if s.ResourceArn == nil {
6335		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
6336	}
6337	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
6338		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
6339	}
6340
6341	if invalidParams.Len() > 0 {
6342		return invalidParams
6343	}
6344	return nil
6345}
6346
6347// SetResourceArn sets the ResourceArn field's value.
6348func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
6349	s.ResourceArn = &v
6350	return s
6351}
6352
6353type ListTagsForResourceOutput struct {
6354	_ struct{} `type:"structure"`
6355
6356	// The tags for the resource.
6357	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
6358}
6359
6360// String returns the string representation
6361func (s ListTagsForResourceOutput) String() string {
6362	return awsutil.Prettify(s)
6363}
6364
6365// GoString returns the string representation
6366func (s ListTagsForResourceOutput) GoString() string {
6367	return s.String()
6368}
6369
6370// SetTags sets the Tags field's value.
6371func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput {
6372	s.Tags = v
6373	return s
6374}
6375
6376// Log configuration options to send to a custom log driver for the container.
6377type LogConfiguration struct {
6378	_ struct{} `type:"structure"`
6379
6380	// The log driver to use for the container. The valid values listed for this
6381	// parameter are log drivers that the Amazon ECS container agent can communicate
6382	// with by default.
6383	//
6384	// The supported log drivers are awslogs, fluentd, gelf, json-file, journald,
6385	// logentries, syslog, and splunk.
6386	//
6387	// Jobs that are running on Fargate resources are restricted to the awslogs
6388	// and splunk log drivers.
6389	//
6390	// awslogs
6391	//
6392	// Specifies the Amazon CloudWatch Logs logging driver. For more information,
6393	// see Using the awslogs Log Driver (https://docs.aws.amazon.com/batch/latest/userguide/using_awslogs.html)
6394	// in the Batch User Guide and Amazon CloudWatch Logs logging driver (https://docs.docker.com/config/containers/logging/awslogs/)
6395	// in the Docker documentation.
6396	//
6397	// fluentd
6398	//
6399	// Specifies the Fluentd logging driver. For more information, including usage
6400	// and options, see Fluentd logging driver (https://docs.docker.com/config/containers/logging/fluentd/)
6401	// in the Docker documentation.
6402	//
6403	// gelf
6404	//
6405	// Specifies the Graylog Extended Format (GELF) logging driver. For more information,
6406	// including usage and options, see Graylog Extended Format logging driver (https://docs.docker.com/config/containers/logging/gelf/)
6407	// in the Docker documentation.
6408	//
6409	// journald
6410	//
6411	// Specifies the journald logging driver. For more information, including usage
6412	// and options, see Journald logging driver (https://docs.docker.com/config/containers/logging/journald/)
6413	// in the Docker documentation.
6414	//
6415	// json-file
6416	//
6417	// Specifies the JSON file logging driver. For more information, including usage
6418	// and options, see JSON File logging driver (https://docs.docker.com/config/containers/logging/json-file/)
6419	// in the Docker documentation.
6420	//
6421	// splunk
6422	//
6423	// Specifies the Splunk logging driver. For more information, including usage
6424	// and options, see Splunk logging driver (https://docs.docker.com/config/containers/logging/splunk/)
6425	// in the Docker documentation.
6426	//
6427	// syslog
6428	//
6429	// Specifies the syslog logging driver. For more information, including usage
6430	// and options, see Syslog logging driver (https://docs.docker.com/config/containers/logging/syslog/)
6431	// in the Docker documentation.
6432	//
6433	// If you have a custom driver that's not listed earlier that you want to work
6434	// with the Amazon ECS container agent, you can fork the Amazon ECS container
6435	// agent project that's available on GitHub (https://github.com/aws/amazon-ecs-agent)
6436	// and customize it to work with that driver. We encourage you to submit pull
6437	// requests for changes that you want to have included. However, Amazon Web
6438	// Services doesn't currently support running modified copies of this software.
6439	//
6440	// This parameter requires version 1.18 of the Docker Remote API or greater
6441	// on your container instance. To check the Docker Remote API version on your
6442	// container instance, log into your container instance and run the following
6443	// command: sudo docker version | grep "Server API version"
6444	//
6445	// LogDriver is a required field
6446	LogDriver *string `locationName:"logDriver" type:"string" required:"true" enum:"LogDriver"`
6447
6448	// The configuration options to send to the log driver. This parameter requires
6449	// version 1.19 of the Docker Remote API or greater on your container instance.
6450	// To check the Docker Remote API version on your container instance, log into
6451	// your container instance and run the following command: sudo docker version
6452	// | grep "Server API version"
6453	Options map[string]*string `locationName:"options" type:"map"`
6454
6455	// The secrets to pass to the log configuration. For more information, see Specifying
6456	// Sensitive Data (https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html)
6457	// in the Batch User Guide.
6458	SecretOptions []*Secret `locationName:"secretOptions" type:"list"`
6459}
6460
6461// String returns the string representation
6462func (s LogConfiguration) String() string {
6463	return awsutil.Prettify(s)
6464}
6465
6466// GoString returns the string representation
6467func (s LogConfiguration) GoString() string {
6468	return s.String()
6469}
6470
6471// Validate inspects the fields of the type to determine if they are valid.
6472func (s *LogConfiguration) Validate() error {
6473	invalidParams := request.ErrInvalidParams{Context: "LogConfiguration"}
6474	if s.LogDriver == nil {
6475		invalidParams.Add(request.NewErrParamRequired("LogDriver"))
6476	}
6477	if s.SecretOptions != nil {
6478		for i, v := range s.SecretOptions {
6479			if v == nil {
6480				continue
6481			}
6482			if err := v.Validate(); err != nil {
6483				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecretOptions", i), err.(request.ErrInvalidParams))
6484			}
6485		}
6486	}
6487
6488	if invalidParams.Len() > 0 {
6489		return invalidParams
6490	}
6491	return nil
6492}
6493
6494// SetLogDriver sets the LogDriver field's value.
6495func (s *LogConfiguration) SetLogDriver(v string) *LogConfiguration {
6496	s.LogDriver = &v
6497	return s
6498}
6499
6500// SetOptions sets the Options field's value.
6501func (s *LogConfiguration) SetOptions(v map[string]*string) *LogConfiguration {
6502	s.Options = v
6503	return s
6504}
6505
6506// SetSecretOptions sets the SecretOptions field's value.
6507func (s *LogConfiguration) SetSecretOptions(v []*Secret) *LogConfiguration {
6508	s.SecretOptions = v
6509	return s
6510}
6511
6512// Details on a Docker volume mount point that's used in a job's container properties.
6513// 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)
6514// section of the Docker Remote API and the --volume option to docker run.
6515type MountPoint struct {
6516	_ struct{} `type:"structure"`
6517
6518	// The path on the container where the host volume is mounted.
6519	ContainerPath *string `locationName:"containerPath" type:"string"`
6520
6521	// If this value is true, the container has read-only access to the volume.
6522	// Otherwise, the container can write to the volume. The default value is false.
6523	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
6524
6525	// The name of the volume to mount.
6526	SourceVolume *string `locationName:"sourceVolume" type:"string"`
6527}
6528
6529// String returns the string representation
6530func (s MountPoint) String() string {
6531	return awsutil.Prettify(s)
6532}
6533
6534// GoString returns the string representation
6535func (s MountPoint) GoString() string {
6536	return s.String()
6537}
6538
6539// SetContainerPath sets the ContainerPath field's value.
6540func (s *MountPoint) SetContainerPath(v string) *MountPoint {
6541	s.ContainerPath = &v
6542	return s
6543}
6544
6545// SetReadOnly sets the ReadOnly field's value.
6546func (s *MountPoint) SetReadOnly(v bool) *MountPoint {
6547	s.ReadOnly = &v
6548	return s
6549}
6550
6551// SetSourceVolume sets the SourceVolume field's value.
6552func (s *MountPoint) SetSourceVolume(v string) *MountPoint {
6553	s.SourceVolume = &v
6554	return s
6555}
6556
6557// The network configuration for jobs that are running on Fargate resources.
6558// Jobs that are running on EC2 resources must not specify this parameter.
6559type NetworkConfiguration struct {
6560	_ struct{} `type:"structure"`
6561
6562	// Indicates whether the job should have a public IP address. For a job that
6563	// is running on Fargate resources in a private subnet to send outbound traffic
6564	// to the internet (for example, to pull container images), the private subnet
6565	// requires a NAT gateway be attached to route requests to the internet. For
6566	// more information, see Amazon ECS task networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html).
6567	// The default value is "DISABLED".
6568	AssignPublicIp *string `locationName:"assignPublicIp" type:"string" enum:"AssignPublicIp"`
6569}
6570
6571// String returns the string representation
6572func (s NetworkConfiguration) String() string {
6573	return awsutil.Prettify(s)
6574}
6575
6576// GoString returns the string representation
6577func (s NetworkConfiguration) GoString() string {
6578	return s.String()
6579}
6580
6581// SetAssignPublicIp sets the AssignPublicIp field's value.
6582func (s *NetworkConfiguration) SetAssignPublicIp(v string) *NetworkConfiguration {
6583	s.AssignPublicIp = &v
6584	return s
6585}
6586
6587// An object representing the elastic network interface for a multi-node parallel
6588// job node.
6589type NetworkInterface struct {
6590	_ struct{} `type:"structure"`
6591
6592	// The attachment ID for the network interface.
6593	AttachmentId *string `locationName:"attachmentId" type:"string"`
6594
6595	// The private IPv6 address for the network interface.
6596	Ipv6Address *string `locationName:"ipv6Address" type:"string"`
6597
6598	// The private IPv4 address for the network interface.
6599	PrivateIpv4Address *string `locationName:"privateIpv4Address" type:"string"`
6600}
6601
6602// String returns the string representation
6603func (s NetworkInterface) String() string {
6604	return awsutil.Prettify(s)
6605}
6606
6607// GoString returns the string representation
6608func (s NetworkInterface) GoString() string {
6609	return s.String()
6610}
6611
6612// SetAttachmentId sets the AttachmentId field's value.
6613func (s *NetworkInterface) SetAttachmentId(v string) *NetworkInterface {
6614	s.AttachmentId = &v
6615	return s
6616}
6617
6618// SetIpv6Address sets the Ipv6Address field's value.
6619func (s *NetworkInterface) SetIpv6Address(v string) *NetworkInterface {
6620	s.Ipv6Address = &v
6621	return s
6622}
6623
6624// SetPrivateIpv4Address sets the PrivateIpv4Address field's value.
6625func (s *NetworkInterface) SetPrivateIpv4Address(v string) *NetworkInterface {
6626	s.PrivateIpv4Address = &v
6627	return s
6628}
6629
6630// An object representing the details of a multi-node parallel job node.
6631type NodeDetails struct {
6632	_ struct{} `type:"structure"`
6633
6634	// Specifies whether the current node is the main node for a multi-node parallel
6635	// job.
6636	IsMainNode *bool `locationName:"isMainNode" type:"boolean"`
6637
6638	// The node index for the node. Node index numbering begins at zero. This index
6639	// is also available on the node with the AWS_BATCH_JOB_NODE_INDEX environment
6640	// variable.
6641	NodeIndex *int64 `locationName:"nodeIndex" type:"integer"`
6642}
6643
6644// String returns the string representation
6645func (s NodeDetails) String() string {
6646	return awsutil.Prettify(s)
6647}
6648
6649// GoString returns the string representation
6650func (s NodeDetails) GoString() string {
6651	return s.String()
6652}
6653
6654// SetIsMainNode sets the IsMainNode field's value.
6655func (s *NodeDetails) SetIsMainNode(v bool) *NodeDetails {
6656	s.IsMainNode = &v
6657	return s
6658}
6659
6660// SetNodeIndex sets the NodeIndex field's value.
6661func (s *NodeDetails) SetNodeIndex(v int64) *NodeDetails {
6662	s.NodeIndex = &v
6663	return s
6664}
6665
6666// Object representing any node overrides to a job definition that's used in
6667// a SubmitJob API operation.
6668//
6669// This isn't applicable to jobs that are running on Fargate resources and shouldn't
6670// be provided; use containerOverrides instead.
6671type NodeOverrides struct {
6672	_ struct{} `type:"structure"`
6673
6674	// The node property overrides for the job.
6675	NodePropertyOverrides []*NodePropertyOverride `locationName:"nodePropertyOverrides" type:"list"`
6676
6677	// The number of nodes to use with a multi-node parallel job. This value overrides
6678	// the number of nodes that are specified in the job definition. To use this
6679	// override:
6680	//
6681	//    * There must be at least one node range in your job definition that has
6682	//    an open upper boundary (such as : or n:).
6683	//
6684	//    * The lower boundary of the node range specified in the job definition
6685	//    must be fewer than the number of nodes specified in the override.
6686	//
6687	//    * The main node index specified in the job definition must be fewer than
6688	//    the number of nodes specified in the override.
6689	NumNodes *int64 `locationName:"numNodes" type:"integer"`
6690}
6691
6692// String returns the string representation
6693func (s NodeOverrides) String() string {
6694	return awsutil.Prettify(s)
6695}
6696
6697// GoString returns the string representation
6698func (s NodeOverrides) GoString() string {
6699	return s.String()
6700}
6701
6702// Validate inspects the fields of the type to determine if they are valid.
6703func (s *NodeOverrides) Validate() error {
6704	invalidParams := request.ErrInvalidParams{Context: "NodeOverrides"}
6705	if s.NodePropertyOverrides != nil {
6706		for i, v := range s.NodePropertyOverrides {
6707			if v == nil {
6708				continue
6709			}
6710			if err := v.Validate(); err != nil {
6711				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NodePropertyOverrides", i), err.(request.ErrInvalidParams))
6712			}
6713		}
6714	}
6715
6716	if invalidParams.Len() > 0 {
6717		return invalidParams
6718	}
6719	return nil
6720}
6721
6722// SetNodePropertyOverrides sets the NodePropertyOverrides field's value.
6723func (s *NodeOverrides) SetNodePropertyOverrides(v []*NodePropertyOverride) *NodeOverrides {
6724	s.NodePropertyOverrides = v
6725	return s
6726}
6727
6728// SetNumNodes sets the NumNodes field's value.
6729func (s *NodeOverrides) SetNumNodes(v int64) *NodeOverrides {
6730	s.NumNodes = &v
6731	return s
6732}
6733
6734// An object representing the node properties of a multi-node parallel job.
6735type NodeProperties struct {
6736	_ struct{} `type:"structure"`
6737
6738	// Specifies the node index for the main node of a multi-node parallel job.
6739	// This node index value must be fewer than the number of nodes.
6740	//
6741	// MainNode is a required field
6742	MainNode *int64 `locationName:"mainNode" type:"integer" required:"true"`
6743
6744	// A list of node ranges and their properties associated with a multi-node parallel
6745	// job.
6746	//
6747	// NodeRangeProperties is a required field
6748	NodeRangeProperties []*NodeRangeProperty `locationName:"nodeRangeProperties" type:"list" required:"true"`
6749
6750	// The number of nodes associated with a multi-node parallel job.
6751	//
6752	// NumNodes is a required field
6753	NumNodes *int64 `locationName:"numNodes" type:"integer" required:"true"`
6754}
6755
6756// String returns the string representation
6757func (s NodeProperties) String() string {
6758	return awsutil.Prettify(s)
6759}
6760
6761// GoString returns the string representation
6762func (s NodeProperties) GoString() string {
6763	return s.String()
6764}
6765
6766// Validate inspects the fields of the type to determine if they are valid.
6767func (s *NodeProperties) Validate() error {
6768	invalidParams := request.ErrInvalidParams{Context: "NodeProperties"}
6769	if s.MainNode == nil {
6770		invalidParams.Add(request.NewErrParamRequired("MainNode"))
6771	}
6772	if s.NodeRangeProperties == nil {
6773		invalidParams.Add(request.NewErrParamRequired("NodeRangeProperties"))
6774	}
6775	if s.NumNodes == nil {
6776		invalidParams.Add(request.NewErrParamRequired("NumNodes"))
6777	}
6778	if s.NodeRangeProperties != nil {
6779		for i, v := range s.NodeRangeProperties {
6780			if v == nil {
6781				continue
6782			}
6783			if err := v.Validate(); err != nil {
6784				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NodeRangeProperties", i), err.(request.ErrInvalidParams))
6785			}
6786		}
6787	}
6788
6789	if invalidParams.Len() > 0 {
6790		return invalidParams
6791	}
6792	return nil
6793}
6794
6795// SetMainNode sets the MainNode field's value.
6796func (s *NodeProperties) SetMainNode(v int64) *NodeProperties {
6797	s.MainNode = &v
6798	return s
6799}
6800
6801// SetNodeRangeProperties sets the NodeRangeProperties field's value.
6802func (s *NodeProperties) SetNodeRangeProperties(v []*NodeRangeProperty) *NodeProperties {
6803	s.NodeRangeProperties = v
6804	return s
6805}
6806
6807// SetNumNodes sets the NumNodes field's value.
6808func (s *NodeProperties) SetNumNodes(v int64) *NodeProperties {
6809	s.NumNodes = &v
6810	return s
6811}
6812
6813// An object representing the properties of a node that's associated with a
6814// multi-node parallel job.
6815type NodePropertiesSummary struct {
6816	_ struct{} `type:"structure"`
6817
6818	// Specifies whether the current node is the main node for a multi-node parallel
6819	// job.
6820	IsMainNode *bool `locationName:"isMainNode" type:"boolean"`
6821
6822	// The node index for the node. Node index numbering begins at zero. This index
6823	// is also available on the node with the AWS_BATCH_JOB_NODE_INDEX environment
6824	// variable.
6825	NodeIndex *int64 `locationName:"nodeIndex" type:"integer"`
6826
6827	// The number of nodes associated with a multi-node parallel job.
6828	NumNodes *int64 `locationName:"numNodes" type:"integer"`
6829}
6830
6831// String returns the string representation
6832func (s NodePropertiesSummary) String() string {
6833	return awsutil.Prettify(s)
6834}
6835
6836// GoString returns the string representation
6837func (s NodePropertiesSummary) GoString() string {
6838	return s.String()
6839}
6840
6841// SetIsMainNode sets the IsMainNode field's value.
6842func (s *NodePropertiesSummary) SetIsMainNode(v bool) *NodePropertiesSummary {
6843	s.IsMainNode = &v
6844	return s
6845}
6846
6847// SetNodeIndex sets the NodeIndex field's value.
6848func (s *NodePropertiesSummary) SetNodeIndex(v int64) *NodePropertiesSummary {
6849	s.NodeIndex = &v
6850	return s
6851}
6852
6853// SetNumNodes sets the NumNodes field's value.
6854func (s *NodePropertiesSummary) SetNumNodes(v int64) *NodePropertiesSummary {
6855	s.NumNodes = &v
6856	return s
6857}
6858
6859// Object representing any node overrides to a job definition that's used in
6860// a SubmitJob API operation.
6861type NodePropertyOverride struct {
6862	_ struct{} `type:"structure"`
6863
6864	// The overrides that should be sent to a node range.
6865	ContainerOverrides *ContainerOverrides `locationName:"containerOverrides" type:"structure"`
6866
6867	// The range of nodes, using node index values, that's used to override. A range
6868	// of 0:3 indicates nodes with index values of 0 through 3. If the starting
6869	// range value is omitted (:n), then 0 is used to start the range. If the ending
6870	// range value is omitted (n:), then the highest possible node index is used
6871	// to end the range.
6872	//
6873	// TargetNodes is a required field
6874	TargetNodes *string `locationName:"targetNodes" type:"string" required:"true"`
6875}
6876
6877// String returns the string representation
6878func (s NodePropertyOverride) String() string {
6879	return awsutil.Prettify(s)
6880}
6881
6882// GoString returns the string representation
6883func (s NodePropertyOverride) GoString() string {
6884	return s.String()
6885}
6886
6887// Validate inspects the fields of the type to determine if they are valid.
6888func (s *NodePropertyOverride) Validate() error {
6889	invalidParams := request.ErrInvalidParams{Context: "NodePropertyOverride"}
6890	if s.TargetNodes == nil {
6891		invalidParams.Add(request.NewErrParamRequired("TargetNodes"))
6892	}
6893	if s.ContainerOverrides != nil {
6894		if err := s.ContainerOverrides.Validate(); err != nil {
6895			invalidParams.AddNested("ContainerOverrides", err.(request.ErrInvalidParams))
6896		}
6897	}
6898
6899	if invalidParams.Len() > 0 {
6900		return invalidParams
6901	}
6902	return nil
6903}
6904
6905// SetContainerOverrides sets the ContainerOverrides field's value.
6906func (s *NodePropertyOverride) SetContainerOverrides(v *ContainerOverrides) *NodePropertyOverride {
6907	s.ContainerOverrides = v
6908	return s
6909}
6910
6911// SetTargetNodes sets the TargetNodes field's value.
6912func (s *NodePropertyOverride) SetTargetNodes(v string) *NodePropertyOverride {
6913	s.TargetNodes = &v
6914	return s
6915}
6916
6917// An object representing the properties of the node range for a multi-node
6918// parallel job.
6919type NodeRangeProperty struct {
6920	_ struct{} `type:"structure"`
6921
6922	// The container details for the node range.
6923	Container *ContainerProperties `locationName:"container" type:"structure"`
6924
6925	// The range of nodes, using node index values. A range of 0:3 indicates nodes
6926	// with index values of 0 through 3. If the starting range value is omitted
6927	// (:n), then 0 is used to start the range. If the ending range value is omitted
6928	// (n:), then the highest possible node index is used to end the range. Your
6929	// accumulative node ranges must account for all nodes (0:n). You can nest node
6930	// ranges, for example 0:10 and 4:5, in which case the 4:5 range properties
6931	// override the 0:10 properties.
6932	//
6933	// TargetNodes is a required field
6934	TargetNodes *string `locationName:"targetNodes" type:"string" required:"true"`
6935}
6936
6937// String returns the string representation
6938func (s NodeRangeProperty) String() string {
6939	return awsutil.Prettify(s)
6940}
6941
6942// GoString returns the string representation
6943func (s NodeRangeProperty) GoString() string {
6944	return s.String()
6945}
6946
6947// Validate inspects the fields of the type to determine if they are valid.
6948func (s *NodeRangeProperty) Validate() error {
6949	invalidParams := request.ErrInvalidParams{Context: "NodeRangeProperty"}
6950	if s.TargetNodes == nil {
6951		invalidParams.Add(request.NewErrParamRequired("TargetNodes"))
6952	}
6953	if s.Container != nil {
6954		if err := s.Container.Validate(); err != nil {
6955			invalidParams.AddNested("Container", err.(request.ErrInvalidParams))
6956		}
6957	}
6958
6959	if invalidParams.Len() > 0 {
6960		return invalidParams
6961	}
6962	return nil
6963}
6964
6965// SetContainer sets the Container field's value.
6966func (s *NodeRangeProperty) SetContainer(v *ContainerProperties) *NodeRangeProperty {
6967	s.Container = v
6968	return s
6969}
6970
6971// SetTargetNodes sets the TargetNodes field's value.
6972func (s *NodeRangeProperty) SetTargetNodes(v string) *NodeRangeProperty {
6973	s.TargetNodes = &v
6974	return s
6975}
6976
6977// Contains the parameters for RegisterJobDefinition.
6978type RegisterJobDefinitionInput struct {
6979	_ struct{} `type:"structure"`
6980
6981	// An object with various properties specific to single-node container-based
6982	// jobs. If the job definition's type parameter is container, then you must
6983	// specify either containerProperties or nodeProperties.
6984	//
6985	// If the job runs on Fargate resources, then you must not specify nodeProperties;
6986	// use only containerProperties.
6987	ContainerProperties *ContainerProperties `locationName:"containerProperties" type:"structure"`
6988
6989	// The name of the job definition to register. Up to 128 letters (uppercase
6990	// and lowercase), numbers, hyphens, and underscores are allowed.
6991	//
6992	// JobDefinitionName is a required field
6993	JobDefinitionName *string `locationName:"jobDefinitionName" type:"string" required:"true"`
6994
6995	// An object with various properties specific to multi-node parallel jobs. If
6996	// you specify node properties for a job, it becomes a multi-node parallel job.
6997	// For more information, see Multi-node Parallel Jobs (https://docs.aws.amazon.com/batch/latest/userguide/multi-node-parallel-jobs.html)
6998	// in the Batch User Guide. If the job definition's type parameter is container,
6999	// then you must specify either containerProperties or nodeProperties.
7000	//
7001	// If the job runs on Fargate resources, then you must not specify nodeProperties;
7002	// use containerProperties instead.
7003	NodeProperties *NodeProperties `locationName:"nodeProperties" type:"structure"`
7004
7005	// Default parameter substitution placeholders to set in the job definition.
7006	// Parameters are specified as a key-value pair mapping. Parameters in a SubmitJob
7007	// request override any corresponding parameter defaults from the job definition.
7008	Parameters map[string]*string `locationName:"parameters" type:"map"`
7009
7010	// The platform capabilities required by the job definition. If no value is
7011	// specified, it defaults to EC2. To run the job on Fargate resources, specify
7012	// FARGATE.
7013	PlatformCapabilities []*string `locationName:"platformCapabilities" type:"list"`
7014
7015	// Specifies whether to propagate the tags from the job or job definition to
7016	// the corresponding Amazon ECS task. If no value is specified, the tags are
7017	// not propagated. Tags can only be propagated to the tasks during task creation.
7018	// For tags with the same name, job tags are given priority over job definitions
7019	// tags. If the total number of combined tags from the job and job definition
7020	// is over 50, the job is moved to the FAILED state.
7021	PropagateTags *bool `locationName:"propagateTags" type:"boolean"`
7022
7023	// The retry strategy to use for failed jobs that are submitted with this job
7024	// definition. Any retry strategy that's specified during a SubmitJob operation
7025	// overrides the retry strategy defined here. If a job is terminated due to
7026	// a timeout, it isn't retried.
7027	RetryStrategy *RetryStrategy `locationName:"retryStrategy" type:"structure"`
7028
7029	// The tags that you apply to the job definition to help you categorize and
7030	// organize your resources. Each tag consists of a key and an optional value.
7031	// For more information, see Tagging Amazon Web Services Resources (https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html)
7032	// in Batch User Guide.
7033	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
7034
7035	// The timeout configuration for jobs that are submitted with this job definition,
7036	// after which Batch terminates your jobs if they have not finished. If a job
7037	// is terminated due to a timeout, it isn't retried. The minimum value for the
7038	// timeout is 60 seconds. Any timeout configuration that's specified during
7039	// a SubmitJob operation overrides the timeout configuration defined here. For
7040	// more information, see Job Timeouts (https://docs.aws.amazon.com/batch/latest/userguide/job_timeouts.html)
7041	// in the Batch User Guide.
7042	Timeout *JobTimeout `locationName:"timeout" type:"structure"`
7043
7044	// The type of job definition. For more information about multi-node parallel
7045	// jobs, see Creating a multi-node parallel job definition (https://docs.aws.amazon.com/batch/latest/userguide/multi-node-job-def.html)
7046	// in the Batch User Guide.
7047	//
7048	// If the job is run on Fargate resources, then multinode isn't supported.
7049	//
7050	// Type is a required field
7051	Type *string `locationName:"type" type:"string" required:"true" enum:"JobDefinitionType"`
7052}
7053
7054// String returns the string representation
7055func (s RegisterJobDefinitionInput) String() string {
7056	return awsutil.Prettify(s)
7057}
7058
7059// GoString returns the string representation
7060func (s RegisterJobDefinitionInput) GoString() string {
7061	return s.String()
7062}
7063
7064// Validate inspects the fields of the type to determine if they are valid.
7065func (s *RegisterJobDefinitionInput) Validate() error {
7066	invalidParams := request.ErrInvalidParams{Context: "RegisterJobDefinitionInput"}
7067	if s.JobDefinitionName == nil {
7068		invalidParams.Add(request.NewErrParamRequired("JobDefinitionName"))
7069	}
7070	if s.Tags != nil && len(s.Tags) < 1 {
7071		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
7072	}
7073	if s.Type == nil {
7074		invalidParams.Add(request.NewErrParamRequired("Type"))
7075	}
7076	if s.ContainerProperties != nil {
7077		if err := s.ContainerProperties.Validate(); err != nil {
7078			invalidParams.AddNested("ContainerProperties", err.(request.ErrInvalidParams))
7079		}
7080	}
7081	if s.NodeProperties != nil {
7082		if err := s.NodeProperties.Validate(); err != nil {
7083			invalidParams.AddNested("NodeProperties", err.(request.ErrInvalidParams))
7084		}
7085	}
7086	if s.RetryStrategy != nil {
7087		if err := s.RetryStrategy.Validate(); err != nil {
7088			invalidParams.AddNested("RetryStrategy", err.(request.ErrInvalidParams))
7089		}
7090	}
7091
7092	if invalidParams.Len() > 0 {
7093		return invalidParams
7094	}
7095	return nil
7096}
7097
7098// SetContainerProperties sets the ContainerProperties field's value.
7099func (s *RegisterJobDefinitionInput) SetContainerProperties(v *ContainerProperties) *RegisterJobDefinitionInput {
7100	s.ContainerProperties = v
7101	return s
7102}
7103
7104// SetJobDefinitionName sets the JobDefinitionName field's value.
7105func (s *RegisterJobDefinitionInput) SetJobDefinitionName(v string) *RegisterJobDefinitionInput {
7106	s.JobDefinitionName = &v
7107	return s
7108}
7109
7110// SetNodeProperties sets the NodeProperties field's value.
7111func (s *RegisterJobDefinitionInput) SetNodeProperties(v *NodeProperties) *RegisterJobDefinitionInput {
7112	s.NodeProperties = v
7113	return s
7114}
7115
7116// SetParameters sets the Parameters field's value.
7117func (s *RegisterJobDefinitionInput) SetParameters(v map[string]*string) *RegisterJobDefinitionInput {
7118	s.Parameters = v
7119	return s
7120}
7121
7122// SetPlatformCapabilities sets the PlatformCapabilities field's value.
7123func (s *RegisterJobDefinitionInput) SetPlatformCapabilities(v []*string) *RegisterJobDefinitionInput {
7124	s.PlatformCapabilities = v
7125	return s
7126}
7127
7128// SetPropagateTags sets the PropagateTags field's value.
7129func (s *RegisterJobDefinitionInput) SetPropagateTags(v bool) *RegisterJobDefinitionInput {
7130	s.PropagateTags = &v
7131	return s
7132}
7133
7134// SetRetryStrategy sets the RetryStrategy field's value.
7135func (s *RegisterJobDefinitionInput) SetRetryStrategy(v *RetryStrategy) *RegisterJobDefinitionInput {
7136	s.RetryStrategy = v
7137	return s
7138}
7139
7140// SetTags sets the Tags field's value.
7141func (s *RegisterJobDefinitionInput) SetTags(v map[string]*string) *RegisterJobDefinitionInput {
7142	s.Tags = v
7143	return s
7144}
7145
7146// SetTimeout sets the Timeout field's value.
7147func (s *RegisterJobDefinitionInput) SetTimeout(v *JobTimeout) *RegisterJobDefinitionInput {
7148	s.Timeout = v
7149	return s
7150}
7151
7152// SetType sets the Type field's value.
7153func (s *RegisterJobDefinitionInput) SetType(v string) *RegisterJobDefinitionInput {
7154	s.Type = &v
7155	return s
7156}
7157
7158type RegisterJobDefinitionOutput struct {
7159	_ struct{} `type:"structure"`
7160
7161	// The Amazon Resource Name (ARN) of the job definition.
7162	//
7163	// JobDefinitionArn is a required field
7164	JobDefinitionArn *string `locationName:"jobDefinitionArn" type:"string" required:"true"`
7165
7166	// The name of the job definition.
7167	//
7168	// JobDefinitionName is a required field
7169	JobDefinitionName *string `locationName:"jobDefinitionName" type:"string" required:"true"`
7170
7171	// The revision of the job definition.
7172	//
7173	// Revision is a required field
7174	Revision *int64 `locationName:"revision" type:"integer" required:"true"`
7175}
7176
7177// String returns the string representation
7178func (s RegisterJobDefinitionOutput) String() string {
7179	return awsutil.Prettify(s)
7180}
7181
7182// GoString returns the string representation
7183func (s RegisterJobDefinitionOutput) GoString() string {
7184	return s.String()
7185}
7186
7187// SetJobDefinitionArn sets the JobDefinitionArn field's value.
7188func (s *RegisterJobDefinitionOutput) SetJobDefinitionArn(v string) *RegisterJobDefinitionOutput {
7189	s.JobDefinitionArn = &v
7190	return s
7191}
7192
7193// SetJobDefinitionName sets the JobDefinitionName field's value.
7194func (s *RegisterJobDefinitionOutput) SetJobDefinitionName(v string) *RegisterJobDefinitionOutput {
7195	s.JobDefinitionName = &v
7196	return s
7197}
7198
7199// SetRevision sets the Revision field's value.
7200func (s *RegisterJobDefinitionOutput) SetRevision(v int64) *RegisterJobDefinitionOutput {
7201	s.Revision = &v
7202	return s
7203}
7204
7205// The type and amount of a resource to assign to a container. The supported
7206// resources include GPU, MEMORY, and VCPU.
7207type ResourceRequirement struct {
7208	_ struct{} `type:"structure"`
7209
7210	// The type of resource to assign to a container. The supported resources include
7211	// GPU, MEMORY, and VCPU.
7212	//
7213	// Type is a required field
7214	Type *string `locationName:"type" type:"string" required:"true" enum:"ResourceType"`
7215
7216	// The quantity of the specified resource to reserve for the container. The
7217	// values vary based on the type specified.
7218	//
7219	// type="GPU"
7220	//
7221	// The number of physical GPUs to reserve for the container. The number of GPUs
7222	// reserved for all containers in a job shouldn't exceed the number of available
7223	// GPUs on the compute resource that the job is launched on.
7224	//
7225	// GPUs are not available for jobs that are running on Fargate resources.
7226	//
7227	// type="MEMORY"
7228	//
7229	// The memory hard limit (in MiB) present to the container. This parameter is
7230	// supported for jobs that are running on EC2 resources. If your container attempts
7231	// to exceed the memory specified, the container is terminated. This parameter
7232	// maps to Memory in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
7233	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
7234	// and the --memory option to docker run (https://docs.docker.com/engine/reference/run/).
7235	// You must specify at least 4 MiB of memory for a job. This is required but
7236	// can be specified in several places for multi-node parallel (MNP) jobs. It
7237	// must be specified for each node at least once. This parameter maps to Memory
7238	// in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
7239	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
7240	// and the --memory option to docker run (https://docs.docker.com/engine/reference/run/).
7241	//
7242	// If you're trying to maximize your resource utilization by providing your
7243	// jobs as much memory as possible for a particular instance type, see Memory
7244	// Management (https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html)
7245	// in the Batch User Guide.
7246	//
7247	// For jobs that are running on Fargate resources, then value is the hard limit
7248	// (in MiB), and must match one of the supported values and the VCPU values
7249	// must be one of the values supported for that memory value.
7250	//
7251	// value = 512
7252	//
7253	// VCPU = 0.25
7254	//
7255	// value = 1024
7256	//
7257	// VCPU = 0.25 or 0.5
7258	//
7259	// value = 2048
7260	//
7261	// VCPU = 0.25, 0.5, or 1
7262	//
7263	// value = 3072
7264	//
7265	// VCPU = 0.5, or 1
7266	//
7267	// value = 4096
7268	//
7269	// VCPU = 0.5, 1, or 2
7270	//
7271	// value = 5120, 6144, or 7168
7272	//
7273	// VCPU = 1 or 2
7274	//
7275	// value = 8192
7276	//
7277	// VCPU = 1, 2, or 4
7278	//
7279	// value = 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384
7280	//
7281	// VCPU = 2 or 4
7282	//
7283	// value = 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624,
7284	// 27648, 28672, 29696, or 30720
7285	//
7286	// VCPU = 4
7287	//
7288	// type="VCPU"
7289	//
7290	// The number of vCPUs reserved for the container. This parameter maps to CpuShares
7291	// in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
7292	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
7293	// and the --cpu-shares option to docker run (https://docs.docker.com/engine/reference/run/).
7294	// Each vCPU is equivalent to 1,024 CPU shares. For EC2 resources, you must
7295	// specify at least one vCPU. This is required but can be specified in several
7296	// places; it must be specified for each node at least once.
7297	//
7298	// For jobs that are running on Fargate resources, then value must match one
7299	// of the supported values and the MEMORY values must be one of the values supported
7300	// for that VCPU value. The supported values are 0.25, 0.5, 1, 2, and 4
7301	//
7302	// value = 0.25
7303	//
7304	// MEMORY = 512, 1024, or 2048
7305	//
7306	// value = 0.5
7307	//
7308	// MEMORY = 1024, 2048, 3072, or 4096
7309	//
7310	// value = 1
7311	//
7312	// MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192
7313	//
7314	// value = 2
7315	//
7316	// MEMORY = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312,
7317	// 14336, 15360, or 16384
7318	//
7319	// value = 4
7320	//
7321	// MEMORY = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408,
7322	// 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672,
7323	// 29696, or 30720
7324	//
7325	// Value is a required field
7326	Value *string `locationName:"value" type:"string" required:"true"`
7327}
7328
7329// String returns the string representation
7330func (s ResourceRequirement) String() string {
7331	return awsutil.Prettify(s)
7332}
7333
7334// GoString returns the string representation
7335func (s ResourceRequirement) GoString() string {
7336	return s.String()
7337}
7338
7339// Validate inspects the fields of the type to determine if they are valid.
7340func (s *ResourceRequirement) Validate() error {
7341	invalidParams := request.ErrInvalidParams{Context: "ResourceRequirement"}
7342	if s.Type == nil {
7343		invalidParams.Add(request.NewErrParamRequired("Type"))
7344	}
7345	if s.Value == nil {
7346		invalidParams.Add(request.NewErrParamRequired("Value"))
7347	}
7348
7349	if invalidParams.Len() > 0 {
7350		return invalidParams
7351	}
7352	return nil
7353}
7354
7355// SetType sets the Type field's value.
7356func (s *ResourceRequirement) SetType(v string) *ResourceRequirement {
7357	s.Type = &v
7358	return s
7359}
7360
7361// SetValue sets the Value field's value.
7362func (s *ResourceRequirement) SetValue(v string) *ResourceRequirement {
7363	s.Value = &v
7364	return s
7365}
7366
7367// The retry strategy associated with a job. For more information, see Automated
7368// job retries (https://docs.aws.amazon.com/batch/latest/userguide/job_retries.html)
7369// in the Batch User Guide.
7370type RetryStrategy struct {
7371	_ struct{} `type:"structure"`
7372
7373	// The number of times to move a job to the RUNNABLE status. You can specify
7374	// between 1 and 10 attempts. If the value of attempts is greater than one,
7375	// the job is retried on failure the same number of attempts as the value.
7376	Attempts *int64 `locationName:"attempts" type:"integer"`
7377
7378	// Array of up to 5 objects that specify conditions under which the job should
7379	// be retried or failed. If this parameter is specified, then the attempts parameter
7380	// must also be specified.
7381	EvaluateOnExit []*EvaluateOnExit `locationName:"evaluateOnExit" type:"list"`
7382}
7383
7384// String returns the string representation
7385func (s RetryStrategy) String() string {
7386	return awsutil.Prettify(s)
7387}
7388
7389// GoString returns the string representation
7390func (s RetryStrategy) GoString() string {
7391	return s.String()
7392}
7393
7394// Validate inspects the fields of the type to determine if they are valid.
7395func (s *RetryStrategy) Validate() error {
7396	invalidParams := request.ErrInvalidParams{Context: "RetryStrategy"}
7397	if s.EvaluateOnExit != nil {
7398		for i, v := range s.EvaluateOnExit {
7399			if v == nil {
7400				continue
7401			}
7402			if err := v.Validate(); err != nil {
7403				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EvaluateOnExit", i), err.(request.ErrInvalidParams))
7404			}
7405		}
7406	}
7407
7408	if invalidParams.Len() > 0 {
7409		return invalidParams
7410	}
7411	return nil
7412}
7413
7414// SetAttempts sets the Attempts field's value.
7415func (s *RetryStrategy) SetAttempts(v int64) *RetryStrategy {
7416	s.Attempts = &v
7417	return s
7418}
7419
7420// SetEvaluateOnExit sets the EvaluateOnExit field's value.
7421func (s *RetryStrategy) SetEvaluateOnExit(v []*EvaluateOnExit) *RetryStrategy {
7422	s.EvaluateOnExit = v
7423	return s
7424}
7425
7426// An object representing the secret to expose to your container. Secrets can
7427// be exposed to a container in the following ways:
7428//
7429//    * To inject sensitive data into your containers as environment variables,
7430//    use the secrets container definition parameter.
7431//
7432//    * To reference sensitive information in the log configuration of a container,
7433//    use the secretOptions container definition parameter.
7434//
7435// For more information, see Specifying sensitive data (https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html)
7436// in the Batch User Guide.
7437type Secret struct {
7438	_ struct{} `type:"structure"`
7439
7440	// The name of the secret.
7441	//
7442	// Name is a required field
7443	Name *string `locationName:"name" type:"string" required:"true"`
7444
7445	// The secret to expose to the container. The supported values are either the
7446	// full ARN of the Secrets Manager secret or the full ARN of the parameter in
7447	// the Amazon Web Services Systems Manager Parameter Store.
7448	//
7449	// If the Amazon Web Services Systems Manager Parameter Store parameter exists
7450	// in the same Region as the job you're launching, then you can use either the
7451	// full ARN or name of the parameter. If the parameter exists in a different
7452	// Region, then the full ARN must be specified.
7453	//
7454	// ValueFrom is a required field
7455	ValueFrom *string `locationName:"valueFrom" type:"string" required:"true"`
7456}
7457
7458// String returns the string representation
7459func (s Secret) String() string {
7460	return awsutil.Prettify(s)
7461}
7462
7463// GoString returns the string representation
7464func (s Secret) GoString() string {
7465	return s.String()
7466}
7467
7468// Validate inspects the fields of the type to determine if they are valid.
7469func (s *Secret) Validate() error {
7470	invalidParams := request.ErrInvalidParams{Context: "Secret"}
7471	if s.Name == nil {
7472		invalidParams.Add(request.NewErrParamRequired("Name"))
7473	}
7474	if s.ValueFrom == nil {
7475		invalidParams.Add(request.NewErrParamRequired("ValueFrom"))
7476	}
7477
7478	if invalidParams.Len() > 0 {
7479		return invalidParams
7480	}
7481	return nil
7482}
7483
7484// SetName sets the Name field's value.
7485func (s *Secret) SetName(v string) *Secret {
7486	s.Name = &v
7487	return s
7488}
7489
7490// SetValueFrom sets the ValueFrom field's value.
7491func (s *Secret) SetValueFrom(v string) *Secret {
7492	s.ValueFrom = &v
7493	return s
7494}
7495
7496// These errors are usually caused by a server issue.
7497type ServerException struct {
7498	_            struct{}                  `type:"structure"`
7499	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7500
7501	Message_ *string `locationName:"message" type:"string"`
7502}
7503
7504// String returns the string representation
7505func (s ServerException) String() string {
7506	return awsutil.Prettify(s)
7507}
7508
7509// GoString returns the string representation
7510func (s ServerException) GoString() string {
7511	return s.String()
7512}
7513
7514func newErrorServerException(v protocol.ResponseMetadata) error {
7515	return &ServerException{
7516		RespMetadata: v,
7517	}
7518}
7519
7520// Code returns the exception type name.
7521func (s *ServerException) Code() string {
7522	return "ServerException"
7523}
7524
7525// Message returns the exception's message.
7526func (s *ServerException) Message() string {
7527	if s.Message_ != nil {
7528		return *s.Message_
7529	}
7530	return ""
7531}
7532
7533// OrigErr always returns nil, satisfies awserr.Error interface.
7534func (s *ServerException) OrigErr() error {
7535	return nil
7536}
7537
7538func (s *ServerException) Error() string {
7539	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7540}
7541
7542// Status code returns the HTTP status code for the request's response error.
7543func (s *ServerException) StatusCode() int {
7544	return s.RespMetadata.StatusCode
7545}
7546
7547// RequestID returns the service's response RequestID for request.
7548func (s *ServerException) RequestID() string {
7549	return s.RespMetadata.RequestID
7550}
7551
7552// Contains the parameters for SubmitJob.
7553type SubmitJobInput struct {
7554	_ struct{} `type:"structure"`
7555
7556	// The array properties for the submitted job, such as the size of the array.
7557	// The array size can be between 2 and 10,000. If you specify array properties
7558	// for a job, it becomes an array job. For more information, see Array Jobs
7559	// (https://docs.aws.amazon.com/batch/latest/userguide/array_jobs.html) in the
7560	// Batch User Guide.
7561	ArrayProperties *ArrayProperties `locationName:"arrayProperties" type:"structure"`
7562
7563	// A list of container overrides in the JSON format that specify the name of
7564	// a container in the specified job definition and the overrides it should receive.
7565	// You can override the default command for a container, which is specified
7566	// in the job definition or the Docker image, with a command override. You can
7567	// also override existing environment variables on a container or add new environment
7568	// variables to it with an environment override.
7569	ContainerOverrides *ContainerOverrides `locationName:"containerOverrides" type:"structure"`
7570
7571	// A list of dependencies for the job. A job can depend upon a maximum of 20
7572	// jobs. You can specify a SEQUENTIAL type dependency without specifying a job
7573	// ID for array jobs so that each child array job completes sequentially, starting
7574	// at index 0. You can also specify an N_TO_N type dependency with a job ID
7575	// for array jobs. In that case, each index child of this job must wait for
7576	// the corresponding index child of each dependency to complete before it can
7577	// begin.
7578	DependsOn []*JobDependency `locationName:"dependsOn" type:"list"`
7579
7580	// The job definition used by this job. This value can be one of name, name:revision,
7581	// or the Amazon Resource Name (ARN) for the job definition. If name is specified
7582	// without a revision then the latest active revision is used.
7583	//
7584	// JobDefinition is a required field
7585	JobDefinition *string `locationName:"jobDefinition" type:"string" required:"true"`
7586
7587	// The name of the job. The first character must be alphanumeric, and up to
7588	// 128 letters (uppercase and lowercase), numbers, hyphens, and underscores
7589	// are allowed.
7590	//
7591	// JobName is a required field
7592	JobName *string `locationName:"jobName" type:"string" required:"true"`
7593
7594	// The job queue where the job is submitted. You can specify either the name
7595	// or the Amazon Resource Name (ARN) of the queue.
7596	//
7597	// JobQueue is a required field
7598	JobQueue *string `locationName:"jobQueue" type:"string" required:"true"`
7599
7600	// A list of node overrides in JSON format that specify the node range to target
7601	// and the container overrides for that node range.
7602	//
7603	// This parameter isn't applicable to jobs that are running on Fargate resources;
7604	// use containerOverrides instead.
7605	NodeOverrides *NodeOverrides `locationName:"nodeOverrides" type:"structure"`
7606
7607	// Additional parameters passed to the job that replace parameter substitution
7608	// placeholders that are set in the job definition. Parameters are specified
7609	// as a key and value pair mapping. Parameters in a SubmitJob request override
7610	// any corresponding parameter defaults from the job definition.
7611	Parameters map[string]*string `locationName:"parameters" type:"map"`
7612
7613	// Specifies whether to propagate the tags from the job or job definition to
7614	// the corresponding Amazon ECS task. If no value is specified, the tags aren't
7615	// propagated. Tags can only be propagated to the tasks during task creation.
7616	// For tags with the same name, job tags are given priority over job definitions
7617	// tags. If the total number of combined tags from the job and job definition
7618	// is over 50, the job is moved to the FAILED state. When specified, this overrides
7619	// the tag propagation setting in the job definition.
7620	PropagateTags *bool `locationName:"propagateTags" type:"boolean"`
7621
7622	// The retry strategy to use for failed jobs from this SubmitJob operation.
7623	// When a retry strategy is specified here, it overrides the retry strategy
7624	// defined in the job definition.
7625	RetryStrategy *RetryStrategy `locationName:"retryStrategy" type:"structure"`
7626
7627	// The tags that you apply to the job request to help you categorize and organize
7628	// your resources. Each tag consists of a key and an optional value. For more
7629	// information, see Tagging Amazon Web Services Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
7630	// in Amazon Web Services General Reference.
7631	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
7632
7633	// The timeout configuration for this SubmitJob operation. You can specify a
7634	// timeout duration after which Batch terminates your jobs if they haven't finished.
7635	// If a job is terminated due to a timeout, it isn't retried. The minimum value
7636	// for the timeout is 60 seconds. This configuration overrides any timeout configuration
7637	// specified in the job definition. For array jobs, child jobs have the same
7638	// timeout configuration as the parent job. For more information, see Job Timeouts
7639	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/job_timeouts.html)
7640	// in the Amazon Elastic Container Service Developer Guide.
7641	Timeout *JobTimeout `locationName:"timeout" type:"structure"`
7642}
7643
7644// String returns the string representation
7645func (s SubmitJobInput) String() string {
7646	return awsutil.Prettify(s)
7647}
7648
7649// GoString returns the string representation
7650func (s SubmitJobInput) GoString() string {
7651	return s.String()
7652}
7653
7654// Validate inspects the fields of the type to determine if they are valid.
7655func (s *SubmitJobInput) Validate() error {
7656	invalidParams := request.ErrInvalidParams{Context: "SubmitJobInput"}
7657	if s.JobDefinition == nil {
7658		invalidParams.Add(request.NewErrParamRequired("JobDefinition"))
7659	}
7660	if s.JobName == nil {
7661		invalidParams.Add(request.NewErrParamRequired("JobName"))
7662	}
7663	if s.JobQueue == nil {
7664		invalidParams.Add(request.NewErrParamRequired("JobQueue"))
7665	}
7666	if s.Tags != nil && len(s.Tags) < 1 {
7667		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
7668	}
7669	if s.ContainerOverrides != nil {
7670		if err := s.ContainerOverrides.Validate(); err != nil {
7671			invalidParams.AddNested("ContainerOverrides", err.(request.ErrInvalidParams))
7672		}
7673	}
7674	if s.NodeOverrides != nil {
7675		if err := s.NodeOverrides.Validate(); err != nil {
7676			invalidParams.AddNested("NodeOverrides", err.(request.ErrInvalidParams))
7677		}
7678	}
7679	if s.RetryStrategy != nil {
7680		if err := s.RetryStrategy.Validate(); err != nil {
7681			invalidParams.AddNested("RetryStrategy", err.(request.ErrInvalidParams))
7682		}
7683	}
7684
7685	if invalidParams.Len() > 0 {
7686		return invalidParams
7687	}
7688	return nil
7689}
7690
7691// SetArrayProperties sets the ArrayProperties field's value.
7692func (s *SubmitJobInput) SetArrayProperties(v *ArrayProperties) *SubmitJobInput {
7693	s.ArrayProperties = v
7694	return s
7695}
7696
7697// SetContainerOverrides sets the ContainerOverrides field's value.
7698func (s *SubmitJobInput) SetContainerOverrides(v *ContainerOverrides) *SubmitJobInput {
7699	s.ContainerOverrides = v
7700	return s
7701}
7702
7703// SetDependsOn sets the DependsOn field's value.
7704func (s *SubmitJobInput) SetDependsOn(v []*JobDependency) *SubmitJobInput {
7705	s.DependsOn = v
7706	return s
7707}
7708
7709// SetJobDefinition sets the JobDefinition field's value.
7710func (s *SubmitJobInput) SetJobDefinition(v string) *SubmitJobInput {
7711	s.JobDefinition = &v
7712	return s
7713}
7714
7715// SetJobName sets the JobName field's value.
7716func (s *SubmitJobInput) SetJobName(v string) *SubmitJobInput {
7717	s.JobName = &v
7718	return s
7719}
7720
7721// SetJobQueue sets the JobQueue field's value.
7722func (s *SubmitJobInput) SetJobQueue(v string) *SubmitJobInput {
7723	s.JobQueue = &v
7724	return s
7725}
7726
7727// SetNodeOverrides sets the NodeOverrides field's value.
7728func (s *SubmitJobInput) SetNodeOverrides(v *NodeOverrides) *SubmitJobInput {
7729	s.NodeOverrides = v
7730	return s
7731}
7732
7733// SetParameters sets the Parameters field's value.
7734func (s *SubmitJobInput) SetParameters(v map[string]*string) *SubmitJobInput {
7735	s.Parameters = v
7736	return s
7737}
7738
7739// SetPropagateTags sets the PropagateTags field's value.
7740func (s *SubmitJobInput) SetPropagateTags(v bool) *SubmitJobInput {
7741	s.PropagateTags = &v
7742	return s
7743}
7744
7745// SetRetryStrategy sets the RetryStrategy field's value.
7746func (s *SubmitJobInput) SetRetryStrategy(v *RetryStrategy) *SubmitJobInput {
7747	s.RetryStrategy = v
7748	return s
7749}
7750
7751// SetTags sets the Tags field's value.
7752func (s *SubmitJobInput) SetTags(v map[string]*string) *SubmitJobInput {
7753	s.Tags = v
7754	return s
7755}
7756
7757// SetTimeout sets the Timeout field's value.
7758func (s *SubmitJobInput) SetTimeout(v *JobTimeout) *SubmitJobInput {
7759	s.Timeout = v
7760	return s
7761}
7762
7763type SubmitJobOutput struct {
7764	_ struct{} `type:"structure"`
7765
7766	// The Amazon Resource Name (ARN) for the job.
7767	JobArn *string `locationName:"jobArn" type:"string"`
7768
7769	// The unique identifier for the job.
7770	//
7771	// JobId is a required field
7772	JobId *string `locationName:"jobId" type:"string" required:"true"`
7773
7774	// The name of the job.
7775	//
7776	// JobName is a required field
7777	JobName *string `locationName:"jobName" type:"string" required:"true"`
7778}
7779
7780// String returns the string representation
7781func (s SubmitJobOutput) String() string {
7782	return awsutil.Prettify(s)
7783}
7784
7785// GoString returns the string representation
7786func (s SubmitJobOutput) GoString() string {
7787	return s.String()
7788}
7789
7790// SetJobArn sets the JobArn field's value.
7791func (s *SubmitJobOutput) SetJobArn(v string) *SubmitJobOutput {
7792	s.JobArn = &v
7793	return s
7794}
7795
7796// SetJobId sets the JobId field's value.
7797func (s *SubmitJobOutput) SetJobId(v string) *SubmitJobOutput {
7798	s.JobId = &v
7799	return s
7800}
7801
7802// SetJobName sets the JobName field's value.
7803func (s *SubmitJobOutput) SetJobName(v string) *SubmitJobOutput {
7804	s.JobName = &v
7805	return s
7806}
7807
7808type TagResourceInput struct {
7809	_ struct{} `type:"structure"`
7810
7811	// The Amazon Resource Name (ARN) of the resource that tags are added to. Batch
7812	// resources that support tags are compute environments, jobs, job definitions,
7813	// and job queues. ARNs for child jobs of array and multi-node parallel (MNP)
7814	// jobs are not supported.
7815	//
7816	// ResourceArn is a required field
7817	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
7818
7819	// The tags that you apply to the resource to help you categorize and organize
7820	// your resources. Each tag consists of a key and an optional value. For more
7821	// information, see Tagging Amazon Web Services Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
7822	// in Amazon Web Services General Reference.
7823	//
7824	// Tags is a required field
7825	Tags map[string]*string `locationName:"tags" min:"1" type:"map" required:"true"`
7826}
7827
7828// String returns the string representation
7829func (s TagResourceInput) String() string {
7830	return awsutil.Prettify(s)
7831}
7832
7833// GoString returns the string representation
7834func (s TagResourceInput) GoString() string {
7835	return s.String()
7836}
7837
7838// Validate inspects the fields of the type to determine if they are valid.
7839func (s *TagResourceInput) Validate() error {
7840	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
7841	if s.ResourceArn == nil {
7842		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
7843	}
7844	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
7845		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
7846	}
7847	if s.Tags == nil {
7848		invalidParams.Add(request.NewErrParamRequired("Tags"))
7849	}
7850	if s.Tags != nil && len(s.Tags) < 1 {
7851		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
7852	}
7853
7854	if invalidParams.Len() > 0 {
7855		return invalidParams
7856	}
7857	return nil
7858}
7859
7860// SetResourceArn sets the ResourceArn field's value.
7861func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
7862	s.ResourceArn = &v
7863	return s
7864}
7865
7866// SetTags sets the Tags field's value.
7867func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
7868	s.Tags = v
7869	return s
7870}
7871
7872type TagResourceOutput struct {
7873	_ struct{} `type:"structure"`
7874}
7875
7876// String returns the string representation
7877func (s TagResourceOutput) String() string {
7878	return awsutil.Prettify(s)
7879}
7880
7881// GoString returns the string representation
7882func (s TagResourceOutput) GoString() string {
7883	return s.String()
7884}
7885
7886// Contains the parameters for TerminateJob.
7887type TerminateJobInput struct {
7888	_ struct{} `type:"structure"`
7889
7890	// The Batch job ID of the job to terminate.
7891	//
7892	// JobId is a required field
7893	JobId *string `locationName:"jobId" type:"string" required:"true"`
7894
7895	// A message to attach to the job that explains the reason for canceling it.
7896	// This message is returned by future DescribeJobs operations on the job. This
7897	// message is also recorded in the Batch activity logs.
7898	//
7899	// Reason is a required field
7900	Reason *string `locationName:"reason" type:"string" required:"true"`
7901}
7902
7903// String returns the string representation
7904func (s TerminateJobInput) String() string {
7905	return awsutil.Prettify(s)
7906}
7907
7908// GoString returns the string representation
7909func (s TerminateJobInput) GoString() string {
7910	return s.String()
7911}
7912
7913// Validate inspects the fields of the type to determine if they are valid.
7914func (s *TerminateJobInput) Validate() error {
7915	invalidParams := request.ErrInvalidParams{Context: "TerminateJobInput"}
7916	if s.JobId == nil {
7917		invalidParams.Add(request.NewErrParamRequired("JobId"))
7918	}
7919	if s.Reason == nil {
7920		invalidParams.Add(request.NewErrParamRequired("Reason"))
7921	}
7922
7923	if invalidParams.Len() > 0 {
7924		return invalidParams
7925	}
7926	return nil
7927}
7928
7929// SetJobId sets the JobId field's value.
7930func (s *TerminateJobInput) SetJobId(v string) *TerminateJobInput {
7931	s.JobId = &v
7932	return s
7933}
7934
7935// SetReason sets the Reason field's value.
7936func (s *TerminateJobInput) SetReason(v string) *TerminateJobInput {
7937	s.Reason = &v
7938	return s
7939}
7940
7941type TerminateJobOutput struct {
7942	_ struct{} `type:"structure"`
7943}
7944
7945// String returns the string representation
7946func (s TerminateJobOutput) String() string {
7947	return awsutil.Prettify(s)
7948}
7949
7950// GoString returns the string representation
7951func (s TerminateJobOutput) GoString() string {
7952	return s.String()
7953}
7954
7955// The container path, mount options, and size of the tmpfs mount.
7956//
7957// This object isn't applicable to jobs that are running on Fargate resources.
7958type Tmpfs struct {
7959	_ struct{} `type:"structure"`
7960
7961	// The absolute file path in the container where the tmpfs volume is mounted.
7962	//
7963	// ContainerPath is a required field
7964	ContainerPath *string `locationName:"containerPath" type:"string" required:"true"`
7965
7966	// The list of tmpfs volume mount options.
7967	//
7968	// Valid values: "defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev"
7969	// | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" |
7970	// "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind"
7971	// | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared"
7972	// | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime"
7973	// | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"
7974	MountOptions []*string `locationName:"mountOptions" type:"list"`
7975
7976	// The size (in MiB) of the tmpfs volume.
7977	//
7978	// Size is a required field
7979	Size *int64 `locationName:"size" type:"integer" required:"true"`
7980}
7981
7982// String returns the string representation
7983func (s Tmpfs) String() string {
7984	return awsutil.Prettify(s)
7985}
7986
7987// GoString returns the string representation
7988func (s Tmpfs) GoString() string {
7989	return s.String()
7990}
7991
7992// Validate inspects the fields of the type to determine if they are valid.
7993func (s *Tmpfs) Validate() error {
7994	invalidParams := request.ErrInvalidParams{Context: "Tmpfs"}
7995	if s.ContainerPath == nil {
7996		invalidParams.Add(request.NewErrParamRequired("ContainerPath"))
7997	}
7998	if s.Size == nil {
7999		invalidParams.Add(request.NewErrParamRequired("Size"))
8000	}
8001
8002	if invalidParams.Len() > 0 {
8003		return invalidParams
8004	}
8005	return nil
8006}
8007
8008// SetContainerPath sets the ContainerPath field's value.
8009func (s *Tmpfs) SetContainerPath(v string) *Tmpfs {
8010	s.ContainerPath = &v
8011	return s
8012}
8013
8014// SetMountOptions sets the MountOptions field's value.
8015func (s *Tmpfs) SetMountOptions(v []*string) *Tmpfs {
8016	s.MountOptions = v
8017	return s
8018}
8019
8020// SetSize sets the Size field's value.
8021func (s *Tmpfs) SetSize(v int64) *Tmpfs {
8022	s.Size = &v
8023	return s
8024}
8025
8026// The ulimit settings to pass to the container.
8027//
8028// This object isn't applicable to jobs that are running on Fargate resources.
8029type Ulimit struct {
8030	_ struct{} `type:"structure"`
8031
8032	// The hard limit for the ulimit type.
8033	//
8034	// HardLimit is a required field
8035	HardLimit *int64 `locationName:"hardLimit" type:"integer" required:"true"`
8036
8037	// The type of the ulimit.
8038	//
8039	// Name is a required field
8040	Name *string `locationName:"name" type:"string" required:"true"`
8041
8042	// The soft limit for the ulimit type.
8043	//
8044	// SoftLimit is a required field
8045	SoftLimit *int64 `locationName:"softLimit" type:"integer" required:"true"`
8046}
8047
8048// String returns the string representation
8049func (s Ulimit) String() string {
8050	return awsutil.Prettify(s)
8051}
8052
8053// GoString returns the string representation
8054func (s Ulimit) GoString() string {
8055	return s.String()
8056}
8057
8058// Validate inspects the fields of the type to determine if they are valid.
8059func (s *Ulimit) Validate() error {
8060	invalidParams := request.ErrInvalidParams{Context: "Ulimit"}
8061	if s.HardLimit == nil {
8062		invalidParams.Add(request.NewErrParamRequired("HardLimit"))
8063	}
8064	if s.Name == nil {
8065		invalidParams.Add(request.NewErrParamRequired("Name"))
8066	}
8067	if s.SoftLimit == nil {
8068		invalidParams.Add(request.NewErrParamRequired("SoftLimit"))
8069	}
8070
8071	if invalidParams.Len() > 0 {
8072		return invalidParams
8073	}
8074	return nil
8075}
8076
8077// SetHardLimit sets the HardLimit field's value.
8078func (s *Ulimit) SetHardLimit(v int64) *Ulimit {
8079	s.HardLimit = &v
8080	return s
8081}
8082
8083// SetName sets the Name field's value.
8084func (s *Ulimit) SetName(v string) *Ulimit {
8085	s.Name = &v
8086	return s
8087}
8088
8089// SetSoftLimit sets the SoftLimit field's value.
8090func (s *Ulimit) SetSoftLimit(v int64) *Ulimit {
8091	s.SoftLimit = &v
8092	return s
8093}
8094
8095type UntagResourceInput struct {
8096	_ struct{} `type:"structure"`
8097
8098	// The Amazon Resource Name (ARN) of the resource from which to delete tags.
8099	// Batch resources that support tags are compute environments, jobs, job definitions,
8100	// and job queues. ARNs for child jobs of array and multi-node parallel (MNP)
8101	// jobs are not supported.
8102	//
8103	// ResourceArn is a required field
8104	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
8105
8106	// The keys of the tags to be removed.
8107	//
8108	// TagKeys is a required field
8109	TagKeys []*string `location:"querystring" locationName:"tagKeys" min:"1" type:"list" required:"true"`
8110}
8111
8112// String returns the string representation
8113func (s UntagResourceInput) String() string {
8114	return awsutil.Prettify(s)
8115}
8116
8117// GoString returns the string representation
8118func (s UntagResourceInput) GoString() string {
8119	return s.String()
8120}
8121
8122// Validate inspects the fields of the type to determine if they are valid.
8123func (s *UntagResourceInput) Validate() error {
8124	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
8125	if s.ResourceArn == nil {
8126		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
8127	}
8128	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
8129		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
8130	}
8131	if s.TagKeys == nil {
8132		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
8133	}
8134	if s.TagKeys != nil && len(s.TagKeys) < 1 {
8135		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
8136	}
8137
8138	if invalidParams.Len() > 0 {
8139		return invalidParams
8140	}
8141	return nil
8142}
8143
8144// SetResourceArn sets the ResourceArn field's value.
8145func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
8146	s.ResourceArn = &v
8147	return s
8148}
8149
8150// SetTagKeys sets the TagKeys field's value.
8151func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
8152	s.TagKeys = v
8153	return s
8154}
8155
8156type UntagResourceOutput struct {
8157	_ struct{} `type:"structure"`
8158}
8159
8160// String returns the string representation
8161func (s UntagResourceOutput) String() string {
8162	return awsutil.Prettify(s)
8163}
8164
8165// GoString returns the string representation
8166func (s UntagResourceOutput) GoString() string {
8167	return s.String()
8168}
8169
8170// Contains the parameters for UpdateComputeEnvironment.
8171type UpdateComputeEnvironmentInput struct {
8172	_ struct{} `type:"structure"`
8173
8174	// The name or full Amazon Resource Name (ARN) of the compute environment to
8175	// update.
8176	//
8177	// ComputeEnvironment is a required field
8178	ComputeEnvironment *string `locationName:"computeEnvironment" type:"string" required:"true"`
8179
8180	// Details of the compute resources managed by the compute environment. Required
8181	// for a managed compute environment. For more information, see Compute Environments
8182	// (https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html)
8183	// in the Batch User Guide.
8184	ComputeResources *ComputeResourceUpdate `locationName:"computeResources" type:"structure"`
8185
8186	// The full Amazon Resource Name (ARN) of the IAM role that allows Batch to
8187	// make calls to other Amazon Web Services services on your behalf. For more
8188	// information, see Batch service IAM role (https://docs.aws.amazon.com/batch/latest/userguide/service_IAM_role.html)
8189	// in the Batch User Guide.
8190	//
8191	// If the compute environment has a service-linked role, it can't be changed
8192	// to use a regular IAM role. Likewise, if the compute environment has a regular
8193	// IAM role, it can't be changed to use a service-linked role.
8194	//
8195	// If your specified role has a path other than /, then you must either specify
8196	// the full role ARN (this is recommended) or prefix the role name with the
8197	// path.
8198	//
8199	// Depending on how you created your Batch service role, its ARN might contain
8200	// the service-role path prefix. When you only specify the name of the service
8201	// role, Batch assumes that your ARN doesn't use the service-role path prefix.
8202	// Because of this, we recommend that you specify the full ARN of your service
8203	// role when you create compute environments.
8204	ServiceRole *string `locationName:"serviceRole" type:"string"`
8205
8206	// The state of the compute environment. Compute environments in the ENABLED
8207	// state can accept jobs from a queue and scale in or out automatically based
8208	// on the workload demand of its associated queues.
8209	//
8210	// If the state is ENABLED, then the Batch scheduler can attempt to place jobs
8211	// from an associated job queue on the compute resources within the environment.
8212	// If the compute environment is managed, then it can scale its instances out
8213	// or in automatically, based on the job queue demand.
8214	//
8215	// If the state is DISABLED, then the Batch scheduler doesn't attempt to place
8216	// jobs within the environment. Jobs in a STARTING or RUNNING state continue
8217	// to progress normally. Managed compute environments in the DISABLED state
8218	// don't scale out. However, they scale in to minvCpus value after instances
8219	// become idle.
8220	State *string `locationName:"state" type:"string" enum:"CEState"`
8221}
8222
8223// String returns the string representation
8224func (s UpdateComputeEnvironmentInput) String() string {
8225	return awsutil.Prettify(s)
8226}
8227
8228// GoString returns the string representation
8229func (s UpdateComputeEnvironmentInput) GoString() string {
8230	return s.String()
8231}
8232
8233// Validate inspects the fields of the type to determine if they are valid.
8234func (s *UpdateComputeEnvironmentInput) Validate() error {
8235	invalidParams := request.ErrInvalidParams{Context: "UpdateComputeEnvironmentInput"}
8236	if s.ComputeEnvironment == nil {
8237		invalidParams.Add(request.NewErrParamRequired("ComputeEnvironment"))
8238	}
8239
8240	if invalidParams.Len() > 0 {
8241		return invalidParams
8242	}
8243	return nil
8244}
8245
8246// SetComputeEnvironment sets the ComputeEnvironment field's value.
8247func (s *UpdateComputeEnvironmentInput) SetComputeEnvironment(v string) *UpdateComputeEnvironmentInput {
8248	s.ComputeEnvironment = &v
8249	return s
8250}
8251
8252// SetComputeResources sets the ComputeResources field's value.
8253func (s *UpdateComputeEnvironmentInput) SetComputeResources(v *ComputeResourceUpdate) *UpdateComputeEnvironmentInput {
8254	s.ComputeResources = v
8255	return s
8256}
8257
8258// SetServiceRole sets the ServiceRole field's value.
8259func (s *UpdateComputeEnvironmentInput) SetServiceRole(v string) *UpdateComputeEnvironmentInput {
8260	s.ServiceRole = &v
8261	return s
8262}
8263
8264// SetState sets the State field's value.
8265func (s *UpdateComputeEnvironmentInput) SetState(v string) *UpdateComputeEnvironmentInput {
8266	s.State = &v
8267	return s
8268}
8269
8270type UpdateComputeEnvironmentOutput struct {
8271	_ struct{} `type:"structure"`
8272
8273	// The Amazon Resource Name (ARN) of the compute environment.
8274	ComputeEnvironmentArn *string `locationName:"computeEnvironmentArn" type:"string"`
8275
8276	// The name of the compute environment. Up to 128 letters (uppercase and lowercase),
8277	// numbers, hyphens, and underscores are allowed.
8278	ComputeEnvironmentName *string `locationName:"computeEnvironmentName" type:"string"`
8279}
8280
8281// String returns the string representation
8282func (s UpdateComputeEnvironmentOutput) String() string {
8283	return awsutil.Prettify(s)
8284}
8285
8286// GoString returns the string representation
8287func (s UpdateComputeEnvironmentOutput) GoString() string {
8288	return s.String()
8289}
8290
8291// SetComputeEnvironmentArn sets the ComputeEnvironmentArn field's value.
8292func (s *UpdateComputeEnvironmentOutput) SetComputeEnvironmentArn(v string) *UpdateComputeEnvironmentOutput {
8293	s.ComputeEnvironmentArn = &v
8294	return s
8295}
8296
8297// SetComputeEnvironmentName sets the ComputeEnvironmentName field's value.
8298func (s *UpdateComputeEnvironmentOutput) SetComputeEnvironmentName(v string) *UpdateComputeEnvironmentOutput {
8299	s.ComputeEnvironmentName = &v
8300	return s
8301}
8302
8303// Contains the parameters for UpdateJobQueue.
8304type UpdateJobQueueInput struct {
8305	_ struct{} `type:"structure"`
8306
8307	// Details the set of compute environments mapped to a job queue and their order
8308	// relative to each other. This is one of the parameters used by the job scheduler
8309	// to determine which compute environment should run a given job. Compute environments
8310	// must be in the VALID state before you can associate them with a job queue.
8311	// All of the compute environments must be either EC2 (EC2 or SPOT) or Fargate
8312	// (FARGATE or FARGATE_SPOT). EC2 and Fargate compute environments can't be
8313	// mixed.
8314	//
8315	// All compute environments that are associated with a job queue must share
8316	// the same architecture. Batch doesn't support mixing compute environment architecture
8317	// types in a single job queue.
8318	ComputeEnvironmentOrder []*ComputeEnvironmentOrder `locationName:"computeEnvironmentOrder" type:"list"`
8319
8320	// The name or the Amazon Resource Name (ARN) of the job queue.
8321	//
8322	// JobQueue is a required field
8323	JobQueue *string `locationName:"jobQueue" type:"string" required:"true"`
8324
8325	// The priority of the job queue. Job queues with a higher priority (or a higher
8326	// integer value for the priority parameter) are evaluated first when associated
8327	// with the same compute environment. Priority is determined in descending order,
8328	// for example, a job queue with a priority value of 10 is given scheduling
8329	// preference over a job queue with a priority value of 1. All of the compute
8330	// environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT).
8331	// EC2 and Fargate compute environments can't be mixed.
8332	Priority *int64 `locationName:"priority" type:"integer"`
8333
8334	// Describes the queue's ability to accept new jobs. If the job queue state
8335	// is ENABLED, it can accept jobs. If the job queue state is DISABLED, new jobs
8336	// can't be added to the queue, but jobs already in the queue can finish.
8337	State *string `locationName:"state" type:"string" enum:"JQState"`
8338}
8339
8340// String returns the string representation
8341func (s UpdateJobQueueInput) String() string {
8342	return awsutil.Prettify(s)
8343}
8344
8345// GoString returns the string representation
8346func (s UpdateJobQueueInput) GoString() string {
8347	return s.String()
8348}
8349
8350// Validate inspects the fields of the type to determine if they are valid.
8351func (s *UpdateJobQueueInput) Validate() error {
8352	invalidParams := request.ErrInvalidParams{Context: "UpdateJobQueueInput"}
8353	if s.JobQueue == nil {
8354		invalidParams.Add(request.NewErrParamRequired("JobQueue"))
8355	}
8356	if s.ComputeEnvironmentOrder != nil {
8357		for i, v := range s.ComputeEnvironmentOrder {
8358			if v == nil {
8359				continue
8360			}
8361			if err := v.Validate(); err != nil {
8362				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ComputeEnvironmentOrder", i), err.(request.ErrInvalidParams))
8363			}
8364		}
8365	}
8366
8367	if invalidParams.Len() > 0 {
8368		return invalidParams
8369	}
8370	return nil
8371}
8372
8373// SetComputeEnvironmentOrder sets the ComputeEnvironmentOrder field's value.
8374func (s *UpdateJobQueueInput) SetComputeEnvironmentOrder(v []*ComputeEnvironmentOrder) *UpdateJobQueueInput {
8375	s.ComputeEnvironmentOrder = v
8376	return s
8377}
8378
8379// SetJobQueue sets the JobQueue field's value.
8380func (s *UpdateJobQueueInput) SetJobQueue(v string) *UpdateJobQueueInput {
8381	s.JobQueue = &v
8382	return s
8383}
8384
8385// SetPriority sets the Priority field's value.
8386func (s *UpdateJobQueueInput) SetPriority(v int64) *UpdateJobQueueInput {
8387	s.Priority = &v
8388	return s
8389}
8390
8391// SetState sets the State field's value.
8392func (s *UpdateJobQueueInput) SetState(v string) *UpdateJobQueueInput {
8393	s.State = &v
8394	return s
8395}
8396
8397type UpdateJobQueueOutput struct {
8398	_ struct{} `type:"structure"`
8399
8400	// The Amazon Resource Name (ARN) of the job queue.
8401	JobQueueArn *string `locationName:"jobQueueArn" type:"string"`
8402
8403	// The name of the job queue.
8404	JobQueueName *string `locationName:"jobQueueName" type:"string"`
8405}
8406
8407// String returns the string representation
8408func (s UpdateJobQueueOutput) String() string {
8409	return awsutil.Prettify(s)
8410}
8411
8412// GoString returns the string representation
8413func (s UpdateJobQueueOutput) GoString() string {
8414	return s.String()
8415}
8416
8417// SetJobQueueArn sets the JobQueueArn field's value.
8418func (s *UpdateJobQueueOutput) SetJobQueueArn(v string) *UpdateJobQueueOutput {
8419	s.JobQueueArn = &v
8420	return s
8421}
8422
8423// SetJobQueueName sets the JobQueueName field's value.
8424func (s *UpdateJobQueueOutput) SetJobQueueName(v string) *UpdateJobQueueOutput {
8425	s.JobQueueName = &v
8426	return s
8427}
8428
8429// A data volume used in a job's container properties.
8430type Volume struct {
8431	_ struct{} `type:"structure"`
8432
8433	// This parameter is specified when you are using an Amazon Elastic File System
8434	// file system for job storage. Jobs that are running on Fargate resources must
8435	// specify a platformVersion of at least 1.4.0.
8436	EfsVolumeConfiguration *EFSVolumeConfiguration `locationName:"efsVolumeConfiguration" type:"structure"`
8437
8438	// The contents of the host parameter determine whether your data volume persists
8439	// on the host container instance and where it is stored. If the host parameter
8440	// is empty, then the Docker daemon assigns a host path for your data volume.
8441	// However, the data isn't guaranteed to persist after the containers associated
8442	// with it stop running.
8443	//
8444	// This parameter isn't applicable to jobs that are running on Fargate resources
8445	// and shouldn't be provided.
8446	Host *Host `locationName:"host" type:"structure"`
8447
8448	// The name of the volume. Up to 255 letters (uppercase and lowercase), numbers,
8449	// hyphens, and underscores are allowed. This name is referenced in the sourceVolume
8450	// parameter of container definition mountPoints.
8451	Name *string `locationName:"name" type:"string"`
8452}
8453
8454// String returns the string representation
8455func (s Volume) String() string {
8456	return awsutil.Prettify(s)
8457}
8458
8459// GoString returns the string representation
8460func (s Volume) GoString() string {
8461	return s.String()
8462}
8463
8464// Validate inspects the fields of the type to determine if they are valid.
8465func (s *Volume) Validate() error {
8466	invalidParams := request.ErrInvalidParams{Context: "Volume"}
8467	if s.EfsVolumeConfiguration != nil {
8468		if err := s.EfsVolumeConfiguration.Validate(); err != nil {
8469			invalidParams.AddNested("EfsVolumeConfiguration", err.(request.ErrInvalidParams))
8470		}
8471	}
8472
8473	if invalidParams.Len() > 0 {
8474		return invalidParams
8475	}
8476	return nil
8477}
8478
8479// SetEfsVolumeConfiguration sets the EfsVolumeConfiguration field's value.
8480func (s *Volume) SetEfsVolumeConfiguration(v *EFSVolumeConfiguration) *Volume {
8481	s.EfsVolumeConfiguration = v
8482	return s
8483}
8484
8485// SetHost sets the Host field's value.
8486func (s *Volume) SetHost(v *Host) *Volume {
8487	s.Host = v
8488	return s
8489}
8490
8491// SetName sets the Name field's value.
8492func (s *Volume) SetName(v string) *Volume {
8493	s.Name = &v
8494	return s
8495}
8496
8497const (
8498	// ArrayJobDependencyNToN is a ArrayJobDependency enum value
8499	ArrayJobDependencyNToN = "N_TO_N"
8500
8501	// ArrayJobDependencySequential is a ArrayJobDependency enum value
8502	ArrayJobDependencySequential = "SEQUENTIAL"
8503)
8504
8505// ArrayJobDependency_Values returns all elements of the ArrayJobDependency enum
8506func ArrayJobDependency_Values() []string {
8507	return []string{
8508		ArrayJobDependencyNToN,
8509		ArrayJobDependencySequential,
8510	}
8511}
8512
8513const (
8514	// AssignPublicIpEnabled is a AssignPublicIp enum value
8515	AssignPublicIpEnabled = "ENABLED"
8516
8517	// AssignPublicIpDisabled is a AssignPublicIp enum value
8518	AssignPublicIpDisabled = "DISABLED"
8519)
8520
8521// AssignPublicIp_Values returns all elements of the AssignPublicIp enum
8522func AssignPublicIp_Values() []string {
8523	return []string{
8524		AssignPublicIpEnabled,
8525		AssignPublicIpDisabled,
8526	}
8527}
8528
8529const (
8530	// CEStateEnabled is a CEState enum value
8531	CEStateEnabled = "ENABLED"
8532
8533	// CEStateDisabled is a CEState enum value
8534	CEStateDisabled = "DISABLED"
8535)
8536
8537// CEState_Values returns all elements of the CEState enum
8538func CEState_Values() []string {
8539	return []string{
8540		CEStateEnabled,
8541		CEStateDisabled,
8542	}
8543}
8544
8545const (
8546	// CEStatusCreating is a CEStatus enum value
8547	CEStatusCreating = "CREATING"
8548
8549	// CEStatusUpdating is a CEStatus enum value
8550	CEStatusUpdating = "UPDATING"
8551
8552	// CEStatusDeleting is a CEStatus enum value
8553	CEStatusDeleting = "DELETING"
8554
8555	// CEStatusDeleted is a CEStatus enum value
8556	CEStatusDeleted = "DELETED"
8557
8558	// CEStatusValid is a CEStatus enum value
8559	CEStatusValid = "VALID"
8560
8561	// CEStatusInvalid is a CEStatus enum value
8562	CEStatusInvalid = "INVALID"
8563)
8564
8565// CEStatus_Values returns all elements of the CEStatus enum
8566func CEStatus_Values() []string {
8567	return []string{
8568		CEStatusCreating,
8569		CEStatusUpdating,
8570		CEStatusDeleting,
8571		CEStatusDeleted,
8572		CEStatusValid,
8573		CEStatusInvalid,
8574	}
8575}
8576
8577const (
8578	// CETypeManaged is a CEType enum value
8579	CETypeManaged = "MANAGED"
8580
8581	// CETypeUnmanaged is a CEType enum value
8582	CETypeUnmanaged = "UNMANAGED"
8583)
8584
8585// CEType_Values returns all elements of the CEType enum
8586func CEType_Values() []string {
8587	return []string{
8588		CETypeManaged,
8589		CETypeUnmanaged,
8590	}
8591}
8592
8593const (
8594	// CRAllocationStrategyBestFit is a CRAllocationStrategy enum value
8595	CRAllocationStrategyBestFit = "BEST_FIT"
8596
8597	// CRAllocationStrategyBestFitProgressive is a CRAllocationStrategy enum value
8598	CRAllocationStrategyBestFitProgressive = "BEST_FIT_PROGRESSIVE"
8599
8600	// CRAllocationStrategySpotCapacityOptimized is a CRAllocationStrategy enum value
8601	CRAllocationStrategySpotCapacityOptimized = "SPOT_CAPACITY_OPTIMIZED"
8602)
8603
8604// CRAllocationStrategy_Values returns all elements of the CRAllocationStrategy enum
8605func CRAllocationStrategy_Values() []string {
8606	return []string{
8607		CRAllocationStrategyBestFit,
8608		CRAllocationStrategyBestFitProgressive,
8609		CRAllocationStrategySpotCapacityOptimized,
8610	}
8611}
8612
8613const (
8614	// CRTypeEc2 is a CRType enum value
8615	CRTypeEc2 = "EC2"
8616
8617	// CRTypeSpot is a CRType enum value
8618	CRTypeSpot = "SPOT"
8619
8620	// CRTypeFargate is a CRType enum value
8621	CRTypeFargate = "FARGATE"
8622
8623	// CRTypeFargateSpot is a CRType enum value
8624	CRTypeFargateSpot = "FARGATE_SPOT"
8625)
8626
8627// CRType_Values returns all elements of the CRType enum
8628func CRType_Values() []string {
8629	return []string{
8630		CRTypeEc2,
8631		CRTypeSpot,
8632		CRTypeFargate,
8633		CRTypeFargateSpot,
8634	}
8635}
8636
8637const (
8638	// DeviceCgroupPermissionRead is a DeviceCgroupPermission enum value
8639	DeviceCgroupPermissionRead = "READ"
8640
8641	// DeviceCgroupPermissionWrite is a DeviceCgroupPermission enum value
8642	DeviceCgroupPermissionWrite = "WRITE"
8643
8644	// DeviceCgroupPermissionMknod is a DeviceCgroupPermission enum value
8645	DeviceCgroupPermissionMknod = "MKNOD"
8646)
8647
8648// DeviceCgroupPermission_Values returns all elements of the DeviceCgroupPermission enum
8649func DeviceCgroupPermission_Values() []string {
8650	return []string{
8651		DeviceCgroupPermissionRead,
8652		DeviceCgroupPermissionWrite,
8653		DeviceCgroupPermissionMknod,
8654	}
8655}
8656
8657const (
8658	// EFSAuthorizationConfigIAMEnabled is a EFSAuthorizationConfigIAM enum value
8659	EFSAuthorizationConfigIAMEnabled = "ENABLED"
8660
8661	// EFSAuthorizationConfigIAMDisabled is a EFSAuthorizationConfigIAM enum value
8662	EFSAuthorizationConfigIAMDisabled = "DISABLED"
8663)
8664
8665// EFSAuthorizationConfigIAM_Values returns all elements of the EFSAuthorizationConfigIAM enum
8666func EFSAuthorizationConfigIAM_Values() []string {
8667	return []string{
8668		EFSAuthorizationConfigIAMEnabled,
8669		EFSAuthorizationConfigIAMDisabled,
8670	}
8671}
8672
8673const (
8674	// EFSTransitEncryptionEnabled is a EFSTransitEncryption enum value
8675	EFSTransitEncryptionEnabled = "ENABLED"
8676
8677	// EFSTransitEncryptionDisabled is a EFSTransitEncryption enum value
8678	EFSTransitEncryptionDisabled = "DISABLED"
8679)
8680
8681// EFSTransitEncryption_Values returns all elements of the EFSTransitEncryption enum
8682func EFSTransitEncryption_Values() []string {
8683	return []string{
8684		EFSTransitEncryptionEnabled,
8685		EFSTransitEncryptionDisabled,
8686	}
8687}
8688
8689const (
8690	// JQStateEnabled is a JQState enum value
8691	JQStateEnabled = "ENABLED"
8692
8693	// JQStateDisabled is a JQState enum value
8694	JQStateDisabled = "DISABLED"
8695)
8696
8697// JQState_Values returns all elements of the JQState enum
8698func JQState_Values() []string {
8699	return []string{
8700		JQStateEnabled,
8701		JQStateDisabled,
8702	}
8703}
8704
8705const (
8706	// JQStatusCreating is a JQStatus enum value
8707	JQStatusCreating = "CREATING"
8708
8709	// JQStatusUpdating is a JQStatus enum value
8710	JQStatusUpdating = "UPDATING"
8711
8712	// JQStatusDeleting is a JQStatus enum value
8713	JQStatusDeleting = "DELETING"
8714
8715	// JQStatusDeleted is a JQStatus enum value
8716	JQStatusDeleted = "DELETED"
8717
8718	// JQStatusValid is a JQStatus enum value
8719	JQStatusValid = "VALID"
8720
8721	// JQStatusInvalid is a JQStatus enum value
8722	JQStatusInvalid = "INVALID"
8723)
8724
8725// JQStatus_Values returns all elements of the JQStatus enum
8726func JQStatus_Values() []string {
8727	return []string{
8728		JQStatusCreating,
8729		JQStatusUpdating,
8730		JQStatusDeleting,
8731		JQStatusDeleted,
8732		JQStatusValid,
8733		JQStatusInvalid,
8734	}
8735}
8736
8737const (
8738	// JobDefinitionTypeContainer is a JobDefinitionType enum value
8739	JobDefinitionTypeContainer = "container"
8740
8741	// JobDefinitionTypeMultinode is a JobDefinitionType enum value
8742	JobDefinitionTypeMultinode = "multinode"
8743)
8744
8745// JobDefinitionType_Values returns all elements of the JobDefinitionType enum
8746func JobDefinitionType_Values() []string {
8747	return []string{
8748		JobDefinitionTypeContainer,
8749		JobDefinitionTypeMultinode,
8750	}
8751}
8752
8753const (
8754	// JobStatusSubmitted is a JobStatus enum value
8755	JobStatusSubmitted = "SUBMITTED"
8756
8757	// JobStatusPending is a JobStatus enum value
8758	JobStatusPending = "PENDING"
8759
8760	// JobStatusRunnable is a JobStatus enum value
8761	JobStatusRunnable = "RUNNABLE"
8762
8763	// JobStatusStarting is a JobStatus enum value
8764	JobStatusStarting = "STARTING"
8765
8766	// JobStatusRunning is a JobStatus enum value
8767	JobStatusRunning = "RUNNING"
8768
8769	// JobStatusSucceeded is a JobStatus enum value
8770	JobStatusSucceeded = "SUCCEEDED"
8771
8772	// JobStatusFailed is a JobStatus enum value
8773	JobStatusFailed = "FAILED"
8774)
8775
8776// JobStatus_Values returns all elements of the JobStatus enum
8777func JobStatus_Values() []string {
8778	return []string{
8779		JobStatusSubmitted,
8780		JobStatusPending,
8781		JobStatusRunnable,
8782		JobStatusStarting,
8783		JobStatusRunning,
8784		JobStatusSucceeded,
8785		JobStatusFailed,
8786	}
8787}
8788
8789const (
8790	// LogDriverJsonFile is a LogDriver enum value
8791	LogDriverJsonFile = "json-file"
8792
8793	// LogDriverSyslog is a LogDriver enum value
8794	LogDriverSyslog = "syslog"
8795
8796	// LogDriverJournald is a LogDriver enum value
8797	LogDriverJournald = "journald"
8798
8799	// LogDriverGelf is a LogDriver enum value
8800	LogDriverGelf = "gelf"
8801
8802	// LogDriverFluentd is a LogDriver enum value
8803	LogDriverFluentd = "fluentd"
8804
8805	// LogDriverAwslogs is a LogDriver enum value
8806	LogDriverAwslogs = "awslogs"
8807
8808	// LogDriverSplunk is a LogDriver enum value
8809	LogDriverSplunk = "splunk"
8810)
8811
8812// LogDriver_Values returns all elements of the LogDriver enum
8813func LogDriver_Values() []string {
8814	return []string{
8815		LogDriverJsonFile,
8816		LogDriverSyslog,
8817		LogDriverJournald,
8818		LogDriverGelf,
8819		LogDriverFluentd,
8820		LogDriverAwslogs,
8821		LogDriverSplunk,
8822	}
8823}
8824
8825const (
8826	// PlatformCapabilityEc2 is a PlatformCapability enum value
8827	PlatformCapabilityEc2 = "EC2"
8828
8829	// PlatformCapabilityFargate is a PlatformCapability enum value
8830	PlatformCapabilityFargate = "FARGATE"
8831)
8832
8833// PlatformCapability_Values returns all elements of the PlatformCapability enum
8834func PlatformCapability_Values() []string {
8835	return []string{
8836		PlatformCapabilityEc2,
8837		PlatformCapabilityFargate,
8838	}
8839}
8840
8841const (
8842	// ResourceTypeGpu is a ResourceType enum value
8843	ResourceTypeGpu = "GPU"
8844
8845	// ResourceTypeVcpu is a ResourceType enum value
8846	ResourceTypeVcpu = "VCPU"
8847
8848	// ResourceTypeMemory is a ResourceType enum value
8849	ResourceTypeMemory = "MEMORY"
8850)
8851
8852// ResourceType_Values returns all elements of the ResourceType enum
8853func ResourceType_Values() []string {
8854	return []string{
8855		ResourceTypeGpu,
8856		ResourceTypeVcpu,
8857		ResourceTypeMemory,
8858	}
8859}
8860
8861const (
8862	// RetryActionRetry is a RetryAction enum value
8863	RetryActionRetry = "RETRY"
8864
8865	// RetryActionExit is a RetryAction enum value
8866	RetryActionExit = "EXIT"
8867)
8868
8869// RetryAction_Values returns all elements of the RetryAction enum
8870func RetryAction_Values() []string {
8871	return []string{
8872		RetryActionRetry,
8873		RetryActionExit,
8874	}
8875}
8876