/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Batch { namespace Model { /** *

Contains the parameters for SubmitJob.

See Also:

* AWS * API Reference

*/ class SubmitJobRequest : public BatchRequest { public: AWS_BATCH_API SubmitJobRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "SubmitJob"; } AWS_BATCH_API Aws::String SerializePayload() const override; /** *

The name of the job. It can be up to 128 letters long. The first character * must be alphanumeric, can contain uppercase and lowercase letters, numbers, * hyphens (-), and underscores (_).

*/ inline const Aws::String& GetJobName() const{ return m_jobName; } /** *

The name of the job. It can be up to 128 letters long. The first character * must be alphanumeric, can contain uppercase and lowercase letters, numbers, * hyphens (-), and underscores (_).

*/ inline bool JobNameHasBeenSet() const { return m_jobNameHasBeenSet; } /** *

The name of the job. It can be up to 128 letters long. The first character * must be alphanumeric, can contain uppercase and lowercase letters, numbers, * hyphens (-), and underscores (_).

*/ inline void SetJobName(const Aws::String& value) { m_jobNameHasBeenSet = true; m_jobName = value; } /** *

The name of the job. It can be up to 128 letters long. The first character * must be alphanumeric, can contain uppercase and lowercase letters, numbers, * hyphens (-), and underscores (_).

*/ inline void SetJobName(Aws::String&& value) { m_jobNameHasBeenSet = true; m_jobName = std::move(value); } /** *

The name of the job. It can be up to 128 letters long. The first character * must be alphanumeric, can contain uppercase and lowercase letters, numbers, * hyphens (-), and underscores (_).

*/ inline void SetJobName(const char* value) { m_jobNameHasBeenSet = true; m_jobName.assign(value); } /** *

The name of the job. It can be up to 128 letters long. The first character * must be alphanumeric, can contain uppercase and lowercase letters, numbers, * hyphens (-), and underscores (_).

*/ inline SubmitJobRequest& WithJobName(const Aws::String& value) { SetJobName(value); return *this;} /** *

The name of the job. It can be up to 128 letters long. The first character * must be alphanumeric, can contain uppercase and lowercase letters, numbers, * hyphens (-), and underscores (_).

*/ inline SubmitJobRequest& WithJobName(Aws::String&& value) { SetJobName(std::move(value)); return *this;} /** *

The name of the job. It can be up to 128 letters long. The first character * must be alphanumeric, can contain uppercase and lowercase letters, numbers, * hyphens (-), and underscores (_).

*/ inline SubmitJobRequest& WithJobName(const char* value) { SetJobName(value); return *this;} /** *

The job queue where the job is submitted. You can specify either the name or * the Amazon Resource Name (ARN) of the queue.

*/ inline const Aws::String& GetJobQueue() const{ return m_jobQueue; } /** *

The job queue where the job is submitted. You can specify either the name or * the Amazon Resource Name (ARN) of the queue.

*/ inline bool JobQueueHasBeenSet() const { return m_jobQueueHasBeenSet; } /** *

The job queue where the job is submitted. You can specify either the name or * the Amazon Resource Name (ARN) of the queue.

*/ inline void SetJobQueue(const Aws::String& value) { m_jobQueueHasBeenSet = true; m_jobQueue = value; } /** *

The job queue where the job is submitted. You can specify either the name or * the Amazon Resource Name (ARN) of the queue.

*/ inline void SetJobQueue(Aws::String&& value) { m_jobQueueHasBeenSet = true; m_jobQueue = std::move(value); } /** *

The job queue where the job is submitted. You can specify either the name or * the Amazon Resource Name (ARN) of the queue.

*/ inline void SetJobQueue(const char* value) { m_jobQueueHasBeenSet = true; m_jobQueue.assign(value); } /** *

The job queue where the job is submitted. You can specify either the name or * the Amazon Resource Name (ARN) of the queue.

*/ inline SubmitJobRequest& WithJobQueue(const Aws::String& value) { SetJobQueue(value); return *this;} /** *

The job queue where the job is submitted. You can specify either the name or * the Amazon Resource Name (ARN) of the queue.

*/ inline SubmitJobRequest& WithJobQueue(Aws::String&& value) { SetJobQueue(std::move(value)); return *this;} /** *

The job queue where the job is submitted. You can specify either the name or * the Amazon Resource Name (ARN) of the queue.

*/ inline SubmitJobRequest& WithJobQueue(const char* value) { SetJobQueue(value); return *this;} /** *

The share identifier for the job. Don't specify this parameter if the job * queue doesn't have a scheduling policy. If the job queue has a scheduling * policy, then this parameter must be specified.

This string is limited to * 255 alphanumeric characters, and can be followed by an asterisk (*).

*/ inline const Aws::String& GetShareIdentifier() const{ return m_shareIdentifier; } /** *

The share identifier for the job. Don't specify this parameter if the job * queue doesn't have a scheduling policy. If the job queue has a scheduling * policy, then this parameter must be specified.

This string is limited to * 255 alphanumeric characters, and can be followed by an asterisk (*).

*/ inline bool ShareIdentifierHasBeenSet() const { return m_shareIdentifierHasBeenSet; } /** *

The share identifier for the job. Don't specify this parameter if the job * queue doesn't have a scheduling policy. If the job queue has a scheduling * policy, then this parameter must be specified.

This string is limited to * 255 alphanumeric characters, and can be followed by an asterisk (*).

*/ inline void SetShareIdentifier(const Aws::String& value) { m_shareIdentifierHasBeenSet = true; m_shareIdentifier = value; } /** *

The share identifier for the job. Don't specify this parameter if the job * queue doesn't have a scheduling policy. If the job queue has a scheduling * policy, then this parameter must be specified.

This string is limited to * 255 alphanumeric characters, and can be followed by an asterisk (*).

*/ inline void SetShareIdentifier(Aws::String&& value) { m_shareIdentifierHasBeenSet = true; m_shareIdentifier = std::move(value); } /** *

The share identifier for the job. Don't specify this parameter if the job * queue doesn't have a scheduling policy. If the job queue has a scheduling * policy, then this parameter must be specified.

This string is limited to * 255 alphanumeric characters, and can be followed by an asterisk (*).

*/ inline void SetShareIdentifier(const char* value) { m_shareIdentifierHasBeenSet = true; m_shareIdentifier.assign(value); } /** *

The share identifier for the job. Don't specify this parameter if the job * queue doesn't have a scheduling policy. If the job queue has a scheduling * policy, then this parameter must be specified.

This string is limited to * 255 alphanumeric characters, and can be followed by an asterisk (*).

*/ inline SubmitJobRequest& WithShareIdentifier(const Aws::String& value) { SetShareIdentifier(value); return *this;} /** *

The share identifier for the job. Don't specify this parameter if the job * queue doesn't have a scheduling policy. If the job queue has a scheduling * policy, then this parameter must be specified.

This string is limited to * 255 alphanumeric characters, and can be followed by an asterisk (*).

*/ inline SubmitJobRequest& WithShareIdentifier(Aws::String&& value) { SetShareIdentifier(std::move(value)); return *this;} /** *

The share identifier for the job. Don't specify this parameter if the job * queue doesn't have a scheduling policy. If the job queue has a scheduling * policy, then this parameter must be specified.

This string is limited to * 255 alphanumeric characters, and can be followed by an asterisk (*).

*/ inline SubmitJobRequest& WithShareIdentifier(const char* value) { SetShareIdentifier(value); return *this;} /** *

The scheduling priority for the job. This only affects jobs in job queues * with a fair share policy. Jobs with a higher scheduling priority are scheduled * before jobs with a lower scheduling priority. This overrides any scheduling * priority in the job definition.

The minimum supported value is 0 and the * maximum supported value is 9999.

*/ inline int GetSchedulingPriorityOverride() const{ return m_schedulingPriorityOverride; } /** *

The scheduling priority for the job. This only affects jobs in job queues * with a fair share policy. Jobs with a higher scheduling priority are scheduled * before jobs with a lower scheduling priority. This overrides any scheduling * priority in the job definition.

The minimum supported value is 0 and the * maximum supported value is 9999.

*/ inline bool SchedulingPriorityOverrideHasBeenSet() const { return m_schedulingPriorityOverrideHasBeenSet; } /** *

The scheduling priority for the job. This only affects jobs in job queues * with a fair share policy. Jobs with a higher scheduling priority are scheduled * before jobs with a lower scheduling priority. This overrides any scheduling * priority in the job definition.

The minimum supported value is 0 and the * maximum supported value is 9999.

*/ inline void SetSchedulingPriorityOverride(int value) { m_schedulingPriorityOverrideHasBeenSet = true; m_schedulingPriorityOverride = value; } /** *

The scheduling priority for the job. This only affects jobs in job queues * with a fair share policy. Jobs with a higher scheduling priority are scheduled * before jobs with a lower scheduling priority. This overrides any scheduling * priority in the job definition.

The minimum supported value is 0 and the * maximum supported value is 9999.

*/ inline SubmitJobRequest& WithSchedulingPriorityOverride(int value) { SetSchedulingPriorityOverride(value); return *this;} /** *

The array properties for the submitted job, such as the size of the array. * The array size can be between 2 and 10,000. If you specify array properties for * a job, it becomes an array job. For more information, see Array * Jobs in the Batch User Guide.

*/ inline const ArrayProperties& GetArrayProperties() const{ return m_arrayProperties; } /** *

The array properties for the submitted job, such as the size of the array. * The array size can be between 2 and 10,000. If you specify array properties for * a job, it becomes an array job. For more information, see Array * Jobs in the Batch User Guide.

*/ inline bool ArrayPropertiesHasBeenSet() const { return m_arrayPropertiesHasBeenSet; } /** *

The array properties for the submitted job, such as the size of the array. * The array size can be between 2 and 10,000. If you specify array properties for * a job, it becomes an array job. For more information, see Array * Jobs in the Batch User Guide.

*/ inline void SetArrayProperties(const ArrayProperties& value) { m_arrayPropertiesHasBeenSet = true; m_arrayProperties = value; } /** *

The array properties for the submitted job, such as the size of the array. * The array size can be between 2 and 10,000. If you specify array properties for * a job, it becomes an array job. For more information, see Array * Jobs in the Batch User Guide.

*/ inline void SetArrayProperties(ArrayProperties&& value) { m_arrayPropertiesHasBeenSet = true; m_arrayProperties = std::move(value); } /** *

The array properties for the submitted job, such as the size of the array. * The array size can be between 2 and 10,000. If you specify array properties for * a job, it becomes an array job. For more information, see Array * Jobs in the Batch User Guide.

*/ inline SubmitJobRequest& WithArrayProperties(const ArrayProperties& value) { SetArrayProperties(value); return *this;} /** *

The array properties for the submitted job, such as the size of the array. * The array size can be between 2 and 10,000. If you specify array properties for * a job, it becomes an array job. For more information, see Array * Jobs in the Batch User Guide.

*/ inline SubmitJobRequest& WithArrayProperties(ArrayProperties&& value) { SetArrayProperties(std::move(value)); return *this;} /** *

A list of dependencies for the job. A job can depend upon a maximum of 20 * jobs. You can specify a SEQUENTIAL type dependency without * specifying a job ID for array jobs so that each child array job completes * sequentially, starting at index 0. You can also specify an N_TO_N * type dependency with a job ID for array jobs. In that case, each index child of * this job must wait for the corresponding index child of each dependency to * complete before it can begin.

*/ inline const Aws::Vector& GetDependsOn() const{ return m_dependsOn; } /** *

A list of dependencies for the job. A job can depend upon a maximum of 20 * jobs. You can specify a SEQUENTIAL type dependency without * specifying a job ID for array jobs so that each child array job completes * sequentially, starting at index 0. You can also specify an N_TO_N * type dependency with a job ID for array jobs. In that case, each index child of * this job must wait for the corresponding index child of each dependency to * complete before it can begin.

*/ inline bool DependsOnHasBeenSet() const { return m_dependsOnHasBeenSet; } /** *

A list of dependencies for the job. A job can depend upon a maximum of 20 * jobs. You can specify a SEQUENTIAL type dependency without * specifying a job ID for array jobs so that each child array job completes * sequentially, starting at index 0. You can also specify an N_TO_N * type dependency with a job ID for array jobs. In that case, each index child of * this job must wait for the corresponding index child of each dependency to * complete before it can begin.

*/ inline void SetDependsOn(const Aws::Vector& value) { m_dependsOnHasBeenSet = true; m_dependsOn = value; } /** *

A list of dependencies for the job. A job can depend upon a maximum of 20 * jobs. You can specify a SEQUENTIAL type dependency without * specifying a job ID for array jobs so that each child array job completes * sequentially, starting at index 0. You can also specify an N_TO_N * type dependency with a job ID for array jobs. In that case, each index child of * this job must wait for the corresponding index child of each dependency to * complete before it can begin.

*/ inline void SetDependsOn(Aws::Vector&& value) { m_dependsOnHasBeenSet = true; m_dependsOn = std::move(value); } /** *

A list of dependencies for the job. A job can depend upon a maximum of 20 * jobs. You can specify a SEQUENTIAL type dependency without * specifying a job ID for array jobs so that each child array job completes * sequentially, starting at index 0. You can also specify an N_TO_N * type dependency with a job ID for array jobs. In that case, each index child of * this job must wait for the corresponding index child of each dependency to * complete before it can begin.

*/ inline SubmitJobRequest& WithDependsOn(const Aws::Vector& value) { SetDependsOn(value); return *this;} /** *

A list of dependencies for the job. A job can depend upon a maximum of 20 * jobs. You can specify a SEQUENTIAL type dependency without * specifying a job ID for array jobs so that each child array job completes * sequentially, starting at index 0. You can also specify an N_TO_N * type dependency with a job ID for array jobs. In that case, each index child of * this job must wait for the corresponding index child of each dependency to * complete before it can begin.

*/ inline SubmitJobRequest& WithDependsOn(Aws::Vector&& value) { SetDependsOn(std::move(value)); return *this;} /** *

A list of dependencies for the job. A job can depend upon a maximum of 20 * jobs. You can specify a SEQUENTIAL type dependency without * specifying a job ID for array jobs so that each child array job completes * sequentially, starting at index 0. You can also specify an N_TO_N * type dependency with a job ID for array jobs. In that case, each index child of * this job must wait for the corresponding index child of each dependency to * complete before it can begin.

*/ inline SubmitJobRequest& AddDependsOn(const JobDependency& value) { m_dependsOnHasBeenSet = true; m_dependsOn.push_back(value); return *this; } /** *

A list of dependencies for the job. A job can depend upon a maximum of 20 * jobs. You can specify a SEQUENTIAL type dependency without * specifying a job ID for array jobs so that each child array job completes * sequentially, starting at index 0. You can also specify an N_TO_N * type dependency with a job ID for array jobs. In that case, each index child of * this job must wait for the corresponding index child of each dependency to * complete before it can begin.

*/ inline SubmitJobRequest& AddDependsOn(JobDependency&& value) { m_dependsOnHasBeenSet = true; m_dependsOn.push_back(std::move(value)); return *this; } /** *

The job definition used by this job. This value can be one of * definition-name, definition-name:revision, or the * Amazon Resource Name (ARN) for the job definition, with or without the revision * (arn:aws:batch:region:account:job-definition/definition-name:revision * , or * arn:aws:batch:region:account:job-definition/definition-name * ).

If the revision is not specified, then the latest active * revision is used.

*/ inline const Aws::String& GetJobDefinition() const{ return m_jobDefinition; } /** *

The job definition used by this job. This value can be one of * definition-name, definition-name:revision, or the * Amazon Resource Name (ARN) for the job definition, with or without the revision * (arn:aws:batch:region:account:job-definition/definition-name:revision * , or * arn:aws:batch:region:account:job-definition/definition-name * ).

If the revision is not specified, then the latest active * revision is used.

*/ inline bool JobDefinitionHasBeenSet() const { return m_jobDefinitionHasBeenSet; } /** *

The job definition used by this job. This value can be one of * definition-name, definition-name:revision, or the * Amazon Resource Name (ARN) for the job definition, with or without the revision * (arn:aws:batch:region:account:job-definition/definition-name:revision * , or * arn:aws:batch:region:account:job-definition/definition-name * ).

If the revision is not specified, then the latest active * revision is used.

*/ inline void SetJobDefinition(const Aws::String& value) { m_jobDefinitionHasBeenSet = true; m_jobDefinition = value; } /** *

The job definition used by this job. This value can be one of * definition-name, definition-name:revision, or the * Amazon Resource Name (ARN) for the job definition, with or without the revision * (arn:aws:batch:region:account:job-definition/definition-name:revision * , or * arn:aws:batch:region:account:job-definition/definition-name * ).

If the revision is not specified, then the latest active * revision is used.

*/ inline void SetJobDefinition(Aws::String&& value) { m_jobDefinitionHasBeenSet = true; m_jobDefinition = std::move(value); } /** *

The job definition used by this job. This value can be one of * definition-name, definition-name:revision, or the * Amazon Resource Name (ARN) for the job definition, with or without the revision * (arn:aws:batch:region:account:job-definition/definition-name:revision * , or * arn:aws:batch:region:account:job-definition/definition-name * ).

If the revision is not specified, then the latest active * revision is used.

*/ inline void SetJobDefinition(const char* value) { m_jobDefinitionHasBeenSet = true; m_jobDefinition.assign(value); } /** *

The job definition used by this job. This value can be one of * definition-name, definition-name:revision, or the * Amazon Resource Name (ARN) for the job definition, with or without the revision * (arn:aws:batch:region:account:job-definition/definition-name:revision * , or * arn:aws:batch:region:account:job-definition/definition-name * ).

If the revision is not specified, then the latest active * revision is used.

*/ inline SubmitJobRequest& WithJobDefinition(const Aws::String& value) { SetJobDefinition(value); return *this;} /** *

The job definition used by this job. This value can be one of * definition-name, definition-name:revision, or the * Amazon Resource Name (ARN) for the job definition, with or without the revision * (arn:aws:batch:region:account:job-definition/definition-name:revision * , or * arn:aws:batch:region:account:job-definition/definition-name * ).

If the revision is not specified, then the latest active * revision is used.

*/ inline SubmitJobRequest& WithJobDefinition(Aws::String&& value) { SetJobDefinition(std::move(value)); return *this;} /** *

The job definition used by this job. This value can be one of * definition-name, definition-name:revision, or the * Amazon Resource Name (ARN) for the job definition, with or without the revision * (arn:aws:batch:region:account:job-definition/definition-name:revision * , or * arn:aws:batch:region:account:job-definition/definition-name * ).

If the revision is not specified, then the latest active * revision is used.

*/ inline SubmitJobRequest& WithJobDefinition(const char* value) { SetJobDefinition(value); return *this;} /** *

Additional parameters passed to the job that replace parameter substitution * placeholders that are set in the job definition. Parameters are specified as a * key and value pair mapping. Parameters in a SubmitJob request * override any corresponding parameter defaults from the job definition.

*/ inline const Aws::Map& GetParameters() const{ return m_parameters; } /** *

Additional parameters passed to the job that replace parameter substitution * placeholders that are set in the job definition. Parameters are specified as a * key and value pair mapping. Parameters in a SubmitJob request * override any corresponding parameter defaults from the job definition.

*/ inline bool ParametersHasBeenSet() const { return m_parametersHasBeenSet; } /** *

Additional parameters passed to the job that replace parameter substitution * placeholders that are set in the job definition. Parameters are specified as a * key and value pair mapping. Parameters in a SubmitJob request * override any corresponding parameter defaults from the job definition.

*/ inline void SetParameters(const Aws::Map& value) { m_parametersHasBeenSet = true; m_parameters = value; } /** *

Additional parameters passed to the job that replace parameter substitution * placeholders that are set in the job definition. Parameters are specified as a * key and value pair mapping. Parameters in a SubmitJob request * override any corresponding parameter defaults from the job definition.

*/ inline void SetParameters(Aws::Map&& value) { m_parametersHasBeenSet = true; m_parameters = std::move(value); } /** *

Additional parameters passed to the job that replace parameter substitution * placeholders that are set in the job definition. Parameters are specified as a * key and value pair mapping. Parameters in a SubmitJob request * override any corresponding parameter defaults from the job definition.

*/ inline SubmitJobRequest& WithParameters(const Aws::Map& value) { SetParameters(value); return *this;} /** *

Additional parameters passed to the job that replace parameter substitution * placeholders that are set in the job definition. Parameters are specified as a * key and value pair mapping. Parameters in a SubmitJob request * override any corresponding parameter defaults from the job definition.

*/ inline SubmitJobRequest& WithParameters(Aws::Map&& value) { SetParameters(std::move(value)); return *this;} /** *

Additional parameters passed to the job that replace parameter substitution * placeholders that are set in the job definition. Parameters are specified as a * key and value pair mapping. Parameters in a SubmitJob request * override any corresponding parameter defaults from the job definition.

*/ inline SubmitJobRequest& AddParameters(const Aws::String& key, const Aws::String& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, value); return *this; } /** *

Additional parameters passed to the job that replace parameter substitution * placeholders that are set in the job definition. Parameters are specified as a * key and value pair mapping. Parameters in a SubmitJob request * override any corresponding parameter defaults from the job definition.

*/ inline SubmitJobRequest& AddParameters(Aws::String&& key, const Aws::String& value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), value); return *this; } /** *

Additional parameters passed to the job that replace parameter substitution * placeholders that are set in the job definition. Parameters are specified as a * key and value pair mapping. Parameters in a SubmitJob request * override any corresponding parameter defaults from the job definition.

*/ inline SubmitJobRequest& AddParameters(const Aws::String& key, Aws::String&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, std::move(value)); return *this; } /** *

Additional parameters passed to the job that replace parameter substitution * placeholders that are set in the job definition. Parameters are specified as a * key and value pair mapping. Parameters in a SubmitJob request * override any corresponding parameter defaults from the job definition.

*/ inline SubmitJobRequest& AddParameters(Aws::String&& key, Aws::String&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), std::move(value)); return *this; } /** *

Additional parameters passed to the job that replace parameter substitution * placeholders that are set in the job definition. Parameters are specified as a * key and value pair mapping. Parameters in a SubmitJob request * override any corresponding parameter defaults from the job definition.

*/ inline SubmitJobRequest& AddParameters(const char* key, Aws::String&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, std::move(value)); return *this; } /** *

Additional parameters passed to the job that replace parameter substitution * placeholders that are set in the job definition. Parameters are specified as a * key and value pair mapping. Parameters in a SubmitJob request * override any corresponding parameter defaults from the job definition.

*/ inline SubmitJobRequest& AddParameters(Aws::String&& key, const char* value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), value); return *this; } /** *

Additional parameters passed to the job that replace parameter substitution * placeholders that are set in the job definition. Parameters are specified as a * key and value pair mapping. Parameters in a SubmitJob request * override any corresponding parameter defaults from the job definition.

*/ inline SubmitJobRequest& AddParameters(const char* key, const char* value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, value); return *this; } /** *

An object with various properties that override the defaults for the job * definition that specify the name of a container in the specified job definition * and the overrides it should receive. You can override the default command for a * container, which is specified in the job definition or the Docker image, with a * command override. You can also override existing environment * variables on a container or add new environment variables to it with an * environment override.

*/ inline const ContainerOverrides& GetContainerOverrides() const{ return m_containerOverrides; } /** *

An object with various properties that override the defaults for the job * definition that specify the name of a container in the specified job definition * and the overrides it should receive. You can override the default command for a * container, which is specified in the job definition or the Docker image, with a * command override. You can also override existing environment * variables on a container or add new environment variables to it with an * environment override.

*/ inline bool ContainerOverridesHasBeenSet() const { return m_containerOverridesHasBeenSet; } /** *

An object with various properties that override the defaults for the job * definition that specify the name of a container in the specified job definition * and the overrides it should receive. You can override the default command for a * container, which is specified in the job definition or the Docker image, with a * command override. You can also override existing environment * variables on a container or add new environment variables to it with an * environment override.

*/ inline void SetContainerOverrides(const ContainerOverrides& value) { m_containerOverridesHasBeenSet = true; m_containerOverrides = value; } /** *

An object with various properties that override the defaults for the job * definition that specify the name of a container in the specified job definition * and the overrides it should receive. You can override the default command for a * container, which is specified in the job definition or the Docker image, with a * command override. You can also override existing environment * variables on a container or add new environment variables to it with an * environment override.

*/ inline void SetContainerOverrides(ContainerOverrides&& value) { m_containerOverridesHasBeenSet = true; m_containerOverrides = std::move(value); } /** *

An object with various properties that override the defaults for the job * definition that specify the name of a container in the specified job definition * and the overrides it should receive. You can override the default command for a * container, which is specified in the job definition or the Docker image, with a * command override. You can also override existing environment * variables on a container or add new environment variables to it with an * environment override.

*/ inline SubmitJobRequest& WithContainerOverrides(const ContainerOverrides& value) { SetContainerOverrides(value); return *this;} /** *

An object with various properties that override the defaults for the job * definition that specify the name of a container in the specified job definition * and the overrides it should receive. You can override the default command for a * container, which is specified in the job definition or the Docker image, with a * command override. You can also override existing environment * variables on a container or add new environment variables to it with an * environment override.

*/ inline SubmitJobRequest& WithContainerOverrides(ContainerOverrides&& value) { SetContainerOverrides(std::move(value)); return *this;} /** *

A list of node overrides in JSON format that specify the node range to target * and the container overrides for that node range.

This parameter * isn't applicable to jobs that are running on Fargate resources; use * containerOverrides instead.

*/ inline const NodeOverrides& GetNodeOverrides() const{ return m_nodeOverrides; } /** *

A list of node overrides in JSON format that specify the node range to target * and the container overrides for that node range.

This parameter * isn't applicable to jobs that are running on Fargate resources; use * containerOverrides instead.

*/ inline bool NodeOverridesHasBeenSet() const { return m_nodeOverridesHasBeenSet; } /** *

A list of node overrides in JSON format that specify the node range to target * and the container overrides for that node range.

This parameter * isn't applicable to jobs that are running on Fargate resources; use * containerOverrides instead.

*/ inline void SetNodeOverrides(const NodeOverrides& value) { m_nodeOverridesHasBeenSet = true; m_nodeOverrides = value; } /** *

A list of node overrides in JSON format that specify the node range to target * and the container overrides for that node range.

This parameter * isn't applicable to jobs that are running on Fargate resources; use * containerOverrides instead.

*/ inline void SetNodeOverrides(NodeOverrides&& value) { m_nodeOverridesHasBeenSet = true; m_nodeOverrides = std::move(value); } /** *

A list of node overrides in JSON format that specify the node range to target * and the container overrides for that node range.

This parameter * isn't applicable to jobs that are running on Fargate resources; use * containerOverrides instead.

*/ inline SubmitJobRequest& WithNodeOverrides(const NodeOverrides& value) { SetNodeOverrides(value); return *this;} /** *

A list of node overrides in JSON format that specify the node range to target * and the container overrides for that node range.

This parameter * isn't applicable to jobs that are running on Fargate resources; use * containerOverrides instead.

*/ inline SubmitJobRequest& WithNodeOverrides(NodeOverrides&& value) { SetNodeOverrides(std::move(value)); return *this;} /** *

The retry strategy to use for failed jobs from this SubmitJob * operation. When a retry strategy is specified here, it overrides the retry * strategy defined in the job definition.

*/ inline const RetryStrategy& GetRetryStrategy() const{ return m_retryStrategy; } /** *

The retry strategy to use for failed jobs from this SubmitJob * operation. When a retry strategy is specified here, it overrides the retry * strategy defined in the job definition.

*/ inline bool RetryStrategyHasBeenSet() const { return m_retryStrategyHasBeenSet; } /** *

The retry strategy to use for failed jobs from this SubmitJob * operation. When a retry strategy is specified here, it overrides the retry * strategy defined in the job definition.

*/ inline void SetRetryStrategy(const RetryStrategy& value) { m_retryStrategyHasBeenSet = true; m_retryStrategy = value; } /** *

The retry strategy to use for failed jobs from this SubmitJob * operation. When a retry strategy is specified here, it overrides the retry * strategy defined in the job definition.

*/ inline void SetRetryStrategy(RetryStrategy&& value) { m_retryStrategyHasBeenSet = true; m_retryStrategy = std::move(value); } /** *

The retry strategy to use for failed jobs from this SubmitJob * operation. When a retry strategy is specified here, it overrides the retry * strategy defined in the job definition.

*/ inline SubmitJobRequest& WithRetryStrategy(const RetryStrategy& value) { SetRetryStrategy(value); return *this;} /** *

The retry strategy to use for failed jobs from this SubmitJob * operation. When a retry strategy is specified here, it overrides the retry * strategy defined in the job definition.

*/ inline SubmitJobRequest& WithRetryStrategy(RetryStrategy&& value) { SetRetryStrategy(std::move(value)); return *this;} /** *

Specifies whether to propagate the tags from the job or job definition to the * corresponding Amazon ECS task. If no value is specified, the tags aren't * propagated. Tags can only be propagated to the tasks during task creation. For * tags with the same name, job tags are given priority over job definitions tags. * If the total number of combined tags from the job and job definition is over 50, * the job is moved to the FAILED state. When specified, this * overrides the tag propagation setting in the job definition.

*/ inline bool GetPropagateTags() const{ return m_propagateTags; } /** *

Specifies whether to propagate the tags from the job or job definition to the * corresponding Amazon ECS task. If no value is specified, the tags aren't * propagated. Tags can only be propagated to the tasks during task creation. For * tags with the same name, job tags are given priority over job definitions tags. * If the total number of combined tags from the job and job definition is over 50, * the job is moved to the FAILED state. When specified, this * overrides the tag propagation setting in the job definition.

*/ inline bool PropagateTagsHasBeenSet() const { return m_propagateTagsHasBeenSet; } /** *

Specifies whether to propagate the tags from the job or job definition to the * corresponding Amazon ECS task. If no value is specified, the tags aren't * propagated. Tags can only be propagated to the tasks during task creation. For * tags with the same name, job tags are given priority over job definitions tags. * If the total number of combined tags from the job and job definition is over 50, * the job is moved to the FAILED state. When specified, this * overrides the tag propagation setting in the job definition.

*/ inline void SetPropagateTags(bool value) { m_propagateTagsHasBeenSet = true; m_propagateTags = value; } /** *

Specifies whether to propagate the tags from the job or job definition to the * corresponding Amazon ECS task. If no value is specified, the tags aren't * propagated. Tags can only be propagated to the tasks during task creation. For * tags with the same name, job tags are given priority over job definitions tags. * If the total number of combined tags from the job and job definition is over 50, * the job is moved to the FAILED state. When specified, this * overrides the tag propagation setting in the job definition.

*/ inline SubmitJobRequest& WithPropagateTags(bool value) { SetPropagateTags(value); return *this;} /** *

The timeout configuration for this SubmitJob operation. You can * specify a timeout duration after which Batch terminates your jobs if they * haven't finished. If a job is terminated due to a timeout, it isn't retried. The * minimum value for the timeout is 60 seconds. This configuration overrides any * timeout configuration specified in the job definition. For array jobs, child * jobs have the same timeout configuration as the parent job. For more * information, see Job * Timeouts in the Amazon Elastic Container Service Developer Guide.

*/ inline const JobTimeout& GetTimeout() const{ return m_timeout; } /** *

The timeout configuration for this SubmitJob operation. You can * specify a timeout duration after which Batch terminates your jobs if they * haven't finished. If a job is terminated due to a timeout, it isn't retried. The * minimum value for the timeout is 60 seconds. This configuration overrides any * timeout configuration specified in the job definition. For array jobs, child * jobs have the same timeout configuration as the parent job. For more * information, see Job * Timeouts in the Amazon Elastic Container Service Developer Guide.

*/ inline bool TimeoutHasBeenSet() const { return m_timeoutHasBeenSet; } /** *

The timeout configuration for this SubmitJob operation. You can * specify a timeout duration after which Batch terminates your jobs if they * haven't finished. If a job is terminated due to a timeout, it isn't retried. The * minimum value for the timeout is 60 seconds. This configuration overrides any * timeout configuration specified in the job definition. For array jobs, child * jobs have the same timeout configuration as the parent job. For more * information, see Job * Timeouts in the Amazon Elastic Container Service Developer Guide.

*/ inline void SetTimeout(const JobTimeout& value) { m_timeoutHasBeenSet = true; m_timeout = value; } /** *

The timeout configuration for this SubmitJob operation. You can * specify a timeout duration after which Batch terminates your jobs if they * haven't finished. If a job is terminated due to a timeout, it isn't retried. The * minimum value for the timeout is 60 seconds. This configuration overrides any * timeout configuration specified in the job definition. For array jobs, child * jobs have the same timeout configuration as the parent job. For more * information, see Job * Timeouts in the Amazon Elastic Container Service Developer Guide.

*/ inline void SetTimeout(JobTimeout&& value) { m_timeoutHasBeenSet = true; m_timeout = std::move(value); } /** *

The timeout configuration for this SubmitJob operation. You can * specify a timeout duration after which Batch terminates your jobs if they * haven't finished. If a job is terminated due to a timeout, it isn't retried. The * minimum value for the timeout is 60 seconds. This configuration overrides any * timeout configuration specified in the job definition. For array jobs, child * jobs have the same timeout configuration as the parent job. For more * information, see Job * Timeouts in the Amazon Elastic Container Service Developer Guide.

*/ inline SubmitJobRequest& WithTimeout(const JobTimeout& value) { SetTimeout(value); return *this;} /** *

The timeout configuration for this SubmitJob operation. You can * specify a timeout duration after which Batch terminates your jobs if they * haven't finished. If a job is terminated due to a timeout, it isn't retried. The * minimum value for the timeout is 60 seconds. This configuration overrides any * timeout configuration specified in the job definition. For array jobs, child * jobs have the same timeout configuration as the parent job. For more * information, see Job * Timeouts in the Amazon Elastic Container Service Developer Guide.

*/ inline SubmitJobRequest& WithTimeout(JobTimeout&& value) { SetTimeout(std::move(value)); return *this;} /** *

The tags that you apply to the job request to help you categorize and * organize your resources. Each tag consists of a key and an optional value. For * more information, see Tagging * Amazon Web Services Resources in Amazon Web Services General * Reference.

*/ inline const Aws::Map& GetTags() const{ return m_tags; } /** *

The tags that you apply to the job request to help you categorize and * organize your resources. Each tag consists of a key and an optional value. For * more information, see Tagging * Amazon Web Services Resources in Amazon Web Services General * Reference.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The tags that you apply to the job request to help you categorize and * organize your resources. Each tag consists of a key and an optional value. For * more information, see Tagging * Amazon Web Services Resources in Amazon Web Services General * Reference.

*/ inline void SetTags(const Aws::Map& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The tags that you apply to the job request to help you categorize and * organize your resources. Each tag consists of a key and an optional value. For * more information, see Tagging * Amazon Web Services Resources in Amazon Web Services General * Reference.

*/ inline void SetTags(Aws::Map&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The tags that you apply to the job request to help you categorize and * organize your resources. Each tag consists of a key and an optional value. For * more information, see Tagging * Amazon Web Services Resources in Amazon Web Services General * Reference.

*/ inline SubmitJobRequest& WithTags(const Aws::Map& value) { SetTags(value); return *this;} /** *

The tags that you apply to the job request to help you categorize and * organize your resources. Each tag consists of a key and an optional value. For * more information, see Tagging * Amazon Web Services Resources in Amazon Web Services General * Reference.

*/ inline SubmitJobRequest& WithTags(Aws::Map&& value) { SetTags(std::move(value)); return *this;} /** *

The tags that you apply to the job request to help you categorize and * organize your resources. Each tag consists of a key and an optional value. For * more information, see Tagging * Amazon Web Services Resources in Amazon Web Services General * Reference.

*/ inline SubmitJobRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

The tags that you apply to the job request to help you categorize and * organize your resources. Each tag consists of a key and an optional value. For * more information, see Tagging * Amazon Web Services Resources in Amazon Web Services General * Reference.

*/ inline SubmitJobRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The tags that you apply to the job request to help you categorize and * organize your resources. Each tag consists of a key and an optional value. For * more information, see Tagging * Amazon Web Services Resources in Amazon Web Services General * Reference.

*/ inline SubmitJobRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The tags that you apply to the job request to help you categorize and * organize your resources. Each tag consists of a key and an optional value. For * more information, see Tagging * Amazon Web Services Resources in Amazon Web Services General * Reference.

*/ inline SubmitJobRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } /** *

The tags that you apply to the job request to help you categorize and * organize your resources. Each tag consists of a key and an optional value. For * more information, see Tagging * Amazon Web Services Resources in Amazon Web Services General * Reference.

*/ inline SubmitJobRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The tags that you apply to the job request to help you categorize and * organize your resources. Each tag consists of a key and an optional value. For * more information, see Tagging * Amazon Web Services Resources in Amazon Web Services General * Reference.

*/ inline SubmitJobRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The tags that you apply to the job request to help you categorize and * organize your resources. Each tag consists of a key and an optional value. For * more information, see Tagging * Amazon Web Services Resources in Amazon Web Services General * Reference.

*/ inline SubmitJobRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

An object that can only be specified for jobs that are run on Amazon EKS * resources with various properties that override defaults for the job * definition.

*/ inline const EksPropertiesOverride& GetEksPropertiesOverride() const{ return m_eksPropertiesOverride; } /** *

An object that can only be specified for jobs that are run on Amazon EKS * resources with various properties that override defaults for the job * definition.

*/ inline bool EksPropertiesOverrideHasBeenSet() const { return m_eksPropertiesOverrideHasBeenSet; } /** *

An object that can only be specified for jobs that are run on Amazon EKS * resources with various properties that override defaults for the job * definition.

*/ inline void SetEksPropertiesOverride(const EksPropertiesOverride& value) { m_eksPropertiesOverrideHasBeenSet = true; m_eksPropertiesOverride = value; } /** *

An object that can only be specified for jobs that are run on Amazon EKS * resources with various properties that override defaults for the job * definition.

*/ inline void SetEksPropertiesOverride(EksPropertiesOverride&& value) { m_eksPropertiesOverrideHasBeenSet = true; m_eksPropertiesOverride = std::move(value); } /** *

An object that can only be specified for jobs that are run on Amazon EKS * resources with various properties that override defaults for the job * definition.

*/ inline SubmitJobRequest& WithEksPropertiesOverride(const EksPropertiesOverride& value) { SetEksPropertiesOverride(value); return *this;} /** *

An object that can only be specified for jobs that are run on Amazon EKS * resources with various properties that override defaults for the job * definition.

*/ inline SubmitJobRequest& WithEksPropertiesOverride(EksPropertiesOverride&& value) { SetEksPropertiesOverride(std::move(value)); return *this;} private: Aws::String m_jobName; bool m_jobNameHasBeenSet = false; Aws::String m_jobQueue; bool m_jobQueueHasBeenSet = false; Aws::String m_shareIdentifier; bool m_shareIdentifierHasBeenSet = false; int m_schedulingPriorityOverride; bool m_schedulingPriorityOverrideHasBeenSet = false; ArrayProperties m_arrayProperties; bool m_arrayPropertiesHasBeenSet = false; Aws::Vector m_dependsOn; bool m_dependsOnHasBeenSet = false; Aws::String m_jobDefinition; bool m_jobDefinitionHasBeenSet = false; Aws::Map m_parameters; bool m_parametersHasBeenSet = false; ContainerOverrides m_containerOverrides; bool m_containerOverridesHasBeenSet = false; NodeOverrides m_nodeOverrides; bool m_nodeOverridesHasBeenSet = false; RetryStrategy m_retryStrategy; bool m_retryStrategyHasBeenSet = false; bool m_propagateTags; bool m_propagateTagsHasBeenSet = false; JobTimeout m_timeout; bool m_timeoutHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; EksPropertiesOverride m_eksPropertiesOverride; bool m_eksPropertiesOverrideHasBeenSet = false; }; } // namespace Model } // namespace Batch } // namespace Aws