/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #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 any node overrides to a job definition that's used * in a SubmitJob API operation.

This parameter isn't * applicable to jobs that are running on Fargate resources. Don't provide it for * these jobs. Rather, use containerOverrides instead.

*

See Also:

AWS * API Reference

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

The number of nodes to use with a multi-node parallel job. This value * overrides the number of nodes that are specified in the job definition. To use * this override, you must meet the following conditions:

  • There * must be at least one node range in your job definition that has an open upper * boundary, such as : or n:.

  • The lower * boundary of the node range that's specified in the job definition must be fewer * than the number of nodes specified in the override.

  • The main * node index that's specified in the job definition must be fewer than the number * of nodes specified in the override.

*/ inline int GetNumNodes() const{ return m_numNodes; } /** *

The number of nodes to use with a multi-node parallel job. This value * overrides the number of nodes that are specified in the job definition. To use * this override, you must meet the following conditions:

  • There * must be at least one node range in your job definition that has an open upper * boundary, such as : or n:.

  • The lower * boundary of the node range that's specified in the job definition must be fewer * than the number of nodes specified in the override.

  • The main * node index that's specified in the job definition must be fewer than the number * of nodes specified in the override.

*/ inline bool NumNodesHasBeenSet() const { return m_numNodesHasBeenSet; } /** *

The number of nodes to use with a multi-node parallel job. This value * overrides the number of nodes that are specified in the job definition. To use * this override, you must meet the following conditions:

  • There * must be at least one node range in your job definition that has an open upper * boundary, such as : or n:.

  • The lower * boundary of the node range that's specified in the job definition must be fewer * than the number of nodes specified in the override.

  • The main * node index that's specified in the job definition must be fewer than the number * of nodes specified in the override.

*/ inline void SetNumNodes(int value) { m_numNodesHasBeenSet = true; m_numNodes = value; } /** *

The number of nodes to use with a multi-node parallel job. This value * overrides the number of nodes that are specified in the job definition. To use * this override, you must meet the following conditions:

  • There * must be at least one node range in your job definition that has an open upper * boundary, such as : or n:.

  • The lower * boundary of the node range that's specified in the job definition must be fewer * than the number of nodes specified in the override.

  • The main * node index that's specified in the job definition must be fewer than the number * of nodes specified in the override.

*/ inline NodeOverrides& WithNumNodes(int value) { SetNumNodes(value); return *this;} /** *

The node property overrides for the job.

*/ inline const Aws::Vector& GetNodePropertyOverrides() const{ return m_nodePropertyOverrides; } /** *

The node property overrides for the job.

*/ inline bool NodePropertyOverridesHasBeenSet() const { return m_nodePropertyOverridesHasBeenSet; } /** *

The node property overrides for the job.

*/ inline void SetNodePropertyOverrides(const Aws::Vector& value) { m_nodePropertyOverridesHasBeenSet = true; m_nodePropertyOverrides = value; } /** *

The node property overrides for the job.

*/ inline void SetNodePropertyOverrides(Aws::Vector&& value) { m_nodePropertyOverridesHasBeenSet = true; m_nodePropertyOverrides = std::move(value); } /** *

The node property overrides for the job.

*/ inline NodeOverrides& WithNodePropertyOverrides(const Aws::Vector& value) { SetNodePropertyOverrides(value); return *this;} /** *

The node property overrides for the job.

*/ inline NodeOverrides& WithNodePropertyOverrides(Aws::Vector&& value) { SetNodePropertyOverrides(std::move(value)); return *this;} /** *

The node property overrides for the job.

*/ inline NodeOverrides& AddNodePropertyOverrides(const NodePropertyOverride& value) { m_nodePropertyOverridesHasBeenSet = true; m_nodePropertyOverrides.push_back(value); return *this; } /** *

The node property overrides for the job.

*/ inline NodeOverrides& AddNodePropertyOverrides(NodePropertyOverride&& value) { m_nodePropertyOverridesHasBeenSet = true; m_nodePropertyOverrides.push_back(std::move(value)); return *this; } private: int m_numNodes; bool m_numNodesHasBeenSet = false; Aws::Vector m_nodePropertyOverrides; bool m_nodePropertyOverridesHasBeenSet = false; }; } // namespace Model } // namespace Batch } // namespace Aws