/**
* 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 releases 4.8.0 and later, excluding 5.0.x versions. Spot Instance
* allocation strategy is available in Amazon EMR releases 5.12.1 and later. Spot Instances with a defined duration (also known as Spot
* blocks) are no longer available to new customers from July 1, 2021. For
* customers who have previously used the feature, we will continue to support Spot
* Instances with a defined duration until December 31, 2022. 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.
*Spot Instances with a defined duration (also known as Spot blocks) are * no longer available to new customers from July 1, 2021. For customers who have * previously used the feature, we will continue to support Spot Instances with a * defined duration until December 31, 2022.
*/ 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.
*Spot Instances with a defined duration (also known as Spot blocks) are * no longer available to new customers from July 1, 2021. For customers who have * previously used the feature, we will continue to support Spot Instances with a * defined duration until December 31, 2022.
*/ 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.
*Spot Instances with a defined duration (also known as Spot blocks) are * no longer available to new customers from July 1, 2021. For customers who have * previously used the feature, we will continue to support Spot Instances with a * defined duration until December 31, 2022.
*/ 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.
*Spot Instances with a defined duration (also known as Spot blocks) are * no longer available to new customers from July 1, 2021. For customers who have * previously used the feature, we will continue to support Spot Instances with a * defined duration until December 31, 2022.
*/ 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 = false; SpotProvisioningTimeoutAction m_timeoutAction; bool m_timeoutActionHasBeenSet = false; int m_blockDurationMinutes; bool m_blockDurationMinutesHasBeenSet = false; SpotProvisioningAllocationStrategy m_allocationStrategy; bool m_allocationStrategyHasBeenSet = false; }; } // namespace Model } // namespace EMR } // namespace Aws