Class SpotProvisioningSpecification
- All Implemented Interfaces:
Serializable
,SdkPojo
,ToCopyableBuilder<SpotProvisioningSpecification.Builder,
SpotProvisioningSpecification>
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:
-
Nested Class Summary
-
Method Summary
Modifier and TypeMethodDescriptionSpecifies one of the following strategies to launch Spot Instance fleets:price-capacity-optimized
,capacity-optimized
,lowest-price
, ordiversified
.final String
Specifies one of the following strategies to launch Spot Instance fleets:price-capacity-optimized
,capacity-optimized
,lowest-price
, ordiversified
.final Integer
The defined duration for Spot Instances (also known as Spot blocks) in minutes.builder()
final boolean
final boolean
equalsBySdkFields
(Object obj) Indicates whether some other object is "equal to" this one by SDK fields.final <T> Optional
<T> getValueForField
(String fieldName, Class<T> clazz) final int
hashCode()
static Class
<? extends SpotProvisioningSpecification.Builder> The action to take whenTargetSpotCapacity
has not been fulfilled when theTimeoutDurationMinutes
has expired; that is, when all Spot Instances could not be provisioned within the Spot provisioning timeout.final String
The action to take whenTargetSpotCapacity
has not been fulfilled when theTimeoutDurationMinutes
has expired; that is, when all Spot Instances could not be provisioned within the Spot provisioning timeout.final Integer
The Spot provisioning timeout period in minutes.Take this object and create a builder that contains all of the current property values of this object.final String
toString()
Returns a string representation of this object.Methods inherited from interface software.amazon.awssdk.utils.builder.ToCopyableBuilder
copy
-
Method Details
-
timeoutDurationMinutes
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.- Returns:
- 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.
-
timeoutAction
The action to take when
TargetSpotCapacity
has not been fulfilled when theTimeoutDurationMinutes
has expired; that is, when all Spot Instances could not be provisioned within the Spot provisioning timeout. Valid values areTERMINATE_CLUSTER
andSWITCH_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.If the service returns an enum value that is not available in the current SDK version,
timeoutAction
will returnSpotProvisioningTimeoutAction.UNKNOWN_TO_SDK_VERSION
. The raw value returned by the service is available fromtimeoutActionAsString()
.- Returns:
- The action to take when
TargetSpotCapacity
has not been fulfilled when theTimeoutDurationMinutes
has expired; that is, when all Spot Instances could not be provisioned within the Spot provisioning timeout. Valid values areTERMINATE_CLUSTER
andSWITCH_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. - See Also:
-
timeoutActionAsString
The action to take when
TargetSpotCapacity
has not been fulfilled when theTimeoutDurationMinutes
has expired; that is, when all Spot Instances could not be provisioned within the Spot provisioning timeout. Valid values areTERMINATE_CLUSTER
andSWITCH_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.If the service returns an enum value that is not available in the current SDK version,
timeoutAction
will returnSpotProvisioningTimeoutAction.UNKNOWN_TO_SDK_VERSION
. The raw value returned by the service is available fromtimeoutActionAsString()
.- Returns:
- The action to take when
TargetSpotCapacity
has not been fulfilled when theTimeoutDurationMinutes
has expired; that is, when all Spot Instances could not be provisioned within the Spot provisioning timeout. Valid values areTERMINATE_CLUSTER
andSWITCH_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. - See Also:
-
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.
- Returns:
- 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.
-
allocationStrategy
Specifies one of the following strategies to launch Spot Instance fleets:
price-capacity-optimized
,capacity-optimized
,lowest-price
, ordiversified
. For more information on the provisioning strategies, see Allocation strategies for Spot Instances in the Amazon EC2 User Guide for Linux Instances.When you launch a Spot Instance fleet with the old console, it automatically launches with the
capacity-optimized
strategy. You can't change the allocation strategy from the old console.If the service returns an enum value that is not available in the current SDK version,
allocationStrategy
will returnSpotProvisioningAllocationStrategy.UNKNOWN_TO_SDK_VERSION
. The raw value returned by the service is available fromallocationStrategyAsString()
.- Returns:
- Specifies one of the following strategies to launch Spot Instance fleets:
price-capacity-optimized
,capacity-optimized
,lowest-price
, ordiversified
. For more information on the provisioning strategies, see Allocation strategies for Spot Instances in the Amazon EC2 User Guide for Linux Instances.When you launch a Spot Instance fleet with the old console, it automatically launches with the
capacity-optimized
strategy. You can't change the allocation strategy from the old console. - See Also:
-
allocationStrategyAsString
Specifies one of the following strategies to launch Spot Instance fleets:
price-capacity-optimized
,capacity-optimized
,lowest-price
, ordiversified
. For more information on the provisioning strategies, see Allocation strategies for Spot Instances in the Amazon EC2 User Guide for Linux Instances.When you launch a Spot Instance fleet with the old console, it automatically launches with the
capacity-optimized
strategy. You can't change the allocation strategy from the old console.If the service returns an enum value that is not available in the current SDK version,
allocationStrategy
will returnSpotProvisioningAllocationStrategy.UNKNOWN_TO_SDK_VERSION
. The raw value returned by the service is available fromallocationStrategyAsString()
.- Returns:
- Specifies one of the following strategies to launch Spot Instance fleets:
price-capacity-optimized
,capacity-optimized
,lowest-price
, ordiversified
. For more information on the provisioning strategies, see Allocation strategies for Spot Instances in the Amazon EC2 User Guide for Linux Instances.When you launch a Spot Instance fleet with the old console, it automatically launches with the
capacity-optimized
strategy. You can't change the allocation strategy from the old console. - See Also:
-
toBuilder
Description copied from interface:ToCopyableBuilder
Take this object and create a builder that contains all of the current property values of this object.- Specified by:
toBuilder
in interfaceToCopyableBuilder<SpotProvisioningSpecification.Builder,
SpotProvisioningSpecification> - Returns:
- a builder for type T
-
builder
-
serializableBuilderClass
-
hashCode
public final int hashCode() -
equals
-
equalsBySdkFields
Description copied from interface:SdkPojo
Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in anSdkPojo
class, and is generated based on a service model.If an
SdkPojo
class does not have any inherited fields,equalsBySdkFields
andequals
are essentially the same.- Specified by:
equalsBySdkFields
in interfaceSdkPojo
- Parameters:
obj
- the object to be compared with- Returns:
- true if the other object equals to this object by sdk fields, false otherwise.
-
toString
Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value. -
getValueForField
-
sdkFields
-