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