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 AWS Batch job queue. Jobs that are in the SUBMITTED,
61// PENDING, or RUNNABLE state are cancelled. Jobs that have progressed to STARTING
62// or RUNNING are not cancelled (but the API operation still succeeds, even
63// if no job is cancelled); these jobs must be terminated with the TerminateJob
64// operation.
65//
66// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
67// with awserr.Error's Code and Message methods to get detailed information about
68// the error.
69//
70// See the AWS API reference guide for AWS Batch's
71// API operation CancelJob for usage and error information.
72//
73// Returned Error Codes:
74//   * ErrCodeClientException "ClientException"
75//   These errors are usually caused by a client action, such as using an action
76//   or resource on behalf of a user that doesn't have permissions to use the
77//   action or resource, or specifying an identifier that is not valid.
78//
79//   * ErrCodeServerException "ServerException"
80//   These errors are usually caused by a server issue.
81//
82// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/CancelJob
83func (c *Batch) CancelJob(input *CancelJobInput) (*CancelJobOutput, error) {
84	req, out := c.CancelJobRequest(input)
85	return out, req.Send()
86}
87
88// CancelJobWithContext is the same as CancelJob with the addition of
89// the ability to pass a context and additional request options.
90//
91// See CancelJob for details on how to use this API operation.
92//
93// The context must be non-nil and will be used for request cancellation. If
94// the context is nil a panic will occur. In the future the SDK may create
95// sub-contexts for http.Requests. See https://golang.org/pkg/context/
96// for more information on using Contexts.
97func (c *Batch) CancelJobWithContext(ctx aws.Context, input *CancelJobInput, opts ...request.Option) (*CancelJobOutput, error) {
98	req, out := c.CancelJobRequest(input)
99	req.SetContext(ctx)
100	req.ApplyOptions(opts...)
101	return out, req.Send()
102}
103
104const opCreateComputeEnvironment = "CreateComputeEnvironment"
105
106// CreateComputeEnvironmentRequest generates a "aws/request.Request" representing the
107// client's request for the CreateComputeEnvironment operation. The "output" return
108// value will be populated with the request's response once the request completes
109// successfully.
110//
111// Use "Send" method on the returned Request to send the API call to the service.
112// the "output" return value is not valid until after Send returns without error.
113//
114// See CreateComputeEnvironment for more information on using the CreateComputeEnvironment
115// API call, and error handling.
116//
117// This method is useful when you want to inject custom logic or configuration
118// into the SDK's request lifecycle. Such as custom headers, or retry logic.
119//
120//
121//    // Example sending a request using the CreateComputeEnvironmentRequest method.
122//    req, resp := client.CreateComputeEnvironmentRequest(params)
123//
124//    err := req.Send()
125//    if err == nil { // resp is now filled
126//        fmt.Println(resp)
127//    }
128//
129// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/CreateComputeEnvironment
130func (c *Batch) CreateComputeEnvironmentRequest(input *CreateComputeEnvironmentInput) (req *request.Request, output *CreateComputeEnvironmentOutput) {
131	op := &request.Operation{
132		Name:       opCreateComputeEnvironment,
133		HTTPMethod: "POST",
134		HTTPPath:   "/v1/createcomputeenvironment",
135	}
136
137	if input == nil {
138		input = &CreateComputeEnvironmentInput{}
139	}
140
141	output = &CreateComputeEnvironmentOutput{}
142	req = c.newRequest(op, input, output)
143	return
144}
145
146// CreateComputeEnvironment API operation for AWS Batch.
147//
148// Creates an AWS Batch compute environment. You can create MANAGED or UNMANAGED
149// compute environments.
150//
151// In a managed compute environment, AWS 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. You can choose
155// to use Amazon EC2 On-Demand Instances or Spot Instances in your managed compute
156// environment. You can optionally set a maximum price so that Spot Instances
157// only launch when the Spot Instance price is below a specified percentage
158// of the On-Demand price.
159//
160// Multi-node parallel jobs are not supported on Spot Instances.
161//
162// In an unmanaged compute environment, you can manage your own compute resources.
163// This provides more compute resource configuration options, such as using
164// a custom AMI, but you must ensure that your AMI meets the Amazon ECS container
165// instance AMI specification. For more information, see Container Instance
166// AMIs (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container_instance_AMIs.html)
167// in the Amazon Elastic Container Service Developer Guide. After you have created
168// your unmanaged compute environment, you can use the DescribeComputeEnvironments
169// operation to find the Amazon ECS cluster that is associated with it. Then,
170// manually launch your container instances into that Amazon ECS cluster. For
171// more information, see Launching an Amazon ECS Container Instance (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html)
172// in the Amazon Elastic Container Service Developer Guide.
173//
174// AWS Batch does not upgrade the AMIs in a compute environment after it is
175// created (for example, when a newer version of the Amazon ECS-optimized AMI
176// is available). You are responsible for the management of the guest operating
177// system (including updates and security patches) and any additional application
178// software or utilities that you install on the compute resources. To use a
179// new AMI for your AWS Batch jobs:
180//
181// Create a new compute environment with the new AMI.
182//
183// Add the compute environment to an existing job queue.
184//
185// Remove the old compute environment from your job queue.
186//
187// Delete the old compute environment.
188//
189// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
190// with awserr.Error's Code and Message methods to get detailed information about
191// the error.
192//
193// See the AWS API reference guide for AWS Batch's
194// API operation CreateComputeEnvironment for usage and error information.
195//
196// Returned Error Codes:
197//   * ErrCodeClientException "ClientException"
198//   These errors are usually caused by a client action, such as using an action
199//   or resource on behalf of a user that doesn't have permissions to use the
200//   action or resource, or specifying an identifier that is not valid.
201//
202//   * ErrCodeServerException "ServerException"
203//   These errors are usually caused by a server issue.
204//
205// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/CreateComputeEnvironment
206func (c *Batch) CreateComputeEnvironment(input *CreateComputeEnvironmentInput) (*CreateComputeEnvironmentOutput, error) {
207	req, out := c.CreateComputeEnvironmentRequest(input)
208	return out, req.Send()
209}
210
211// CreateComputeEnvironmentWithContext is the same as CreateComputeEnvironment with the addition of
212// the ability to pass a context and additional request options.
213//
214// See CreateComputeEnvironment for details on how to use this API operation.
215//
216// The context must be non-nil and will be used for request cancellation. If
217// the context is nil a panic will occur. In the future the SDK may create
218// sub-contexts for http.Requests. See https://golang.org/pkg/context/
219// for more information on using Contexts.
220func (c *Batch) CreateComputeEnvironmentWithContext(ctx aws.Context, input *CreateComputeEnvironmentInput, opts ...request.Option) (*CreateComputeEnvironmentOutput, error) {
221	req, out := c.CreateComputeEnvironmentRequest(input)
222	req.SetContext(ctx)
223	req.ApplyOptions(opts...)
224	return out, req.Send()
225}
226
227const opCreateJobQueue = "CreateJobQueue"
228
229// CreateJobQueueRequest generates a "aws/request.Request" representing the
230// client's request for the CreateJobQueue operation. The "output" return
231// value will be populated with the request's response once the request completes
232// successfully.
233//
234// Use "Send" method on the returned Request to send the API call to the service.
235// the "output" return value is not valid until after Send returns without error.
236//
237// See CreateJobQueue for more information on using the CreateJobQueue
238// API call, and error handling.
239//
240// This method is useful when you want to inject custom logic or configuration
241// into the SDK's request lifecycle. Such as custom headers, or retry logic.
242//
243//
244//    // Example sending a request using the CreateJobQueueRequest method.
245//    req, resp := client.CreateJobQueueRequest(params)
246//
247//    err := req.Send()
248//    if err == nil { // resp is now filled
249//        fmt.Println(resp)
250//    }
251//
252// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/CreateJobQueue
253func (c *Batch) CreateJobQueueRequest(input *CreateJobQueueInput) (req *request.Request, output *CreateJobQueueOutput) {
254	op := &request.Operation{
255		Name:       opCreateJobQueue,
256		HTTPMethod: "POST",
257		HTTPPath:   "/v1/createjobqueue",
258	}
259
260	if input == nil {
261		input = &CreateJobQueueInput{}
262	}
263
264	output = &CreateJobQueueOutput{}
265	req = c.newRequest(op, input, output)
266	return
267}
268
269// CreateJobQueue API operation for AWS Batch.
270//
271// Creates an AWS Batch job queue. When you create a job queue, you associate
272// one or more compute environments to the queue and assign an order of preference
273// for the compute environments.
274//
275// You also set a priority to the job queue that determines the order in which
276// the AWS Batch scheduler places jobs onto its associated compute environments.
277// For example, if a compute environment is associated with more than one job
278// queue, the job queue with a higher priority is given preference for scheduling
279// jobs to that compute environment.
280//
281// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
282// with awserr.Error's Code and Message methods to get detailed information about
283// the error.
284//
285// See the AWS API reference guide for AWS Batch's
286// API operation CreateJobQueue for usage and error information.
287//
288// Returned Error Codes:
289//   * ErrCodeClientException "ClientException"
290//   These errors are usually caused by a client action, such as using an action
291//   or resource on behalf of a user that doesn't have permissions to use the
292//   action or resource, or specifying an identifier that is not valid.
293//
294//   * ErrCodeServerException "ServerException"
295//   These errors are usually caused by a server issue.
296//
297// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/CreateJobQueue
298func (c *Batch) CreateJobQueue(input *CreateJobQueueInput) (*CreateJobQueueOutput, error) {
299	req, out := c.CreateJobQueueRequest(input)
300	return out, req.Send()
301}
302
303// CreateJobQueueWithContext is the same as CreateJobQueue with the addition of
304// the ability to pass a context and additional request options.
305//
306// See CreateJobQueue for details on how to use this API operation.
307//
308// The context must be non-nil and will be used for request cancellation. If
309// the context is nil a panic will occur. In the future the SDK may create
310// sub-contexts for http.Requests. See https://golang.org/pkg/context/
311// for more information on using Contexts.
312func (c *Batch) CreateJobQueueWithContext(ctx aws.Context, input *CreateJobQueueInput, opts ...request.Option) (*CreateJobQueueOutput, error) {
313	req, out := c.CreateJobQueueRequest(input)
314	req.SetContext(ctx)
315	req.ApplyOptions(opts...)
316	return out, req.Send()
317}
318
319const opDeleteComputeEnvironment = "DeleteComputeEnvironment"
320
321// DeleteComputeEnvironmentRequest generates a "aws/request.Request" representing the
322// client's request for the DeleteComputeEnvironment operation. The "output" return
323// value will be populated with the request's response once the request completes
324// successfully.
325//
326// Use "Send" method on the returned Request to send the API call to the service.
327// the "output" return value is not valid until after Send returns without error.
328//
329// See DeleteComputeEnvironment for more information on using the DeleteComputeEnvironment
330// API call, and error handling.
331//
332// This method is useful when you want to inject custom logic or configuration
333// into the SDK's request lifecycle. Such as custom headers, or retry logic.
334//
335//
336//    // Example sending a request using the DeleteComputeEnvironmentRequest method.
337//    req, resp := client.DeleteComputeEnvironmentRequest(params)
338//
339//    err := req.Send()
340//    if err == nil { // resp is now filled
341//        fmt.Println(resp)
342//    }
343//
344// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DeleteComputeEnvironment
345func (c *Batch) DeleteComputeEnvironmentRequest(input *DeleteComputeEnvironmentInput) (req *request.Request, output *DeleteComputeEnvironmentOutput) {
346	op := &request.Operation{
347		Name:       opDeleteComputeEnvironment,
348		HTTPMethod: "POST",
349		HTTPPath:   "/v1/deletecomputeenvironment",
350	}
351
352	if input == nil {
353		input = &DeleteComputeEnvironmentInput{}
354	}
355
356	output = &DeleteComputeEnvironmentOutput{}
357	req = c.newRequest(op, input, output)
358	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
359	return
360}
361
362// DeleteComputeEnvironment API operation for AWS Batch.
363//
364// Deletes an AWS Batch compute environment.
365//
366// Before you can delete a compute environment, you must set its state to DISABLED
367// with the UpdateComputeEnvironment API operation and disassociate it from
368// any job queues with the UpdateJobQueue API operation.
369//
370// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
371// with awserr.Error's Code and Message methods to get detailed information about
372// the error.
373//
374// See the AWS API reference guide for AWS Batch's
375// API operation DeleteComputeEnvironment for usage and error information.
376//
377// Returned Error Codes:
378//   * ErrCodeClientException "ClientException"
379//   These errors are usually caused by a client action, such as using an action
380//   or resource on behalf of a user that doesn't have permissions to use the
381//   action or resource, or specifying an identifier that is not valid.
382//
383//   * ErrCodeServerException "ServerException"
384//   These errors are usually caused by a server issue.
385//
386// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DeleteComputeEnvironment
387func (c *Batch) DeleteComputeEnvironment(input *DeleteComputeEnvironmentInput) (*DeleteComputeEnvironmentOutput, error) {
388	req, out := c.DeleteComputeEnvironmentRequest(input)
389	return out, req.Send()
390}
391
392// DeleteComputeEnvironmentWithContext is the same as DeleteComputeEnvironment with the addition of
393// the ability to pass a context and additional request options.
394//
395// See DeleteComputeEnvironment for details on how to use this API operation.
396//
397// The context must be non-nil and will be used for request cancellation. If
398// the context is nil a panic will occur. In the future the SDK may create
399// sub-contexts for http.Requests. See https://golang.org/pkg/context/
400// for more information on using Contexts.
401func (c *Batch) DeleteComputeEnvironmentWithContext(ctx aws.Context, input *DeleteComputeEnvironmentInput, opts ...request.Option) (*DeleteComputeEnvironmentOutput, error) {
402	req, out := c.DeleteComputeEnvironmentRequest(input)
403	req.SetContext(ctx)
404	req.ApplyOptions(opts...)
405	return out, req.Send()
406}
407
408const opDeleteJobQueue = "DeleteJobQueue"
409
410// DeleteJobQueueRequest generates a "aws/request.Request" representing the
411// client's request for the DeleteJobQueue operation. The "output" return
412// value will be populated with the request's response once the request completes
413// successfully.
414//
415// Use "Send" method on the returned Request to send the API call to the service.
416// the "output" return value is not valid until after Send returns without error.
417//
418// See DeleteJobQueue for more information on using the DeleteJobQueue
419// API call, and error handling.
420//
421// This method is useful when you want to inject custom logic or configuration
422// into the SDK's request lifecycle. Such as custom headers, or retry logic.
423//
424//
425//    // Example sending a request using the DeleteJobQueueRequest method.
426//    req, resp := client.DeleteJobQueueRequest(params)
427//
428//    err := req.Send()
429//    if err == nil { // resp is now filled
430//        fmt.Println(resp)
431//    }
432//
433// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DeleteJobQueue
434func (c *Batch) DeleteJobQueueRequest(input *DeleteJobQueueInput) (req *request.Request, output *DeleteJobQueueOutput) {
435	op := &request.Operation{
436		Name:       opDeleteJobQueue,
437		HTTPMethod: "POST",
438		HTTPPath:   "/v1/deletejobqueue",
439	}
440
441	if input == nil {
442		input = &DeleteJobQueueInput{}
443	}
444
445	output = &DeleteJobQueueOutput{}
446	req = c.newRequest(op, input, output)
447	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
448	return
449}
450
451// DeleteJobQueue API operation for AWS Batch.
452//
453// Deletes the specified job queue. You must first disable submissions for a
454// queue with the UpdateJobQueue operation. All jobs in the queue are terminated
455// when you delete a job queue.
456//
457// It is not necessary to disassociate compute environments from a queue before
458// submitting a DeleteJobQueue request.
459//
460// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
461// with awserr.Error's Code and Message methods to get detailed information about
462// the error.
463//
464// See the AWS API reference guide for AWS Batch's
465// API operation DeleteJobQueue for usage and error information.
466//
467// Returned Error Codes:
468//   * ErrCodeClientException "ClientException"
469//   These errors are usually caused by a client action, such as using an action
470//   or resource on behalf of a user that doesn't have permissions to use the
471//   action or resource, or specifying an identifier that is not valid.
472//
473//   * ErrCodeServerException "ServerException"
474//   These errors are usually caused by a server issue.
475//
476// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DeleteJobQueue
477func (c *Batch) DeleteJobQueue(input *DeleteJobQueueInput) (*DeleteJobQueueOutput, error) {
478	req, out := c.DeleteJobQueueRequest(input)
479	return out, req.Send()
480}
481
482// DeleteJobQueueWithContext is the same as DeleteJobQueue with the addition of
483// the ability to pass a context and additional request options.
484//
485// See DeleteJobQueue for details on how to use this API operation.
486//
487// The context must be non-nil and will be used for request cancellation. If
488// the context is nil a panic will occur. In the future the SDK may create
489// sub-contexts for http.Requests. See https://golang.org/pkg/context/
490// for more information on using Contexts.
491func (c *Batch) DeleteJobQueueWithContext(ctx aws.Context, input *DeleteJobQueueInput, opts ...request.Option) (*DeleteJobQueueOutput, error) {
492	req, out := c.DeleteJobQueueRequest(input)
493	req.SetContext(ctx)
494	req.ApplyOptions(opts...)
495	return out, req.Send()
496}
497
498const opDeregisterJobDefinition = "DeregisterJobDefinition"
499
500// DeregisterJobDefinitionRequest generates a "aws/request.Request" representing the
501// client's request for the DeregisterJobDefinition operation. The "output" return
502// value will be populated with the request's response once the request completes
503// successfully.
504//
505// Use "Send" method on the returned Request to send the API call to the service.
506// the "output" return value is not valid until after Send returns without error.
507//
508// See DeregisterJobDefinition for more information on using the DeregisterJobDefinition
509// API call, and error handling.
510//
511// This method is useful when you want to inject custom logic or configuration
512// into the SDK's request lifecycle. Such as custom headers, or retry logic.
513//
514//
515//    // Example sending a request using the DeregisterJobDefinitionRequest method.
516//    req, resp := client.DeregisterJobDefinitionRequest(params)
517//
518//    err := req.Send()
519//    if err == nil { // resp is now filled
520//        fmt.Println(resp)
521//    }
522//
523// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DeregisterJobDefinition
524func (c *Batch) DeregisterJobDefinitionRequest(input *DeregisterJobDefinitionInput) (req *request.Request, output *DeregisterJobDefinitionOutput) {
525	op := &request.Operation{
526		Name:       opDeregisterJobDefinition,
527		HTTPMethod: "POST",
528		HTTPPath:   "/v1/deregisterjobdefinition",
529	}
530
531	if input == nil {
532		input = &DeregisterJobDefinitionInput{}
533	}
534
535	output = &DeregisterJobDefinitionOutput{}
536	req = c.newRequest(op, input, output)
537	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
538	return
539}
540
541// DeregisterJobDefinition API operation for AWS Batch.
542//
543// Deregisters an AWS Batch job definition.
544//
545// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
546// with awserr.Error's Code and Message methods to get detailed information about
547// the error.
548//
549// See the AWS API reference guide for AWS Batch's
550// API operation DeregisterJobDefinition for usage and error information.
551//
552// Returned Error Codes:
553//   * ErrCodeClientException "ClientException"
554//   These errors are usually caused by a client action, such as using an action
555//   or resource on behalf of a user that doesn't have permissions to use the
556//   action or resource, or specifying an identifier that is not valid.
557//
558//   * ErrCodeServerException "ServerException"
559//   These errors are usually caused by a server issue.
560//
561// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DeregisterJobDefinition
562func (c *Batch) DeregisterJobDefinition(input *DeregisterJobDefinitionInput) (*DeregisterJobDefinitionOutput, error) {
563	req, out := c.DeregisterJobDefinitionRequest(input)
564	return out, req.Send()
565}
566
567// DeregisterJobDefinitionWithContext is the same as DeregisterJobDefinition with the addition of
568// the ability to pass a context and additional request options.
569//
570// See DeregisterJobDefinition for details on how to use this API operation.
571//
572// The context must be non-nil and will be used for request cancellation. If
573// the context is nil a panic will occur. In the future the SDK may create
574// sub-contexts for http.Requests. See https://golang.org/pkg/context/
575// for more information on using Contexts.
576func (c *Batch) DeregisterJobDefinitionWithContext(ctx aws.Context, input *DeregisterJobDefinitionInput, opts ...request.Option) (*DeregisterJobDefinitionOutput, error) {
577	req, out := c.DeregisterJobDefinitionRequest(input)
578	req.SetContext(ctx)
579	req.ApplyOptions(opts...)
580	return out, req.Send()
581}
582
583const opDescribeComputeEnvironments = "DescribeComputeEnvironments"
584
585// DescribeComputeEnvironmentsRequest generates a "aws/request.Request" representing the
586// client's request for the DescribeComputeEnvironments operation. The "output" return
587// value will be populated with the request's response once the request completes
588// successfully.
589//
590// Use "Send" method on the returned Request to send the API call to the service.
591// the "output" return value is not valid until after Send returns without error.
592//
593// See DescribeComputeEnvironments for more information on using the DescribeComputeEnvironments
594// API call, and error handling.
595//
596// This method is useful when you want to inject custom logic or configuration
597// into the SDK's request lifecycle. Such as custom headers, or retry logic.
598//
599//
600//    // Example sending a request using the DescribeComputeEnvironmentsRequest method.
601//    req, resp := client.DescribeComputeEnvironmentsRequest(params)
602//
603//    err := req.Send()
604//    if err == nil { // resp is now filled
605//        fmt.Println(resp)
606//    }
607//
608// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DescribeComputeEnvironments
609func (c *Batch) DescribeComputeEnvironmentsRequest(input *DescribeComputeEnvironmentsInput) (req *request.Request, output *DescribeComputeEnvironmentsOutput) {
610	op := &request.Operation{
611		Name:       opDescribeComputeEnvironments,
612		HTTPMethod: "POST",
613		HTTPPath:   "/v1/describecomputeenvironments",
614		Paginator: &request.Paginator{
615			InputTokens:     []string{"nextToken"},
616			OutputTokens:    []string{"nextToken"},
617			LimitToken:      "maxResults",
618			TruncationToken: "",
619		},
620	}
621
622	if input == nil {
623		input = &DescribeComputeEnvironmentsInput{}
624	}
625
626	output = &DescribeComputeEnvironmentsOutput{}
627	req = c.newRequest(op, input, output)
628	return
629}
630
631// DescribeComputeEnvironments API operation for AWS Batch.
632//
633// Describes one or more of your compute environments.
634//
635// If you are using an unmanaged compute environment, you can use the DescribeComputeEnvironment
636// operation to determine the ecsClusterArn that you should launch your Amazon
637// ECS container instances into.
638//
639// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
640// with awserr.Error's Code and Message methods to get detailed information about
641// the error.
642//
643// See the AWS API reference guide for AWS Batch's
644// API operation DescribeComputeEnvironments for usage and error information.
645//
646// Returned Error Codes:
647//   * ErrCodeClientException "ClientException"
648//   These errors are usually caused by a client action, such as using an action
649//   or resource on behalf of a user that doesn't have permissions to use the
650//   action or resource, or specifying an identifier that is not valid.
651//
652//   * ErrCodeServerException "ServerException"
653//   These errors are usually caused by a server issue.
654//
655// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DescribeComputeEnvironments
656func (c *Batch) DescribeComputeEnvironments(input *DescribeComputeEnvironmentsInput) (*DescribeComputeEnvironmentsOutput, error) {
657	req, out := c.DescribeComputeEnvironmentsRequest(input)
658	return out, req.Send()
659}
660
661// DescribeComputeEnvironmentsWithContext is the same as DescribeComputeEnvironments with the addition of
662// the ability to pass a context and additional request options.
663//
664// See DescribeComputeEnvironments for details on how to use this API operation.
665//
666// The context must be non-nil and will be used for request cancellation. If
667// the context is nil a panic will occur. In the future the SDK may create
668// sub-contexts for http.Requests. See https://golang.org/pkg/context/
669// for more information on using Contexts.
670func (c *Batch) DescribeComputeEnvironmentsWithContext(ctx aws.Context, input *DescribeComputeEnvironmentsInput, opts ...request.Option) (*DescribeComputeEnvironmentsOutput, error) {
671	req, out := c.DescribeComputeEnvironmentsRequest(input)
672	req.SetContext(ctx)
673	req.ApplyOptions(opts...)
674	return out, req.Send()
675}
676
677// DescribeComputeEnvironmentsPages iterates over the pages of a DescribeComputeEnvironments operation,
678// calling the "fn" function with the response data for each page. To stop
679// iterating, return false from the fn function.
680//
681// See DescribeComputeEnvironments method for more information on how to use this operation.
682//
683// Note: This operation can generate multiple requests to a service.
684//
685//    // Example iterating over at most 3 pages of a DescribeComputeEnvironments operation.
686//    pageNum := 0
687//    err := client.DescribeComputeEnvironmentsPages(params,
688//        func(page *batch.DescribeComputeEnvironmentsOutput, lastPage bool) bool {
689//            pageNum++
690//            fmt.Println(page)
691//            return pageNum <= 3
692//        })
693//
694func (c *Batch) DescribeComputeEnvironmentsPages(input *DescribeComputeEnvironmentsInput, fn func(*DescribeComputeEnvironmentsOutput, bool) bool) error {
695	return c.DescribeComputeEnvironmentsPagesWithContext(aws.BackgroundContext(), input, fn)
696}
697
698// DescribeComputeEnvironmentsPagesWithContext same as DescribeComputeEnvironmentsPages except
699// it takes a Context and allows setting request options on the pages.
700//
701// The context must be non-nil and will be used for request cancellation. If
702// the context is nil a panic will occur. In the future the SDK may create
703// sub-contexts for http.Requests. See https://golang.org/pkg/context/
704// for more information on using Contexts.
705func (c *Batch) DescribeComputeEnvironmentsPagesWithContext(ctx aws.Context, input *DescribeComputeEnvironmentsInput, fn func(*DescribeComputeEnvironmentsOutput, bool) bool, opts ...request.Option) error {
706	p := request.Pagination{
707		NewRequest: func() (*request.Request, error) {
708			var inCpy *DescribeComputeEnvironmentsInput
709			if input != nil {
710				tmp := *input
711				inCpy = &tmp
712			}
713			req, _ := c.DescribeComputeEnvironmentsRequest(inCpy)
714			req.SetContext(ctx)
715			req.ApplyOptions(opts...)
716			return req, nil
717		},
718	}
719
720	cont := true
721	for p.Next() && cont {
722		cont = fn(p.Page().(*DescribeComputeEnvironmentsOutput), !p.HasNextPage())
723	}
724	return p.Err()
725}
726
727const opDescribeJobDefinitions = "DescribeJobDefinitions"
728
729// DescribeJobDefinitionsRequest generates a "aws/request.Request" representing the
730// client's request for the DescribeJobDefinitions operation. The "output" return
731// value will be populated with the request's response once the request completes
732// successfully.
733//
734// Use "Send" method on the returned Request to send the API call to the service.
735// the "output" return value is not valid until after Send returns without error.
736//
737// See DescribeJobDefinitions for more information on using the DescribeJobDefinitions
738// API call, and error handling.
739//
740// This method is useful when you want to inject custom logic or configuration
741// into the SDK's request lifecycle. Such as custom headers, or retry logic.
742//
743//
744//    // Example sending a request using the DescribeJobDefinitionsRequest method.
745//    req, resp := client.DescribeJobDefinitionsRequest(params)
746//
747//    err := req.Send()
748//    if err == nil { // resp is now filled
749//        fmt.Println(resp)
750//    }
751//
752// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DescribeJobDefinitions
753func (c *Batch) DescribeJobDefinitionsRequest(input *DescribeJobDefinitionsInput) (req *request.Request, output *DescribeJobDefinitionsOutput) {
754	op := &request.Operation{
755		Name:       opDescribeJobDefinitions,
756		HTTPMethod: "POST",
757		HTTPPath:   "/v1/describejobdefinitions",
758		Paginator: &request.Paginator{
759			InputTokens:     []string{"nextToken"},
760			OutputTokens:    []string{"nextToken"},
761			LimitToken:      "maxResults",
762			TruncationToken: "",
763		},
764	}
765
766	if input == nil {
767		input = &DescribeJobDefinitionsInput{}
768	}
769
770	output = &DescribeJobDefinitionsOutput{}
771	req = c.newRequest(op, input, output)
772	return
773}
774
775// DescribeJobDefinitions API operation for AWS Batch.
776//
777// Describes a list of job definitions. You can specify a status (such as ACTIVE)
778// to only return job definitions that match that status.
779//
780// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
781// with awserr.Error's Code and Message methods to get detailed information about
782// the error.
783//
784// See the AWS API reference guide for AWS Batch's
785// API operation DescribeJobDefinitions for usage and error information.
786//
787// Returned Error Codes:
788//   * ErrCodeClientException "ClientException"
789//   These errors are usually caused by a client action, such as using an action
790//   or resource on behalf of a user that doesn't have permissions to use the
791//   action or resource, or specifying an identifier that is not valid.
792//
793//   * ErrCodeServerException "ServerException"
794//   These errors are usually caused by a server issue.
795//
796// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DescribeJobDefinitions
797func (c *Batch) DescribeJobDefinitions(input *DescribeJobDefinitionsInput) (*DescribeJobDefinitionsOutput, error) {
798	req, out := c.DescribeJobDefinitionsRequest(input)
799	return out, req.Send()
800}
801
802// DescribeJobDefinitionsWithContext is the same as DescribeJobDefinitions with the addition of
803// the ability to pass a context and additional request options.
804//
805// See DescribeJobDefinitions for details on how to use this API operation.
806//
807// The context must be non-nil and will be used for request cancellation. If
808// the context is nil a panic will occur. In the future the SDK may create
809// sub-contexts for http.Requests. See https://golang.org/pkg/context/
810// for more information on using Contexts.
811func (c *Batch) DescribeJobDefinitionsWithContext(ctx aws.Context, input *DescribeJobDefinitionsInput, opts ...request.Option) (*DescribeJobDefinitionsOutput, error) {
812	req, out := c.DescribeJobDefinitionsRequest(input)
813	req.SetContext(ctx)
814	req.ApplyOptions(opts...)
815	return out, req.Send()
816}
817
818// DescribeJobDefinitionsPages iterates over the pages of a DescribeJobDefinitions operation,
819// calling the "fn" function with the response data for each page. To stop
820// iterating, return false from the fn function.
821//
822// See DescribeJobDefinitions method for more information on how to use this operation.
823//
824// Note: This operation can generate multiple requests to a service.
825//
826//    // Example iterating over at most 3 pages of a DescribeJobDefinitions operation.
827//    pageNum := 0
828//    err := client.DescribeJobDefinitionsPages(params,
829//        func(page *batch.DescribeJobDefinitionsOutput, lastPage bool) bool {
830//            pageNum++
831//            fmt.Println(page)
832//            return pageNum <= 3
833//        })
834//
835func (c *Batch) DescribeJobDefinitionsPages(input *DescribeJobDefinitionsInput, fn func(*DescribeJobDefinitionsOutput, bool) bool) error {
836	return c.DescribeJobDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn)
837}
838
839// DescribeJobDefinitionsPagesWithContext same as DescribeJobDefinitionsPages except
840// it takes a Context and allows setting request options on the pages.
841//
842// The context must be non-nil and will be used for request cancellation. If
843// the context is nil a panic will occur. In the future the SDK may create
844// sub-contexts for http.Requests. See https://golang.org/pkg/context/
845// for more information on using Contexts.
846func (c *Batch) DescribeJobDefinitionsPagesWithContext(ctx aws.Context, input *DescribeJobDefinitionsInput, fn func(*DescribeJobDefinitionsOutput, bool) bool, opts ...request.Option) error {
847	p := request.Pagination{
848		NewRequest: func() (*request.Request, error) {
849			var inCpy *DescribeJobDefinitionsInput
850			if input != nil {
851				tmp := *input
852				inCpy = &tmp
853			}
854			req, _ := c.DescribeJobDefinitionsRequest(inCpy)
855			req.SetContext(ctx)
856			req.ApplyOptions(opts...)
857			return req, nil
858		},
859	}
860
861	cont := true
862	for p.Next() && cont {
863		cont = fn(p.Page().(*DescribeJobDefinitionsOutput), !p.HasNextPage())
864	}
865	return p.Err()
866}
867
868const opDescribeJobQueues = "DescribeJobQueues"
869
870// DescribeJobQueuesRequest generates a "aws/request.Request" representing the
871// client's request for the DescribeJobQueues operation. The "output" return
872// value will be populated with the request's response once the request completes
873// successfully.
874//
875// Use "Send" method on the returned Request to send the API call to the service.
876// the "output" return value is not valid until after Send returns without error.
877//
878// See DescribeJobQueues for more information on using the DescribeJobQueues
879// API call, and error handling.
880//
881// This method is useful when you want to inject custom logic or configuration
882// into the SDK's request lifecycle. Such as custom headers, or retry logic.
883//
884//
885//    // Example sending a request using the DescribeJobQueuesRequest method.
886//    req, resp := client.DescribeJobQueuesRequest(params)
887//
888//    err := req.Send()
889//    if err == nil { // resp is now filled
890//        fmt.Println(resp)
891//    }
892//
893// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DescribeJobQueues
894func (c *Batch) DescribeJobQueuesRequest(input *DescribeJobQueuesInput) (req *request.Request, output *DescribeJobQueuesOutput) {
895	op := &request.Operation{
896		Name:       opDescribeJobQueues,
897		HTTPMethod: "POST",
898		HTTPPath:   "/v1/describejobqueues",
899		Paginator: &request.Paginator{
900			InputTokens:     []string{"nextToken"},
901			OutputTokens:    []string{"nextToken"},
902			LimitToken:      "maxResults",
903			TruncationToken: "",
904		},
905	}
906
907	if input == nil {
908		input = &DescribeJobQueuesInput{}
909	}
910
911	output = &DescribeJobQueuesOutput{}
912	req = c.newRequest(op, input, output)
913	return
914}
915
916// DescribeJobQueues API operation for AWS Batch.
917//
918// Describes one or more of your job queues.
919//
920// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
921// with awserr.Error's Code and Message methods to get detailed information about
922// the error.
923//
924// See the AWS API reference guide for AWS Batch's
925// API operation DescribeJobQueues for usage and error information.
926//
927// Returned Error Codes:
928//   * ErrCodeClientException "ClientException"
929//   These errors are usually caused by a client action, such as using an action
930//   or resource on behalf of a user that doesn't have permissions to use the
931//   action or resource, or specifying an identifier that is not valid.
932//
933//   * ErrCodeServerException "ServerException"
934//   These errors are usually caused by a server issue.
935//
936// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DescribeJobQueues
937func (c *Batch) DescribeJobQueues(input *DescribeJobQueuesInput) (*DescribeJobQueuesOutput, error) {
938	req, out := c.DescribeJobQueuesRequest(input)
939	return out, req.Send()
940}
941
942// DescribeJobQueuesWithContext is the same as DescribeJobQueues with the addition of
943// the ability to pass a context and additional request options.
944//
945// See DescribeJobQueues for details on how to use this API operation.
946//
947// The context must be non-nil and will be used for request cancellation. If
948// the context is nil a panic will occur. In the future the SDK may create
949// sub-contexts for http.Requests. See https://golang.org/pkg/context/
950// for more information on using Contexts.
951func (c *Batch) DescribeJobQueuesWithContext(ctx aws.Context, input *DescribeJobQueuesInput, opts ...request.Option) (*DescribeJobQueuesOutput, error) {
952	req, out := c.DescribeJobQueuesRequest(input)
953	req.SetContext(ctx)
954	req.ApplyOptions(opts...)
955	return out, req.Send()
956}
957
958// DescribeJobQueuesPages iterates over the pages of a DescribeJobQueues operation,
959// calling the "fn" function with the response data for each page. To stop
960// iterating, return false from the fn function.
961//
962// See DescribeJobQueues method for more information on how to use this operation.
963//
964// Note: This operation can generate multiple requests to a service.
965//
966//    // Example iterating over at most 3 pages of a DescribeJobQueues operation.
967//    pageNum := 0
968//    err := client.DescribeJobQueuesPages(params,
969//        func(page *batch.DescribeJobQueuesOutput, lastPage bool) bool {
970//            pageNum++
971//            fmt.Println(page)
972//            return pageNum <= 3
973//        })
974//
975func (c *Batch) DescribeJobQueuesPages(input *DescribeJobQueuesInput, fn func(*DescribeJobQueuesOutput, bool) bool) error {
976	return c.DescribeJobQueuesPagesWithContext(aws.BackgroundContext(), input, fn)
977}
978
979// DescribeJobQueuesPagesWithContext same as DescribeJobQueuesPages except
980// it takes a Context and allows setting request options on the pages.
981//
982// The context must be non-nil and will be used for request cancellation. If
983// the context is nil a panic will occur. In the future the SDK may create
984// sub-contexts for http.Requests. See https://golang.org/pkg/context/
985// for more information on using Contexts.
986func (c *Batch) DescribeJobQueuesPagesWithContext(ctx aws.Context, input *DescribeJobQueuesInput, fn func(*DescribeJobQueuesOutput, bool) bool, opts ...request.Option) error {
987	p := request.Pagination{
988		NewRequest: func() (*request.Request, error) {
989			var inCpy *DescribeJobQueuesInput
990			if input != nil {
991				tmp := *input
992				inCpy = &tmp
993			}
994			req, _ := c.DescribeJobQueuesRequest(inCpy)
995			req.SetContext(ctx)
996			req.ApplyOptions(opts...)
997			return req, nil
998		},
999	}
1000
1001	cont := true
1002	for p.Next() && cont {
1003		cont = fn(p.Page().(*DescribeJobQueuesOutput), !p.HasNextPage())
1004	}
1005	return p.Err()
1006}
1007
1008const opDescribeJobs = "DescribeJobs"
1009
1010// DescribeJobsRequest generates a "aws/request.Request" representing the
1011// client's request for the DescribeJobs operation. The "output" return
1012// value will be populated with the request's response once the request completes
1013// successfully.
1014//
1015// Use "Send" method on the returned Request to send the API call to the service.
1016// the "output" return value is not valid until after Send returns without error.
1017//
1018// See DescribeJobs for more information on using the DescribeJobs
1019// API call, and error handling.
1020//
1021// This method is useful when you want to inject custom logic or configuration
1022// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1023//
1024//
1025//    // Example sending a request using the DescribeJobsRequest method.
1026//    req, resp := client.DescribeJobsRequest(params)
1027//
1028//    err := req.Send()
1029//    if err == nil { // resp is now filled
1030//        fmt.Println(resp)
1031//    }
1032//
1033// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DescribeJobs
1034func (c *Batch) DescribeJobsRequest(input *DescribeJobsInput) (req *request.Request, output *DescribeJobsOutput) {
1035	op := &request.Operation{
1036		Name:       opDescribeJobs,
1037		HTTPMethod: "POST",
1038		HTTPPath:   "/v1/describejobs",
1039	}
1040
1041	if input == nil {
1042		input = &DescribeJobsInput{}
1043	}
1044
1045	output = &DescribeJobsOutput{}
1046	req = c.newRequest(op, input, output)
1047	return
1048}
1049
1050// DescribeJobs API operation for AWS Batch.
1051//
1052// Describes a list of AWS Batch jobs.
1053//
1054// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1055// with awserr.Error's Code and Message methods to get detailed information about
1056// the error.
1057//
1058// See the AWS API reference guide for AWS Batch's
1059// API operation DescribeJobs for usage and error information.
1060//
1061// Returned Error Codes:
1062//   * ErrCodeClientException "ClientException"
1063//   These errors are usually caused by a client action, such as using an action
1064//   or resource on behalf of a user that doesn't have permissions to use the
1065//   action or resource, or specifying an identifier that is not valid.
1066//
1067//   * ErrCodeServerException "ServerException"
1068//   These errors are usually caused by a server issue.
1069//
1070// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DescribeJobs
1071func (c *Batch) DescribeJobs(input *DescribeJobsInput) (*DescribeJobsOutput, error) {
1072	req, out := c.DescribeJobsRequest(input)
1073	return out, req.Send()
1074}
1075
1076// DescribeJobsWithContext is the same as DescribeJobs with the addition of
1077// the ability to pass a context and additional request options.
1078//
1079// See DescribeJobs for details on how to use this API operation.
1080//
1081// The context must be non-nil and will be used for request cancellation. If
1082// the context is nil a panic will occur. In the future the SDK may create
1083// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1084// for more information on using Contexts.
1085func (c *Batch) DescribeJobsWithContext(ctx aws.Context, input *DescribeJobsInput, opts ...request.Option) (*DescribeJobsOutput, error) {
1086	req, out := c.DescribeJobsRequest(input)
1087	req.SetContext(ctx)
1088	req.ApplyOptions(opts...)
1089	return out, req.Send()
1090}
1091
1092const opListJobs = "ListJobs"
1093
1094// ListJobsRequest generates a "aws/request.Request" representing the
1095// client's request for the ListJobs operation. The "output" return
1096// value will be populated with the request's response once the request completes
1097// successfully.
1098//
1099// Use "Send" method on the returned Request to send the API call to the service.
1100// the "output" return value is not valid until after Send returns without error.
1101//
1102// See ListJobs for more information on using the ListJobs
1103// API call, and error handling.
1104//
1105// This method is useful when you want to inject custom logic or configuration
1106// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1107//
1108//
1109//    // Example sending a request using the ListJobsRequest method.
1110//    req, resp := client.ListJobsRequest(params)
1111//
1112//    err := req.Send()
1113//    if err == nil { // resp is now filled
1114//        fmt.Println(resp)
1115//    }
1116//
1117// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ListJobs
1118func (c *Batch) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) {
1119	op := &request.Operation{
1120		Name:       opListJobs,
1121		HTTPMethod: "POST",
1122		HTTPPath:   "/v1/listjobs",
1123		Paginator: &request.Paginator{
1124			InputTokens:     []string{"nextToken"},
1125			OutputTokens:    []string{"nextToken"},
1126			LimitToken:      "maxResults",
1127			TruncationToken: "",
1128		},
1129	}
1130
1131	if input == nil {
1132		input = &ListJobsInput{}
1133	}
1134
1135	output = &ListJobsOutput{}
1136	req = c.newRequest(op, input, output)
1137	return
1138}
1139
1140// ListJobs API operation for AWS Batch.
1141//
1142// Returns a list of AWS Batch jobs.
1143//
1144// You must specify only one of the following:
1145//
1146//    * a job queue ID to return a list of jobs in that job queue
1147//
1148//    * a multi-node parallel job ID to return a list of that job's nodes
1149//
1150//    * an array job ID to return a list of that job's children
1151//
1152// You can filter the results by job status with the jobStatus parameter. If
1153// you do not specify a status, only RUNNING jobs are returned.
1154//
1155// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1156// with awserr.Error's Code and Message methods to get detailed information about
1157// the error.
1158//
1159// See the AWS API reference guide for AWS Batch's
1160// API operation ListJobs for usage and error information.
1161//
1162// Returned Error Codes:
1163//   * ErrCodeClientException "ClientException"
1164//   These errors are usually caused by a client action, such as using an action
1165//   or resource on behalf of a user that doesn't have permissions to use the
1166//   action or resource, or specifying an identifier that is not valid.
1167//
1168//   * ErrCodeServerException "ServerException"
1169//   These errors are usually caused by a server issue.
1170//
1171// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ListJobs
1172func (c *Batch) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) {
1173	req, out := c.ListJobsRequest(input)
1174	return out, req.Send()
1175}
1176
1177// ListJobsWithContext is the same as ListJobs with the addition of
1178// the ability to pass a context and additional request options.
1179//
1180// See ListJobs for details on how to use this API operation.
1181//
1182// The context must be non-nil and will be used for request cancellation. If
1183// the context is nil a panic will occur. In the future the SDK may create
1184// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1185// for more information on using Contexts.
1186func (c *Batch) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) {
1187	req, out := c.ListJobsRequest(input)
1188	req.SetContext(ctx)
1189	req.ApplyOptions(opts...)
1190	return out, req.Send()
1191}
1192
1193// ListJobsPages iterates over the pages of a ListJobs operation,
1194// calling the "fn" function with the response data for each page. To stop
1195// iterating, return false from the fn function.
1196//
1197// See ListJobs method for more information on how to use this operation.
1198//
1199// Note: This operation can generate multiple requests to a service.
1200//
1201//    // Example iterating over at most 3 pages of a ListJobs operation.
1202//    pageNum := 0
1203//    err := client.ListJobsPages(params,
1204//        func(page *batch.ListJobsOutput, lastPage bool) bool {
1205//            pageNum++
1206//            fmt.Println(page)
1207//            return pageNum <= 3
1208//        })
1209//
1210func (c *Batch) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error {
1211	return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn)
1212}
1213
1214// ListJobsPagesWithContext same as ListJobsPages except
1215// it takes a Context and allows setting request options on the pages.
1216//
1217// The context must be non-nil and will be used for request cancellation. If
1218// the context is nil a panic will occur. In the future the SDK may create
1219// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1220// for more information on using Contexts.
1221func (c *Batch) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error {
1222	p := request.Pagination{
1223		NewRequest: func() (*request.Request, error) {
1224			var inCpy *ListJobsInput
1225			if input != nil {
1226				tmp := *input
1227				inCpy = &tmp
1228			}
1229			req, _ := c.ListJobsRequest(inCpy)
1230			req.SetContext(ctx)
1231			req.ApplyOptions(opts...)
1232			return req, nil
1233		},
1234	}
1235
1236	cont := true
1237	for p.Next() && cont {
1238		cont = fn(p.Page().(*ListJobsOutput), !p.HasNextPage())
1239	}
1240	return p.Err()
1241}
1242
1243const opRegisterJobDefinition = "RegisterJobDefinition"
1244
1245// RegisterJobDefinitionRequest generates a "aws/request.Request" representing the
1246// client's request for the RegisterJobDefinition operation. The "output" return
1247// value will be populated with the request's response once the request completes
1248// successfully.
1249//
1250// Use "Send" method on the returned Request to send the API call to the service.
1251// the "output" return value is not valid until after Send returns without error.
1252//
1253// See RegisterJobDefinition for more information on using the RegisterJobDefinition
1254// API call, and error handling.
1255//
1256// This method is useful when you want to inject custom logic or configuration
1257// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1258//
1259//
1260//    // Example sending a request using the RegisterJobDefinitionRequest method.
1261//    req, resp := client.RegisterJobDefinitionRequest(params)
1262//
1263//    err := req.Send()
1264//    if err == nil { // resp is now filled
1265//        fmt.Println(resp)
1266//    }
1267//
1268// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/RegisterJobDefinition
1269func (c *Batch) RegisterJobDefinitionRequest(input *RegisterJobDefinitionInput) (req *request.Request, output *RegisterJobDefinitionOutput) {
1270	op := &request.Operation{
1271		Name:       opRegisterJobDefinition,
1272		HTTPMethod: "POST",
1273		HTTPPath:   "/v1/registerjobdefinition",
1274	}
1275
1276	if input == nil {
1277		input = &RegisterJobDefinitionInput{}
1278	}
1279
1280	output = &RegisterJobDefinitionOutput{}
1281	req = c.newRequest(op, input, output)
1282	return
1283}
1284
1285// RegisterJobDefinition API operation for AWS Batch.
1286//
1287// Registers an AWS Batch job definition.
1288//
1289// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1290// with awserr.Error's Code and Message methods to get detailed information about
1291// the error.
1292//
1293// See the AWS API reference guide for AWS Batch's
1294// API operation RegisterJobDefinition for usage and error information.
1295//
1296// Returned Error Codes:
1297//   * ErrCodeClientException "ClientException"
1298//   These errors are usually caused by a client action, such as using an action
1299//   or resource on behalf of a user that doesn't have permissions to use the
1300//   action or resource, or specifying an identifier that is not valid.
1301//
1302//   * ErrCodeServerException "ServerException"
1303//   These errors are usually caused by a server issue.
1304//
1305// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/RegisterJobDefinition
1306func (c *Batch) RegisterJobDefinition(input *RegisterJobDefinitionInput) (*RegisterJobDefinitionOutput, error) {
1307	req, out := c.RegisterJobDefinitionRequest(input)
1308	return out, req.Send()
1309}
1310
1311// RegisterJobDefinitionWithContext is the same as RegisterJobDefinition with the addition of
1312// the ability to pass a context and additional request options.
1313//
1314// See RegisterJobDefinition for details on how to use this API operation.
1315//
1316// The context must be non-nil and will be used for request cancellation. If
1317// the context is nil a panic will occur. In the future the SDK may create
1318// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1319// for more information on using Contexts.
1320func (c *Batch) RegisterJobDefinitionWithContext(ctx aws.Context, input *RegisterJobDefinitionInput, opts ...request.Option) (*RegisterJobDefinitionOutput, error) {
1321	req, out := c.RegisterJobDefinitionRequest(input)
1322	req.SetContext(ctx)
1323	req.ApplyOptions(opts...)
1324	return out, req.Send()
1325}
1326
1327const opSubmitJob = "SubmitJob"
1328
1329// SubmitJobRequest generates a "aws/request.Request" representing the
1330// client's request for the SubmitJob operation. The "output" return
1331// value will be populated with the request's response once the request completes
1332// successfully.
1333//
1334// Use "Send" method on the returned Request to send the API call to the service.
1335// the "output" return value is not valid until after Send returns without error.
1336//
1337// See SubmitJob for more information on using the SubmitJob
1338// API call, and error handling.
1339//
1340// This method is useful when you want to inject custom logic or configuration
1341// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1342//
1343//
1344//    // Example sending a request using the SubmitJobRequest method.
1345//    req, resp := client.SubmitJobRequest(params)
1346//
1347//    err := req.Send()
1348//    if err == nil { // resp is now filled
1349//        fmt.Println(resp)
1350//    }
1351//
1352// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/SubmitJob
1353func (c *Batch) SubmitJobRequest(input *SubmitJobInput) (req *request.Request, output *SubmitJobOutput) {
1354	op := &request.Operation{
1355		Name:       opSubmitJob,
1356		HTTPMethod: "POST",
1357		HTTPPath:   "/v1/submitjob",
1358	}
1359
1360	if input == nil {
1361		input = &SubmitJobInput{}
1362	}
1363
1364	output = &SubmitJobOutput{}
1365	req = c.newRequest(op, input, output)
1366	return
1367}
1368
1369// SubmitJob API operation for AWS Batch.
1370//
1371// Submits an AWS Batch job from a job definition. Parameters specified during
1372// SubmitJob override parameters defined in the job definition.
1373//
1374// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1375// with awserr.Error's Code and Message methods to get detailed information about
1376// the error.
1377//
1378// See the AWS API reference guide for AWS Batch's
1379// API operation SubmitJob for usage and error information.
1380//
1381// Returned Error Codes:
1382//   * ErrCodeClientException "ClientException"
1383//   These errors are usually caused by a client action, such as using an action
1384//   or resource on behalf of a user that doesn't have permissions to use the
1385//   action or resource, or specifying an identifier that is not valid.
1386//
1387//   * ErrCodeServerException "ServerException"
1388//   These errors are usually caused by a server issue.
1389//
1390// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/SubmitJob
1391func (c *Batch) SubmitJob(input *SubmitJobInput) (*SubmitJobOutput, error) {
1392	req, out := c.SubmitJobRequest(input)
1393	return out, req.Send()
1394}
1395
1396// SubmitJobWithContext is the same as SubmitJob with the addition of
1397// the ability to pass a context and additional request options.
1398//
1399// See SubmitJob for details on how to use this API operation.
1400//
1401// The context must be non-nil and will be used for request cancellation. If
1402// the context is nil a panic will occur. In the future the SDK may create
1403// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1404// for more information on using Contexts.
1405func (c *Batch) SubmitJobWithContext(ctx aws.Context, input *SubmitJobInput, opts ...request.Option) (*SubmitJobOutput, error) {
1406	req, out := c.SubmitJobRequest(input)
1407	req.SetContext(ctx)
1408	req.ApplyOptions(opts...)
1409	return out, req.Send()
1410}
1411
1412const opTerminateJob = "TerminateJob"
1413
1414// TerminateJobRequest generates a "aws/request.Request" representing the
1415// client's request for the TerminateJob operation. The "output" return
1416// value will be populated with the request's response once the request completes
1417// successfully.
1418//
1419// Use "Send" method on the returned Request to send the API call to the service.
1420// the "output" return value is not valid until after Send returns without error.
1421//
1422// See TerminateJob for more information on using the TerminateJob
1423// API call, and error handling.
1424//
1425// This method is useful when you want to inject custom logic or configuration
1426// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1427//
1428//
1429//    // Example sending a request using the TerminateJobRequest method.
1430//    req, resp := client.TerminateJobRequest(params)
1431//
1432//    err := req.Send()
1433//    if err == nil { // resp is now filled
1434//        fmt.Println(resp)
1435//    }
1436//
1437// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/TerminateJob
1438func (c *Batch) TerminateJobRequest(input *TerminateJobInput) (req *request.Request, output *TerminateJobOutput) {
1439	op := &request.Operation{
1440		Name:       opTerminateJob,
1441		HTTPMethod: "POST",
1442		HTTPPath:   "/v1/terminatejob",
1443	}
1444
1445	if input == nil {
1446		input = &TerminateJobInput{}
1447	}
1448
1449	output = &TerminateJobOutput{}
1450	req = c.newRequest(op, input, output)
1451	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1452	return
1453}
1454
1455// TerminateJob API operation for AWS Batch.
1456//
1457// Terminates a job in a job queue. Jobs that are in the STARTING or RUNNING
1458// state are terminated, which causes them to transition to FAILED. Jobs that
1459// have not progressed to the STARTING state are cancelled.
1460//
1461// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1462// with awserr.Error's Code and Message methods to get detailed information about
1463// the error.
1464//
1465// See the AWS API reference guide for AWS Batch's
1466// API operation TerminateJob for usage and error information.
1467//
1468// Returned Error Codes:
1469//   * ErrCodeClientException "ClientException"
1470//   These errors are usually caused by a client action, such as using an action
1471//   or resource on behalf of a user that doesn't have permissions to use the
1472//   action or resource, or specifying an identifier that is not valid.
1473//
1474//   * ErrCodeServerException "ServerException"
1475//   These errors are usually caused by a server issue.
1476//
1477// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/TerminateJob
1478func (c *Batch) TerminateJob(input *TerminateJobInput) (*TerminateJobOutput, error) {
1479	req, out := c.TerminateJobRequest(input)
1480	return out, req.Send()
1481}
1482
1483// TerminateJobWithContext is the same as TerminateJob with the addition of
1484// the ability to pass a context and additional request options.
1485//
1486// See TerminateJob for details on how to use this API operation.
1487//
1488// The context must be non-nil and will be used for request cancellation. If
1489// the context is nil a panic will occur. In the future the SDK may create
1490// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1491// for more information on using Contexts.
1492func (c *Batch) TerminateJobWithContext(ctx aws.Context, input *TerminateJobInput, opts ...request.Option) (*TerminateJobOutput, error) {
1493	req, out := c.TerminateJobRequest(input)
1494	req.SetContext(ctx)
1495	req.ApplyOptions(opts...)
1496	return out, req.Send()
1497}
1498
1499const opUpdateComputeEnvironment = "UpdateComputeEnvironment"
1500
1501// UpdateComputeEnvironmentRequest generates a "aws/request.Request" representing the
1502// client's request for the UpdateComputeEnvironment operation. The "output" return
1503// value will be populated with the request's response once the request completes
1504// successfully.
1505//
1506// Use "Send" method on the returned Request to send the API call to the service.
1507// the "output" return value is not valid until after Send returns without error.
1508//
1509// See UpdateComputeEnvironment for more information on using the UpdateComputeEnvironment
1510// API call, and error handling.
1511//
1512// This method is useful when you want to inject custom logic or configuration
1513// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1514//
1515//
1516//    // Example sending a request using the UpdateComputeEnvironmentRequest method.
1517//    req, resp := client.UpdateComputeEnvironmentRequest(params)
1518//
1519//    err := req.Send()
1520//    if err == nil { // resp is now filled
1521//        fmt.Println(resp)
1522//    }
1523//
1524// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/UpdateComputeEnvironment
1525func (c *Batch) UpdateComputeEnvironmentRequest(input *UpdateComputeEnvironmentInput) (req *request.Request, output *UpdateComputeEnvironmentOutput) {
1526	op := &request.Operation{
1527		Name:       opUpdateComputeEnvironment,
1528		HTTPMethod: "POST",
1529		HTTPPath:   "/v1/updatecomputeenvironment",
1530	}
1531
1532	if input == nil {
1533		input = &UpdateComputeEnvironmentInput{}
1534	}
1535
1536	output = &UpdateComputeEnvironmentOutput{}
1537	req = c.newRequest(op, input, output)
1538	return
1539}
1540
1541// UpdateComputeEnvironment API operation for AWS Batch.
1542//
1543// Updates an AWS Batch compute environment.
1544//
1545// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1546// with awserr.Error's Code and Message methods to get detailed information about
1547// the error.
1548//
1549// See the AWS API reference guide for AWS Batch's
1550// API operation UpdateComputeEnvironment for usage and error information.
1551//
1552// Returned Error Codes:
1553//   * ErrCodeClientException "ClientException"
1554//   These errors are usually caused by a client action, such as using an action
1555//   or resource on behalf of a user that doesn't have permissions to use the
1556//   action or resource, or specifying an identifier that is not valid.
1557//
1558//   * ErrCodeServerException "ServerException"
1559//   These errors are usually caused by a server issue.
1560//
1561// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/UpdateComputeEnvironment
1562func (c *Batch) UpdateComputeEnvironment(input *UpdateComputeEnvironmentInput) (*UpdateComputeEnvironmentOutput, error) {
1563	req, out := c.UpdateComputeEnvironmentRequest(input)
1564	return out, req.Send()
1565}
1566
1567// UpdateComputeEnvironmentWithContext is the same as UpdateComputeEnvironment with the addition of
1568// the ability to pass a context and additional request options.
1569//
1570// See UpdateComputeEnvironment for details on how to use this API operation.
1571//
1572// The context must be non-nil and will be used for request cancellation. If
1573// the context is nil a panic will occur. In the future the SDK may create
1574// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1575// for more information on using Contexts.
1576func (c *Batch) UpdateComputeEnvironmentWithContext(ctx aws.Context, input *UpdateComputeEnvironmentInput, opts ...request.Option) (*UpdateComputeEnvironmentOutput, error) {
1577	req, out := c.UpdateComputeEnvironmentRequest(input)
1578	req.SetContext(ctx)
1579	req.ApplyOptions(opts...)
1580	return out, req.Send()
1581}
1582
1583const opUpdateJobQueue = "UpdateJobQueue"
1584
1585// UpdateJobQueueRequest generates a "aws/request.Request" representing the
1586// client's request for the UpdateJobQueue operation. The "output" return
1587// value will be populated with the request's response once the request completes
1588// successfully.
1589//
1590// Use "Send" method on the returned Request to send the API call to the service.
1591// the "output" return value is not valid until after Send returns without error.
1592//
1593// See UpdateJobQueue for more information on using the UpdateJobQueue
1594// API call, and error handling.
1595//
1596// This method is useful when you want to inject custom logic or configuration
1597// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1598//
1599//
1600//    // Example sending a request using the UpdateJobQueueRequest method.
1601//    req, resp := client.UpdateJobQueueRequest(params)
1602//
1603//    err := req.Send()
1604//    if err == nil { // resp is now filled
1605//        fmt.Println(resp)
1606//    }
1607//
1608// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/UpdateJobQueue
1609func (c *Batch) UpdateJobQueueRequest(input *UpdateJobQueueInput) (req *request.Request, output *UpdateJobQueueOutput) {
1610	op := &request.Operation{
1611		Name:       opUpdateJobQueue,
1612		HTTPMethod: "POST",
1613		HTTPPath:   "/v1/updatejobqueue",
1614	}
1615
1616	if input == nil {
1617		input = &UpdateJobQueueInput{}
1618	}
1619
1620	output = &UpdateJobQueueOutput{}
1621	req = c.newRequest(op, input, output)
1622	return
1623}
1624
1625// UpdateJobQueue API operation for AWS Batch.
1626//
1627// Updates a job queue.
1628//
1629// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1630// with awserr.Error's Code and Message methods to get detailed information about
1631// the error.
1632//
1633// See the AWS API reference guide for AWS Batch's
1634// API operation UpdateJobQueue for usage and error information.
1635//
1636// Returned Error Codes:
1637//   * ErrCodeClientException "ClientException"
1638//   These errors are usually caused by a client action, such as using an action
1639//   or resource on behalf of a user that doesn't have permissions to use the
1640//   action or resource, or specifying an identifier that is not valid.
1641//
1642//   * ErrCodeServerException "ServerException"
1643//   These errors are usually caused by a server issue.
1644//
1645// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/UpdateJobQueue
1646func (c *Batch) UpdateJobQueue(input *UpdateJobQueueInput) (*UpdateJobQueueOutput, error) {
1647	req, out := c.UpdateJobQueueRequest(input)
1648	return out, req.Send()
1649}
1650
1651// UpdateJobQueueWithContext is the same as UpdateJobQueue with the addition of
1652// the ability to pass a context and additional request options.
1653//
1654// See UpdateJobQueue for details on how to use this API operation.
1655//
1656// The context must be non-nil and will be used for request cancellation. If
1657// the context is nil a panic will occur. In the future the SDK may create
1658// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1659// for more information on using Contexts.
1660func (c *Batch) UpdateJobQueueWithContext(ctx aws.Context, input *UpdateJobQueueInput, opts ...request.Option) (*UpdateJobQueueOutput, error) {
1661	req, out := c.UpdateJobQueueRequest(input)
1662	req.SetContext(ctx)
1663	req.ApplyOptions(opts...)
1664	return out, req.Send()
1665}
1666
1667// An object representing an AWS Batch array job.
1668type ArrayProperties struct {
1669	_ struct{} `type:"structure"`
1670
1671	// The size of the array job.
1672	Size *int64 `locationName:"size" type:"integer"`
1673}
1674
1675// String returns the string representation
1676func (s ArrayProperties) String() string {
1677	return awsutil.Prettify(s)
1678}
1679
1680// GoString returns the string representation
1681func (s ArrayProperties) GoString() string {
1682	return s.String()
1683}
1684
1685// SetSize sets the Size field's value.
1686func (s *ArrayProperties) SetSize(v int64) *ArrayProperties {
1687	s.Size = &v
1688	return s
1689}
1690
1691// An object representing the array properties of a job.
1692type ArrayPropertiesDetail struct {
1693	_ struct{} `type:"structure"`
1694
1695	// The job index within the array that is associated with this job. This parameter
1696	// is returned for array job children.
1697	Index *int64 `locationName:"index" type:"integer"`
1698
1699	// The size of the array job. This parameter is returned for parent array jobs.
1700	Size *int64 `locationName:"size" type:"integer"`
1701
1702	// A summary of the number of array job children in each available job status.
1703	// This parameter is returned for parent array jobs.
1704	StatusSummary map[string]*int64 `locationName:"statusSummary" type:"map"`
1705}
1706
1707// String returns the string representation
1708func (s ArrayPropertiesDetail) String() string {
1709	return awsutil.Prettify(s)
1710}
1711
1712// GoString returns the string representation
1713func (s ArrayPropertiesDetail) GoString() string {
1714	return s.String()
1715}
1716
1717// SetIndex sets the Index field's value.
1718func (s *ArrayPropertiesDetail) SetIndex(v int64) *ArrayPropertiesDetail {
1719	s.Index = &v
1720	return s
1721}
1722
1723// SetSize sets the Size field's value.
1724func (s *ArrayPropertiesDetail) SetSize(v int64) *ArrayPropertiesDetail {
1725	s.Size = &v
1726	return s
1727}
1728
1729// SetStatusSummary sets the StatusSummary field's value.
1730func (s *ArrayPropertiesDetail) SetStatusSummary(v map[string]*int64) *ArrayPropertiesDetail {
1731	s.StatusSummary = v
1732	return s
1733}
1734
1735// An object representing the array properties of a job.
1736type ArrayPropertiesSummary struct {
1737	_ struct{} `type:"structure"`
1738
1739	// The job index within the array that is associated with this job. This parameter
1740	// is returned for children of array jobs.
1741	Index *int64 `locationName:"index" type:"integer"`
1742
1743	// The size of the array job. This parameter is returned for parent array jobs.
1744	Size *int64 `locationName:"size" type:"integer"`
1745}
1746
1747// String returns the string representation
1748func (s ArrayPropertiesSummary) String() string {
1749	return awsutil.Prettify(s)
1750}
1751
1752// GoString returns the string representation
1753func (s ArrayPropertiesSummary) GoString() string {
1754	return s.String()
1755}
1756
1757// SetIndex sets the Index field's value.
1758func (s *ArrayPropertiesSummary) SetIndex(v int64) *ArrayPropertiesSummary {
1759	s.Index = &v
1760	return s
1761}
1762
1763// SetSize sets the Size field's value.
1764func (s *ArrayPropertiesSummary) SetSize(v int64) *ArrayPropertiesSummary {
1765	s.Size = &v
1766	return s
1767}
1768
1769// An object representing the details of a container that is part of a job attempt.
1770type AttemptContainerDetail struct {
1771	_ struct{} `type:"structure"`
1772
1773	// The Amazon Resource Name (ARN) of the Amazon ECS container instance that
1774	// hosts the job attempt.
1775	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
1776
1777	// The exit code for the job attempt. A non-zero exit code is considered a failure.
1778	ExitCode *int64 `locationName:"exitCode" type:"integer"`
1779
1780	// The name of the CloudWatch Logs log stream associated with the container.
1781	// The log group for AWS Batch jobs is /aws/batch/job. Each container attempt
1782	// receives a log stream name when they reach the RUNNING status.
1783	LogStreamName *string `locationName:"logStreamName" type:"string"`
1784
1785	// The network interfaces associated with the job attempt.
1786	NetworkInterfaces []*NetworkInterface `locationName:"networkInterfaces" type:"list"`
1787
1788	// A short (255 max characters) human-readable string to provide additional
1789	// details about a running or stopped container.
1790	Reason *string `locationName:"reason" type:"string"`
1791
1792	// The Amazon Resource Name (ARN) of the Amazon ECS task that is associated
1793	// with the job attempt. Each container attempt receives a task ARN when they
1794	// reach the STARTING status.
1795	TaskArn *string `locationName:"taskArn" type:"string"`
1796}
1797
1798// String returns the string representation
1799func (s AttemptContainerDetail) String() string {
1800	return awsutil.Prettify(s)
1801}
1802
1803// GoString returns the string representation
1804func (s AttemptContainerDetail) GoString() string {
1805	return s.String()
1806}
1807
1808// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
1809func (s *AttemptContainerDetail) SetContainerInstanceArn(v string) *AttemptContainerDetail {
1810	s.ContainerInstanceArn = &v
1811	return s
1812}
1813
1814// SetExitCode sets the ExitCode field's value.
1815func (s *AttemptContainerDetail) SetExitCode(v int64) *AttemptContainerDetail {
1816	s.ExitCode = &v
1817	return s
1818}
1819
1820// SetLogStreamName sets the LogStreamName field's value.
1821func (s *AttemptContainerDetail) SetLogStreamName(v string) *AttemptContainerDetail {
1822	s.LogStreamName = &v
1823	return s
1824}
1825
1826// SetNetworkInterfaces sets the NetworkInterfaces field's value.
1827func (s *AttemptContainerDetail) SetNetworkInterfaces(v []*NetworkInterface) *AttemptContainerDetail {
1828	s.NetworkInterfaces = v
1829	return s
1830}
1831
1832// SetReason sets the Reason field's value.
1833func (s *AttemptContainerDetail) SetReason(v string) *AttemptContainerDetail {
1834	s.Reason = &v
1835	return s
1836}
1837
1838// SetTaskArn sets the TaskArn field's value.
1839func (s *AttemptContainerDetail) SetTaskArn(v string) *AttemptContainerDetail {
1840	s.TaskArn = &v
1841	return s
1842}
1843
1844// An object representing a job attempt.
1845type AttemptDetail struct {
1846	_ struct{} `type:"structure"`
1847
1848	// Details about the container in this job attempt.
1849	Container *AttemptContainerDetail `locationName:"container" type:"structure"`
1850
1851	// The Unix timestamp (in seconds and milliseconds) for when the attempt was
1852	// started (when the attempt transitioned from the STARTING state to the RUNNING
1853	// state).
1854	StartedAt *int64 `locationName:"startedAt" type:"long"`
1855
1856	// A short, human-readable string to provide additional details about the current
1857	// status of the job attempt.
1858	StatusReason *string `locationName:"statusReason" type:"string"`
1859
1860	// The Unix timestamp (in seconds and milliseconds) for when the attempt was
1861	// stopped (when the attempt transitioned from the RUNNING state to a terminal
1862	// state, such as SUCCEEDED or FAILED).
1863	StoppedAt *int64 `locationName:"stoppedAt" type:"long"`
1864}
1865
1866// String returns the string representation
1867func (s AttemptDetail) String() string {
1868	return awsutil.Prettify(s)
1869}
1870
1871// GoString returns the string representation
1872func (s AttemptDetail) GoString() string {
1873	return s.String()
1874}
1875
1876// SetContainer sets the Container field's value.
1877func (s *AttemptDetail) SetContainer(v *AttemptContainerDetail) *AttemptDetail {
1878	s.Container = v
1879	return s
1880}
1881
1882// SetStartedAt sets the StartedAt field's value.
1883func (s *AttemptDetail) SetStartedAt(v int64) *AttemptDetail {
1884	s.StartedAt = &v
1885	return s
1886}
1887
1888// SetStatusReason sets the StatusReason field's value.
1889func (s *AttemptDetail) SetStatusReason(v string) *AttemptDetail {
1890	s.StatusReason = &v
1891	return s
1892}
1893
1894// SetStoppedAt sets the StoppedAt field's value.
1895func (s *AttemptDetail) SetStoppedAt(v int64) *AttemptDetail {
1896	s.StoppedAt = &v
1897	return s
1898}
1899
1900type CancelJobInput struct {
1901	_ struct{} `type:"structure"`
1902
1903	// The AWS Batch job ID of the job to cancel.
1904	//
1905	// JobId is a required field
1906	JobId *string `locationName:"jobId" type:"string" required:"true"`
1907
1908	// A message to attach to the job that explains the reason for canceling it.
1909	// This message is returned by future DescribeJobs operations on the job. This
1910	// message is also recorded in the AWS Batch activity logs.
1911	//
1912	// Reason is a required field
1913	Reason *string `locationName:"reason" type:"string" required:"true"`
1914}
1915
1916// String returns the string representation
1917func (s CancelJobInput) String() string {
1918	return awsutil.Prettify(s)
1919}
1920
1921// GoString returns the string representation
1922func (s CancelJobInput) GoString() string {
1923	return s.String()
1924}
1925
1926// Validate inspects the fields of the type to determine if they are valid.
1927func (s *CancelJobInput) Validate() error {
1928	invalidParams := request.ErrInvalidParams{Context: "CancelJobInput"}
1929	if s.JobId == nil {
1930		invalidParams.Add(request.NewErrParamRequired("JobId"))
1931	}
1932	if s.Reason == nil {
1933		invalidParams.Add(request.NewErrParamRequired("Reason"))
1934	}
1935
1936	if invalidParams.Len() > 0 {
1937		return invalidParams
1938	}
1939	return nil
1940}
1941
1942// SetJobId sets the JobId field's value.
1943func (s *CancelJobInput) SetJobId(v string) *CancelJobInput {
1944	s.JobId = &v
1945	return s
1946}
1947
1948// SetReason sets the Reason field's value.
1949func (s *CancelJobInput) SetReason(v string) *CancelJobInput {
1950	s.Reason = &v
1951	return s
1952}
1953
1954type CancelJobOutput struct {
1955	_ struct{} `type:"structure"`
1956}
1957
1958// String returns the string representation
1959func (s CancelJobOutput) String() string {
1960	return awsutil.Prettify(s)
1961}
1962
1963// GoString returns the string representation
1964func (s CancelJobOutput) GoString() string {
1965	return s.String()
1966}
1967
1968// An object representing an AWS Batch compute environment.
1969type ComputeEnvironmentDetail struct {
1970	_ struct{} `type:"structure"`
1971
1972	// The Amazon Resource Name (ARN) of the compute environment.
1973	//
1974	// ComputeEnvironmentArn is a required field
1975	ComputeEnvironmentArn *string `locationName:"computeEnvironmentArn" type:"string" required:"true"`
1976
1977	// The name of the compute environment.
1978	//
1979	// ComputeEnvironmentName is a required field
1980	ComputeEnvironmentName *string `locationName:"computeEnvironmentName" type:"string" required:"true"`
1981
1982	// The compute resources defined for the compute environment.
1983	ComputeResources *ComputeResource `locationName:"computeResources" type:"structure"`
1984
1985	// The Amazon Resource Name (ARN) of the underlying Amazon ECS cluster used
1986	// by the compute environment.
1987	//
1988	// EcsClusterArn is a required field
1989	EcsClusterArn *string `locationName:"ecsClusterArn" type:"string" required:"true"`
1990
1991	// The service role associated with the compute environment that allows AWS
1992	// Batch to make calls to AWS API operations on your behalf.
1993	ServiceRole *string `locationName:"serviceRole" type:"string"`
1994
1995	// The state of the compute environment. The valid values are ENABLED or DISABLED.
1996	//
1997	// If the state is ENABLED, then the AWS Batch scheduler can attempt to place
1998	// jobs from an associated job queue on the compute resources within the environment.
1999	// If the compute environment is managed, then it can scale its instances out
2000	// or in automatically, based on the job queue demand.
2001	//
2002	// If the state is DISABLED, then the AWS Batch scheduler does not attempt to
2003	// place jobs within the environment. Jobs in a STARTING or RUNNING state continue
2004	// to progress normally. Managed compute environments in the DISABLED state
2005	// do not scale out. However, they scale in to minvCpus value after instances
2006	// become idle.
2007	State *string `locationName:"state" type:"string" enum:"CEState"`
2008
2009	// The current status of the compute environment (for example, CREATING or VALID).
2010	Status *string `locationName:"status" type:"string" enum:"CEStatus"`
2011
2012	// A short, human-readable string to provide additional details about the current
2013	// status of the compute environment.
2014	StatusReason *string `locationName:"statusReason" type:"string"`
2015
2016	// The type of the compute environment.
2017	Type *string `locationName:"type" type:"string" enum:"CEType"`
2018}
2019
2020// String returns the string representation
2021func (s ComputeEnvironmentDetail) String() string {
2022	return awsutil.Prettify(s)
2023}
2024
2025// GoString returns the string representation
2026func (s ComputeEnvironmentDetail) GoString() string {
2027	return s.String()
2028}
2029
2030// SetComputeEnvironmentArn sets the ComputeEnvironmentArn field's value.
2031func (s *ComputeEnvironmentDetail) SetComputeEnvironmentArn(v string) *ComputeEnvironmentDetail {
2032	s.ComputeEnvironmentArn = &v
2033	return s
2034}
2035
2036// SetComputeEnvironmentName sets the ComputeEnvironmentName field's value.
2037func (s *ComputeEnvironmentDetail) SetComputeEnvironmentName(v string) *ComputeEnvironmentDetail {
2038	s.ComputeEnvironmentName = &v
2039	return s
2040}
2041
2042// SetComputeResources sets the ComputeResources field's value.
2043func (s *ComputeEnvironmentDetail) SetComputeResources(v *ComputeResource) *ComputeEnvironmentDetail {
2044	s.ComputeResources = v
2045	return s
2046}
2047
2048// SetEcsClusterArn sets the EcsClusterArn field's value.
2049func (s *ComputeEnvironmentDetail) SetEcsClusterArn(v string) *ComputeEnvironmentDetail {
2050	s.EcsClusterArn = &v
2051	return s
2052}
2053
2054// SetServiceRole sets the ServiceRole field's value.
2055func (s *ComputeEnvironmentDetail) SetServiceRole(v string) *ComputeEnvironmentDetail {
2056	s.ServiceRole = &v
2057	return s
2058}
2059
2060// SetState sets the State field's value.
2061func (s *ComputeEnvironmentDetail) SetState(v string) *ComputeEnvironmentDetail {
2062	s.State = &v
2063	return s
2064}
2065
2066// SetStatus sets the Status field's value.
2067func (s *ComputeEnvironmentDetail) SetStatus(v string) *ComputeEnvironmentDetail {
2068	s.Status = &v
2069	return s
2070}
2071
2072// SetStatusReason sets the StatusReason field's value.
2073func (s *ComputeEnvironmentDetail) SetStatusReason(v string) *ComputeEnvironmentDetail {
2074	s.StatusReason = &v
2075	return s
2076}
2077
2078// SetType sets the Type field's value.
2079func (s *ComputeEnvironmentDetail) SetType(v string) *ComputeEnvironmentDetail {
2080	s.Type = &v
2081	return s
2082}
2083
2084// The order in which compute environments are tried for job placement within
2085// a queue. Compute environments are tried in ascending order. For example,
2086// if two compute environments are associated with a job queue, the compute
2087// environment with a lower order integer value is tried for job placement first.
2088type ComputeEnvironmentOrder struct {
2089	_ struct{} `type:"structure"`
2090
2091	// The Amazon Resource Name (ARN) of the compute environment.
2092	//
2093	// ComputeEnvironment is a required field
2094	ComputeEnvironment *string `locationName:"computeEnvironment" type:"string" required:"true"`
2095
2096	// The order of the compute environment.
2097	//
2098	// Order is a required field
2099	Order *int64 `locationName:"order" type:"integer" required:"true"`
2100}
2101
2102// String returns the string representation
2103func (s ComputeEnvironmentOrder) String() string {
2104	return awsutil.Prettify(s)
2105}
2106
2107// GoString returns the string representation
2108func (s ComputeEnvironmentOrder) GoString() string {
2109	return s.String()
2110}
2111
2112// Validate inspects the fields of the type to determine if they are valid.
2113func (s *ComputeEnvironmentOrder) Validate() error {
2114	invalidParams := request.ErrInvalidParams{Context: "ComputeEnvironmentOrder"}
2115	if s.ComputeEnvironment == nil {
2116		invalidParams.Add(request.NewErrParamRequired("ComputeEnvironment"))
2117	}
2118	if s.Order == nil {
2119		invalidParams.Add(request.NewErrParamRequired("Order"))
2120	}
2121
2122	if invalidParams.Len() > 0 {
2123		return invalidParams
2124	}
2125	return nil
2126}
2127
2128// SetComputeEnvironment sets the ComputeEnvironment field's value.
2129func (s *ComputeEnvironmentOrder) SetComputeEnvironment(v string) *ComputeEnvironmentOrder {
2130	s.ComputeEnvironment = &v
2131	return s
2132}
2133
2134// SetOrder sets the Order field's value.
2135func (s *ComputeEnvironmentOrder) SetOrder(v int64) *ComputeEnvironmentOrder {
2136	s.Order = &v
2137	return s
2138}
2139
2140// An object representing an AWS Batch compute resource.
2141type ComputeResource struct {
2142	_ struct{} `type:"structure"`
2143
2144	// The maximum percentage that a Spot Instance price can be when compared with
2145	// the On-Demand price for that instance type before instances are launched.
2146	// For example, if your maximum percentage is 20%, then the Spot price must
2147	// be below 20% of the current On-Demand price for that EC2 instance. You always
2148	// pay the lowest (market) price and never more than your maximum percentage.
2149	// If you leave this field empty, the default value is 100% of the On-Demand
2150	// price.
2151	BidPercentage *int64 `locationName:"bidPercentage" type:"integer"`
2152
2153	// The desired number of EC2 vCPUS in the compute environment.
2154	DesiredvCpus *int64 `locationName:"desiredvCpus" type:"integer"`
2155
2156	// The EC2 key pair that is used for instances launched in the compute environment.
2157	Ec2KeyPair *string `locationName:"ec2KeyPair" type:"string"`
2158
2159	// The Amazon Machine Image (AMI) ID used for instances launched in the compute
2160	// environment.
2161	ImageId *string `locationName:"imageId" type:"string"`
2162
2163	// The Amazon ECS instance profile applied to Amazon EC2 instances in a compute
2164	// environment. You can specify the short name or full Amazon Resource Name
2165	// (ARN) of an instance profile. For example, ecsInstanceRole or arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole
2166	// . For more information, see Amazon ECS Instance Role (https://docs.aws.amazon.com/batch/latest/userguide/instance_IAM_role.html)
2167	// in the AWS Batch User Guide.
2168	//
2169	// InstanceRole is a required field
2170	InstanceRole *string `locationName:"instanceRole" type:"string" required:"true"`
2171
2172	// The instances types that may be launched. You can specify instance families
2173	// to launch any instance type within those families (for example, c4 or p3),
2174	// or you can specify specific sizes within a family (such as c4.8xlarge). You
2175	// can also choose optimal to pick instance types (from the C, M, and R instance
2176	// families) on the fly that match the demand of your job queues.
2177	//
2178	// InstanceTypes is a required field
2179	InstanceTypes []*string `locationName:"instanceTypes" type:"list" required:"true"`
2180
2181	// The launch template to use for your compute resources. Any other compute
2182	// resource parameters that you specify in a CreateComputeEnvironment API operation
2183	// override the same parameters in the launch template. You must specify either
2184	// the launch template ID or launch template name in the request, but not both.
2185	// For more information, see Launch Template Support (https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html)
2186	// in the AWS Batch User Guide.
2187	LaunchTemplate *LaunchTemplateSpecification `locationName:"launchTemplate" type:"structure"`
2188
2189	// The maximum number of EC2 vCPUs that an environment can reach.
2190	//
2191	// MaxvCpus is a required field
2192	MaxvCpus *int64 `locationName:"maxvCpus" type:"integer" required:"true"`
2193
2194	// The minimum number of EC2 vCPUs that an environment should maintain (even
2195	// if the compute environment is DISABLED).
2196	//
2197	// MinvCpus is a required field
2198	MinvCpus *int64 `locationName:"minvCpus" type:"integer" required:"true"`
2199
2200	// The Amazon EC2 placement group to associate with your compute resources.
2201	// If you intend to submit multi-node parallel jobs to your compute environment,
2202	// you should consider creating a cluster placement group and associate it with
2203	// your compute resources. This keeps your multi-node parallel job on a logical
2204	// grouping of instances within a single Availability Zone with high network
2205	// flow potential. For more information, see Placement Groups (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html)
2206	// in the Amazon EC2 User Guide for Linux Instances.
2207	PlacementGroup *string `locationName:"placementGroup" type:"string"`
2208
2209	// The EC2 security group that is associated with instances launched in the
2210	// compute environment.
2211	SecurityGroupIds []*string `locationName:"securityGroupIds" type:"list"`
2212
2213	// The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied
2214	// to a SPOT compute environment. For more information, see Amazon EC2 Spot
2215	// Fleet Role (https://docs.aws.amazon.com/batch/latest/userguide/spot_fleet_IAM_role.html)
2216	// in the AWS Batch User Guide.
2217	SpotIamFleetRole *string `locationName:"spotIamFleetRole" type:"string"`
2218
2219	// The VPC subnets into which the compute resources are launched. For more information,
2220	// see VPCs and Subnets (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)
2221	// in the Amazon VPC User Guide.
2222	//
2223	// Subnets is a required field
2224	Subnets []*string `locationName:"subnets" type:"list" required:"true"`
2225
2226	// Key-value pair tags to be applied to resources that are launched in the compute
2227	// environment. For AWS Batch, these take the form of "String1": "String2",
2228	// where String1 is the tag key and String2 is the tag value—for example,
2229	// { "Name": "AWS Batch Instance - C4OnDemand" }.
2230	Tags map[string]*string `locationName:"tags" type:"map"`
2231
2232	// The type of compute environment: EC2 or SPOT.
2233	//
2234	// Type is a required field
2235	Type *string `locationName:"type" type:"string" required:"true" enum:"CRType"`
2236}
2237
2238// String returns the string representation
2239func (s ComputeResource) String() string {
2240	return awsutil.Prettify(s)
2241}
2242
2243// GoString returns the string representation
2244func (s ComputeResource) GoString() string {
2245	return s.String()
2246}
2247
2248// Validate inspects the fields of the type to determine if they are valid.
2249func (s *ComputeResource) Validate() error {
2250	invalidParams := request.ErrInvalidParams{Context: "ComputeResource"}
2251	if s.InstanceRole == nil {
2252		invalidParams.Add(request.NewErrParamRequired("InstanceRole"))
2253	}
2254	if s.InstanceTypes == nil {
2255		invalidParams.Add(request.NewErrParamRequired("InstanceTypes"))
2256	}
2257	if s.MaxvCpus == nil {
2258		invalidParams.Add(request.NewErrParamRequired("MaxvCpus"))
2259	}
2260	if s.MinvCpus == nil {
2261		invalidParams.Add(request.NewErrParamRequired("MinvCpus"))
2262	}
2263	if s.Subnets == nil {
2264		invalidParams.Add(request.NewErrParamRequired("Subnets"))
2265	}
2266	if s.Type == nil {
2267		invalidParams.Add(request.NewErrParamRequired("Type"))
2268	}
2269
2270	if invalidParams.Len() > 0 {
2271		return invalidParams
2272	}
2273	return nil
2274}
2275
2276// SetBidPercentage sets the BidPercentage field's value.
2277func (s *ComputeResource) SetBidPercentage(v int64) *ComputeResource {
2278	s.BidPercentage = &v
2279	return s
2280}
2281
2282// SetDesiredvCpus sets the DesiredvCpus field's value.
2283func (s *ComputeResource) SetDesiredvCpus(v int64) *ComputeResource {
2284	s.DesiredvCpus = &v
2285	return s
2286}
2287
2288// SetEc2KeyPair sets the Ec2KeyPair field's value.
2289func (s *ComputeResource) SetEc2KeyPair(v string) *ComputeResource {
2290	s.Ec2KeyPair = &v
2291	return s
2292}
2293
2294// SetImageId sets the ImageId field's value.
2295func (s *ComputeResource) SetImageId(v string) *ComputeResource {
2296	s.ImageId = &v
2297	return s
2298}
2299
2300// SetInstanceRole sets the InstanceRole field's value.
2301func (s *ComputeResource) SetInstanceRole(v string) *ComputeResource {
2302	s.InstanceRole = &v
2303	return s
2304}
2305
2306// SetInstanceTypes sets the InstanceTypes field's value.
2307func (s *ComputeResource) SetInstanceTypes(v []*string) *ComputeResource {
2308	s.InstanceTypes = v
2309	return s
2310}
2311
2312// SetLaunchTemplate sets the LaunchTemplate field's value.
2313func (s *ComputeResource) SetLaunchTemplate(v *LaunchTemplateSpecification) *ComputeResource {
2314	s.LaunchTemplate = v
2315	return s
2316}
2317
2318// SetMaxvCpus sets the MaxvCpus field's value.
2319func (s *ComputeResource) SetMaxvCpus(v int64) *ComputeResource {
2320	s.MaxvCpus = &v
2321	return s
2322}
2323
2324// SetMinvCpus sets the MinvCpus field's value.
2325func (s *ComputeResource) SetMinvCpus(v int64) *ComputeResource {
2326	s.MinvCpus = &v
2327	return s
2328}
2329
2330// SetPlacementGroup sets the PlacementGroup field's value.
2331func (s *ComputeResource) SetPlacementGroup(v string) *ComputeResource {
2332	s.PlacementGroup = &v
2333	return s
2334}
2335
2336// SetSecurityGroupIds sets the SecurityGroupIds field's value.
2337func (s *ComputeResource) SetSecurityGroupIds(v []*string) *ComputeResource {
2338	s.SecurityGroupIds = v
2339	return s
2340}
2341
2342// SetSpotIamFleetRole sets the SpotIamFleetRole field's value.
2343func (s *ComputeResource) SetSpotIamFleetRole(v string) *ComputeResource {
2344	s.SpotIamFleetRole = &v
2345	return s
2346}
2347
2348// SetSubnets sets the Subnets field's value.
2349func (s *ComputeResource) SetSubnets(v []*string) *ComputeResource {
2350	s.Subnets = v
2351	return s
2352}
2353
2354// SetTags sets the Tags field's value.
2355func (s *ComputeResource) SetTags(v map[string]*string) *ComputeResource {
2356	s.Tags = v
2357	return s
2358}
2359
2360// SetType sets the Type field's value.
2361func (s *ComputeResource) SetType(v string) *ComputeResource {
2362	s.Type = &v
2363	return s
2364}
2365
2366// An object representing the attributes of a compute environment that can be
2367// updated.
2368type ComputeResourceUpdate struct {
2369	_ struct{} `type:"structure"`
2370
2371	// The desired number of EC2 vCPUS in the compute environment.
2372	DesiredvCpus *int64 `locationName:"desiredvCpus" type:"integer"`
2373
2374	// The maximum number of EC2 vCPUs that an environment can reach.
2375	MaxvCpus *int64 `locationName:"maxvCpus" type:"integer"`
2376
2377	// The minimum number of EC2 vCPUs that an environment should maintain.
2378	MinvCpus *int64 `locationName:"minvCpus" type:"integer"`
2379}
2380
2381// String returns the string representation
2382func (s ComputeResourceUpdate) String() string {
2383	return awsutil.Prettify(s)
2384}
2385
2386// GoString returns the string representation
2387func (s ComputeResourceUpdate) GoString() string {
2388	return s.String()
2389}
2390
2391// SetDesiredvCpus sets the DesiredvCpus field's value.
2392func (s *ComputeResourceUpdate) SetDesiredvCpus(v int64) *ComputeResourceUpdate {
2393	s.DesiredvCpus = &v
2394	return s
2395}
2396
2397// SetMaxvCpus sets the MaxvCpus field's value.
2398func (s *ComputeResourceUpdate) SetMaxvCpus(v int64) *ComputeResourceUpdate {
2399	s.MaxvCpus = &v
2400	return s
2401}
2402
2403// SetMinvCpus sets the MinvCpus field's value.
2404func (s *ComputeResourceUpdate) SetMinvCpus(v int64) *ComputeResourceUpdate {
2405	s.MinvCpus = &v
2406	return s
2407}
2408
2409// An object representing the details of a container that is part of a job.
2410type ContainerDetail struct {
2411	_ struct{} `type:"structure"`
2412
2413	// The command that is passed to the container.
2414	Command []*string `locationName:"command" type:"list"`
2415
2416	// The Amazon Resource Name (ARN) of the container instance on which the container
2417	// is running.
2418	ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"`
2419
2420	// The environment variables to pass to a container.
2421	//
2422	// Environment variables must not start with AWS_BATCH; this naming convention
2423	// is reserved for variables that are set by the AWS Batch service.
2424	Environment []*KeyValuePair `locationName:"environment" type:"list"`
2425
2426	// The exit code to return upon completion.
2427	ExitCode *int64 `locationName:"exitCode" type:"integer"`
2428
2429	// The image used to start the container.
2430	Image *string `locationName:"image" type:"string"`
2431
2432	// The instance type of the underlying host infrastructure of a multi-node parallel
2433	// job.
2434	InstanceType *string `locationName:"instanceType" type:"string"`
2435
2436	// The Amazon Resource Name (ARN) associated with the job upon execution.
2437	JobRoleArn *string `locationName:"jobRoleArn" type:"string"`
2438
2439	// Linux-specific modifications that are applied to the container, such as details
2440	// for device mappings.
2441	LinuxParameters *LinuxParameters `locationName:"linuxParameters" type:"structure"`
2442
2443	// The name of the CloudWatch Logs log stream associated with the container.
2444	// The log group for AWS Batch jobs is /aws/batch/job. Each container attempt
2445	// receives a log stream name when they reach the RUNNING status.
2446	LogStreamName *string `locationName:"logStreamName" type:"string"`
2447
2448	// The number of MiB of memory reserved for the job.
2449	Memory *int64 `locationName:"memory" type:"integer"`
2450
2451	// The mount points for data volumes in your container.
2452	MountPoints []*MountPoint `locationName:"mountPoints" type:"list"`
2453
2454	// The network interfaces associated with the job.
2455	NetworkInterfaces []*NetworkInterface `locationName:"networkInterfaces" type:"list"`
2456
2457	// When this parameter is true, the container is given elevated privileges on
2458	// the host container instance (similar to the root user).
2459	Privileged *bool `locationName:"privileged" type:"boolean"`
2460
2461	// When this parameter is true, the container is given read-only access to its
2462	// root file system.
2463	ReadonlyRootFilesystem *bool `locationName:"readonlyRootFilesystem" type:"boolean"`
2464
2465	// A short (255 max characters) human-readable string to provide additional
2466	// details about a running or stopped container.
2467	Reason *string `locationName:"reason" type:"string"`
2468
2469	// The type and amount of a resource to assign to a container. Currently, the
2470	// only supported resource is GPU.
2471	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
2472
2473	// The Amazon Resource Name (ARN) of the Amazon ECS task that is associated
2474	// with the container job. Each container attempt receives a task ARN when they
2475	// reach the STARTING status.
2476	TaskArn *string `locationName:"taskArn" type:"string"`
2477
2478	// A list of ulimit values to set in the container.
2479	Ulimits []*Ulimit `locationName:"ulimits" type:"list"`
2480
2481	// The user name to use inside the container.
2482	User *string `locationName:"user" type:"string"`
2483
2484	// The number of VCPUs allocated for the job.
2485	Vcpus *int64 `locationName:"vcpus" type:"integer"`
2486
2487	// A list of volumes associated with the job.
2488	Volumes []*Volume `locationName:"volumes" type:"list"`
2489}
2490
2491// String returns the string representation
2492func (s ContainerDetail) String() string {
2493	return awsutil.Prettify(s)
2494}
2495
2496// GoString returns the string representation
2497func (s ContainerDetail) GoString() string {
2498	return s.String()
2499}
2500
2501// SetCommand sets the Command field's value.
2502func (s *ContainerDetail) SetCommand(v []*string) *ContainerDetail {
2503	s.Command = v
2504	return s
2505}
2506
2507// SetContainerInstanceArn sets the ContainerInstanceArn field's value.
2508func (s *ContainerDetail) SetContainerInstanceArn(v string) *ContainerDetail {
2509	s.ContainerInstanceArn = &v
2510	return s
2511}
2512
2513// SetEnvironment sets the Environment field's value.
2514func (s *ContainerDetail) SetEnvironment(v []*KeyValuePair) *ContainerDetail {
2515	s.Environment = v
2516	return s
2517}
2518
2519// SetExitCode sets the ExitCode field's value.
2520func (s *ContainerDetail) SetExitCode(v int64) *ContainerDetail {
2521	s.ExitCode = &v
2522	return s
2523}
2524
2525// SetImage sets the Image field's value.
2526func (s *ContainerDetail) SetImage(v string) *ContainerDetail {
2527	s.Image = &v
2528	return s
2529}
2530
2531// SetInstanceType sets the InstanceType field's value.
2532func (s *ContainerDetail) SetInstanceType(v string) *ContainerDetail {
2533	s.InstanceType = &v
2534	return s
2535}
2536
2537// SetJobRoleArn sets the JobRoleArn field's value.
2538func (s *ContainerDetail) SetJobRoleArn(v string) *ContainerDetail {
2539	s.JobRoleArn = &v
2540	return s
2541}
2542
2543// SetLinuxParameters sets the LinuxParameters field's value.
2544func (s *ContainerDetail) SetLinuxParameters(v *LinuxParameters) *ContainerDetail {
2545	s.LinuxParameters = v
2546	return s
2547}
2548
2549// SetLogStreamName sets the LogStreamName field's value.
2550func (s *ContainerDetail) SetLogStreamName(v string) *ContainerDetail {
2551	s.LogStreamName = &v
2552	return s
2553}
2554
2555// SetMemory sets the Memory field's value.
2556func (s *ContainerDetail) SetMemory(v int64) *ContainerDetail {
2557	s.Memory = &v
2558	return s
2559}
2560
2561// SetMountPoints sets the MountPoints field's value.
2562func (s *ContainerDetail) SetMountPoints(v []*MountPoint) *ContainerDetail {
2563	s.MountPoints = v
2564	return s
2565}
2566
2567// SetNetworkInterfaces sets the NetworkInterfaces field's value.
2568func (s *ContainerDetail) SetNetworkInterfaces(v []*NetworkInterface) *ContainerDetail {
2569	s.NetworkInterfaces = v
2570	return s
2571}
2572
2573// SetPrivileged sets the Privileged field's value.
2574func (s *ContainerDetail) SetPrivileged(v bool) *ContainerDetail {
2575	s.Privileged = &v
2576	return s
2577}
2578
2579// SetReadonlyRootFilesystem sets the ReadonlyRootFilesystem field's value.
2580func (s *ContainerDetail) SetReadonlyRootFilesystem(v bool) *ContainerDetail {
2581	s.ReadonlyRootFilesystem = &v
2582	return s
2583}
2584
2585// SetReason sets the Reason field's value.
2586func (s *ContainerDetail) SetReason(v string) *ContainerDetail {
2587	s.Reason = &v
2588	return s
2589}
2590
2591// SetResourceRequirements sets the ResourceRequirements field's value.
2592func (s *ContainerDetail) SetResourceRequirements(v []*ResourceRequirement) *ContainerDetail {
2593	s.ResourceRequirements = v
2594	return s
2595}
2596
2597// SetTaskArn sets the TaskArn field's value.
2598func (s *ContainerDetail) SetTaskArn(v string) *ContainerDetail {
2599	s.TaskArn = &v
2600	return s
2601}
2602
2603// SetUlimits sets the Ulimits field's value.
2604func (s *ContainerDetail) SetUlimits(v []*Ulimit) *ContainerDetail {
2605	s.Ulimits = v
2606	return s
2607}
2608
2609// SetUser sets the User field's value.
2610func (s *ContainerDetail) SetUser(v string) *ContainerDetail {
2611	s.User = &v
2612	return s
2613}
2614
2615// SetVcpus sets the Vcpus field's value.
2616func (s *ContainerDetail) SetVcpus(v int64) *ContainerDetail {
2617	s.Vcpus = &v
2618	return s
2619}
2620
2621// SetVolumes sets the Volumes field's value.
2622func (s *ContainerDetail) SetVolumes(v []*Volume) *ContainerDetail {
2623	s.Volumes = v
2624	return s
2625}
2626
2627// The overrides that should be sent to a container.
2628type ContainerOverrides struct {
2629	_ struct{} `type:"structure"`
2630
2631	// The command to send to the container that overrides the default command from
2632	// the Docker image or the job definition.
2633	Command []*string `locationName:"command" type:"list"`
2634
2635	// The environment variables to send to the container. You can add new environment
2636	// variables, which are added to the container at launch, or you can override
2637	// the existing environment variables from the Docker image or the job definition.
2638	//
2639	// Environment variables must not start with AWS_BATCH; this naming convention
2640	// is reserved for variables that are set by the AWS Batch service.
2641	Environment []*KeyValuePair `locationName:"environment" type:"list"`
2642
2643	// The instance type to use for a multi-node parallel job. This parameter is
2644	// not valid for single-node container jobs.
2645	InstanceType *string `locationName:"instanceType" type:"string"`
2646
2647	// The number of MiB of memory reserved for the job. This value overrides the
2648	// value set in the job definition.
2649	Memory *int64 `locationName:"memory" type:"integer"`
2650
2651	// The type and amount of a resource to assign to a container. This value overrides
2652	// the value set in the job definition. Currently, the only supported resource
2653	// is GPU.
2654	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
2655
2656	// The number of vCPUs to reserve for the container. This value overrides the
2657	// value set in the job definition.
2658	Vcpus *int64 `locationName:"vcpus" type:"integer"`
2659}
2660
2661// String returns the string representation
2662func (s ContainerOverrides) String() string {
2663	return awsutil.Prettify(s)
2664}
2665
2666// GoString returns the string representation
2667func (s ContainerOverrides) GoString() string {
2668	return s.String()
2669}
2670
2671// Validate inspects the fields of the type to determine if they are valid.
2672func (s *ContainerOverrides) Validate() error {
2673	invalidParams := request.ErrInvalidParams{Context: "ContainerOverrides"}
2674	if s.ResourceRequirements != nil {
2675		for i, v := range s.ResourceRequirements {
2676			if v == nil {
2677				continue
2678			}
2679			if err := v.Validate(); err != nil {
2680				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
2681			}
2682		}
2683	}
2684
2685	if invalidParams.Len() > 0 {
2686		return invalidParams
2687	}
2688	return nil
2689}
2690
2691// SetCommand sets the Command field's value.
2692func (s *ContainerOverrides) SetCommand(v []*string) *ContainerOverrides {
2693	s.Command = v
2694	return s
2695}
2696
2697// SetEnvironment sets the Environment field's value.
2698func (s *ContainerOverrides) SetEnvironment(v []*KeyValuePair) *ContainerOverrides {
2699	s.Environment = v
2700	return s
2701}
2702
2703// SetInstanceType sets the InstanceType field's value.
2704func (s *ContainerOverrides) SetInstanceType(v string) *ContainerOverrides {
2705	s.InstanceType = &v
2706	return s
2707}
2708
2709// SetMemory sets the Memory field's value.
2710func (s *ContainerOverrides) SetMemory(v int64) *ContainerOverrides {
2711	s.Memory = &v
2712	return s
2713}
2714
2715// SetResourceRequirements sets the ResourceRequirements field's value.
2716func (s *ContainerOverrides) SetResourceRequirements(v []*ResourceRequirement) *ContainerOverrides {
2717	s.ResourceRequirements = v
2718	return s
2719}
2720
2721// SetVcpus sets the Vcpus field's value.
2722func (s *ContainerOverrides) SetVcpus(v int64) *ContainerOverrides {
2723	s.Vcpus = &v
2724	return s
2725}
2726
2727// Container properties are used in job definitions to describe the container
2728// that is launched as part of a job.
2729type ContainerProperties struct {
2730	_ struct{} `type:"structure"`
2731
2732	// The command that is passed to the container. This parameter maps to Cmd in
2733	// the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
2734	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
2735	// and the COMMAND parameter to docker run (https://docs.docker.com/engine/reference/run/).
2736	// For more information, see https://docs.docker.com/engine/reference/builder/#cmd
2737	// (https://docs.docker.com/engine/reference/builder/#cmd).
2738	Command []*string `locationName:"command" type:"list"`
2739
2740	// The environment variables to pass to a container. This parameter maps to
2741	// Env in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
2742	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
2743	// and the --env option to docker run (https://docs.docker.com/engine/reference/run/).
2744	//
2745	// We do not recommend using plaintext environment variables for sensitive information,
2746	// such as credential data.
2747	//
2748	// Environment variables must not start with AWS_BATCH; this naming convention
2749	// is reserved for variables that are set by the AWS Batch service.
2750	Environment []*KeyValuePair `locationName:"environment" type:"list"`
2751
2752	// The image used to start a container. This string is passed directly to the
2753	// Docker daemon. Images in the Docker Hub registry are available by default.
2754	// Other repositories are specified with repository-url/image:tag . Up to 255
2755	// letters (uppercase and lowercase), numbers, hyphens, underscores, colons,
2756	// periods, forward slashes, and number signs are allowed. This parameter maps
2757	// to Image in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
2758	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
2759	// and the IMAGE parameter of docker run (https://docs.docker.com/engine/reference/run/).
2760	//
2761	//    * Images in Amazon ECR repositories use the full registry and repository
2762	//    URI (for example, 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>).
2763	//
2764	//    * Images in official repositories on Docker Hub use a single name (for
2765	//    example, ubuntu or mongo).
2766	//
2767	//    * Images in other repositories on Docker Hub are qualified with an organization
2768	//    name (for example, amazon/amazon-ecs-agent).
2769	//
2770	//    * Images in other online repositories are qualified further by a domain
2771	//    name (for example, quay.io/assemblyline/ubuntu).
2772	Image *string `locationName:"image" type:"string"`
2773
2774	// The instance type to use for a multi-node parallel job. Currently all node
2775	// groups in a multi-node parallel job must use the same instance type. This
2776	// parameter is not valid for single-node container jobs.
2777	InstanceType *string `locationName:"instanceType" type:"string"`
2778
2779	// The Amazon Resource Name (ARN) of the IAM role that the container can assume
2780	// for AWS permissions.
2781	JobRoleArn *string `locationName:"jobRoleArn" type:"string"`
2782
2783	// Linux-specific modifications that are applied to the container, such as details
2784	// for device mappings.
2785	LinuxParameters *LinuxParameters `locationName:"linuxParameters" type:"structure"`
2786
2787	// The hard limit (in MiB) of memory to present to the container. If your container
2788	// attempts to exceed the memory specified here, the container is killed. This
2789	// parameter maps to Memory in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
2790	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
2791	// and the --memory option to docker run (https://docs.docker.com/engine/reference/run/).
2792	// You must specify at least 4 MiB of memory for a job.
2793	//
2794	// If you are trying to maximize your resource utilization by providing your
2795	// jobs as much memory as possible for a particular instance type, see Memory
2796	// Management (https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html)
2797	// in the AWS Batch User Guide.
2798	Memory *int64 `locationName:"memory" type:"integer"`
2799
2800	// The mount points for data volumes in your container. This parameter maps
2801	// to Volumes in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
2802	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
2803	// and the --volume option to docker run (https://docs.docker.com/engine/reference/run/).
2804	MountPoints []*MountPoint `locationName:"mountPoints" type:"list"`
2805
2806	// When this parameter is true, the container is given elevated privileges on
2807	// the host container instance (similar to the root user). This parameter maps
2808	// to Privileged in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
2809	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
2810	// and the --privileged option to docker run (https://docs.docker.com/engine/reference/run/).
2811	Privileged *bool `locationName:"privileged" type:"boolean"`
2812
2813	// When this parameter is true, the container is given read-only access to its
2814	// root file system. This parameter maps to ReadonlyRootfs in the Create a container
2815	// (https://docs.docker.com/engine/api/v1.23/#create-a-container) section of
2816	// the Docker Remote API (https://docs.docker.com/engine/api/v1.23/) and the
2817	// --read-only option to docker run.
2818	ReadonlyRootFilesystem *bool `locationName:"readonlyRootFilesystem" type:"boolean"`
2819
2820	// The type and amount of a resource to assign to a container. Currently, the
2821	// only supported resource is GPU.
2822	ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"`
2823
2824	// A list of ulimits to set in the container. This parameter maps to Ulimits
2825	// in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
2826	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
2827	// and the --ulimit option to docker run (https://docs.docker.com/engine/reference/run/).
2828	Ulimits []*Ulimit `locationName:"ulimits" type:"list"`
2829
2830	// The user name to use inside the container. This parameter maps to User in
2831	// the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
2832	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
2833	// and the --user option to docker run (https://docs.docker.com/engine/reference/run/).
2834	User *string `locationName:"user" type:"string"`
2835
2836	// The number of vCPUs reserved for the container. This parameter maps to CpuShares
2837	// in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
2838	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
2839	// and the --cpu-shares option to docker run (https://docs.docker.com/engine/reference/run/).
2840	// Each vCPU is equivalent to 1,024 CPU shares. You must specify at least one
2841	// vCPU.
2842	Vcpus *int64 `locationName:"vcpus" type:"integer"`
2843
2844	// A list of data volumes used in a job.
2845	Volumes []*Volume `locationName:"volumes" type:"list"`
2846}
2847
2848// String returns the string representation
2849func (s ContainerProperties) String() string {
2850	return awsutil.Prettify(s)
2851}
2852
2853// GoString returns the string representation
2854func (s ContainerProperties) GoString() string {
2855	return s.String()
2856}
2857
2858// Validate inspects the fields of the type to determine if they are valid.
2859func (s *ContainerProperties) Validate() error {
2860	invalidParams := request.ErrInvalidParams{Context: "ContainerProperties"}
2861	if s.LinuxParameters != nil {
2862		if err := s.LinuxParameters.Validate(); err != nil {
2863			invalidParams.AddNested("LinuxParameters", err.(request.ErrInvalidParams))
2864		}
2865	}
2866	if s.ResourceRequirements != nil {
2867		for i, v := range s.ResourceRequirements {
2868			if v == nil {
2869				continue
2870			}
2871			if err := v.Validate(); err != nil {
2872				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams))
2873			}
2874		}
2875	}
2876	if s.Ulimits != nil {
2877		for i, v := range s.Ulimits {
2878			if v == nil {
2879				continue
2880			}
2881			if err := v.Validate(); err != nil {
2882				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Ulimits", i), err.(request.ErrInvalidParams))
2883			}
2884		}
2885	}
2886
2887	if invalidParams.Len() > 0 {
2888		return invalidParams
2889	}
2890	return nil
2891}
2892
2893// SetCommand sets the Command field's value.
2894func (s *ContainerProperties) SetCommand(v []*string) *ContainerProperties {
2895	s.Command = v
2896	return s
2897}
2898
2899// SetEnvironment sets the Environment field's value.
2900func (s *ContainerProperties) SetEnvironment(v []*KeyValuePair) *ContainerProperties {
2901	s.Environment = v
2902	return s
2903}
2904
2905// SetImage sets the Image field's value.
2906func (s *ContainerProperties) SetImage(v string) *ContainerProperties {
2907	s.Image = &v
2908	return s
2909}
2910
2911// SetInstanceType sets the InstanceType field's value.
2912func (s *ContainerProperties) SetInstanceType(v string) *ContainerProperties {
2913	s.InstanceType = &v
2914	return s
2915}
2916
2917// SetJobRoleArn sets the JobRoleArn field's value.
2918func (s *ContainerProperties) SetJobRoleArn(v string) *ContainerProperties {
2919	s.JobRoleArn = &v
2920	return s
2921}
2922
2923// SetLinuxParameters sets the LinuxParameters field's value.
2924func (s *ContainerProperties) SetLinuxParameters(v *LinuxParameters) *ContainerProperties {
2925	s.LinuxParameters = v
2926	return s
2927}
2928
2929// SetMemory sets the Memory field's value.
2930func (s *ContainerProperties) SetMemory(v int64) *ContainerProperties {
2931	s.Memory = &v
2932	return s
2933}
2934
2935// SetMountPoints sets the MountPoints field's value.
2936func (s *ContainerProperties) SetMountPoints(v []*MountPoint) *ContainerProperties {
2937	s.MountPoints = v
2938	return s
2939}
2940
2941// SetPrivileged sets the Privileged field's value.
2942func (s *ContainerProperties) SetPrivileged(v bool) *ContainerProperties {
2943	s.Privileged = &v
2944	return s
2945}
2946
2947// SetReadonlyRootFilesystem sets the ReadonlyRootFilesystem field's value.
2948func (s *ContainerProperties) SetReadonlyRootFilesystem(v bool) *ContainerProperties {
2949	s.ReadonlyRootFilesystem = &v
2950	return s
2951}
2952
2953// SetResourceRequirements sets the ResourceRequirements field's value.
2954func (s *ContainerProperties) SetResourceRequirements(v []*ResourceRequirement) *ContainerProperties {
2955	s.ResourceRequirements = v
2956	return s
2957}
2958
2959// SetUlimits sets the Ulimits field's value.
2960func (s *ContainerProperties) SetUlimits(v []*Ulimit) *ContainerProperties {
2961	s.Ulimits = v
2962	return s
2963}
2964
2965// SetUser sets the User field's value.
2966func (s *ContainerProperties) SetUser(v string) *ContainerProperties {
2967	s.User = &v
2968	return s
2969}
2970
2971// SetVcpus sets the Vcpus field's value.
2972func (s *ContainerProperties) SetVcpus(v int64) *ContainerProperties {
2973	s.Vcpus = &v
2974	return s
2975}
2976
2977// SetVolumes sets the Volumes field's value.
2978func (s *ContainerProperties) SetVolumes(v []*Volume) *ContainerProperties {
2979	s.Volumes = v
2980	return s
2981}
2982
2983// An object representing summary details of a container within a job.
2984type ContainerSummary struct {
2985	_ struct{} `type:"structure"`
2986
2987	// The exit code to return upon completion.
2988	ExitCode *int64 `locationName:"exitCode" type:"integer"`
2989
2990	// A short (255 max characters) human-readable string to provide additional
2991	// details about a running or stopped container.
2992	Reason *string `locationName:"reason" type:"string"`
2993}
2994
2995// String returns the string representation
2996func (s ContainerSummary) String() string {
2997	return awsutil.Prettify(s)
2998}
2999
3000// GoString returns the string representation
3001func (s ContainerSummary) GoString() string {
3002	return s.String()
3003}
3004
3005// SetExitCode sets the ExitCode field's value.
3006func (s *ContainerSummary) SetExitCode(v int64) *ContainerSummary {
3007	s.ExitCode = &v
3008	return s
3009}
3010
3011// SetReason sets the Reason field's value.
3012func (s *ContainerSummary) SetReason(v string) *ContainerSummary {
3013	s.Reason = &v
3014	return s
3015}
3016
3017type CreateComputeEnvironmentInput struct {
3018	_ struct{} `type:"structure"`
3019
3020	// The name for your compute environment. Up to 128 letters (uppercase and lowercase),
3021	// numbers, hyphens, and underscores are allowed.
3022	//
3023	// ComputeEnvironmentName is a required field
3024	ComputeEnvironmentName *string `locationName:"computeEnvironmentName" type:"string" required:"true"`
3025
3026	// Details of the compute resources managed by the compute environment. This
3027	// parameter is required for managed compute environments. For more information,
3028	// see Compute Environments (https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html)
3029	// in the AWS Batch User Guide.
3030	ComputeResources *ComputeResource `locationName:"computeResources" type:"structure"`
3031
3032	// The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch
3033	// to make calls to other AWS services on your behalf.
3034	//
3035	// If your specified role has a path other than /, then you must either specify
3036	// the full role ARN (this is recommended) or prefix the role name with the
3037	// path.
3038	//
3039	// Depending on how you created your AWS Batch service role, its ARN may contain
3040	// the service-role path prefix. When you only specify the name of the service
3041	// role, AWS Batch assumes that your ARN does not use the service-role path
3042	// prefix. Because of this, we recommend that you specify the full ARN of your
3043	// service role when you create compute environments.
3044	//
3045	// ServiceRole is a required field
3046	ServiceRole *string `locationName:"serviceRole" type:"string" required:"true"`
3047
3048	// The state of the compute environment. If the state is ENABLED, then the compute
3049	// environment accepts jobs from a queue and can scale out automatically based
3050	// on queues.
3051	State *string `locationName:"state" type:"string" enum:"CEState"`
3052
3053	// The type of the compute environment. For more information, see Compute Environments
3054	// (https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html)
3055	// in the AWS Batch User Guide.
3056	//
3057	// Type is a required field
3058	Type *string `locationName:"type" type:"string" required:"true" enum:"CEType"`
3059}
3060
3061// String returns the string representation
3062func (s CreateComputeEnvironmentInput) String() string {
3063	return awsutil.Prettify(s)
3064}
3065
3066// GoString returns the string representation
3067func (s CreateComputeEnvironmentInput) GoString() string {
3068	return s.String()
3069}
3070
3071// Validate inspects the fields of the type to determine if they are valid.
3072func (s *CreateComputeEnvironmentInput) Validate() error {
3073	invalidParams := request.ErrInvalidParams{Context: "CreateComputeEnvironmentInput"}
3074	if s.ComputeEnvironmentName == nil {
3075		invalidParams.Add(request.NewErrParamRequired("ComputeEnvironmentName"))
3076	}
3077	if s.ServiceRole == nil {
3078		invalidParams.Add(request.NewErrParamRequired("ServiceRole"))
3079	}
3080	if s.Type == nil {
3081		invalidParams.Add(request.NewErrParamRequired("Type"))
3082	}
3083	if s.ComputeResources != nil {
3084		if err := s.ComputeResources.Validate(); err != nil {
3085			invalidParams.AddNested("ComputeResources", err.(request.ErrInvalidParams))
3086		}
3087	}
3088
3089	if invalidParams.Len() > 0 {
3090		return invalidParams
3091	}
3092	return nil
3093}
3094
3095// SetComputeEnvironmentName sets the ComputeEnvironmentName field's value.
3096func (s *CreateComputeEnvironmentInput) SetComputeEnvironmentName(v string) *CreateComputeEnvironmentInput {
3097	s.ComputeEnvironmentName = &v
3098	return s
3099}
3100
3101// SetComputeResources sets the ComputeResources field's value.
3102func (s *CreateComputeEnvironmentInput) SetComputeResources(v *ComputeResource) *CreateComputeEnvironmentInput {
3103	s.ComputeResources = v
3104	return s
3105}
3106
3107// SetServiceRole sets the ServiceRole field's value.
3108func (s *CreateComputeEnvironmentInput) SetServiceRole(v string) *CreateComputeEnvironmentInput {
3109	s.ServiceRole = &v
3110	return s
3111}
3112
3113// SetState sets the State field's value.
3114func (s *CreateComputeEnvironmentInput) SetState(v string) *CreateComputeEnvironmentInput {
3115	s.State = &v
3116	return s
3117}
3118
3119// SetType sets the Type field's value.
3120func (s *CreateComputeEnvironmentInput) SetType(v string) *CreateComputeEnvironmentInput {
3121	s.Type = &v
3122	return s
3123}
3124
3125type CreateComputeEnvironmentOutput struct {
3126	_ struct{} `type:"structure"`
3127
3128	// The Amazon Resource Name (ARN) of the compute environment.
3129	ComputeEnvironmentArn *string `locationName:"computeEnvironmentArn" type:"string"`
3130
3131	// The name of the compute environment.
3132	ComputeEnvironmentName *string `locationName:"computeEnvironmentName" type:"string"`
3133}
3134
3135// String returns the string representation
3136func (s CreateComputeEnvironmentOutput) String() string {
3137	return awsutil.Prettify(s)
3138}
3139
3140// GoString returns the string representation
3141func (s CreateComputeEnvironmentOutput) GoString() string {
3142	return s.String()
3143}
3144
3145// SetComputeEnvironmentArn sets the ComputeEnvironmentArn field's value.
3146func (s *CreateComputeEnvironmentOutput) SetComputeEnvironmentArn(v string) *CreateComputeEnvironmentOutput {
3147	s.ComputeEnvironmentArn = &v
3148	return s
3149}
3150
3151// SetComputeEnvironmentName sets the ComputeEnvironmentName field's value.
3152func (s *CreateComputeEnvironmentOutput) SetComputeEnvironmentName(v string) *CreateComputeEnvironmentOutput {
3153	s.ComputeEnvironmentName = &v
3154	return s
3155}
3156
3157type CreateJobQueueInput struct {
3158	_ struct{} `type:"structure"`
3159
3160	// The set of compute environments mapped to a job queue and their order relative
3161	// to each other. The job scheduler uses this parameter to determine which compute
3162	// environment should execute a given job. Compute environments must be in the
3163	// VALID state before you can associate them with a job queue. You can associate
3164	// up to three compute environments with a job queue.
3165	//
3166	// ComputeEnvironmentOrder is a required field
3167	ComputeEnvironmentOrder []*ComputeEnvironmentOrder `locationName:"computeEnvironmentOrder" type:"list" required:"true"`
3168
3169	// The name of the job queue.
3170	//
3171	// JobQueueName is a required field
3172	JobQueueName *string `locationName:"jobQueueName" type:"string" required:"true"`
3173
3174	// The priority of the job queue. Job queues with a higher priority (or a higher
3175	// integer value for the priority parameter) are evaluated first when associated
3176	// with the same compute environment. Priority is determined in descending order,
3177	// for example, a job queue with a priority value of 10 is given scheduling
3178	// preference over a job queue with a priority value of 1.
3179	//
3180	// Priority is a required field
3181	Priority *int64 `locationName:"priority" type:"integer" required:"true"`
3182
3183	// The state of the job queue. If the job queue state is ENABLED, it is able
3184	// to accept jobs.
3185	State *string `locationName:"state" type:"string" enum:"JQState"`
3186}
3187
3188// String returns the string representation
3189func (s CreateJobQueueInput) String() string {
3190	return awsutil.Prettify(s)
3191}
3192
3193// GoString returns the string representation
3194func (s CreateJobQueueInput) GoString() string {
3195	return s.String()
3196}
3197
3198// Validate inspects the fields of the type to determine if they are valid.
3199func (s *CreateJobQueueInput) Validate() error {
3200	invalidParams := request.ErrInvalidParams{Context: "CreateJobQueueInput"}
3201	if s.ComputeEnvironmentOrder == nil {
3202		invalidParams.Add(request.NewErrParamRequired("ComputeEnvironmentOrder"))
3203	}
3204	if s.JobQueueName == nil {
3205		invalidParams.Add(request.NewErrParamRequired("JobQueueName"))
3206	}
3207	if s.Priority == nil {
3208		invalidParams.Add(request.NewErrParamRequired("Priority"))
3209	}
3210	if s.ComputeEnvironmentOrder != nil {
3211		for i, v := range s.ComputeEnvironmentOrder {
3212			if v == nil {
3213				continue
3214			}
3215			if err := v.Validate(); err != nil {
3216				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ComputeEnvironmentOrder", i), err.(request.ErrInvalidParams))
3217			}
3218		}
3219	}
3220
3221	if invalidParams.Len() > 0 {
3222		return invalidParams
3223	}
3224	return nil
3225}
3226
3227// SetComputeEnvironmentOrder sets the ComputeEnvironmentOrder field's value.
3228func (s *CreateJobQueueInput) SetComputeEnvironmentOrder(v []*ComputeEnvironmentOrder) *CreateJobQueueInput {
3229	s.ComputeEnvironmentOrder = v
3230	return s
3231}
3232
3233// SetJobQueueName sets the JobQueueName field's value.
3234func (s *CreateJobQueueInput) SetJobQueueName(v string) *CreateJobQueueInput {
3235	s.JobQueueName = &v
3236	return s
3237}
3238
3239// SetPriority sets the Priority field's value.
3240func (s *CreateJobQueueInput) SetPriority(v int64) *CreateJobQueueInput {
3241	s.Priority = &v
3242	return s
3243}
3244
3245// SetState sets the State field's value.
3246func (s *CreateJobQueueInput) SetState(v string) *CreateJobQueueInput {
3247	s.State = &v
3248	return s
3249}
3250
3251type CreateJobQueueOutput struct {
3252	_ struct{} `type:"structure"`
3253
3254	// The Amazon Resource Name (ARN) of the job queue.
3255	//
3256	// JobQueueArn is a required field
3257	JobQueueArn *string `locationName:"jobQueueArn" type:"string" required:"true"`
3258
3259	// The name of the job queue.
3260	//
3261	// JobQueueName is a required field
3262	JobQueueName *string `locationName:"jobQueueName" type:"string" required:"true"`
3263}
3264
3265// String returns the string representation
3266func (s CreateJobQueueOutput) String() string {
3267	return awsutil.Prettify(s)
3268}
3269
3270// GoString returns the string representation
3271func (s CreateJobQueueOutput) GoString() string {
3272	return s.String()
3273}
3274
3275// SetJobQueueArn sets the JobQueueArn field's value.
3276func (s *CreateJobQueueOutput) SetJobQueueArn(v string) *CreateJobQueueOutput {
3277	s.JobQueueArn = &v
3278	return s
3279}
3280
3281// SetJobQueueName sets the JobQueueName field's value.
3282func (s *CreateJobQueueOutput) SetJobQueueName(v string) *CreateJobQueueOutput {
3283	s.JobQueueName = &v
3284	return s
3285}
3286
3287type DeleteComputeEnvironmentInput struct {
3288	_ struct{} `type:"structure"`
3289
3290	// The name or Amazon Resource Name (ARN) of the compute environment to delete.
3291	//
3292	// ComputeEnvironment is a required field
3293	ComputeEnvironment *string `locationName:"computeEnvironment" type:"string" required:"true"`
3294}
3295
3296// String returns the string representation
3297func (s DeleteComputeEnvironmentInput) String() string {
3298	return awsutil.Prettify(s)
3299}
3300
3301// GoString returns the string representation
3302func (s DeleteComputeEnvironmentInput) GoString() string {
3303	return s.String()
3304}
3305
3306// Validate inspects the fields of the type to determine if they are valid.
3307func (s *DeleteComputeEnvironmentInput) Validate() error {
3308	invalidParams := request.ErrInvalidParams{Context: "DeleteComputeEnvironmentInput"}
3309	if s.ComputeEnvironment == nil {
3310		invalidParams.Add(request.NewErrParamRequired("ComputeEnvironment"))
3311	}
3312
3313	if invalidParams.Len() > 0 {
3314		return invalidParams
3315	}
3316	return nil
3317}
3318
3319// SetComputeEnvironment sets the ComputeEnvironment field's value.
3320func (s *DeleteComputeEnvironmentInput) SetComputeEnvironment(v string) *DeleteComputeEnvironmentInput {
3321	s.ComputeEnvironment = &v
3322	return s
3323}
3324
3325type DeleteComputeEnvironmentOutput struct {
3326	_ struct{} `type:"structure"`
3327}
3328
3329// String returns the string representation
3330func (s DeleteComputeEnvironmentOutput) String() string {
3331	return awsutil.Prettify(s)
3332}
3333
3334// GoString returns the string representation
3335func (s DeleteComputeEnvironmentOutput) GoString() string {
3336	return s.String()
3337}
3338
3339type DeleteJobQueueInput struct {
3340	_ struct{} `type:"structure"`
3341
3342	// The short name or full Amazon Resource Name (ARN) of the queue to delete.
3343	//
3344	// JobQueue is a required field
3345	JobQueue *string `locationName:"jobQueue" type:"string" required:"true"`
3346}
3347
3348// String returns the string representation
3349func (s DeleteJobQueueInput) String() string {
3350	return awsutil.Prettify(s)
3351}
3352
3353// GoString returns the string representation
3354func (s DeleteJobQueueInput) GoString() string {
3355	return s.String()
3356}
3357
3358// Validate inspects the fields of the type to determine if they are valid.
3359func (s *DeleteJobQueueInput) Validate() error {
3360	invalidParams := request.ErrInvalidParams{Context: "DeleteJobQueueInput"}
3361	if s.JobQueue == nil {
3362		invalidParams.Add(request.NewErrParamRequired("JobQueue"))
3363	}
3364
3365	if invalidParams.Len() > 0 {
3366		return invalidParams
3367	}
3368	return nil
3369}
3370
3371// SetJobQueue sets the JobQueue field's value.
3372func (s *DeleteJobQueueInput) SetJobQueue(v string) *DeleteJobQueueInput {
3373	s.JobQueue = &v
3374	return s
3375}
3376
3377type DeleteJobQueueOutput struct {
3378	_ struct{} `type:"structure"`
3379}
3380
3381// String returns the string representation
3382func (s DeleteJobQueueOutput) String() string {
3383	return awsutil.Prettify(s)
3384}
3385
3386// GoString returns the string representation
3387func (s DeleteJobQueueOutput) GoString() string {
3388	return s.String()
3389}
3390
3391type DeregisterJobDefinitionInput struct {
3392	_ struct{} `type:"structure"`
3393
3394	// The name and revision (name:revision) or full Amazon Resource Name (ARN)
3395	// of the job definition to deregister.
3396	//
3397	// JobDefinition is a required field
3398	JobDefinition *string `locationName:"jobDefinition" type:"string" required:"true"`
3399}
3400
3401// String returns the string representation
3402func (s DeregisterJobDefinitionInput) String() string {
3403	return awsutil.Prettify(s)
3404}
3405
3406// GoString returns the string representation
3407func (s DeregisterJobDefinitionInput) GoString() string {
3408	return s.String()
3409}
3410
3411// Validate inspects the fields of the type to determine if they are valid.
3412func (s *DeregisterJobDefinitionInput) Validate() error {
3413	invalidParams := request.ErrInvalidParams{Context: "DeregisterJobDefinitionInput"}
3414	if s.JobDefinition == nil {
3415		invalidParams.Add(request.NewErrParamRequired("JobDefinition"))
3416	}
3417
3418	if invalidParams.Len() > 0 {
3419		return invalidParams
3420	}
3421	return nil
3422}
3423
3424// SetJobDefinition sets the JobDefinition field's value.
3425func (s *DeregisterJobDefinitionInput) SetJobDefinition(v string) *DeregisterJobDefinitionInput {
3426	s.JobDefinition = &v
3427	return s
3428}
3429
3430type DeregisterJobDefinitionOutput struct {
3431	_ struct{} `type:"structure"`
3432}
3433
3434// String returns the string representation
3435func (s DeregisterJobDefinitionOutput) String() string {
3436	return awsutil.Prettify(s)
3437}
3438
3439// GoString returns the string representation
3440func (s DeregisterJobDefinitionOutput) GoString() string {
3441	return s.String()
3442}
3443
3444type DescribeComputeEnvironmentsInput struct {
3445	_ struct{} `type:"structure"`
3446
3447	// A list of up to 100 compute environment names or full Amazon Resource Name
3448	// (ARN) entries.
3449	ComputeEnvironments []*string `locationName:"computeEnvironments" type:"list"`
3450
3451	// The maximum number of cluster results returned by DescribeComputeEnvironments
3452	// in paginated output. When this parameter is used, DescribeComputeEnvironments
3453	// only returns maxResults results in a single page along with a nextToken response
3454	// element. The remaining results of the initial request can be seen by sending
3455	// another DescribeComputeEnvironments request with the returned nextToken value.
3456	// This value can be between 1 and 100. If this parameter is not used, then
3457	// DescribeComputeEnvironments returns up to 100 results and a nextToken value
3458	// if applicable.
3459	MaxResults *int64 `locationName:"maxResults" type:"integer"`
3460
3461	// The nextToken value returned from a previous paginated DescribeComputeEnvironments
3462	// request where maxResults was used and the results exceeded the value of that
3463	// parameter. Pagination continues from the end of the previous results that
3464	// returned the nextToken value. This value is null when there are no more results
3465	// to return.
3466	//
3467	// This token should be treated as an opaque identifier that is only used to
3468	// retrieve the next items in a list and not for other programmatic purposes.
3469	NextToken *string `locationName:"nextToken" type:"string"`
3470}
3471
3472// String returns the string representation
3473func (s DescribeComputeEnvironmentsInput) String() string {
3474	return awsutil.Prettify(s)
3475}
3476
3477// GoString returns the string representation
3478func (s DescribeComputeEnvironmentsInput) GoString() string {
3479	return s.String()
3480}
3481
3482// SetComputeEnvironments sets the ComputeEnvironments field's value.
3483func (s *DescribeComputeEnvironmentsInput) SetComputeEnvironments(v []*string) *DescribeComputeEnvironmentsInput {
3484	s.ComputeEnvironments = v
3485	return s
3486}
3487
3488// SetMaxResults sets the MaxResults field's value.
3489func (s *DescribeComputeEnvironmentsInput) SetMaxResults(v int64) *DescribeComputeEnvironmentsInput {
3490	s.MaxResults = &v
3491	return s
3492}
3493
3494// SetNextToken sets the NextToken field's value.
3495func (s *DescribeComputeEnvironmentsInput) SetNextToken(v string) *DescribeComputeEnvironmentsInput {
3496	s.NextToken = &v
3497	return s
3498}
3499
3500type DescribeComputeEnvironmentsOutput struct {
3501	_ struct{} `type:"structure"`
3502
3503	// The list of compute environments.
3504	ComputeEnvironments []*ComputeEnvironmentDetail `locationName:"computeEnvironments" type:"list"`
3505
3506	// The nextToken value to include in a future DescribeComputeEnvironments request.
3507	// When the results of a DescribeJobDefinitions request exceed maxResults, this
3508	// value can be used to retrieve the next page of results. This value is null
3509	// when there are no more results to return.
3510	NextToken *string `locationName:"nextToken" type:"string"`
3511}
3512
3513// String returns the string representation
3514func (s DescribeComputeEnvironmentsOutput) String() string {
3515	return awsutil.Prettify(s)
3516}
3517
3518// GoString returns the string representation
3519func (s DescribeComputeEnvironmentsOutput) GoString() string {
3520	return s.String()
3521}
3522
3523// SetComputeEnvironments sets the ComputeEnvironments field's value.
3524func (s *DescribeComputeEnvironmentsOutput) SetComputeEnvironments(v []*ComputeEnvironmentDetail) *DescribeComputeEnvironmentsOutput {
3525	s.ComputeEnvironments = v
3526	return s
3527}
3528
3529// SetNextToken sets the NextToken field's value.
3530func (s *DescribeComputeEnvironmentsOutput) SetNextToken(v string) *DescribeComputeEnvironmentsOutput {
3531	s.NextToken = &v
3532	return s
3533}
3534
3535type DescribeJobDefinitionsInput struct {
3536	_ struct{} `type:"structure"`
3537
3538	// The name of the job definition to describe.
3539	JobDefinitionName *string `locationName:"jobDefinitionName" type:"string"`
3540
3541	// A list of up to 100 job definition names or full Amazon Resource Name (ARN)
3542	// entries.
3543	JobDefinitions []*string `locationName:"jobDefinitions" type:"list"`
3544
3545	// The maximum number of results returned by DescribeJobDefinitions in paginated
3546	// output. When this parameter is used, DescribeJobDefinitions only returns
3547	// maxResults results in a single page along with a nextToken response element.
3548	// The remaining results of the initial request can be seen by sending another
3549	// DescribeJobDefinitions request with the returned nextToken value. This value
3550	// can be between 1 and 100. If this parameter is not used, then DescribeJobDefinitions
3551	// returns up to 100 results and a nextToken value if applicable.
3552	MaxResults *int64 `locationName:"maxResults" type:"integer"`
3553
3554	// The nextToken value returned from a previous paginated DescribeJobDefinitions
3555	// request where maxResults was used and the results exceeded the value of that
3556	// parameter. Pagination continues from the end of the previous results that
3557	// returned the nextToken value. This value is null when there are no more results
3558	// to return.
3559	//
3560	// This token should be treated as an opaque identifier that is only used to
3561	// retrieve the next items in a list and not for other programmatic purposes.
3562	NextToken *string `locationName:"nextToken" type:"string"`
3563
3564	// The status with which to filter job definitions.
3565	Status *string `locationName:"status" type:"string"`
3566}
3567
3568// String returns the string representation
3569func (s DescribeJobDefinitionsInput) String() string {
3570	return awsutil.Prettify(s)
3571}
3572
3573// GoString returns the string representation
3574func (s DescribeJobDefinitionsInput) GoString() string {
3575	return s.String()
3576}
3577
3578// SetJobDefinitionName sets the JobDefinitionName field's value.
3579func (s *DescribeJobDefinitionsInput) SetJobDefinitionName(v string) *DescribeJobDefinitionsInput {
3580	s.JobDefinitionName = &v
3581	return s
3582}
3583
3584// SetJobDefinitions sets the JobDefinitions field's value.
3585func (s *DescribeJobDefinitionsInput) SetJobDefinitions(v []*string) *DescribeJobDefinitionsInput {
3586	s.JobDefinitions = v
3587	return s
3588}
3589
3590// SetMaxResults sets the MaxResults field's value.
3591func (s *DescribeJobDefinitionsInput) SetMaxResults(v int64) *DescribeJobDefinitionsInput {
3592	s.MaxResults = &v
3593	return s
3594}
3595
3596// SetNextToken sets the NextToken field's value.
3597func (s *DescribeJobDefinitionsInput) SetNextToken(v string) *DescribeJobDefinitionsInput {
3598	s.NextToken = &v
3599	return s
3600}
3601
3602// SetStatus sets the Status field's value.
3603func (s *DescribeJobDefinitionsInput) SetStatus(v string) *DescribeJobDefinitionsInput {
3604	s.Status = &v
3605	return s
3606}
3607
3608type DescribeJobDefinitionsOutput struct {
3609	_ struct{} `type:"structure"`
3610
3611	// The list of job definitions.
3612	JobDefinitions []*JobDefinition `locationName:"jobDefinitions" type:"list"`
3613
3614	// The nextToken value to include in a future DescribeJobDefinitions request.
3615	// When the results of a DescribeJobDefinitions request exceed maxResults, this
3616	// value can be used to retrieve the next page of results. This value is null
3617	// when there are no more results to return.
3618	NextToken *string `locationName:"nextToken" type:"string"`
3619}
3620
3621// String returns the string representation
3622func (s DescribeJobDefinitionsOutput) String() string {
3623	return awsutil.Prettify(s)
3624}
3625
3626// GoString returns the string representation
3627func (s DescribeJobDefinitionsOutput) GoString() string {
3628	return s.String()
3629}
3630
3631// SetJobDefinitions sets the JobDefinitions field's value.
3632func (s *DescribeJobDefinitionsOutput) SetJobDefinitions(v []*JobDefinition) *DescribeJobDefinitionsOutput {
3633	s.JobDefinitions = v
3634	return s
3635}
3636
3637// SetNextToken sets the NextToken field's value.
3638func (s *DescribeJobDefinitionsOutput) SetNextToken(v string) *DescribeJobDefinitionsOutput {
3639	s.NextToken = &v
3640	return s
3641}
3642
3643type DescribeJobQueuesInput struct {
3644	_ struct{} `type:"structure"`
3645
3646	// A list of up to 100 queue names or full queue Amazon Resource Name (ARN)
3647	// entries.
3648	JobQueues []*string `locationName:"jobQueues" type:"list"`
3649
3650	// The maximum number of results returned by DescribeJobQueues in paginated
3651	// output. When this parameter is used, DescribeJobQueues only returns maxResults
3652	// results in a single page along with a nextToken response element. The remaining
3653	// results of the initial request can be seen by sending another DescribeJobQueues
3654	// request with the returned nextToken value. This value can be between 1 and
3655	// 100. If this parameter is not used, then DescribeJobQueues returns up to
3656	// 100 results and a nextToken value if applicable.
3657	MaxResults *int64 `locationName:"maxResults" type:"integer"`
3658
3659	// The nextToken value returned from a previous paginated DescribeJobQueues
3660	// request where maxResults was used and the results exceeded the value of that
3661	// parameter. Pagination continues from the end of the previous results that
3662	// returned the nextToken value. This value is null when there are no more results
3663	// to return.
3664	//
3665	// This token should be treated as an opaque identifier that is only used to
3666	// retrieve the next items in a list and not for other programmatic purposes.
3667	NextToken *string `locationName:"nextToken" type:"string"`
3668}
3669
3670// String returns the string representation
3671func (s DescribeJobQueuesInput) String() string {
3672	return awsutil.Prettify(s)
3673}
3674
3675// GoString returns the string representation
3676func (s DescribeJobQueuesInput) GoString() string {
3677	return s.String()
3678}
3679
3680// SetJobQueues sets the JobQueues field's value.
3681func (s *DescribeJobQueuesInput) SetJobQueues(v []*string) *DescribeJobQueuesInput {
3682	s.JobQueues = v
3683	return s
3684}
3685
3686// SetMaxResults sets the MaxResults field's value.
3687func (s *DescribeJobQueuesInput) SetMaxResults(v int64) *DescribeJobQueuesInput {
3688	s.MaxResults = &v
3689	return s
3690}
3691
3692// SetNextToken sets the NextToken field's value.
3693func (s *DescribeJobQueuesInput) SetNextToken(v string) *DescribeJobQueuesInput {
3694	s.NextToken = &v
3695	return s
3696}
3697
3698type DescribeJobQueuesOutput struct {
3699	_ struct{} `type:"structure"`
3700
3701	// The list of job queues.
3702	JobQueues []*JobQueueDetail `locationName:"jobQueues" type:"list"`
3703
3704	// The nextToken value to include in a future DescribeJobQueues request. When
3705	// the results of a DescribeJobQueues request exceed maxResults, this value
3706	// can be used to retrieve the next page of results. This value is null when
3707	// there are no more results to return.
3708	NextToken *string `locationName:"nextToken" type:"string"`
3709}
3710
3711// String returns the string representation
3712func (s DescribeJobQueuesOutput) String() string {
3713	return awsutil.Prettify(s)
3714}
3715
3716// GoString returns the string representation
3717func (s DescribeJobQueuesOutput) GoString() string {
3718	return s.String()
3719}
3720
3721// SetJobQueues sets the JobQueues field's value.
3722func (s *DescribeJobQueuesOutput) SetJobQueues(v []*JobQueueDetail) *DescribeJobQueuesOutput {
3723	s.JobQueues = v
3724	return s
3725}
3726
3727// SetNextToken sets the NextToken field's value.
3728func (s *DescribeJobQueuesOutput) SetNextToken(v string) *DescribeJobQueuesOutput {
3729	s.NextToken = &v
3730	return s
3731}
3732
3733type DescribeJobsInput struct {
3734	_ struct{} `type:"structure"`
3735
3736	// A list of up to 100 job IDs.
3737	//
3738	// Jobs is a required field
3739	Jobs []*string `locationName:"jobs" type:"list" required:"true"`
3740}
3741
3742// String returns the string representation
3743func (s DescribeJobsInput) String() string {
3744	return awsutil.Prettify(s)
3745}
3746
3747// GoString returns the string representation
3748func (s DescribeJobsInput) GoString() string {
3749	return s.String()
3750}
3751
3752// Validate inspects the fields of the type to determine if they are valid.
3753func (s *DescribeJobsInput) Validate() error {
3754	invalidParams := request.ErrInvalidParams{Context: "DescribeJobsInput"}
3755	if s.Jobs == nil {
3756		invalidParams.Add(request.NewErrParamRequired("Jobs"))
3757	}
3758
3759	if invalidParams.Len() > 0 {
3760		return invalidParams
3761	}
3762	return nil
3763}
3764
3765// SetJobs sets the Jobs field's value.
3766func (s *DescribeJobsInput) SetJobs(v []*string) *DescribeJobsInput {
3767	s.Jobs = v
3768	return s
3769}
3770
3771type DescribeJobsOutput struct {
3772	_ struct{} `type:"structure"`
3773
3774	// The list of jobs.
3775	Jobs []*JobDetail `locationName:"jobs" type:"list"`
3776}
3777
3778// String returns the string representation
3779func (s DescribeJobsOutput) String() string {
3780	return awsutil.Prettify(s)
3781}
3782
3783// GoString returns the string representation
3784func (s DescribeJobsOutput) GoString() string {
3785	return s.String()
3786}
3787
3788// SetJobs sets the Jobs field's value.
3789func (s *DescribeJobsOutput) SetJobs(v []*JobDetail) *DescribeJobsOutput {
3790	s.Jobs = v
3791	return s
3792}
3793
3794// An object representing a container instance host device.
3795type Device struct {
3796	_ struct{} `type:"structure"`
3797
3798	// The path inside the container at which to expose the host device. By default
3799	// the hostPath value is used.
3800	ContainerPath *string `locationName:"containerPath" type:"string"`
3801
3802	// The path for the device on the host container instance.
3803	//
3804	// HostPath is a required field
3805	HostPath *string `locationName:"hostPath" type:"string" required:"true"`
3806
3807	// The explicit permissions to provide to the container for the device. By default,
3808	// the container has permissions for read, write, and mknod for the device.
3809	Permissions []*string `locationName:"permissions" type:"list"`
3810}
3811
3812// String returns the string representation
3813func (s Device) String() string {
3814	return awsutil.Prettify(s)
3815}
3816
3817// GoString returns the string representation
3818func (s Device) GoString() string {
3819	return s.String()
3820}
3821
3822// Validate inspects the fields of the type to determine if they are valid.
3823func (s *Device) Validate() error {
3824	invalidParams := request.ErrInvalidParams{Context: "Device"}
3825	if s.HostPath == nil {
3826		invalidParams.Add(request.NewErrParamRequired("HostPath"))
3827	}
3828
3829	if invalidParams.Len() > 0 {
3830		return invalidParams
3831	}
3832	return nil
3833}
3834
3835// SetContainerPath sets the ContainerPath field's value.
3836func (s *Device) SetContainerPath(v string) *Device {
3837	s.ContainerPath = &v
3838	return s
3839}
3840
3841// SetHostPath sets the HostPath field's value.
3842func (s *Device) SetHostPath(v string) *Device {
3843	s.HostPath = &v
3844	return s
3845}
3846
3847// SetPermissions sets the Permissions field's value.
3848func (s *Device) SetPermissions(v []*string) *Device {
3849	s.Permissions = v
3850	return s
3851}
3852
3853// Determine whether your data volume persists on the host container instance
3854// and where it is stored. If this parameter is empty, then the Docker daemon
3855// assigns a host path for your data volume, but the data is not guaranteed
3856// to persist after the containers associated with it stop running.
3857type Host struct {
3858	_ struct{} `type:"structure"`
3859
3860	// The path on the host container instance that is presented to the container.
3861	// If this parameter is empty, then the Docker daemon has assigned a host path
3862	// for you. If this parameter contains a file location, then the data volume
3863	// persists at the specified location on the host container instance until you
3864	// delete it manually. If the source path location does not exist on the host
3865	// container instance, the Docker daemon creates it. If the location does exist,
3866	// the contents of the source path folder are exported.
3867	SourcePath *string `locationName:"sourcePath" type:"string"`
3868}
3869
3870// String returns the string representation
3871func (s Host) String() string {
3872	return awsutil.Prettify(s)
3873}
3874
3875// GoString returns the string representation
3876func (s Host) GoString() string {
3877	return s.String()
3878}
3879
3880// SetSourcePath sets the SourcePath field's value.
3881func (s *Host) SetSourcePath(v string) *Host {
3882	s.SourcePath = &v
3883	return s
3884}
3885
3886// An object representing an AWS Batch job definition.
3887type JobDefinition struct {
3888	_ struct{} `type:"structure"`
3889
3890	// An object with various properties specific to container-based jobs.
3891	ContainerProperties *ContainerProperties `locationName:"containerProperties" type:"structure"`
3892
3893	// The Amazon Resource Name (ARN) for the job definition.
3894	//
3895	// JobDefinitionArn is a required field
3896	JobDefinitionArn *string `locationName:"jobDefinitionArn" type:"string" required:"true"`
3897
3898	// The name of the job definition.
3899	//
3900	// JobDefinitionName is a required field
3901	JobDefinitionName *string `locationName:"jobDefinitionName" type:"string" required:"true"`
3902
3903	// An object with various properties specific to multi-node parallel jobs.
3904	NodeProperties *NodeProperties `locationName:"nodeProperties" type:"structure"`
3905
3906	// Default parameters or parameter substitution placeholders that are set in
3907	// the job definition. Parameters are specified as a key-value pair mapping.
3908	// Parameters in a SubmitJob request override any corresponding parameter defaults
3909	// from the job definition. For more information about specifying parameters,
3910	// see Job Definition Parameters (https://docs.aws.amazon.com/batch/latest/userguide/job_definition_parameters.html)
3911	// in the AWS Batch User Guide.
3912	Parameters map[string]*string `locationName:"parameters" type:"map"`
3913
3914	// The retry strategy to use for failed jobs that are submitted with this job
3915	// definition.
3916	RetryStrategy *RetryStrategy `locationName:"retryStrategy" type:"structure"`
3917
3918	// The revision of the job definition.
3919	//
3920	// Revision is a required field
3921	Revision *int64 `locationName:"revision" type:"integer" required:"true"`
3922
3923	// The status of the job definition.
3924	Status *string `locationName:"status" type:"string"`
3925
3926	// The timeout configuration for jobs that are submitted with this job definition.
3927	// You can specify a timeout duration after which AWS Batch terminates your
3928	// jobs if they have not finished.
3929	Timeout *JobTimeout `locationName:"timeout" type:"structure"`
3930
3931	// The type of job definition.
3932	//
3933	// Type is a required field
3934	Type *string `locationName:"type" type:"string" required:"true"`
3935}
3936
3937// String returns the string representation
3938func (s JobDefinition) String() string {
3939	return awsutil.Prettify(s)
3940}
3941
3942// GoString returns the string representation
3943func (s JobDefinition) GoString() string {
3944	return s.String()
3945}
3946
3947// SetContainerProperties sets the ContainerProperties field's value.
3948func (s *JobDefinition) SetContainerProperties(v *ContainerProperties) *JobDefinition {
3949	s.ContainerProperties = v
3950	return s
3951}
3952
3953// SetJobDefinitionArn sets the JobDefinitionArn field's value.
3954func (s *JobDefinition) SetJobDefinitionArn(v string) *JobDefinition {
3955	s.JobDefinitionArn = &v
3956	return s
3957}
3958
3959// SetJobDefinitionName sets the JobDefinitionName field's value.
3960func (s *JobDefinition) SetJobDefinitionName(v string) *JobDefinition {
3961	s.JobDefinitionName = &v
3962	return s
3963}
3964
3965// SetNodeProperties sets the NodeProperties field's value.
3966func (s *JobDefinition) SetNodeProperties(v *NodeProperties) *JobDefinition {
3967	s.NodeProperties = v
3968	return s
3969}
3970
3971// SetParameters sets the Parameters field's value.
3972func (s *JobDefinition) SetParameters(v map[string]*string) *JobDefinition {
3973	s.Parameters = v
3974	return s
3975}
3976
3977// SetRetryStrategy sets the RetryStrategy field's value.
3978func (s *JobDefinition) SetRetryStrategy(v *RetryStrategy) *JobDefinition {
3979	s.RetryStrategy = v
3980	return s
3981}
3982
3983// SetRevision sets the Revision field's value.
3984func (s *JobDefinition) SetRevision(v int64) *JobDefinition {
3985	s.Revision = &v
3986	return s
3987}
3988
3989// SetStatus sets the Status field's value.
3990func (s *JobDefinition) SetStatus(v string) *JobDefinition {
3991	s.Status = &v
3992	return s
3993}
3994
3995// SetTimeout sets the Timeout field's value.
3996func (s *JobDefinition) SetTimeout(v *JobTimeout) *JobDefinition {
3997	s.Timeout = v
3998	return s
3999}
4000
4001// SetType sets the Type field's value.
4002func (s *JobDefinition) SetType(v string) *JobDefinition {
4003	s.Type = &v
4004	return s
4005}
4006
4007// An object representing an AWS Batch job dependency.
4008type JobDependency struct {
4009	_ struct{} `type:"structure"`
4010
4011	// The job ID of the AWS Batch job associated with this dependency.
4012	JobId *string `locationName:"jobId" type:"string"`
4013
4014	// The type of the job dependency.
4015	Type *string `locationName:"type" type:"string" enum:"ArrayJobDependency"`
4016}
4017
4018// String returns the string representation
4019func (s JobDependency) String() string {
4020	return awsutil.Prettify(s)
4021}
4022
4023// GoString returns the string representation
4024func (s JobDependency) GoString() string {
4025	return s.String()
4026}
4027
4028// SetJobId sets the JobId field's value.
4029func (s *JobDependency) SetJobId(v string) *JobDependency {
4030	s.JobId = &v
4031	return s
4032}
4033
4034// SetType sets the Type field's value.
4035func (s *JobDependency) SetType(v string) *JobDependency {
4036	s.Type = &v
4037	return s
4038}
4039
4040// An object representing an AWS Batch job.
4041type JobDetail struct {
4042	_ struct{} `type:"structure"`
4043
4044	// The array properties of the job, if it is an array job.
4045	ArrayProperties *ArrayPropertiesDetail `locationName:"arrayProperties" type:"structure"`
4046
4047	// A list of job attempts associated with this job.
4048	Attempts []*AttemptDetail `locationName:"attempts" type:"list"`
4049
4050	// An object representing the details of the container that is associated with
4051	// the job.
4052	Container *ContainerDetail `locationName:"container" type:"structure"`
4053
4054	// The Unix timestamp (in seconds and milliseconds) for when the job was created.
4055	// For non-array jobs and parent array jobs, this is when the job entered the
4056	// SUBMITTED state (at the time SubmitJob was called). For array child jobs,
4057	// this is when the child job was spawned by its parent and entered the PENDING
4058	// state.
4059	CreatedAt *int64 `locationName:"createdAt" type:"long"`
4060
4061	// A list of job names or IDs on which this job depends.
4062	DependsOn []*JobDependency `locationName:"dependsOn" type:"list"`
4063
4064	// The job definition that is used by this job.
4065	//
4066	// JobDefinition is a required field
4067	JobDefinition *string `locationName:"jobDefinition" type:"string" required:"true"`
4068
4069	// The ID for the job.
4070	//
4071	// JobId is a required field
4072	JobId *string `locationName:"jobId" type:"string" required:"true"`
4073
4074	// The name of the job.
4075	//
4076	// JobName is a required field
4077	JobName *string `locationName:"jobName" type:"string" required:"true"`
4078
4079	// The Amazon Resource Name (ARN) of the job queue with which the job is associated.
4080	//
4081	// JobQueue is a required field
4082	JobQueue *string `locationName:"jobQueue" type:"string" required:"true"`
4083
4084	// An object representing the details of a node that is associated with a multi-node
4085	// parallel job.
4086	NodeDetails *NodeDetails `locationName:"nodeDetails" type:"structure"`
4087
4088	// An object representing the node properties of a multi-node parallel job.
4089	NodeProperties *NodeProperties `locationName:"nodeProperties" type:"structure"`
4090
4091	// Additional parameters passed to the job that replace parameter substitution
4092	// placeholders or override any corresponding parameter defaults from the job
4093	// definition.
4094	Parameters map[string]*string `locationName:"parameters" type:"map"`
4095
4096	// The retry strategy to use for this job if an attempt fails.
4097	RetryStrategy *RetryStrategy `locationName:"retryStrategy" type:"structure"`
4098
4099	// The Unix timestamp (in seconds and milliseconds) for when the job was started
4100	// (when the job transitioned from the STARTING state to the RUNNING state).
4101	//
4102	// StartedAt is a required field
4103	StartedAt *int64 `locationName:"startedAt" type:"long" required:"true"`
4104
4105	// The current status for the job.
4106	//
4107	// If your jobs do not progress to STARTING, see Jobs Stuck in RUNNABLE Status
4108	// (https://docs.aws.amazon.com/batch/latest/userguide/troubleshooting.html#job_stuck_in_runnable)
4109	// in the troubleshooting section of the AWS Batch User Guide.
4110	//
4111	// Status is a required field
4112	Status *string `locationName:"status" type:"string" required:"true" enum:"JobStatus"`
4113
4114	// A short, human-readable string to provide additional details about the current
4115	// status of the job.
4116	StatusReason *string `locationName:"statusReason" type:"string"`
4117
4118	// The Unix timestamp (in seconds and milliseconds) for when the job was stopped
4119	// (when the job transitioned from the RUNNING state to a terminal state, such
4120	// as SUCCEEDED or FAILED).
4121	StoppedAt *int64 `locationName:"stoppedAt" type:"long"`
4122
4123	// The timeout configuration for the job.
4124	Timeout *JobTimeout `locationName:"timeout" type:"structure"`
4125}
4126
4127// String returns the string representation
4128func (s JobDetail) String() string {
4129	return awsutil.Prettify(s)
4130}
4131
4132// GoString returns the string representation
4133func (s JobDetail) GoString() string {
4134	return s.String()
4135}
4136
4137// SetArrayProperties sets the ArrayProperties field's value.
4138func (s *JobDetail) SetArrayProperties(v *ArrayPropertiesDetail) *JobDetail {
4139	s.ArrayProperties = v
4140	return s
4141}
4142
4143// SetAttempts sets the Attempts field's value.
4144func (s *JobDetail) SetAttempts(v []*AttemptDetail) *JobDetail {
4145	s.Attempts = v
4146	return s
4147}
4148
4149// SetContainer sets the Container field's value.
4150func (s *JobDetail) SetContainer(v *ContainerDetail) *JobDetail {
4151	s.Container = v
4152	return s
4153}
4154
4155// SetCreatedAt sets the CreatedAt field's value.
4156func (s *JobDetail) SetCreatedAt(v int64) *JobDetail {
4157	s.CreatedAt = &v
4158	return s
4159}
4160
4161// SetDependsOn sets the DependsOn field's value.
4162func (s *JobDetail) SetDependsOn(v []*JobDependency) *JobDetail {
4163	s.DependsOn = v
4164	return s
4165}
4166
4167// SetJobDefinition sets the JobDefinition field's value.
4168func (s *JobDetail) SetJobDefinition(v string) *JobDetail {
4169	s.JobDefinition = &v
4170	return s
4171}
4172
4173// SetJobId sets the JobId field's value.
4174func (s *JobDetail) SetJobId(v string) *JobDetail {
4175	s.JobId = &v
4176	return s
4177}
4178
4179// SetJobName sets the JobName field's value.
4180func (s *JobDetail) SetJobName(v string) *JobDetail {
4181	s.JobName = &v
4182	return s
4183}
4184
4185// SetJobQueue sets the JobQueue field's value.
4186func (s *JobDetail) SetJobQueue(v string) *JobDetail {
4187	s.JobQueue = &v
4188	return s
4189}
4190
4191// SetNodeDetails sets the NodeDetails field's value.
4192func (s *JobDetail) SetNodeDetails(v *NodeDetails) *JobDetail {
4193	s.NodeDetails = v
4194	return s
4195}
4196
4197// SetNodeProperties sets the NodeProperties field's value.
4198func (s *JobDetail) SetNodeProperties(v *NodeProperties) *JobDetail {
4199	s.NodeProperties = v
4200	return s
4201}
4202
4203// SetParameters sets the Parameters field's value.
4204func (s *JobDetail) SetParameters(v map[string]*string) *JobDetail {
4205	s.Parameters = v
4206	return s
4207}
4208
4209// SetRetryStrategy sets the RetryStrategy field's value.
4210func (s *JobDetail) SetRetryStrategy(v *RetryStrategy) *JobDetail {
4211	s.RetryStrategy = v
4212	return s
4213}
4214
4215// SetStartedAt sets the StartedAt field's value.
4216func (s *JobDetail) SetStartedAt(v int64) *JobDetail {
4217	s.StartedAt = &v
4218	return s
4219}
4220
4221// SetStatus sets the Status field's value.
4222func (s *JobDetail) SetStatus(v string) *JobDetail {
4223	s.Status = &v
4224	return s
4225}
4226
4227// SetStatusReason sets the StatusReason field's value.
4228func (s *JobDetail) SetStatusReason(v string) *JobDetail {
4229	s.StatusReason = &v
4230	return s
4231}
4232
4233// SetStoppedAt sets the StoppedAt field's value.
4234func (s *JobDetail) SetStoppedAt(v int64) *JobDetail {
4235	s.StoppedAt = &v
4236	return s
4237}
4238
4239// SetTimeout sets the Timeout field's value.
4240func (s *JobDetail) SetTimeout(v *JobTimeout) *JobDetail {
4241	s.Timeout = v
4242	return s
4243}
4244
4245// An object representing the details of an AWS Batch job queue.
4246type JobQueueDetail struct {
4247	_ struct{} `type:"structure"`
4248
4249	// The compute environments that are attached to the job queue and the order
4250	// in which job placement is preferred. Compute environments are selected for
4251	// job placement in ascending order.
4252	//
4253	// ComputeEnvironmentOrder is a required field
4254	ComputeEnvironmentOrder []*ComputeEnvironmentOrder `locationName:"computeEnvironmentOrder" type:"list" required:"true"`
4255
4256	// The Amazon Resource Name (ARN) of the job queue.
4257	//
4258	// JobQueueArn is a required field
4259	JobQueueArn *string `locationName:"jobQueueArn" type:"string" required:"true"`
4260
4261	// The name of the job queue.
4262	//
4263	// JobQueueName is a required field
4264	JobQueueName *string `locationName:"jobQueueName" type:"string" required:"true"`
4265
4266	// The priority of the job queue.
4267	//
4268	// Priority is a required field
4269	Priority *int64 `locationName:"priority" type:"integer" required:"true"`
4270
4271	// Describes the ability of the queue to accept new jobs.
4272	//
4273	// State is a required field
4274	State *string `locationName:"state" type:"string" required:"true" enum:"JQState"`
4275
4276	// The status of the job queue (for example, CREATING or VALID).
4277	Status *string `locationName:"status" type:"string" enum:"JQStatus"`
4278
4279	// A short, human-readable string to provide additional details about the current
4280	// status of the job queue.
4281	StatusReason *string `locationName:"statusReason" type:"string"`
4282}
4283
4284// String returns the string representation
4285func (s JobQueueDetail) String() string {
4286	return awsutil.Prettify(s)
4287}
4288
4289// GoString returns the string representation
4290func (s JobQueueDetail) GoString() string {
4291	return s.String()
4292}
4293
4294// SetComputeEnvironmentOrder sets the ComputeEnvironmentOrder field's value.
4295func (s *JobQueueDetail) SetComputeEnvironmentOrder(v []*ComputeEnvironmentOrder) *JobQueueDetail {
4296	s.ComputeEnvironmentOrder = v
4297	return s
4298}
4299
4300// SetJobQueueArn sets the JobQueueArn field's value.
4301func (s *JobQueueDetail) SetJobQueueArn(v string) *JobQueueDetail {
4302	s.JobQueueArn = &v
4303	return s
4304}
4305
4306// SetJobQueueName sets the JobQueueName field's value.
4307func (s *JobQueueDetail) SetJobQueueName(v string) *JobQueueDetail {
4308	s.JobQueueName = &v
4309	return s
4310}
4311
4312// SetPriority sets the Priority field's value.
4313func (s *JobQueueDetail) SetPriority(v int64) *JobQueueDetail {
4314	s.Priority = &v
4315	return s
4316}
4317
4318// SetState sets the State field's value.
4319func (s *JobQueueDetail) SetState(v string) *JobQueueDetail {
4320	s.State = &v
4321	return s
4322}
4323
4324// SetStatus sets the Status field's value.
4325func (s *JobQueueDetail) SetStatus(v string) *JobQueueDetail {
4326	s.Status = &v
4327	return s
4328}
4329
4330// SetStatusReason sets the StatusReason field's value.
4331func (s *JobQueueDetail) SetStatusReason(v string) *JobQueueDetail {
4332	s.StatusReason = &v
4333	return s
4334}
4335
4336// An object representing summary details of a job.
4337type JobSummary struct {
4338	_ struct{} `type:"structure"`
4339
4340	// The array properties of the job, if it is an array job.
4341	ArrayProperties *ArrayPropertiesSummary `locationName:"arrayProperties" type:"structure"`
4342
4343	// An object representing the details of the container that is associated with
4344	// the job.
4345	Container *ContainerSummary `locationName:"container" type:"structure"`
4346
4347	// The Unix timestamp for when the job was created. For non-array jobs and parent
4348	// array jobs, this is when the job entered the SUBMITTED state (at the time
4349	// SubmitJob was called). For array child jobs, this is when the child job was
4350	// spawned by its parent and entered the PENDING state.
4351	CreatedAt *int64 `locationName:"createdAt" type:"long"`
4352
4353	// The ID of the job.
4354	//
4355	// JobId is a required field
4356	JobId *string `locationName:"jobId" type:"string" required:"true"`
4357
4358	// The name of the job.
4359	//
4360	// JobName is a required field
4361	JobName *string `locationName:"jobName" type:"string" required:"true"`
4362
4363	// The node properties for a single node in a job summary list.
4364	NodeProperties *NodePropertiesSummary `locationName:"nodeProperties" type:"structure"`
4365
4366	// The Unix timestamp for when the job was started (when the job transitioned
4367	// from the STARTING state to the RUNNING state).
4368	StartedAt *int64 `locationName:"startedAt" type:"long"`
4369
4370	// The current status for the job.
4371	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
4372
4373	// A short, human-readable string to provide additional details about the current
4374	// status of the job.
4375	StatusReason *string `locationName:"statusReason" type:"string"`
4376
4377	// The Unix timestamp for when the job was stopped (when the job transitioned
4378	// from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED).
4379	StoppedAt *int64 `locationName:"stoppedAt" type:"long"`
4380}
4381
4382// String returns the string representation
4383func (s JobSummary) String() string {
4384	return awsutil.Prettify(s)
4385}
4386
4387// GoString returns the string representation
4388func (s JobSummary) GoString() string {
4389	return s.String()
4390}
4391
4392// SetArrayProperties sets the ArrayProperties field's value.
4393func (s *JobSummary) SetArrayProperties(v *ArrayPropertiesSummary) *JobSummary {
4394	s.ArrayProperties = v
4395	return s
4396}
4397
4398// SetContainer sets the Container field's value.
4399func (s *JobSummary) SetContainer(v *ContainerSummary) *JobSummary {
4400	s.Container = v
4401	return s
4402}
4403
4404// SetCreatedAt sets the CreatedAt field's value.
4405func (s *JobSummary) SetCreatedAt(v int64) *JobSummary {
4406	s.CreatedAt = &v
4407	return s
4408}
4409
4410// SetJobId sets the JobId field's value.
4411func (s *JobSummary) SetJobId(v string) *JobSummary {
4412	s.JobId = &v
4413	return s
4414}
4415
4416// SetJobName sets the JobName field's value.
4417func (s *JobSummary) SetJobName(v string) *JobSummary {
4418	s.JobName = &v
4419	return s
4420}
4421
4422// SetNodeProperties sets the NodeProperties field's value.
4423func (s *JobSummary) SetNodeProperties(v *NodePropertiesSummary) *JobSummary {
4424	s.NodeProperties = v
4425	return s
4426}
4427
4428// SetStartedAt sets the StartedAt field's value.
4429func (s *JobSummary) SetStartedAt(v int64) *JobSummary {
4430	s.StartedAt = &v
4431	return s
4432}
4433
4434// SetStatus sets the Status field's value.
4435func (s *JobSummary) SetStatus(v string) *JobSummary {
4436	s.Status = &v
4437	return s
4438}
4439
4440// SetStatusReason sets the StatusReason field's value.
4441func (s *JobSummary) SetStatusReason(v string) *JobSummary {
4442	s.StatusReason = &v
4443	return s
4444}
4445
4446// SetStoppedAt sets the StoppedAt field's value.
4447func (s *JobSummary) SetStoppedAt(v int64) *JobSummary {
4448	s.StoppedAt = &v
4449	return s
4450}
4451
4452// An object representing a job timeout configuration.
4453type JobTimeout struct {
4454	_ struct{} `type:"structure"`
4455
4456	// The time duration in seconds (measured from the job attempt's startedAt timestamp)
4457	// after which AWS Batch terminates your jobs if they have not finished.
4458	AttemptDurationSeconds *int64 `locationName:"attemptDurationSeconds" type:"integer"`
4459}
4460
4461// String returns the string representation
4462func (s JobTimeout) String() string {
4463	return awsutil.Prettify(s)
4464}
4465
4466// GoString returns the string representation
4467func (s JobTimeout) GoString() string {
4468	return s.String()
4469}
4470
4471// SetAttemptDurationSeconds sets the AttemptDurationSeconds field's value.
4472func (s *JobTimeout) SetAttemptDurationSeconds(v int64) *JobTimeout {
4473	s.AttemptDurationSeconds = &v
4474	return s
4475}
4476
4477// A key-value pair object.
4478type KeyValuePair struct {
4479	_ struct{} `type:"structure"`
4480
4481	// The name of the key-value pair. For environment variables, this is the name
4482	// of the environment variable.
4483	Name *string `locationName:"name" type:"string"`
4484
4485	// The value of the key-value pair. For environment variables, this is the value
4486	// of the environment variable.
4487	Value *string `locationName:"value" type:"string"`
4488}
4489
4490// String returns the string representation
4491func (s KeyValuePair) String() string {
4492	return awsutil.Prettify(s)
4493}
4494
4495// GoString returns the string representation
4496func (s KeyValuePair) GoString() string {
4497	return s.String()
4498}
4499
4500// SetName sets the Name field's value.
4501func (s *KeyValuePair) SetName(v string) *KeyValuePair {
4502	s.Name = &v
4503	return s
4504}
4505
4506// SetValue sets the Value field's value.
4507func (s *KeyValuePair) SetValue(v string) *KeyValuePair {
4508	s.Value = &v
4509	return s
4510}
4511
4512// An object representing a launch template associated with a compute resource.
4513// You must specify either the launch template ID or launch template name in
4514// the request, but not both.
4515type LaunchTemplateSpecification struct {
4516	_ struct{} `type:"structure"`
4517
4518	// The ID of the launch template.
4519	LaunchTemplateId *string `locationName:"launchTemplateId" type:"string"`
4520
4521	// The name of the launch template.
4522	LaunchTemplateName *string `locationName:"launchTemplateName" type:"string"`
4523
4524	// The version number of the launch template.
4525	//
4526	// Default: The default version of the launch template.
4527	Version *string `locationName:"version" type:"string"`
4528}
4529
4530// String returns the string representation
4531func (s LaunchTemplateSpecification) String() string {
4532	return awsutil.Prettify(s)
4533}
4534
4535// GoString returns the string representation
4536func (s LaunchTemplateSpecification) GoString() string {
4537	return s.String()
4538}
4539
4540// SetLaunchTemplateId sets the LaunchTemplateId field's value.
4541func (s *LaunchTemplateSpecification) SetLaunchTemplateId(v string) *LaunchTemplateSpecification {
4542	s.LaunchTemplateId = &v
4543	return s
4544}
4545
4546// SetLaunchTemplateName sets the LaunchTemplateName field's value.
4547func (s *LaunchTemplateSpecification) SetLaunchTemplateName(v string) *LaunchTemplateSpecification {
4548	s.LaunchTemplateName = &v
4549	return s
4550}
4551
4552// SetVersion sets the Version field's value.
4553func (s *LaunchTemplateSpecification) SetVersion(v string) *LaunchTemplateSpecification {
4554	s.Version = &v
4555	return s
4556}
4557
4558// Linux-specific modifications that are applied to the container, such as details
4559// for device mappings.
4560type LinuxParameters struct {
4561	_ struct{} `type:"structure"`
4562
4563	// Any host devices to expose to the container. This parameter maps to Devices
4564	// in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container)
4565	// section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/)
4566	// and the --device option to docker run (https://docs.docker.com/engine/reference/run/).
4567	Devices []*Device `locationName:"devices" type:"list"`
4568}
4569
4570// String returns the string representation
4571func (s LinuxParameters) String() string {
4572	return awsutil.Prettify(s)
4573}
4574
4575// GoString returns the string representation
4576func (s LinuxParameters) GoString() string {
4577	return s.String()
4578}
4579
4580// Validate inspects the fields of the type to determine if they are valid.
4581func (s *LinuxParameters) Validate() error {
4582	invalidParams := request.ErrInvalidParams{Context: "LinuxParameters"}
4583	if s.Devices != nil {
4584		for i, v := range s.Devices {
4585			if v == nil {
4586				continue
4587			}
4588			if err := v.Validate(); err != nil {
4589				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Devices", i), err.(request.ErrInvalidParams))
4590			}
4591		}
4592	}
4593
4594	if invalidParams.Len() > 0 {
4595		return invalidParams
4596	}
4597	return nil
4598}
4599
4600// SetDevices sets the Devices field's value.
4601func (s *LinuxParameters) SetDevices(v []*Device) *LinuxParameters {
4602	s.Devices = v
4603	return s
4604}
4605
4606type ListJobsInput struct {
4607	_ struct{} `type:"structure"`
4608
4609	// The job ID for an array job. Specifying an array job ID with this parameter
4610	// lists all child jobs from within the specified array.
4611	ArrayJobId *string `locationName:"arrayJobId" type:"string"`
4612
4613	// The name or full Amazon Resource Name (ARN) of the job queue with which to
4614	// list jobs.
4615	JobQueue *string `locationName:"jobQueue" type:"string"`
4616
4617	// The job status with which to filter jobs in the specified queue. If you do
4618	// not specify a status, only RUNNING jobs are returned.
4619	JobStatus *string `locationName:"jobStatus" type:"string" enum:"JobStatus"`
4620
4621	// The maximum number of results returned by ListJobs in paginated output. When
4622	// this parameter is used, ListJobs only returns maxResults results in a single
4623	// page along with a nextToken response element. The remaining results of the
4624	// initial request can be seen by sending another ListJobs request with the
4625	// returned nextToken value. This value can be between 1 and 100. If this parameter
4626	// is not used, then ListJobs returns up to 100 results and a nextToken value
4627	// if applicable.
4628	MaxResults *int64 `locationName:"maxResults" type:"integer"`
4629
4630	// The job ID for a multi-node parallel job. Specifying a multi-node parallel
4631	// job ID with this parameter lists all nodes that are associated with the specified
4632	// job.
4633	MultiNodeJobId *string `locationName:"multiNodeJobId" type:"string"`
4634
4635	// The nextToken value returned from a previous paginated ListJobs request where
4636	// maxResults was used and the results exceeded the value of that parameter.
4637	// Pagination continues from the end of the previous results that returned the
4638	// nextToken value. This value is null when there are no more results to return.
4639	//
4640	// This token should be treated as an opaque identifier that is only used to
4641	// retrieve the next items in a list and not for other programmatic purposes.
4642	NextToken *string `locationName:"nextToken" type:"string"`
4643}
4644
4645// String returns the string representation
4646func (s ListJobsInput) String() string {
4647	return awsutil.Prettify(s)
4648}
4649
4650// GoString returns the string representation
4651func (s ListJobsInput) GoString() string {
4652	return s.String()
4653}
4654
4655// SetArrayJobId sets the ArrayJobId field's value.
4656func (s *ListJobsInput) SetArrayJobId(v string) *ListJobsInput {
4657	s.ArrayJobId = &v
4658	return s
4659}
4660
4661// SetJobQueue sets the JobQueue field's value.
4662func (s *ListJobsInput) SetJobQueue(v string) *ListJobsInput {
4663	s.JobQueue = &v
4664	return s
4665}
4666
4667// SetJobStatus sets the JobStatus field's value.
4668func (s *ListJobsInput) SetJobStatus(v string) *ListJobsInput {
4669	s.JobStatus = &v
4670	return s
4671}
4672
4673// SetMaxResults sets the MaxResults field's value.
4674func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput {
4675	s.MaxResults = &v
4676	return s
4677}
4678
4679// SetMultiNodeJobId sets the MultiNodeJobId field's value.
4680func (s *ListJobsInput) SetMultiNodeJobId(v string) *ListJobsInput {
4681	s.MultiNodeJobId = &v
4682	return s
4683}
4684
4685// SetNextToken sets the NextToken field's value.
4686func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
4687	s.NextToken = &v
4688	return s
4689}
4690
4691type ListJobsOutput struct {
4692	_ struct{} `type:"structure"`
4693
4694	// A list of job summaries that match the request.
4695	//
4696	// JobSummaryList is a required field
4697	JobSummaryList []*JobSummary `locationName:"jobSummaryList" type:"list" required:"true"`
4698
4699	// The nextToken value to include in a future ListJobs request. When the results
4700	// of a ListJobs request exceed maxResults, this value can be used to retrieve
4701	// the next page of results. This value is null when there are no more results
4702	// to return.
4703	NextToken *string `locationName:"nextToken" type:"string"`
4704}
4705
4706// String returns the string representation
4707func (s ListJobsOutput) String() string {
4708	return awsutil.Prettify(s)
4709}
4710
4711// GoString returns the string representation
4712func (s ListJobsOutput) GoString() string {
4713	return s.String()
4714}
4715
4716// SetJobSummaryList sets the JobSummaryList field's value.
4717func (s *ListJobsOutput) SetJobSummaryList(v []*JobSummary) *ListJobsOutput {
4718	s.JobSummaryList = v
4719	return s
4720}
4721
4722// SetNextToken sets the NextToken field's value.
4723func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
4724	s.NextToken = &v
4725	return s
4726}
4727
4728// Details on a Docker volume mount point that is used in a job's container
4729// properties. 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)
4730// section of the Docker Remote API and the --volume option to docker run.
4731type MountPoint struct {
4732	_ struct{} `type:"structure"`
4733
4734	// The path on the container at which to mount the host volume.
4735	ContainerPath *string `locationName:"containerPath" type:"string"`
4736
4737	// If this value is true, the container has read-only access to the volume;
4738	// otherwise, the container can write to the volume. The default value is false.
4739	ReadOnly *bool `locationName:"readOnly" type:"boolean"`
4740
4741	// The name of the volume to mount.
4742	SourceVolume *string `locationName:"sourceVolume" type:"string"`
4743}
4744
4745// String returns the string representation
4746func (s MountPoint) String() string {
4747	return awsutil.Prettify(s)
4748}
4749
4750// GoString returns the string representation
4751func (s MountPoint) GoString() string {
4752	return s.String()
4753}
4754
4755// SetContainerPath sets the ContainerPath field's value.
4756func (s *MountPoint) SetContainerPath(v string) *MountPoint {
4757	s.ContainerPath = &v
4758	return s
4759}
4760
4761// SetReadOnly sets the ReadOnly field's value.
4762func (s *MountPoint) SetReadOnly(v bool) *MountPoint {
4763	s.ReadOnly = &v
4764	return s
4765}
4766
4767// SetSourceVolume sets the SourceVolume field's value.
4768func (s *MountPoint) SetSourceVolume(v string) *MountPoint {
4769	s.SourceVolume = &v
4770	return s
4771}
4772
4773// An object representing the elastic network interface for a multi-node parallel
4774// job node.
4775type NetworkInterface struct {
4776	_ struct{} `type:"structure"`
4777
4778	// The attachment ID for the network interface.
4779	AttachmentId *string `locationName:"attachmentId" type:"string"`
4780
4781	// The private IPv6 address for the network interface.
4782	Ipv6Address *string `locationName:"ipv6Address" type:"string"`
4783
4784	// The private IPv4 address for the network interface.
4785	PrivateIpv4Address *string `locationName:"privateIpv4Address" type:"string"`
4786}
4787
4788// String returns the string representation
4789func (s NetworkInterface) String() string {
4790	return awsutil.Prettify(s)
4791}
4792
4793// GoString returns the string representation
4794func (s NetworkInterface) GoString() string {
4795	return s.String()
4796}
4797
4798// SetAttachmentId sets the AttachmentId field's value.
4799func (s *NetworkInterface) SetAttachmentId(v string) *NetworkInterface {
4800	s.AttachmentId = &v
4801	return s
4802}
4803
4804// SetIpv6Address sets the Ipv6Address field's value.
4805func (s *NetworkInterface) SetIpv6Address(v string) *NetworkInterface {
4806	s.Ipv6Address = &v
4807	return s
4808}
4809
4810// SetPrivateIpv4Address sets the PrivateIpv4Address field's value.
4811func (s *NetworkInterface) SetPrivateIpv4Address(v string) *NetworkInterface {
4812	s.PrivateIpv4Address = &v
4813	return s
4814}
4815
4816// An object representing the details of a multi-node parallel job node.
4817type NodeDetails struct {
4818	_ struct{} `type:"structure"`
4819
4820	// Specifies whether the current node is the main node for a multi-node parallel
4821	// job.
4822	IsMainNode *bool `locationName:"isMainNode" type:"boolean"`
4823
4824	// The node index for the node. Node index numbering begins at zero. This index
4825	// is also available on the node with the AWS_BATCH_JOB_NODE_INDEX environment
4826	// variable.
4827	NodeIndex *int64 `locationName:"nodeIndex" type:"integer"`
4828}
4829
4830// String returns the string representation
4831func (s NodeDetails) String() string {
4832	return awsutil.Prettify(s)
4833}
4834
4835// GoString returns the string representation
4836func (s NodeDetails) GoString() string {
4837	return s.String()
4838}
4839
4840// SetIsMainNode sets the IsMainNode field's value.
4841func (s *NodeDetails) SetIsMainNode(v bool) *NodeDetails {
4842	s.IsMainNode = &v
4843	return s
4844}
4845
4846// SetNodeIndex sets the NodeIndex field's value.
4847func (s *NodeDetails) SetNodeIndex(v int64) *NodeDetails {
4848	s.NodeIndex = &v
4849	return s
4850}
4851
4852// Object representing any node overrides to a job definition that is used in
4853// a SubmitJob API operation.
4854type NodeOverrides struct {
4855	_ struct{} `type:"structure"`
4856
4857	// The node property overrides for the job.
4858	NodePropertyOverrides []*NodePropertyOverride `locationName:"nodePropertyOverrides" type:"list"`
4859
4860	// The number of nodes to use with a multi-node parallel job. This value overrides
4861	// the number of nodes that are specified in the job definition. To use this
4862	// override:
4863	//
4864	//    * There must be at least one node range in your job definition that has
4865	//    an open upper boundary (such as : or n:).
4866	//
4867	//    * The lower boundary of the node range specified in the job definition
4868	//    must be fewer than the number of nodes specified in the override.
4869	//
4870	//    * The main node index specified in the job definition must be fewer than
4871	//    the number of nodes specified in the override.
4872	NumNodes *int64 `locationName:"numNodes" type:"integer"`
4873}
4874
4875// String returns the string representation
4876func (s NodeOverrides) String() string {
4877	return awsutil.Prettify(s)
4878}
4879
4880// GoString returns the string representation
4881func (s NodeOverrides) GoString() string {
4882	return s.String()
4883}
4884
4885// Validate inspects the fields of the type to determine if they are valid.
4886func (s *NodeOverrides) Validate() error {
4887	invalidParams := request.ErrInvalidParams{Context: "NodeOverrides"}
4888	if s.NodePropertyOverrides != nil {
4889		for i, v := range s.NodePropertyOverrides {
4890			if v == nil {
4891				continue
4892			}
4893			if err := v.Validate(); err != nil {
4894				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NodePropertyOverrides", i), err.(request.ErrInvalidParams))
4895			}
4896		}
4897	}
4898
4899	if invalidParams.Len() > 0 {
4900		return invalidParams
4901	}
4902	return nil
4903}
4904
4905// SetNodePropertyOverrides sets the NodePropertyOverrides field's value.
4906func (s *NodeOverrides) SetNodePropertyOverrides(v []*NodePropertyOverride) *NodeOverrides {
4907	s.NodePropertyOverrides = v
4908	return s
4909}
4910
4911// SetNumNodes sets the NumNodes field's value.
4912func (s *NodeOverrides) SetNumNodes(v int64) *NodeOverrides {
4913	s.NumNodes = &v
4914	return s
4915}
4916
4917// An object representing the node properties of a multi-node parallel job.
4918type NodeProperties struct {
4919	_ struct{} `type:"structure"`
4920
4921	// Specifies the node index for the main node of a multi-node parallel job.
4922	// This node index value must be fewer than the number of nodes.
4923	//
4924	// MainNode is a required field
4925	MainNode *int64 `locationName:"mainNode" type:"integer" required:"true"`
4926
4927	// A list of node ranges and their properties associated with a multi-node parallel
4928	// job.
4929	//
4930	// NodeRangeProperties is a required field
4931	NodeRangeProperties []*NodeRangeProperty `locationName:"nodeRangeProperties" type:"list" required:"true"`
4932
4933	// The number of nodes associated with a multi-node parallel job.
4934	//
4935	// NumNodes is a required field
4936	NumNodes *int64 `locationName:"numNodes" type:"integer" required:"true"`
4937}
4938
4939// String returns the string representation
4940func (s NodeProperties) String() string {
4941	return awsutil.Prettify(s)
4942}
4943
4944// GoString returns the string representation
4945func (s NodeProperties) GoString() string {
4946	return s.String()
4947}
4948
4949// Validate inspects the fields of the type to determine if they are valid.
4950func (s *NodeProperties) Validate() error {
4951	invalidParams := request.ErrInvalidParams{Context: "NodeProperties"}
4952	if s.MainNode == nil {
4953		invalidParams.Add(request.NewErrParamRequired("MainNode"))
4954	}
4955	if s.NodeRangeProperties == nil {
4956		invalidParams.Add(request.NewErrParamRequired("NodeRangeProperties"))
4957	}
4958	if s.NumNodes == nil {
4959		invalidParams.Add(request.NewErrParamRequired("NumNodes"))
4960	}
4961	if s.NodeRangeProperties != nil {
4962		for i, v := range s.NodeRangeProperties {
4963			if v == nil {
4964				continue
4965			}
4966			if err := v.Validate(); err != nil {
4967				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NodeRangeProperties", i), err.(request.ErrInvalidParams))
4968			}
4969		}
4970	}
4971
4972	if invalidParams.Len() > 0 {
4973		return invalidParams
4974	}
4975	return nil
4976}
4977
4978// SetMainNode sets the MainNode field's value.
4979func (s *NodeProperties) SetMainNode(v int64) *NodeProperties {
4980	s.MainNode = &v
4981	return s
4982}
4983
4984// SetNodeRangeProperties sets the NodeRangeProperties field's value.
4985func (s *NodeProperties) SetNodeRangeProperties(v []*NodeRangeProperty) *NodeProperties {
4986	s.NodeRangeProperties = v
4987	return s
4988}
4989
4990// SetNumNodes sets the NumNodes field's value.
4991func (s *NodeProperties) SetNumNodes(v int64) *NodeProperties {
4992	s.NumNodes = &v
4993	return s
4994}
4995
4996// An object representing the properties of a node that is associated with a
4997// multi-node parallel job.
4998type NodePropertiesSummary struct {
4999	_ struct{} `type:"structure"`
5000
5001	// Specifies whether the current node is the main node for a multi-node parallel
5002	// job.
5003	IsMainNode *bool `locationName:"isMainNode" type:"boolean"`
5004
5005	// The node index for the node. Node index numbering begins at zero. This index
5006	// is also available on the node with the AWS_BATCH_JOB_NODE_INDEX environment
5007	// variable.
5008	NodeIndex *int64 `locationName:"nodeIndex" type:"integer"`
5009
5010	// The number of nodes associated with a multi-node parallel job.
5011	NumNodes *int64 `locationName:"numNodes" type:"integer"`
5012}
5013
5014// String returns the string representation
5015func (s NodePropertiesSummary) String() string {
5016	return awsutil.Prettify(s)
5017}
5018
5019// GoString returns the string representation
5020func (s NodePropertiesSummary) GoString() string {
5021	return s.String()
5022}
5023
5024// SetIsMainNode sets the IsMainNode field's value.
5025func (s *NodePropertiesSummary) SetIsMainNode(v bool) *NodePropertiesSummary {
5026	s.IsMainNode = &v
5027	return s
5028}
5029
5030// SetNodeIndex sets the NodeIndex field's value.
5031func (s *NodePropertiesSummary) SetNodeIndex(v int64) *NodePropertiesSummary {
5032	s.NodeIndex = &v
5033	return s
5034}
5035
5036// SetNumNodes sets the NumNodes field's value.
5037func (s *NodePropertiesSummary) SetNumNodes(v int64) *NodePropertiesSummary {
5038	s.NumNodes = &v
5039	return s
5040}
5041
5042// Object representing any node overrides to a job definition that is used in
5043// a SubmitJob API operation.
5044type NodePropertyOverride struct {
5045	_ struct{} `type:"structure"`
5046
5047	// The overrides that should be sent to a node range.
5048	ContainerOverrides *ContainerOverrides `locationName:"containerOverrides" type:"structure"`
5049
5050	// The range of nodes, using node index values, with which to override. A range
5051	// of 0:3 indicates nodes with index values of 0 through 3. If the starting
5052	// range value is omitted (:n), then 0 is used to start the range. If the ending
5053	// range value is omitted (n:), then the highest possible node index is used
5054	// to end the range.
5055	//
5056	// TargetNodes is a required field
5057	TargetNodes *string `locationName:"targetNodes" type:"string" required:"true"`
5058}
5059
5060// String returns the string representation
5061func (s NodePropertyOverride) String() string {
5062	return awsutil.Prettify(s)
5063}
5064
5065// GoString returns the string representation
5066func (s NodePropertyOverride) GoString() string {
5067	return s.String()
5068}
5069
5070// Validate inspects the fields of the type to determine if they are valid.
5071func (s *NodePropertyOverride) Validate() error {
5072	invalidParams := request.ErrInvalidParams{Context: "NodePropertyOverride"}
5073	if s.TargetNodes == nil {
5074		invalidParams.Add(request.NewErrParamRequired("TargetNodes"))
5075	}
5076	if s.ContainerOverrides != nil {
5077		if err := s.ContainerOverrides.Validate(); err != nil {
5078			invalidParams.AddNested("ContainerOverrides", err.(request.ErrInvalidParams))
5079		}
5080	}
5081
5082	if invalidParams.Len() > 0 {
5083		return invalidParams
5084	}
5085	return nil
5086}
5087
5088// SetContainerOverrides sets the ContainerOverrides field's value.
5089func (s *NodePropertyOverride) SetContainerOverrides(v *ContainerOverrides) *NodePropertyOverride {
5090	s.ContainerOverrides = v
5091	return s
5092}
5093
5094// SetTargetNodes sets the TargetNodes field's value.
5095func (s *NodePropertyOverride) SetTargetNodes(v string) *NodePropertyOverride {
5096	s.TargetNodes = &v
5097	return s
5098}
5099
5100// An object representing the properties of the node range for a multi-node
5101// parallel job.
5102type NodeRangeProperty struct {
5103	_ struct{} `type:"structure"`
5104
5105	// The container details for the node range.
5106	Container *ContainerProperties `locationName:"container" type:"structure"`
5107
5108	// The range of nodes, using node index values. A range of 0:3 indicates nodes
5109	// with index values of 0 through 3. If the starting range value is omitted
5110	// (:n), then 0 is used to start the range. If the ending range value is omitted
5111	// (n:), then the highest possible node index is used to end the range. Your
5112	// accumulative node ranges must account for all nodes (0:n). You may nest node
5113	// ranges, for example 0:10 and 4:5, in which case the 4:5 range properties
5114	// override the 0:10 properties.
5115	//
5116	// TargetNodes is a required field
5117	TargetNodes *string `locationName:"targetNodes" type:"string" required:"true"`
5118}
5119
5120// String returns the string representation
5121func (s NodeRangeProperty) String() string {
5122	return awsutil.Prettify(s)
5123}
5124
5125// GoString returns the string representation
5126func (s NodeRangeProperty) GoString() string {
5127	return s.String()
5128}
5129
5130// Validate inspects the fields of the type to determine if they are valid.
5131func (s *NodeRangeProperty) Validate() error {
5132	invalidParams := request.ErrInvalidParams{Context: "NodeRangeProperty"}
5133	if s.TargetNodes == nil {
5134		invalidParams.Add(request.NewErrParamRequired("TargetNodes"))
5135	}
5136	if s.Container != nil {
5137		if err := s.Container.Validate(); err != nil {
5138			invalidParams.AddNested("Container", err.(request.ErrInvalidParams))
5139		}
5140	}
5141
5142	if invalidParams.Len() > 0 {
5143		return invalidParams
5144	}
5145	return nil
5146}
5147
5148// SetContainer sets the Container field's value.
5149func (s *NodeRangeProperty) SetContainer(v *ContainerProperties) *NodeRangeProperty {
5150	s.Container = v
5151	return s
5152}
5153
5154// SetTargetNodes sets the TargetNodes field's value.
5155func (s *NodeRangeProperty) SetTargetNodes(v string) *NodeRangeProperty {
5156	s.TargetNodes = &v
5157	return s
5158}
5159
5160type RegisterJobDefinitionInput struct {
5161	_ struct{} `type:"structure"`
5162
5163	// An object with various properties specific to single-node container-based
5164	// jobs. If the job definition's type parameter is container, then you must
5165	// specify either containerProperties or nodeProperties.
5166	ContainerProperties *ContainerProperties `locationName:"containerProperties" type:"structure"`
5167
5168	// The name of the job definition to register. Up to 128 letters (uppercase
5169	// and lowercase), numbers, hyphens, and underscores are allowed.
5170	//
5171	// JobDefinitionName is a required field
5172	JobDefinitionName *string `locationName:"jobDefinitionName" type:"string" required:"true"`
5173
5174	// An object with various properties specific to multi-node parallel jobs. If
5175	// you specify node properties for a job, it becomes a multi-node parallel job.
5176	// For more information, see Multi-node Parallel Jobs (https://docs.aws.amazon.com/batch/latest/userguide/multi-node-parallel-jobs.html)
5177	// in the AWS Batch User Guide. If the job definition's type parameter is container,
5178	// then you must specify either containerProperties or nodeProperties.
5179	NodeProperties *NodeProperties `locationName:"nodeProperties" type:"structure"`
5180
5181	// Default parameter substitution placeholders to set in the job definition.
5182	// Parameters are specified as a key-value pair mapping. Parameters in a SubmitJob
5183	// request override any corresponding parameter defaults from the job definition.
5184	Parameters map[string]*string `locationName:"parameters" type:"map"`
5185
5186	// The retry strategy to use for failed jobs that are submitted with this job
5187	// definition. Any retry strategy that is specified during a SubmitJob operation
5188	// overrides the retry strategy defined here. If a job is terminated due to
5189	// a timeout, it is not retried.
5190	RetryStrategy *RetryStrategy `locationName:"retryStrategy" type:"structure"`
5191
5192	// The timeout configuration for jobs that are submitted with this job definition,
5193	// after which AWS Batch terminates your jobs if they have not finished. If
5194	// a job is terminated due to a timeout, it is not retried. The minimum value
5195	// for the timeout is 60 seconds. Any timeout configuration that is specified
5196	// during a SubmitJob operation overrides the timeout configuration defined
5197	// here. For more information, see Job Timeouts (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/job_timeouts.html)
5198	// in the Amazon Elastic Container Service Developer Guide.
5199	Timeout *JobTimeout `locationName:"timeout" type:"structure"`
5200
5201	// The type of job definition.
5202	//
5203	// Type is a required field
5204	Type *string `locationName:"type" type:"string" required:"true" enum:"JobDefinitionType"`
5205}
5206
5207// String returns the string representation
5208func (s RegisterJobDefinitionInput) String() string {
5209	return awsutil.Prettify(s)
5210}
5211
5212// GoString returns the string representation
5213func (s RegisterJobDefinitionInput) GoString() string {
5214	return s.String()
5215}
5216
5217// Validate inspects the fields of the type to determine if they are valid.
5218func (s *RegisterJobDefinitionInput) Validate() error {
5219	invalidParams := request.ErrInvalidParams{Context: "RegisterJobDefinitionInput"}
5220	if s.JobDefinitionName == nil {
5221		invalidParams.Add(request.NewErrParamRequired("JobDefinitionName"))
5222	}
5223	if s.Type == nil {
5224		invalidParams.Add(request.NewErrParamRequired("Type"))
5225	}
5226	if s.ContainerProperties != nil {
5227		if err := s.ContainerProperties.Validate(); err != nil {
5228			invalidParams.AddNested("ContainerProperties", err.(request.ErrInvalidParams))
5229		}
5230	}
5231	if s.NodeProperties != nil {
5232		if err := s.NodeProperties.Validate(); err != nil {
5233			invalidParams.AddNested("NodeProperties", err.(request.ErrInvalidParams))
5234		}
5235	}
5236
5237	if invalidParams.Len() > 0 {
5238		return invalidParams
5239	}
5240	return nil
5241}
5242
5243// SetContainerProperties sets the ContainerProperties field's value.
5244func (s *RegisterJobDefinitionInput) SetContainerProperties(v *ContainerProperties) *RegisterJobDefinitionInput {
5245	s.ContainerProperties = v
5246	return s
5247}
5248
5249// SetJobDefinitionName sets the JobDefinitionName field's value.
5250func (s *RegisterJobDefinitionInput) SetJobDefinitionName(v string) *RegisterJobDefinitionInput {
5251	s.JobDefinitionName = &v
5252	return s
5253}
5254
5255// SetNodeProperties sets the NodeProperties field's value.
5256func (s *RegisterJobDefinitionInput) SetNodeProperties(v *NodeProperties) *RegisterJobDefinitionInput {
5257	s.NodeProperties = v
5258	return s
5259}
5260
5261// SetParameters sets the Parameters field's value.
5262func (s *RegisterJobDefinitionInput) SetParameters(v map[string]*string) *RegisterJobDefinitionInput {
5263	s.Parameters = v
5264	return s
5265}
5266
5267// SetRetryStrategy sets the RetryStrategy field's value.
5268func (s *RegisterJobDefinitionInput) SetRetryStrategy(v *RetryStrategy) *RegisterJobDefinitionInput {
5269	s.RetryStrategy = v
5270	return s
5271}
5272
5273// SetTimeout sets the Timeout field's value.
5274func (s *RegisterJobDefinitionInput) SetTimeout(v *JobTimeout) *RegisterJobDefinitionInput {
5275	s.Timeout = v
5276	return s
5277}
5278
5279// SetType sets the Type field's value.
5280func (s *RegisterJobDefinitionInput) SetType(v string) *RegisterJobDefinitionInput {
5281	s.Type = &v
5282	return s
5283}
5284
5285type RegisterJobDefinitionOutput struct {
5286	_ struct{} `type:"structure"`
5287
5288	// The Amazon Resource Name (ARN) of the job definition.
5289	//
5290	// JobDefinitionArn is a required field
5291	JobDefinitionArn *string `locationName:"jobDefinitionArn" type:"string" required:"true"`
5292
5293	// The name of the job definition.
5294	//
5295	// JobDefinitionName is a required field
5296	JobDefinitionName *string `locationName:"jobDefinitionName" type:"string" required:"true"`
5297
5298	// The revision of the job definition.
5299	//
5300	// Revision is a required field
5301	Revision *int64 `locationName:"revision" type:"integer" required:"true"`
5302}
5303
5304// String returns the string representation
5305func (s RegisterJobDefinitionOutput) String() string {
5306	return awsutil.Prettify(s)
5307}
5308
5309// GoString returns the string representation
5310func (s RegisterJobDefinitionOutput) GoString() string {
5311	return s.String()
5312}
5313
5314// SetJobDefinitionArn sets the JobDefinitionArn field's value.
5315func (s *RegisterJobDefinitionOutput) SetJobDefinitionArn(v string) *RegisterJobDefinitionOutput {
5316	s.JobDefinitionArn = &v
5317	return s
5318}
5319
5320// SetJobDefinitionName sets the JobDefinitionName field's value.
5321func (s *RegisterJobDefinitionOutput) SetJobDefinitionName(v string) *RegisterJobDefinitionOutput {
5322	s.JobDefinitionName = &v
5323	return s
5324}
5325
5326// SetRevision sets the Revision field's value.
5327func (s *RegisterJobDefinitionOutput) SetRevision(v int64) *RegisterJobDefinitionOutput {
5328	s.Revision = &v
5329	return s
5330}
5331
5332// The type and amount of a resource to assign to a container. Currently, the
5333// only supported resource type is GPU.
5334type ResourceRequirement struct {
5335	_ struct{} `type:"structure"`
5336
5337	// The type of resource to assign to a container. Currently, the only supported
5338	// resource type is GPU.
5339	//
5340	// Type is a required field
5341	Type *string `locationName:"type" type:"string" required:"true" enum:"ResourceType"`
5342
5343	// The number of physical GPUs to reserve for the container. The number of GPUs
5344	// reserved for all containers in a job should not exceed the number of available
5345	// GPUs on the compute resource that the job is launched on.
5346	//
5347	// Value is a required field
5348	Value *string `locationName:"value" type:"string" required:"true"`
5349}
5350
5351// String returns the string representation
5352func (s ResourceRequirement) String() string {
5353	return awsutil.Prettify(s)
5354}
5355
5356// GoString returns the string representation
5357func (s ResourceRequirement) GoString() string {
5358	return s.String()
5359}
5360
5361// Validate inspects the fields of the type to determine if they are valid.
5362func (s *ResourceRequirement) Validate() error {
5363	invalidParams := request.ErrInvalidParams{Context: "ResourceRequirement"}
5364	if s.Type == nil {
5365		invalidParams.Add(request.NewErrParamRequired("Type"))
5366	}
5367	if s.Value == nil {
5368		invalidParams.Add(request.NewErrParamRequired("Value"))
5369	}
5370
5371	if invalidParams.Len() > 0 {
5372		return invalidParams
5373	}
5374	return nil
5375}
5376
5377// SetType sets the Type field's value.
5378func (s *ResourceRequirement) SetType(v string) *ResourceRequirement {
5379	s.Type = &v
5380	return s
5381}
5382
5383// SetValue sets the Value field's value.
5384func (s *ResourceRequirement) SetValue(v string) *ResourceRequirement {
5385	s.Value = &v
5386	return s
5387}
5388
5389// The retry strategy associated with a job.
5390type RetryStrategy struct {
5391	_ struct{} `type:"structure"`
5392
5393	// The number of times to move a job to the RUNNABLE status. You may specify
5394	// between 1 and 10 attempts. If the value of attempts is greater than one,
5395	// the job is retried on failure the same number of attempts as the value.
5396	Attempts *int64 `locationName:"attempts" type:"integer"`
5397}
5398
5399// String returns the string representation
5400func (s RetryStrategy) String() string {
5401	return awsutil.Prettify(s)
5402}
5403
5404// GoString returns the string representation
5405func (s RetryStrategy) GoString() string {
5406	return s.String()
5407}
5408
5409// SetAttempts sets the Attempts field's value.
5410func (s *RetryStrategy) SetAttempts(v int64) *RetryStrategy {
5411	s.Attempts = &v
5412	return s
5413}
5414
5415type SubmitJobInput struct {
5416	_ struct{} `type:"structure"`
5417
5418	// The array properties for the submitted job, such as the size of the array.
5419	// The array size can be between 2 and 10,000. If you specify array properties
5420	// for a job, it becomes an array job. For more information, see Array Jobs
5421	// (https://docs.aws.amazon.com/batch/latest/userguide/array_jobs.html) in the
5422	// AWS Batch User Guide.
5423	ArrayProperties *ArrayProperties `locationName:"arrayProperties" type:"structure"`
5424
5425	// A list of container overrides in JSON format that specify the name of a container
5426	// in the specified job definition and the overrides it should receive. You
5427	// can override the default command for a container (that is specified in the
5428	// job definition or the Docker image) with a command override. You can also
5429	// override existing environment variables (that are specified in the job definition
5430	// or Docker image) on a container or add new environment variables to it with
5431	// an environment override.
5432	ContainerOverrides *ContainerOverrides `locationName:"containerOverrides" type:"structure"`
5433
5434	// A list of dependencies for the job. A job can depend upon a maximum of 20
5435	// jobs. You can specify a SEQUENTIAL type dependency without specifying a job
5436	// ID for array jobs so that each child array job completes sequentially, starting
5437	// at index 0. You can also specify an N_TO_N type dependency with a job ID
5438	// for array jobs. In that case, each index child of this job must wait for
5439	// the corresponding index child of each dependency to complete before it can
5440	// begin.
5441	DependsOn []*JobDependency `locationName:"dependsOn" type:"list"`
5442
5443	// The job definition used by this job. This value can be either a name:revision
5444	// or the Amazon Resource Name (ARN) for the job definition.
5445	//
5446	// JobDefinition is a required field
5447	JobDefinition *string `locationName:"jobDefinition" type:"string" required:"true"`
5448
5449	// The name of the job. The first character must be alphanumeric, and up to
5450	// 128 letters (uppercase and lowercase), numbers, hyphens, and underscores
5451	// are allowed.
5452	//
5453	// JobName is a required field
5454	JobName *string `locationName:"jobName" type:"string" required:"true"`
5455
5456	// The job queue into which the job is submitted. You can specify either the
5457	// name or the Amazon Resource Name (ARN) of the queue.
5458	//
5459	// JobQueue is a required field
5460	JobQueue *string `locationName:"jobQueue" type:"string" required:"true"`
5461
5462	// A list of node overrides in JSON format that specify the node range to target
5463	// and the container overrides for that node range.
5464	NodeOverrides *NodeOverrides `locationName:"nodeOverrides" type:"structure"`
5465
5466	// Additional parameters passed to the job that replace parameter substitution
5467	// placeholders that are set in the job definition. Parameters are specified
5468	// as a key and value pair mapping. Parameters in a SubmitJob request override
5469	// any corresponding parameter defaults from the job definition.
5470	Parameters map[string]*string `locationName:"parameters" type:"map"`
5471
5472	// The retry strategy to use for failed jobs from this SubmitJob operation.
5473	// When a retry strategy is specified here, it overrides the retry strategy
5474	// defined in the job definition.
5475	RetryStrategy *RetryStrategy `locationName:"retryStrategy" type:"structure"`
5476
5477	// The timeout configuration for this SubmitJob operation. You can specify a
5478	// timeout duration after which AWS Batch terminates your jobs if they have
5479	// not finished. If a job is terminated due to a timeout, it is not retried.
5480	// The minimum value for the timeout is 60 seconds. This configuration overrides
5481	// any timeout configuration specified in the job definition. For array jobs,
5482	// child jobs have the same timeout configuration as the parent job. For more
5483	// information, see Job Timeouts (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/job_timeouts.html)
5484	// in the Amazon Elastic Container Service Developer Guide.
5485	Timeout *JobTimeout `locationName:"timeout" type:"structure"`
5486}
5487
5488// String returns the string representation
5489func (s SubmitJobInput) String() string {
5490	return awsutil.Prettify(s)
5491}
5492
5493// GoString returns the string representation
5494func (s SubmitJobInput) GoString() string {
5495	return s.String()
5496}
5497
5498// Validate inspects the fields of the type to determine if they are valid.
5499func (s *SubmitJobInput) Validate() error {
5500	invalidParams := request.ErrInvalidParams{Context: "SubmitJobInput"}
5501	if s.JobDefinition == nil {
5502		invalidParams.Add(request.NewErrParamRequired("JobDefinition"))
5503	}
5504	if s.JobName == nil {
5505		invalidParams.Add(request.NewErrParamRequired("JobName"))
5506	}
5507	if s.JobQueue == nil {
5508		invalidParams.Add(request.NewErrParamRequired("JobQueue"))
5509	}
5510	if s.ContainerOverrides != nil {
5511		if err := s.ContainerOverrides.Validate(); err != nil {
5512			invalidParams.AddNested("ContainerOverrides", err.(request.ErrInvalidParams))
5513		}
5514	}
5515	if s.NodeOverrides != nil {
5516		if err := s.NodeOverrides.Validate(); err != nil {
5517			invalidParams.AddNested("NodeOverrides", err.(request.ErrInvalidParams))
5518		}
5519	}
5520
5521	if invalidParams.Len() > 0 {
5522		return invalidParams
5523	}
5524	return nil
5525}
5526
5527// SetArrayProperties sets the ArrayProperties field's value.
5528func (s *SubmitJobInput) SetArrayProperties(v *ArrayProperties) *SubmitJobInput {
5529	s.ArrayProperties = v
5530	return s
5531}
5532
5533// SetContainerOverrides sets the ContainerOverrides field's value.
5534func (s *SubmitJobInput) SetContainerOverrides(v *ContainerOverrides) *SubmitJobInput {
5535	s.ContainerOverrides = v
5536	return s
5537}
5538
5539// SetDependsOn sets the DependsOn field's value.
5540func (s *SubmitJobInput) SetDependsOn(v []*JobDependency) *SubmitJobInput {
5541	s.DependsOn = v
5542	return s
5543}
5544
5545// SetJobDefinition sets the JobDefinition field's value.
5546func (s *SubmitJobInput) SetJobDefinition(v string) *SubmitJobInput {
5547	s.JobDefinition = &v
5548	return s
5549}
5550
5551// SetJobName sets the JobName field's value.
5552func (s *SubmitJobInput) SetJobName(v string) *SubmitJobInput {
5553	s.JobName = &v
5554	return s
5555}
5556
5557// SetJobQueue sets the JobQueue field's value.
5558func (s *SubmitJobInput) SetJobQueue(v string) *SubmitJobInput {
5559	s.JobQueue = &v
5560	return s
5561}
5562
5563// SetNodeOverrides sets the NodeOverrides field's value.
5564func (s *SubmitJobInput) SetNodeOverrides(v *NodeOverrides) *SubmitJobInput {
5565	s.NodeOverrides = v
5566	return s
5567}
5568
5569// SetParameters sets the Parameters field's value.
5570func (s *SubmitJobInput) SetParameters(v map[string]*string) *SubmitJobInput {
5571	s.Parameters = v
5572	return s
5573}
5574
5575// SetRetryStrategy sets the RetryStrategy field's value.
5576func (s *SubmitJobInput) SetRetryStrategy(v *RetryStrategy) *SubmitJobInput {
5577	s.RetryStrategy = v
5578	return s
5579}
5580
5581// SetTimeout sets the Timeout field's value.
5582func (s *SubmitJobInput) SetTimeout(v *JobTimeout) *SubmitJobInput {
5583	s.Timeout = v
5584	return s
5585}
5586
5587type SubmitJobOutput struct {
5588	_ struct{} `type:"structure"`
5589
5590	// The unique identifier for the job.
5591	//
5592	// JobId is a required field
5593	JobId *string `locationName:"jobId" type:"string" required:"true"`
5594
5595	// The name of the job.
5596	//
5597	// JobName is a required field
5598	JobName *string `locationName:"jobName" type:"string" required:"true"`
5599}
5600
5601// String returns the string representation
5602func (s SubmitJobOutput) String() string {
5603	return awsutil.Prettify(s)
5604}
5605
5606// GoString returns the string representation
5607func (s SubmitJobOutput) GoString() string {
5608	return s.String()
5609}
5610
5611// SetJobId sets the JobId field's value.
5612func (s *SubmitJobOutput) SetJobId(v string) *SubmitJobOutput {
5613	s.JobId = &v
5614	return s
5615}
5616
5617// SetJobName sets the JobName field's value.
5618func (s *SubmitJobOutput) SetJobName(v string) *SubmitJobOutput {
5619	s.JobName = &v
5620	return s
5621}
5622
5623type TerminateJobInput struct {
5624	_ struct{} `type:"structure"`
5625
5626	// The AWS Batch job ID of the job to terminate.
5627	//
5628	// JobId is a required field
5629	JobId *string `locationName:"jobId" type:"string" required:"true"`
5630
5631	// A message to attach to the job that explains the reason for canceling it.
5632	// This message is returned by future DescribeJobs operations on the job. This
5633	// message is also recorded in the AWS Batch activity logs.
5634	//
5635	// Reason is a required field
5636	Reason *string `locationName:"reason" type:"string" required:"true"`
5637}
5638
5639// String returns the string representation
5640func (s TerminateJobInput) String() string {
5641	return awsutil.Prettify(s)
5642}
5643
5644// GoString returns the string representation
5645func (s TerminateJobInput) GoString() string {
5646	return s.String()
5647}
5648
5649// Validate inspects the fields of the type to determine if they are valid.
5650func (s *TerminateJobInput) Validate() error {
5651	invalidParams := request.ErrInvalidParams{Context: "TerminateJobInput"}
5652	if s.JobId == nil {
5653		invalidParams.Add(request.NewErrParamRequired("JobId"))
5654	}
5655	if s.Reason == nil {
5656		invalidParams.Add(request.NewErrParamRequired("Reason"))
5657	}
5658
5659	if invalidParams.Len() > 0 {
5660		return invalidParams
5661	}
5662	return nil
5663}
5664
5665// SetJobId sets the JobId field's value.
5666func (s *TerminateJobInput) SetJobId(v string) *TerminateJobInput {
5667	s.JobId = &v
5668	return s
5669}
5670
5671// SetReason sets the Reason field's value.
5672func (s *TerminateJobInput) SetReason(v string) *TerminateJobInput {
5673	s.Reason = &v
5674	return s
5675}
5676
5677type TerminateJobOutput struct {
5678	_ struct{} `type:"structure"`
5679}
5680
5681// String returns the string representation
5682func (s TerminateJobOutput) String() string {
5683	return awsutil.Prettify(s)
5684}
5685
5686// GoString returns the string representation
5687func (s TerminateJobOutput) GoString() string {
5688	return s.String()
5689}
5690
5691// The ulimit settings to pass to the container.
5692type Ulimit struct {
5693	_ struct{} `type:"structure"`
5694
5695	// The hard limit for the ulimit type.
5696	//
5697	// HardLimit is a required field
5698	HardLimit *int64 `locationName:"hardLimit" type:"integer" required:"true"`
5699
5700	// The type of the ulimit.
5701	//
5702	// Name is a required field
5703	Name *string `locationName:"name" type:"string" required:"true"`
5704
5705	// The soft limit for the ulimit type.
5706	//
5707	// SoftLimit is a required field
5708	SoftLimit *int64 `locationName:"softLimit" type:"integer" required:"true"`
5709}
5710
5711// String returns the string representation
5712func (s Ulimit) String() string {
5713	return awsutil.Prettify(s)
5714}
5715
5716// GoString returns the string representation
5717func (s Ulimit) GoString() string {
5718	return s.String()
5719}
5720
5721// Validate inspects the fields of the type to determine if they are valid.
5722func (s *Ulimit) Validate() error {
5723	invalidParams := request.ErrInvalidParams{Context: "Ulimit"}
5724	if s.HardLimit == nil {
5725		invalidParams.Add(request.NewErrParamRequired("HardLimit"))
5726	}
5727	if s.Name == nil {
5728		invalidParams.Add(request.NewErrParamRequired("Name"))
5729	}
5730	if s.SoftLimit == nil {
5731		invalidParams.Add(request.NewErrParamRequired("SoftLimit"))
5732	}
5733
5734	if invalidParams.Len() > 0 {
5735		return invalidParams
5736	}
5737	return nil
5738}
5739
5740// SetHardLimit sets the HardLimit field's value.
5741func (s *Ulimit) SetHardLimit(v int64) *Ulimit {
5742	s.HardLimit = &v
5743	return s
5744}
5745
5746// SetName sets the Name field's value.
5747func (s *Ulimit) SetName(v string) *Ulimit {
5748	s.Name = &v
5749	return s
5750}
5751
5752// SetSoftLimit sets the SoftLimit field's value.
5753func (s *Ulimit) SetSoftLimit(v int64) *Ulimit {
5754	s.SoftLimit = &v
5755	return s
5756}
5757
5758type UpdateComputeEnvironmentInput struct {
5759	_ struct{} `type:"structure"`
5760
5761	// The name or full Amazon Resource Name (ARN) of the compute environment to
5762	// update.
5763	//
5764	// ComputeEnvironment is a required field
5765	ComputeEnvironment *string `locationName:"computeEnvironment" type:"string" required:"true"`
5766
5767	// Details of the compute resources managed by the compute environment. Required
5768	// for a managed compute environment.
5769	ComputeResources *ComputeResourceUpdate `locationName:"computeResources" type:"structure"`
5770
5771	// The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch
5772	// to make calls to other AWS services on your behalf.
5773	//
5774	// If your specified role has a path other than /, then you must either specify
5775	// the full role ARN (this is recommended) or prefix the role name with the
5776	// path.
5777	//
5778	// Depending on how you created your AWS Batch service role, its ARN may contain
5779	// the service-role path prefix. When you only specify the name of the service
5780	// role, AWS Batch assumes that your ARN does not use the service-role path
5781	// prefix. Because of this, we recommend that you specify the full ARN of your
5782	// service role when you create compute environments.
5783	ServiceRole *string `locationName:"serviceRole" type:"string"`
5784
5785	// The state of the compute environment. Compute environments in the ENABLED
5786	// state can accept jobs from a queue and scale in or out automatically based
5787	// on the workload demand of its associated queues.
5788	State *string `locationName:"state" type:"string" enum:"CEState"`
5789}
5790
5791// String returns the string representation
5792func (s UpdateComputeEnvironmentInput) String() string {
5793	return awsutil.Prettify(s)
5794}
5795
5796// GoString returns the string representation
5797func (s UpdateComputeEnvironmentInput) GoString() string {
5798	return s.String()
5799}
5800
5801// Validate inspects the fields of the type to determine if they are valid.
5802func (s *UpdateComputeEnvironmentInput) Validate() error {
5803	invalidParams := request.ErrInvalidParams{Context: "UpdateComputeEnvironmentInput"}
5804	if s.ComputeEnvironment == nil {
5805		invalidParams.Add(request.NewErrParamRequired("ComputeEnvironment"))
5806	}
5807
5808	if invalidParams.Len() > 0 {
5809		return invalidParams
5810	}
5811	return nil
5812}
5813
5814// SetComputeEnvironment sets the ComputeEnvironment field's value.
5815func (s *UpdateComputeEnvironmentInput) SetComputeEnvironment(v string) *UpdateComputeEnvironmentInput {
5816	s.ComputeEnvironment = &v
5817	return s
5818}
5819
5820// SetComputeResources sets the ComputeResources field's value.
5821func (s *UpdateComputeEnvironmentInput) SetComputeResources(v *ComputeResourceUpdate) *UpdateComputeEnvironmentInput {
5822	s.ComputeResources = v
5823	return s
5824}
5825
5826// SetServiceRole sets the ServiceRole field's value.
5827func (s *UpdateComputeEnvironmentInput) SetServiceRole(v string) *UpdateComputeEnvironmentInput {
5828	s.ServiceRole = &v
5829	return s
5830}
5831
5832// SetState sets the State field's value.
5833func (s *UpdateComputeEnvironmentInput) SetState(v string) *UpdateComputeEnvironmentInput {
5834	s.State = &v
5835	return s
5836}
5837
5838type UpdateComputeEnvironmentOutput struct {
5839	_ struct{} `type:"structure"`
5840
5841	// The Amazon Resource Name (ARN) of the compute environment.
5842	ComputeEnvironmentArn *string `locationName:"computeEnvironmentArn" type:"string"`
5843
5844	// The name of the compute environment.
5845	ComputeEnvironmentName *string `locationName:"computeEnvironmentName" type:"string"`
5846}
5847
5848// String returns the string representation
5849func (s UpdateComputeEnvironmentOutput) String() string {
5850	return awsutil.Prettify(s)
5851}
5852
5853// GoString returns the string representation
5854func (s UpdateComputeEnvironmentOutput) GoString() string {
5855	return s.String()
5856}
5857
5858// SetComputeEnvironmentArn sets the ComputeEnvironmentArn field's value.
5859func (s *UpdateComputeEnvironmentOutput) SetComputeEnvironmentArn(v string) *UpdateComputeEnvironmentOutput {
5860	s.ComputeEnvironmentArn = &v
5861	return s
5862}
5863
5864// SetComputeEnvironmentName sets the ComputeEnvironmentName field's value.
5865func (s *UpdateComputeEnvironmentOutput) SetComputeEnvironmentName(v string) *UpdateComputeEnvironmentOutput {
5866	s.ComputeEnvironmentName = &v
5867	return s
5868}
5869
5870type UpdateJobQueueInput struct {
5871	_ struct{} `type:"structure"`
5872
5873	// Details the set of compute environments mapped to a job queue and their order
5874	// relative to each other. This is one of the parameters used by the job scheduler
5875	// to determine which compute environment should execute a given job.
5876	ComputeEnvironmentOrder []*ComputeEnvironmentOrder `locationName:"computeEnvironmentOrder" type:"list"`
5877
5878	// The name or the Amazon Resource Name (ARN) of the job queue.
5879	//
5880	// JobQueue is a required field
5881	JobQueue *string `locationName:"jobQueue" type:"string" required:"true"`
5882
5883	// The priority of the job queue. Job queues with a higher priority (or a higher
5884	// integer value for the priority parameter) are evaluated first when associated
5885	// with the same compute environment. Priority is determined in descending order,
5886	// for example, a job queue with a priority value of 10 is given scheduling
5887	// preference over a job queue with a priority value of 1.
5888	Priority *int64 `locationName:"priority" type:"integer"`
5889
5890	// Describes the queue's ability to accept new jobs.
5891	State *string `locationName:"state" type:"string" enum:"JQState"`
5892}
5893
5894// String returns the string representation
5895func (s UpdateJobQueueInput) String() string {
5896	return awsutil.Prettify(s)
5897}
5898
5899// GoString returns the string representation
5900func (s UpdateJobQueueInput) GoString() string {
5901	return s.String()
5902}
5903
5904// Validate inspects the fields of the type to determine if they are valid.
5905func (s *UpdateJobQueueInput) Validate() error {
5906	invalidParams := request.ErrInvalidParams{Context: "UpdateJobQueueInput"}
5907	if s.JobQueue == nil {
5908		invalidParams.Add(request.NewErrParamRequired("JobQueue"))
5909	}
5910	if s.ComputeEnvironmentOrder != nil {
5911		for i, v := range s.ComputeEnvironmentOrder {
5912			if v == nil {
5913				continue
5914			}
5915			if err := v.Validate(); err != nil {
5916				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ComputeEnvironmentOrder", i), err.(request.ErrInvalidParams))
5917			}
5918		}
5919	}
5920
5921	if invalidParams.Len() > 0 {
5922		return invalidParams
5923	}
5924	return nil
5925}
5926
5927// SetComputeEnvironmentOrder sets the ComputeEnvironmentOrder field's value.
5928func (s *UpdateJobQueueInput) SetComputeEnvironmentOrder(v []*ComputeEnvironmentOrder) *UpdateJobQueueInput {
5929	s.ComputeEnvironmentOrder = v
5930	return s
5931}
5932
5933// SetJobQueue sets the JobQueue field's value.
5934func (s *UpdateJobQueueInput) SetJobQueue(v string) *UpdateJobQueueInput {
5935	s.JobQueue = &v
5936	return s
5937}
5938
5939// SetPriority sets the Priority field's value.
5940func (s *UpdateJobQueueInput) SetPriority(v int64) *UpdateJobQueueInput {
5941	s.Priority = &v
5942	return s
5943}
5944
5945// SetState sets the State field's value.
5946func (s *UpdateJobQueueInput) SetState(v string) *UpdateJobQueueInput {
5947	s.State = &v
5948	return s
5949}
5950
5951type UpdateJobQueueOutput struct {
5952	_ struct{} `type:"structure"`
5953
5954	// The Amazon Resource Name (ARN) of the job queue.
5955	JobQueueArn *string `locationName:"jobQueueArn" type:"string"`
5956
5957	// The name of the job queue.
5958	JobQueueName *string `locationName:"jobQueueName" type:"string"`
5959}
5960
5961// String returns the string representation
5962func (s UpdateJobQueueOutput) String() string {
5963	return awsutil.Prettify(s)
5964}
5965
5966// GoString returns the string representation
5967func (s UpdateJobQueueOutput) GoString() string {
5968	return s.String()
5969}
5970
5971// SetJobQueueArn sets the JobQueueArn field's value.
5972func (s *UpdateJobQueueOutput) SetJobQueueArn(v string) *UpdateJobQueueOutput {
5973	s.JobQueueArn = &v
5974	return s
5975}
5976
5977// SetJobQueueName sets the JobQueueName field's value.
5978func (s *UpdateJobQueueOutput) SetJobQueueName(v string) *UpdateJobQueueOutput {
5979	s.JobQueueName = &v
5980	return s
5981}
5982
5983// A data volume used in a job's container properties.
5984type Volume struct {
5985	_ struct{} `type:"structure"`
5986
5987	// The contents of the host parameter determine whether your data volume persists
5988	// on the host container instance and where it is stored. If the host parameter
5989	// is empty, then the Docker daemon assigns a host path for your data volume.
5990	// However, the data is not guaranteed to persist after the containers associated
5991	// with it stop running.
5992	Host *Host `locationName:"host" type:"structure"`
5993
5994	// The name of the volume. Up to 255 letters (uppercase and lowercase), numbers,
5995	// hyphens, and underscores are allowed. This name is referenced in the sourceVolume
5996	// parameter of container definition mountPoints.
5997	Name *string `locationName:"name" type:"string"`
5998}
5999
6000// String returns the string representation
6001func (s Volume) String() string {
6002	return awsutil.Prettify(s)
6003}
6004
6005// GoString returns the string representation
6006func (s Volume) GoString() string {
6007	return s.String()
6008}
6009
6010// SetHost sets the Host field's value.
6011func (s *Volume) SetHost(v *Host) *Volume {
6012	s.Host = v
6013	return s
6014}
6015
6016// SetName sets the Name field's value.
6017func (s *Volume) SetName(v string) *Volume {
6018	s.Name = &v
6019	return s
6020}
6021
6022const (
6023	// ArrayJobDependencyNToN is a ArrayJobDependency enum value
6024	ArrayJobDependencyNToN = "N_TO_N"
6025
6026	// ArrayJobDependencySequential is a ArrayJobDependency enum value
6027	ArrayJobDependencySequential = "SEQUENTIAL"
6028)
6029
6030const (
6031	// CEStateEnabled is a CEState enum value
6032	CEStateEnabled = "ENABLED"
6033
6034	// CEStateDisabled is a CEState enum value
6035	CEStateDisabled = "DISABLED"
6036)
6037
6038const (
6039	// CEStatusCreating is a CEStatus enum value
6040	CEStatusCreating = "CREATING"
6041
6042	// CEStatusUpdating is a CEStatus enum value
6043	CEStatusUpdating = "UPDATING"
6044
6045	// CEStatusDeleting is a CEStatus enum value
6046	CEStatusDeleting = "DELETING"
6047
6048	// CEStatusDeleted is a CEStatus enum value
6049	CEStatusDeleted = "DELETED"
6050
6051	// CEStatusValid is a CEStatus enum value
6052	CEStatusValid = "VALID"
6053
6054	// CEStatusInvalid is a CEStatus enum value
6055	CEStatusInvalid = "INVALID"
6056)
6057
6058const (
6059	// CETypeManaged is a CEType enum value
6060	CETypeManaged = "MANAGED"
6061
6062	// CETypeUnmanaged is a CEType enum value
6063	CETypeUnmanaged = "UNMANAGED"
6064)
6065
6066const (
6067	// CRTypeEc2 is a CRType enum value
6068	CRTypeEc2 = "EC2"
6069
6070	// CRTypeSpot is a CRType enum value
6071	CRTypeSpot = "SPOT"
6072)
6073
6074const (
6075	// DeviceCgroupPermissionRead is a DeviceCgroupPermission enum value
6076	DeviceCgroupPermissionRead = "READ"
6077
6078	// DeviceCgroupPermissionWrite is a DeviceCgroupPermission enum value
6079	DeviceCgroupPermissionWrite = "WRITE"
6080
6081	// DeviceCgroupPermissionMknod is a DeviceCgroupPermission enum value
6082	DeviceCgroupPermissionMknod = "MKNOD"
6083)
6084
6085const (
6086	// JQStateEnabled is a JQState enum value
6087	JQStateEnabled = "ENABLED"
6088
6089	// JQStateDisabled is a JQState enum value
6090	JQStateDisabled = "DISABLED"
6091)
6092
6093const (
6094	// JQStatusCreating is a JQStatus enum value
6095	JQStatusCreating = "CREATING"
6096
6097	// JQStatusUpdating is a JQStatus enum value
6098	JQStatusUpdating = "UPDATING"
6099
6100	// JQStatusDeleting is a JQStatus enum value
6101	JQStatusDeleting = "DELETING"
6102
6103	// JQStatusDeleted is a JQStatus enum value
6104	JQStatusDeleted = "DELETED"
6105
6106	// JQStatusValid is a JQStatus enum value
6107	JQStatusValid = "VALID"
6108
6109	// JQStatusInvalid is a JQStatus enum value
6110	JQStatusInvalid = "INVALID"
6111)
6112
6113const (
6114	// JobDefinitionTypeContainer is a JobDefinitionType enum value
6115	JobDefinitionTypeContainer = "container"
6116
6117	// JobDefinitionTypeMultinode is a JobDefinitionType enum value
6118	JobDefinitionTypeMultinode = "multinode"
6119)
6120
6121const (
6122	// JobStatusSubmitted is a JobStatus enum value
6123	JobStatusSubmitted = "SUBMITTED"
6124
6125	// JobStatusPending is a JobStatus enum value
6126	JobStatusPending = "PENDING"
6127
6128	// JobStatusRunnable is a JobStatus enum value
6129	JobStatusRunnable = "RUNNABLE"
6130
6131	// JobStatusStarting is a JobStatus enum value
6132	JobStatusStarting = "STARTING"
6133
6134	// JobStatusRunning is a JobStatus enum value
6135	JobStatusRunning = "RUNNING"
6136
6137	// JobStatusSucceeded is a JobStatus enum value
6138	JobStatusSucceeded = "SUCCEEDED"
6139
6140	// JobStatusFailed is a JobStatus enum value
6141	JobStatusFailed = "FAILED"
6142)
6143
6144const (
6145	// ResourceTypeGpu is a ResourceType enum value
6146	ResourceTypeGpu = "GPU"
6147)
6148