/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include The launch specification for Spot instances in the instance fleet, which
* determines the defined duration, provisioning timeout behavior, and allocation
* strategy. The instance fleet configuration is available only in
* Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. Spot instance
* allocation strategy is available in Amazon EMR version 5.12.1 and later.See Also:
AWS
* API Reference
The spot provisioning timeout period in minutes. If Spot instances are not
* provisioned within this time period, the TimeOutAction is taken.
* Minimum value is 5 and maximum value is 1440. The timeout applies only during
* initial provisioning, when the cluster is first created.
The spot provisioning timeout period in minutes. If Spot instances are not
* provisioned within this time period, the TimeOutAction is taken.
* Minimum value is 5 and maximum value is 1440. The timeout applies only during
* initial provisioning, when the cluster is first created.
The spot provisioning timeout period in minutes. If Spot instances are not
* provisioned within this time period, the TimeOutAction is taken.
* Minimum value is 5 and maximum value is 1440. The timeout applies only during
* initial provisioning, when the cluster is first created.
The spot provisioning timeout period in minutes. If Spot instances are not
* provisioned within this time period, the TimeOutAction is taken.
* Minimum value is 5 and maximum value is 1440. The timeout applies only during
* initial provisioning, when the cluster is first created.
The action to take when TargetSpotCapacity has not been
* fulfilled when the TimeoutDurationMinutes has expired; that is,
* when all Spot instances could not be provisioned within the Spot provisioning
* timeout. Valid values are TERMINATE_CLUSTER and
* SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot
* instances are available, On-Demand Instances should be provisioned to fulfill
* any remaining Spot capacity.
The action to take when TargetSpotCapacity has not been
* fulfilled when the TimeoutDurationMinutes has expired; that is,
* when all Spot instances could not be provisioned within the Spot provisioning
* timeout. Valid values are TERMINATE_CLUSTER and
* SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot
* instances are available, On-Demand Instances should be provisioned to fulfill
* any remaining Spot capacity.
The action to take when TargetSpotCapacity has not been
* fulfilled when the TimeoutDurationMinutes has expired; that is,
* when all Spot instances could not be provisioned within the Spot provisioning
* timeout. Valid values are TERMINATE_CLUSTER and
* SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot
* instances are available, On-Demand Instances should be provisioned to fulfill
* any remaining Spot capacity.
The action to take when TargetSpotCapacity has not been
* fulfilled when the TimeoutDurationMinutes has expired; that is,
* when all Spot instances could not be provisioned within the Spot provisioning
* timeout. Valid values are TERMINATE_CLUSTER and
* SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot
* instances are available, On-Demand Instances should be provisioned to fulfill
* any remaining Spot capacity.
The action to take when TargetSpotCapacity has not been
* fulfilled when the TimeoutDurationMinutes has expired; that is,
* when all Spot instances could not be provisioned within the Spot provisioning
* timeout. Valid values are TERMINATE_CLUSTER and
* SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot
* instances are available, On-Demand Instances should be provisioned to fulfill
* any remaining Spot capacity.
The action to take when TargetSpotCapacity has not been
* fulfilled when the TimeoutDurationMinutes has expired; that is,
* when all Spot instances could not be provisioned within the Spot provisioning
* timeout. Valid values are TERMINATE_CLUSTER and
* SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot
* instances are available, On-Demand Instances should be provisioned to fulfill
* any remaining Spot capacity.
The defined duration for Spot instances (also known as Spot blocks) in * minutes. When specified, the Spot instance does not terminate before the defined * duration expires, and defined duration pricing for Spot instances applies. Valid * values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as * a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 * marks the Spot instance for termination and provides a Spot instance termination * notice, which gives the instance a two-minute warning before it terminates.
*/ inline int GetBlockDurationMinutes() const{ return m_blockDurationMinutes; } /** *The defined duration for Spot instances (also known as Spot blocks) in * minutes. When specified, the Spot instance does not terminate before the defined * duration expires, and defined duration pricing for Spot instances applies. Valid * values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as * a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 * marks the Spot instance for termination and provides a Spot instance termination * notice, which gives the instance a two-minute warning before it terminates.
*/ inline bool BlockDurationMinutesHasBeenSet() const { return m_blockDurationMinutesHasBeenSet; } /** *The defined duration for Spot instances (also known as Spot blocks) in * minutes. When specified, the Spot instance does not terminate before the defined * duration expires, and defined duration pricing for Spot instances applies. Valid * values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as * a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 * marks the Spot instance for termination and provides a Spot instance termination * notice, which gives the instance a two-minute warning before it terminates.
*/ inline void SetBlockDurationMinutes(int value) { m_blockDurationMinutesHasBeenSet = true; m_blockDurationMinutes = value; } /** *The defined duration for Spot instances (also known as Spot blocks) in * minutes. When specified, the Spot instance does not terminate before the defined * duration expires, and defined duration pricing for Spot instances applies. Valid * values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as * a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 * marks the Spot instance for termination and provides a Spot instance termination * notice, which gives the instance a two-minute warning before it terminates.
*/ inline SpotProvisioningSpecification& WithBlockDurationMinutes(int value) { SetBlockDurationMinutes(value); return *this;} /** *Specifies the strategy to use in launching Spot instance fleets. Currently, * the only option is capacity-optimized (the default), which launches instances * from Spot instance pools with optimal capacity for the number of instances that * are launching.
*/ inline const SpotProvisioningAllocationStrategy& GetAllocationStrategy() const{ return m_allocationStrategy; } /** *Specifies the strategy to use in launching Spot instance fleets. Currently, * the only option is capacity-optimized (the default), which launches instances * from Spot instance pools with optimal capacity for the number of instances that * are launching.
*/ inline bool AllocationStrategyHasBeenSet() const { return m_allocationStrategyHasBeenSet; } /** *Specifies the strategy to use in launching Spot instance fleets. Currently, * the only option is capacity-optimized (the default), which launches instances * from Spot instance pools with optimal capacity for the number of instances that * are launching.
*/ inline void SetAllocationStrategy(const SpotProvisioningAllocationStrategy& value) { m_allocationStrategyHasBeenSet = true; m_allocationStrategy = value; } /** *Specifies the strategy to use in launching Spot instance fleets. Currently, * the only option is capacity-optimized (the default), which launches instances * from Spot instance pools with optimal capacity for the number of instances that * are launching.
*/ inline void SetAllocationStrategy(SpotProvisioningAllocationStrategy&& value) { m_allocationStrategyHasBeenSet = true; m_allocationStrategy = std::move(value); } /** *Specifies the strategy to use in launching Spot instance fleets. Currently, * the only option is capacity-optimized (the default), which launches instances * from Spot instance pools with optimal capacity for the number of instances that * are launching.
*/ inline SpotProvisioningSpecification& WithAllocationStrategy(const SpotProvisioningAllocationStrategy& value) { SetAllocationStrategy(value); return *this;} /** *Specifies the strategy to use in launching Spot instance fleets. Currently, * the only option is capacity-optimized (the default), which launches instances * from Spot instance pools with optimal capacity for the number of instances that * are launching.
*/ inline SpotProvisioningSpecification& WithAllocationStrategy(SpotProvisioningAllocationStrategy&& value) { SetAllocationStrategy(std::move(value)); return *this;} private: int m_timeoutDurationMinutes; bool m_timeoutDurationMinutesHasBeenSet; SpotProvisioningTimeoutAction m_timeoutAction; bool m_timeoutActionHasBeenSet; int m_blockDurationMinutes; bool m_blockDurationMinutesHasBeenSet; SpotProvisioningAllocationStrategy m_allocationStrategy; bool m_allocationStrategyHasBeenSet; }; } // namespace Model } // namespace EMR } // namespace Aws