/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Batch { namespace Model { /** *

An object that represents an Batch job definition.

See Also:

* AWS * API Reference

*/ class JobDefinition { public: AWS_BATCH_API JobDefinition(); AWS_BATCH_API JobDefinition(Aws::Utils::Json::JsonView jsonValue); AWS_BATCH_API JobDefinition& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_BATCH_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The name of the job definition.

*/ inline const Aws::String& GetJobDefinitionName() const{ return m_jobDefinitionName; } /** *

The name of the job definition.

*/ inline bool JobDefinitionNameHasBeenSet() const { return m_jobDefinitionNameHasBeenSet; } /** *

The name of the job definition.

*/ inline void SetJobDefinitionName(const Aws::String& value) { m_jobDefinitionNameHasBeenSet = true; m_jobDefinitionName = value; } /** *

The name of the job definition.

*/ inline void SetJobDefinitionName(Aws::String&& value) { m_jobDefinitionNameHasBeenSet = true; m_jobDefinitionName = std::move(value); } /** *

The name of the job definition.

*/ inline void SetJobDefinitionName(const char* value) { m_jobDefinitionNameHasBeenSet = true; m_jobDefinitionName.assign(value); } /** *

The name of the job definition.

*/ inline JobDefinition& WithJobDefinitionName(const Aws::String& value) { SetJobDefinitionName(value); return *this;} /** *

The name of the job definition.

*/ inline JobDefinition& WithJobDefinitionName(Aws::String&& value) { SetJobDefinitionName(std::move(value)); return *this;} /** *

The name of the job definition.

*/ inline JobDefinition& WithJobDefinitionName(const char* value) { SetJobDefinitionName(value); return *this;} /** *

The Amazon Resource Name (ARN) for the job definition.

*/ inline const Aws::String& GetJobDefinitionArn() const{ return m_jobDefinitionArn; } /** *

The Amazon Resource Name (ARN) for the job definition.

*/ inline bool JobDefinitionArnHasBeenSet() const { return m_jobDefinitionArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) for the job definition.

*/ inline void SetJobDefinitionArn(const Aws::String& value) { m_jobDefinitionArnHasBeenSet = true; m_jobDefinitionArn = value; } /** *

The Amazon Resource Name (ARN) for the job definition.

*/ inline void SetJobDefinitionArn(Aws::String&& value) { m_jobDefinitionArnHasBeenSet = true; m_jobDefinitionArn = std::move(value); } /** *

The Amazon Resource Name (ARN) for the job definition.

*/ inline void SetJobDefinitionArn(const char* value) { m_jobDefinitionArnHasBeenSet = true; m_jobDefinitionArn.assign(value); } /** *

The Amazon Resource Name (ARN) for the job definition.

*/ inline JobDefinition& WithJobDefinitionArn(const Aws::String& value) { SetJobDefinitionArn(value); return *this;} /** *

The Amazon Resource Name (ARN) for the job definition.

*/ inline JobDefinition& WithJobDefinitionArn(Aws::String&& value) { SetJobDefinitionArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) for the job definition.

*/ inline JobDefinition& WithJobDefinitionArn(const char* value) { SetJobDefinitionArn(value); return *this;} /** *

The revision of the job definition.

*/ inline int GetRevision() const{ return m_revision; } /** *

The revision of the job definition.

*/ inline bool RevisionHasBeenSet() const { return m_revisionHasBeenSet; } /** *

The revision of the job definition.

*/ inline void SetRevision(int value) { m_revisionHasBeenSet = true; m_revision = value; } /** *

The revision of the job definition.

*/ inline JobDefinition& WithRevision(int value) { SetRevision(value); return *this;} /** *

The status of the job definition.

*/ inline const Aws::String& GetStatus() const{ return m_status; } /** *

The status of the job definition.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The status of the job definition.

*/ inline void SetStatus(const Aws::String& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The status of the job definition.

*/ inline void SetStatus(Aws::String&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The status of the job definition.

*/ inline void SetStatus(const char* value) { m_statusHasBeenSet = true; m_status.assign(value); } /** *

The status of the job definition.

*/ inline JobDefinition& WithStatus(const Aws::String& value) { SetStatus(value); return *this;} /** *

The status of the job definition.

*/ inline JobDefinition& WithStatus(Aws::String&& value) { SetStatus(std::move(value)); return *this;} /** *

The status of the job definition.

*/ inline JobDefinition& WithStatus(const char* value) { SetStatus(value); return *this;} /** *

The type of job definition. It's either container or * multinode. If the job is run on Fargate resources, then * multinode isn't supported. For more information about multi-node * parallel jobs, see Creating * a multi-node parallel job definition in the Batch User Guide.

*/ inline const Aws::String& GetType() const{ return m_type; } /** *

The type of job definition. It's either container or * multinode. If the job is run on Fargate resources, then * multinode isn't supported. For more information about multi-node * parallel jobs, see Creating * a multi-node parallel job definition in the Batch User Guide.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The type of job definition. It's either container or * multinode. If the job is run on Fargate resources, then * multinode isn't supported. For more information about multi-node * parallel jobs, see Creating * a multi-node parallel job definition in the Batch User Guide.

*/ inline void SetType(const Aws::String& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The type of job definition. It's either container or * multinode. If the job is run on Fargate resources, then * multinode isn't supported. For more information about multi-node * parallel jobs, see Creating * a multi-node parallel job definition in the Batch User Guide.

*/ inline void SetType(Aws::String&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The type of job definition. It's either container or * multinode. If the job is run on Fargate resources, then * multinode isn't supported. For more information about multi-node * parallel jobs, see Creating * a multi-node parallel job definition in the Batch User Guide.

*/ inline void SetType(const char* value) { m_typeHasBeenSet = true; m_type.assign(value); } /** *

The type of job definition. It's either container or * multinode. If the job is run on Fargate resources, then * multinode isn't supported. For more information about multi-node * parallel jobs, see Creating * a multi-node parallel job definition in the Batch User Guide.

*/ inline JobDefinition& WithType(const Aws::String& value) { SetType(value); return *this;} /** *

The type of job definition. It's either container or * multinode. If the job is run on Fargate resources, then * multinode isn't supported. For more information about multi-node * parallel jobs, see Creating * a multi-node parallel job definition in the Batch User Guide.

*/ inline JobDefinition& WithType(Aws::String&& value) { SetType(std::move(value)); return *this;} /** *

The type of job definition. It's either container or * multinode. If the job is run on Fargate resources, then * multinode isn't supported. For more information about multi-node * parallel jobs, see Creating * a multi-node parallel job definition in the Batch User Guide.

*/ inline JobDefinition& WithType(const char* value) { SetType(value); return *this;} /** *

The scheduling priority of the job definition. 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.

*/ inline int GetSchedulingPriority() const{ return m_schedulingPriority; } /** *

The scheduling priority of the job definition. 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.

*/ inline bool SchedulingPriorityHasBeenSet() const { return m_schedulingPriorityHasBeenSet; } /** *

The scheduling priority of the job definition. 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.

*/ inline void SetSchedulingPriority(int value) { m_schedulingPriorityHasBeenSet = true; m_schedulingPriority = value; } /** *

The scheduling priority of the job definition. 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.

*/ inline JobDefinition& WithSchedulingPriority(int value) { SetSchedulingPriority(value); return *this;} /** *

Default parameters or parameter substitution placeholders that are set in the * job definition. Parameters are specified as a key-value pair mapping. Parameters * in a SubmitJob request override any corresponding parameter * defaults from the job definition. For more information about specifying * parameters, see Job * definition parameters in the Batch User Guide.

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

Default parameters or parameter substitution placeholders that are set in the * job definition. Parameters are specified as a key-value pair mapping. Parameters * in a SubmitJob request override any corresponding parameter * defaults from the job definition. For more information about specifying * parameters, see Job * definition parameters in the Batch User Guide.

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

Default parameters or parameter substitution placeholders that are set in the * job definition. Parameters are specified as a key-value pair mapping. Parameters * in a SubmitJob request override any corresponding parameter * defaults from the job definition. For more information about specifying * parameters, see Job * definition parameters in the Batch User Guide.

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

Default parameters or parameter substitution placeholders that are set in the * job definition. Parameters are specified as a key-value pair mapping. Parameters * in a SubmitJob request override any corresponding parameter * defaults from the job definition. For more information about specifying * parameters, see Job * definition parameters in the Batch User Guide.

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

Default parameters or parameter substitution placeholders that are set in the * job definition. Parameters are specified as a key-value pair mapping. Parameters * in a SubmitJob request override any corresponding parameter * defaults from the job definition. For more information about specifying * parameters, see Job * definition parameters in the Batch User Guide.

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

Default parameters or parameter substitution placeholders that are set in the * job definition. Parameters are specified as a key-value pair mapping. Parameters * in a SubmitJob request override any corresponding parameter * defaults from the job definition. For more information about specifying * parameters, see Job * definition parameters in the Batch User Guide.

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

Default parameters or parameter substitution placeholders that are set in the * job definition. Parameters are specified as a key-value pair mapping. Parameters * in a SubmitJob request override any corresponding parameter * defaults from the job definition. For more information about specifying * parameters, see Job * definition parameters in the Batch User Guide.

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

Default parameters or parameter substitution placeholders that are set in the * job definition. Parameters are specified as a key-value pair mapping. Parameters * in a SubmitJob request override any corresponding parameter * defaults from the job definition. For more information about specifying * parameters, see Job * definition parameters in the Batch User Guide.

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

Default parameters or parameter substitution placeholders that are set in the * job definition. Parameters are specified as a key-value pair mapping. Parameters * in a SubmitJob request override any corresponding parameter * defaults from the job definition. For more information about specifying * parameters, see Job * definition parameters in the Batch User Guide.

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

Default parameters or parameter substitution placeholders that are set in the * job definition. Parameters are specified as a key-value pair mapping. Parameters * in a SubmitJob request override any corresponding parameter * defaults from the job definition. For more information about specifying * parameters, see Job * definition parameters in the Batch User Guide.

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

Default parameters or parameter substitution placeholders that are set in the * job definition. Parameters are specified as a key-value pair mapping. Parameters * in a SubmitJob request override any corresponding parameter * defaults from the job definition. For more information about specifying * parameters, see Job * definition parameters in the Batch User Guide.

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

Default parameters or parameter substitution placeholders that are set in the * job definition. Parameters are specified as a key-value pair mapping. Parameters * in a SubmitJob request override any corresponding parameter * defaults from the job definition. For more information about specifying * parameters, see Job * definition parameters in the Batch User Guide.

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

Default parameters or parameter substitution placeholders that are set in the * job definition. Parameters are specified as a key-value pair mapping. Parameters * in a SubmitJob request override any corresponding parameter * defaults from the job definition. For more information about specifying * parameters, see Job * definition parameters in the Batch User Guide.

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

The retry strategy to use for failed jobs that are submitted with this job * definition.

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

The retry strategy to use for failed jobs that are submitted with this job * definition.

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

The retry strategy to use for failed jobs that are submitted with this job * definition.

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

The retry strategy to use for failed jobs that are submitted with this job * definition.

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

The retry strategy to use for failed jobs that are submitted with this job * definition.

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

The retry strategy to use for failed jobs that are submitted with this job * definition.

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

An object with various properties specific to Amazon ECS based jobs. Valid * values are containerProperties, eksProperties, and * nodeProperties. Only one can be specified.

*/ inline const ContainerProperties& GetContainerProperties() const{ return m_containerProperties; } /** *

An object with various properties specific to Amazon ECS based jobs. Valid * values are containerProperties, eksProperties, and * nodeProperties. Only one can be specified.

*/ inline bool ContainerPropertiesHasBeenSet() const { return m_containerPropertiesHasBeenSet; } /** *

An object with various properties specific to Amazon ECS based jobs. Valid * values are containerProperties, eksProperties, and * nodeProperties. Only one can be specified.

*/ inline void SetContainerProperties(const ContainerProperties& value) { m_containerPropertiesHasBeenSet = true; m_containerProperties = value; } /** *

An object with various properties specific to Amazon ECS based jobs. Valid * values are containerProperties, eksProperties, and * nodeProperties. Only one can be specified.

*/ inline void SetContainerProperties(ContainerProperties&& value) { m_containerPropertiesHasBeenSet = true; m_containerProperties = std::move(value); } /** *

An object with various properties specific to Amazon ECS based jobs. Valid * values are containerProperties, eksProperties, and * nodeProperties. Only one can be specified.

*/ inline JobDefinition& WithContainerProperties(const ContainerProperties& value) { SetContainerProperties(value); return *this;} /** *

An object with various properties specific to Amazon ECS based jobs. Valid * values are containerProperties, eksProperties, and * nodeProperties. Only one can be specified.

*/ inline JobDefinition& WithContainerProperties(ContainerProperties&& value) { SetContainerProperties(std::move(value)); return *this;} /** *

The timeout time for jobs that are submitted with this job definition. After * the amount of time you specify passes, Batch terminates your jobs if they aren't * finished.

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

The timeout time for jobs that are submitted with this job definition. After * the amount of time you specify passes, Batch terminates your jobs if they aren't * finished.

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

The timeout time for jobs that are submitted with this job definition. After * the amount of time you specify passes, Batch terminates your jobs if they aren't * finished.

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

The timeout time for jobs that are submitted with this job definition. After * the amount of time you specify passes, Batch terminates your jobs if they aren't * finished.

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

The timeout time for jobs that are submitted with this job definition. After * the amount of time you specify passes, Batch terminates your jobs if they aren't * finished.

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

The timeout time for jobs that are submitted with this job definition. After * the amount of time you specify passes, Batch terminates your jobs if they aren't * finished.

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

An object with various properties that are specific to multi-node parallel * jobs. Valid values are containerProperties, * eksProperties, and nodeProperties. Only one can be * specified.

If the job runs on Fargate resources, don't specify * nodeProperties. Use containerProperties instead.

* */ inline const NodeProperties& GetNodeProperties() const{ return m_nodeProperties; } /** *

An object with various properties that are specific to multi-node parallel * jobs. Valid values are containerProperties, * eksProperties, and nodeProperties. Only one can be * specified.

If the job runs on Fargate resources, don't specify * nodeProperties. Use containerProperties instead.

* */ inline bool NodePropertiesHasBeenSet() const { return m_nodePropertiesHasBeenSet; } /** *

An object with various properties that are specific to multi-node parallel * jobs. Valid values are containerProperties, * eksProperties, and nodeProperties. Only one can be * specified.

If the job runs on Fargate resources, don't specify * nodeProperties. Use containerProperties instead.

* */ inline void SetNodeProperties(const NodeProperties& value) { m_nodePropertiesHasBeenSet = true; m_nodeProperties = value; } /** *

An object with various properties that are specific to multi-node parallel * jobs. Valid values are containerProperties, * eksProperties, and nodeProperties. Only one can be * specified.

If the job runs on Fargate resources, don't specify * nodeProperties. Use containerProperties instead.

* */ inline void SetNodeProperties(NodeProperties&& value) { m_nodePropertiesHasBeenSet = true; m_nodeProperties = std::move(value); } /** *

An object with various properties that are specific to multi-node parallel * jobs. Valid values are containerProperties, * eksProperties, and nodeProperties. Only one can be * specified.

If the job runs on Fargate resources, don't specify * nodeProperties. Use containerProperties instead.

* */ inline JobDefinition& WithNodeProperties(const NodeProperties& value) { SetNodeProperties(value); return *this;} /** *

An object with various properties that are specific to multi-node parallel * jobs. Valid values are containerProperties, * eksProperties, and nodeProperties. Only one can be * specified.

If the job runs on Fargate resources, don't specify * nodeProperties. Use containerProperties instead.

* */ inline JobDefinition& WithNodeProperties(NodeProperties&& value) { SetNodeProperties(std::move(value)); return *this;} /** *

The tags that are applied to the job definition.

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

The tags that are applied to the job definition.

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

The tags that are applied to the job definition.

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

The tags that are applied to the job definition.

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

The tags that are applied to the job definition.

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

The tags that are applied to the job definition.

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

The tags that are applied to the job definition.

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

The tags that are applied to the job definition.

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

The tags that are applied to the job definition.

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

The tags that are applied to the job definition.

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

The tags that are applied to the job definition.

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

The tags that are applied to the job definition.

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

The tags that are applied to the job definition.

*/ inline JobDefinition& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, 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 when the tasks are created. * 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.

*/ 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 when the tasks are created. * 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.

*/ 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 when the tasks are created. * 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.

*/ 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 when the tasks are created. * 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.

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

The platform capabilities required by the job definition. If no value is * specified, it defaults to EC2. Jobs run on Fargate resources * specify FARGATE.

*/ inline const Aws::Vector& GetPlatformCapabilities() const{ return m_platformCapabilities; } /** *

The platform capabilities required by the job definition. If no value is * specified, it defaults to EC2. Jobs run on Fargate resources * specify FARGATE.

*/ inline bool PlatformCapabilitiesHasBeenSet() const { return m_platformCapabilitiesHasBeenSet; } /** *

The platform capabilities required by the job definition. If no value is * specified, it defaults to EC2. Jobs run on Fargate resources * specify FARGATE.

*/ inline void SetPlatformCapabilities(const Aws::Vector& value) { m_platformCapabilitiesHasBeenSet = true; m_platformCapabilities = value; } /** *

The platform capabilities required by the job definition. If no value is * specified, it defaults to EC2. Jobs run on Fargate resources * specify FARGATE.

*/ inline void SetPlatformCapabilities(Aws::Vector&& value) { m_platformCapabilitiesHasBeenSet = true; m_platformCapabilities = std::move(value); } /** *

The platform capabilities required by the job definition. If no value is * specified, it defaults to EC2. Jobs run on Fargate resources * specify FARGATE.

*/ inline JobDefinition& WithPlatformCapabilities(const Aws::Vector& value) { SetPlatformCapabilities(value); return *this;} /** *

The platform capabilities required by the job definition. If no value is * specified, it defaults to EC2. Jobs run on Fargate resources * specify FARGATE.

*/ inline JobDefinition& WithPlatformCapabilities(Aws::Vector&& value) { SetPlatformCapabilities(std::move(value)); return *this;} /** *

The platform capabilities required by the job definition. If no value is * specified, it defaults to EC2. Jobs run on Fargate resources * specify FARGATE.

*/ inline JobDefinition& AddPlatformCapabilities(const PlatformCapability& value) { m_platformCapabilitiesHasBeenSet = true; m_platformCapabilities.push_back(value); return *this; } /** *

The platform capabilities required by the job definition. If no value is * specified, it defaults to EC2. Jobs run on Fargate resources * specify FARGATE.

*/ inline JobDefinition& AddPlatformCapabilities(PlatformCapability&& value) { m_platformCapabilitiesHasBeenSet = true; m_platformCapabilities.push_back(std::move(value)); return *this; } /** *

An object with various properties that are specific to Amazon EKS based jobs. * Valid values are containerProperties, eksProperties, * and nodeProperties. Only one can be specified.

*/ inline const EksProperties& GetEksProperties() const{ return m_eksProperties; } /** *

An object with various properties that are specific to Amazon EKS based jobs. * Valid values are containerProperties, eksProperties, * and nodeProperties. Only one can be specified.

*/ inline bool EksPropertiesHasBeenSet() const { return m_eksPropertiesHasBeenSet; } /** *

An object with various properties that are specific to Amazon EKS based jobs. * Valid values are containerProperties, eksProperties, * and nodeProperties. Only one can be specified.

*/ inline void SetEksProperties(const EksProperties& value) { m_eksPropertiesHasBeenSet = true; m_eksProperties = value; } /** *

An object with various properties that are specific to Amazon EKS based jobs. * Valid values are containerProperties, eksProperties, * and nodeProperties. Only one can be specified.

*/ inline void SetEksProperties(EksProperties&& value) { m_eksPropertiesHasBeenSet = true; m_eksProperties = std::move(value); } /** *

An object with various properties that are specific to Amazon EKS based jobs. * Valid values are containerProperties, eksProperties, * and nodeProperties. Only one can be specified.

*/ inline JobDefinition& WithEksProperties(const EksProperties& value) { SetEksProperties(value); return *this;} /** *

An object with various properties that are specific to Amazon EKS based jobs. * Valid values are containerProperties, eksProperties, * and nodeProperties. Only one can be specified.

*/ inline JobDefinition& WithEksProperties(EksProperties&& value) { SetEksProperties(std::move(value)); return *this;} /** *

The orchestration type of the compute environment. The valid values are * ECS (default) or EKS.

*/ inline const OrchestrationType& GetContainerOrchestrationType() const{ return m_containerOrchestrationType; } /** *

The orchestration type of the compute environment. The valid values are * ECS (default) or EKS.

*/ inline bool ContainerOrchestrationTypeHasBeenSet() const { return m_containerOrchestrationTypeHasBeenSet; } /** *

The orchestration type of the compute environment. The valid values are * ECS (default) or EKS.

*/ inline void SetContainerOrchestrationType(const OrchestrationType& value) { m_containerOrchestrationTypeHasBeenSet = true; m_containerOrchestrationType = value; } /** *

The orchestration type of the compute environment. The valid values are * ECS (default) or EKS.

*/ inline void SetContainerOrchestrationType(OrchestrationType&& value) { m_containerOrchestrationTypeHasBeenSet = true; m_containerOrchestrationType = std::move(value); } /** *

The orchestration type of the compute environment. The valid values are * ECS (default) or EKS.

*/ inline JobDefinition& WithContainerOrchestrationType(const OrchestrationType& value) { SetContainerOrchestrationType(value); return *this;} /** *

The orchestration type of the compute environment. The valid values are * ECS (default) or EKS.

*/ inline JobDefinition& WithContainerOrchestrationType(OrchestrationType&& value) { SetContainerOrchestrationType(std::move(value)); return *this;} private: Aws::String m_jobDefinitionName; bool m_jobDefinitionNameHasBeenSet = false; Aws::String m_jobDefinitionArn; bool m_jobDefinitionArnHasBeenSet = false; int m_revision; bool m_revisionHasBeenSet = false; Aws::String m_status; bool m_statusHasBeenSet = false; Aws::String m_type; bool m_typeHasBeenSet = false; int m_schedulingPriority; bool m_schedulingPriorityHasBeenSet = false; Aws::Map m_parameters; bool m_parametersHasBeenSet = false; RetryStrategy m_retryStrategy; bool m_retryStrategyHasBeenSet = false; ContainerProperties m_containerProperties; bool m_containerPropertiesHasBeenSet = false; JobTimeout m_timeout; bool m_timeoutHasBeenSet = false; NodeProperties m_nodeProperties; bool m_nodePropertiesHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; bool m_propagateTags; bool m_propagateTagsHasBeenSet = false; Aws::Vector m_platformCapabilities; bool m_platformCapabilitiesHasBeenSet = false; EksProperties m_eksProperties; bool m_eksPropertiesHasBeenSet = false; OrchestrationType m_containerOrchestrationType; bool m_containerOrchestrationTypeHasBeenSet = false; }; } // namespace Model } // namespace Batch } // namespace Aws