Struct aws_sdk_autoscaling::model::InstancesDistribution
source · #[non_exhaustive]pub struct InstancesDistribution { /* private fields */ }Expand description
Describes an instances distribution for an Auto Scaling group.
Implementations§
source§impl InstancesDistribution
impl InstancesDistribution
sourcepub fn on_demand_allocation_strategy(&self) -> Option<&str>
pub fn on_demand_allocation_strategy(&self) -> Option<&str>
The order of the launch template overrides to use in fulfilling On-Demand capacity.
If you specify lowest-price, Amazon EC2 Auto Scaling uses price to determine the order, launching the lowest price first.
If you specify prioritized, Amazon EC2 Auto Scaling uses the priority that you assigned to each launch template override, launching the highest priority first. If all your On-Demand capacity cannot be fulfilled using your highest priority instance, then Amazon EC2 Auto Scaling launches the remaining capacity using the second priority instance type, and so on.
Default: lowest-price for Auto Scaling groups that specify InstanceRequirements in the overrides and prioritized for Auto Scaling groups that don't.
Valid values: lowest-price | prioritized
sourcepub fn on_demand_base_capacity(&self) -> Option<i32>
pub fn on_demand_base_capacity(&self) -> Option<i32>
The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On-Demand Instances. This base portion is launched first as your group scales.
If you specify weights for the instance types in the overrides, the base capacity is measured in the same unit of measurement as the instance types. If you specify InstanceRequirements in the overrides, the base capacity is measured in the same unit of measurement as your group's desired capacity.
Default: 0
sourcepub fn on_demand_percentage_above_base_capacity(&self) -> Option<i32>
pub fn on_demand_percentage_above_base_capacity(&self) -> Option<i32>
Controls the percentages of On-Demand Instances and Spot Instances for your additional capacity beyond OnDemandBaseCapacity. Expressed as a number (for example, 20 specifies 20% On-Demand Instances, 80% Spot Instances). If set to 100, only On-Demand Instances are used.
Default: 100
sourcepub fn spot_allocation_strategy(&self) -> Option<&str>
pub fn spot_allocation_strategy(&self) -> Option<&str>
Indicates how to allocate instances across Spot Instance pools.
If the allocation strategy is lowest-price, the Auto Scaling group launches instances using the Spot pools with the lowest price, and evenly allocates your instances across the number of Spot pools that you specify.
If the allocation strategy is capacity-optimized (recommended), the Auto Scaling group launches instances using Spot pools that are optimally chosen based on the available Spot capacity. Alternatively, you can use capacity-optimized-prioritized and set the order of instance types in the list of launch template overrides from highest to lowest priority (from first to last in the list). Amazon EC2 Auto Scaling honors the instance type priorities on a best-effort basis but optimizes for capacity first.
Default: lowest-price
Valid values: lowest-price | capacity-optimized | capacity-optimized-prioritized
sourcepub fn spot_instance_pools(&self) -> Option<i32>
pub fn spot_instance_pools(&self) -> Option<i32>
The number of Spot Instance pools across which to allocate your Spot Instances. The Spot pools are determined from the different instance types in the overrides. Valid only when the Spot allocation strategy is lowest-price. Value must be in the range of 1–20.
Default: 2
sourcepub fn spot_max_price(&self) -> Option<&str>
pub fn spot_max_price(&self) -> Option<&str>
The maximum price per unit hour that you are willing to pay for a Spot Instance. If you keep the value at its default (unspecified), Amazon EC2 Auto Scaling uses the On-Demand price as the maximum Spot price. To remove a value that you previously set, include the property but specify an empty string ("") for the value.
If your maximum price is lower than the Spot price for the instance types that you selected, your Spot Instances are not launched.
Valid Range: Minimum value of 0.001
source§impl InstancesDistribution
impl InstancesDistribution
sourcepub fn builder() -> Builder
pub fn builder() -> Builder
Creates a new builder-style object to manufacture InstancesDistribution.
Examples found in repository?
5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859
pub fn deser_structure_crate_model_instances_distribution(
decoder: &mut aws_smithy_xml::decode::ScopedDecoder,
) -> Result<crate::model::InstancesDistribution, aws_smithy_xml::decode::XmlDecodeError> {
#[allow(unused_mut)]
let mut builder = crate::model::InstancesDistribution::builder();
while let Some(mut tag) = decoder.next_tag() {
match tag.start_el() {
s if s.matches("OnDemandAllocationStrategy") /* OnDemandAllocationStrategy com.amazonaws.autoscaling#InstancesDistribution$OnDemandAllocationStrategy */ => {
let var_259 =
Some(
Result::<std::string::String, aws_smithy_xml::decode::XmlDecodeError>::Ok(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_on_demand_allocation_strategy(var_259);
}
,
s if s.matches("OnDemandBaseCapacity") /* OnDemandBaseCapacity com.amazonaws.autoscaling#InstancesDistribution$OnDemandBaseCapacity */ => {
let var_260 =
Some(
{
<i32 as aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.autoscaling#OnDemandBaseCapacity`)"))
}
?
)
;
builder = builder.set_on_demand_base_capacity(var_260);
}
,
s if s.matches("OnDemandPercentageAboveBaseCapacity") /* OnDemandPercentageAboveBaseCapacity com.amazonaws.autoscaling#InstancesDistribution$OnDemandPercentageAboveBaseCapacity */ => {
let var_261 =
Some(
{
<i32 as aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.autoscaling#OnDemandPercentageAboveBaseCapacity`)"))
}
?
)
;
builder = builder.set_on_demand_percentage_above_base_capacity(var_261);
}
,
s if s.matches("SpotAllocationStrategy") /* SpotAllocationStrategy com.amazonaws.autoscaling#InstancesDistribution$SpotAllocationStrategy */ => {
let var_262 =
Some(
Result::<std::string::String, aws_smithy_xml::decode::XmlDecodeError>::Ok(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_spot_allocation_strategy(var_262);
}
,
s if s.matches("SpotInstancePools") /* SpotInstancePools com.amazonaws.autoscaling#InstancesDistribution$SpotInstancePools */ => {
let var_263 =
Some(
{
<i32 as aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.autoscaling#SpotInstancePools`)"))
}
?
)
;
builder = builder.set_spot_instance_pools(var_263);
}
,
s if s.matches("SpotMaxPrice") /* SpotMaxPrice com.amazonaws.autoscaling#InstancesDistribution$SpotMaxPrice */ => {
let var_264 =
Some(
Result::<std::string::String, aws_smithy_xml::decode::XmlDecodeError>::Ok(
aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_spot_max_price(var_264);
}
,
_ => {}
}
}
Ok(builder.build())
}Trait Implementations§
source§impl Clone for InstancesDistribution
impl Clone for InstancesDistribution
source§fn clone(&self) -> InstancesDistribution
fn clone(&self) -> InstancesDistribution
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more