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