#[non_exhaustive]pub struct InstanceRequirementsRequest {Show 24 fields
pub v_cpu_count: Option<VCpuCountRangeRequest>,
pub memory_mib: Option<MemoryMiBRequest>,
pub cpu_manufacturers: Option<Vec<CpuManufacturer>>,
pub memory_gib_per_v_cpu: Option<MemoryGiBPerVCpuRequest>,
pub excluded_instance_types: Option<Vec<String>>,
pub instance_generations: Option<Vec<InstanceGeneration>>,
pub spot_max_price_percentage_over_lowest_price: Option<i32>,
pub on_demand_max_price_percentage_over_lowest_price: Option<i32>,
pub bare_metal: Option<BareMetal>,
pub burstable_performance: Option<BurstablePerformance>,
pub require_hibernate_support: Option<bool>,
pub network_interface_count: Option<NetworkInterfaceCountRequest>,
pub local_storage: Option<LocalStorage>,
pub local_storage_types: Option<Vec<LocalStorageType>>,
pub total_local_storage_gb: Option<TotalLocalStorageGbRequest>,
pub baseline_ebs_bandwidth_mbps: Option<BaselineEbsBandwidthMbpsRequest>,
pub accelerator_types: Option<Vec<AcceleratorType>>,
pub accelerator_count: Option<AcceleratorCountRequest>,
pub accelerator_manufacturers: Option<Vec<AcceleratorManufacturer>>,
pub accelerator_names: Option<Vec<AcceleratorName>>,
pub accelerator_total_memory_mib: Option<AcceleratorTotalMemoryMiBRequest>,
pub network_bandwidth_gbps: Option<NetworkBandwidthGbpsRequest>,
pub allowed_instance_types: Option<Vec<String>>,
pub max_spot_price_as_percentage_of_optimal_on_demand_price: Option<i32>,
}
Expand description
The instance requirements for attribute-based instance type selection. Instead of specifying exact instance types, you define requirements such as vCPU count, memory size, network performance, and accelerator specifications. Amazon ECS automatically selects Amazon EC2 instance types that match these requirements, providing flexibility and helping to mitigate capacity constraints.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.v_cpu_count: Option<VCpuCountRangeRequest>
The minimum and maximum number of vCPUs for the instance types. Amazon ECS selects instance types that have vCPU counts within this range.
memory_mib: Option<MemoryMiBRequest>
The minimum and maximum amount of memory in mebibytes (MiB) for the instance types. Amazon ECS selects instance types that have memory within this range.
cpu_manufacturers: Option<Vec<CpuManufacturer>>
The CPU manufacturers to include or exclude. You can specify intel
, amd
, or amazon-web-services
to control which CPU types are used for your workloads.
memory_gib_per_v_cpu: Option<MemoryGiBPerVCpuRequest>
The minimum and maximum amount of memory per vCPU in gibibytes (GiB). This helps ensure that instance types have the appropriate memory-to-CPU ratio for your workloads.
excluded_instance_types: Option<Vec<String>>
The instance types to exclude from selection. Use this to prevent Amazon ECS from selecting specific instance types that may not be suitable for your workloads.
instance_generations: Option<Vec<InstanceGeneration>>
The instance generations to include. You can specify current
to use the latest generation instances, or previous
to include previous generation instances for cost optimization.
spot_max_price_percentage_over_lowest_price: Option<i32>
The maximum price for Spot instances as a percentage over the lowest priced On-Demand instance. This helps control Spot instance costs while maintaining access to capacity.
on_demand_max_price_percentage_over_lowest_price: Option<i32>
The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon ECS selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold.
bare_metal: Option<BareMetal>
Indicates whether to include bare metal instance types. Set to included
to allow bare metal instances, excluded
to exclude them, or required
to use only bare metal instances.
burstable_performance: Option<BurstablePerformance>
Indicates whether to include burstable performance instance types (T2, T3, T3a, T4g). Set to included
to allow burstable instances, excluded
to exclude them, or required
to use only burstable instances.
require_hibernate_support: Option<bool>
Indicates whether the instance types must support hibernation. When set to true
, only instance types that support hibernation are selected.
network_interface_count: Option<NetworkInterfaceCountRequest>
The minimum and maximum number of network interfaces for the instance types. This is useful for workloads that require multiple network interfaces.
local_storage: Option<LocalStorage>
Indicates whether to include instance types with local storage. Set to included
to allow local storage, excluded
to exclude it, or required
to use only instances with local storage.
local_storage_types: Option<Vec<LocalStorageType>>
The local storage types to include. You can specify hdd
for hard disk drives, ssd
for solid state drives, or both.
total_local_storage_gb: Option<TotalLocalStorageGbRequest>
The minimum and maximum total local storage in gigabytes (GB) for instance types with local storage.
baseline_ebs_bandwidth_mbps: Option<BaselineEbsBandwidthMbpsRequest>
The minimum and maximum baseline Amazon EBS bandwidth in megabits per second (Mbps). This is important for workloads with high storage I/O requirements.
accelerator_types: Option<Vec<AcceleratorType>>
The accelerator types to include. You can specify gpu
for graphics processing units, fpga
for field programmable gate arrays, or inference
for machine learning inference accelerators.
accelerator_count: Option<AcceleratorCountRequest>
The minimum and maximum number of accelerators for the instance types. This is used when you need instances with specific numbers of GPUs or other accelerators.
accelerator_manufacturers: Option<Vec<AcceleratorManufacturer>>
The accelerator manufacturers to include. You can specify nvidia
, amd
, amazon-web-services
, or xilinx
depending on your accelerator requirements.
accelerator_names: Option<Vec<AcceleratorName>>
The specific accelerator names to include. For example, you can specify a100
, v100
, k80
, or other specific accelerator models.
accelerator_total_memory_mib: Option<AcceleratorTotalMemoryMiBRequest>
The minimum and maximum total accelerator memory in mebibytes (MiB). This is important for GPU workloads that require specific amounts of video memory.
network_bandwidth_gbps: Option<NetworkBandwidthGbpsRequest>
The minimum and maximum network bandwidth in gigabits per second (Gbps). This is crucial for network-intensive workloads that require high throughput.
allowed_instance_types: Option<Vec<String>>
The instance types to include in the selection. When specified, Amazon ECS only considers these instance types, subject to the other requirements specified.
max_spot_price_as_percentage_of_optimal_on_demand_price: Option<i32>
The maximum price for Spot instances as a percentage of the optimal On-Demand price. This provides more precise cost control for Spot instance selection.
Implementations§
Source§impl InstanceRequirementsRequest
impl InstanceRequirementsRequest
Sourcepub fn v_cpu_count(&self) -> Option<&VCpuCountRangeRequest>
pub fn v_cpu_count(&self) -> Option<&VCpuCountRangeRequest>
The minimum and maximum number of vCPUs for the instance types. Amazon ECS selects instance types that have vCPU counts within this range.
Sourcepub fn memory_mib(&self) -> Option<&MemoryMiBRequest>
pub fn memory_mib(&self) -> Option<&MemoryMiBRequest>
The minimum and maximum amount of memory in mebibytes (MiB) for the instance types. Amazon ECS selects instance types that have memory within this range.
Sourcepub fn cpu_manufacturers(&self) -> &[CpuManufacturer]
pub fn cpu_manufacturers(&self) -> &[CpuManufacturer]
The CPU manufacturers to include or exclude. You can specify intel
, amd
, or amazon-web-services
to control which CPU types are used for your workloads.
If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use .cpu_manufacturers.is_none()
.
Sourcepub fn memory_gib_per_v_cpu(&self) -> Option<&MemoryGiBPerVCpuRequest>
pub fn memory_gib_per_v_cpu(&self) -> Option<&MemoryGiBPerVCpuRequest>
The minimum and maximum amount of memory per vCPU in gibibytes (GiB). This helps ensure that instance types have the appropriate memory-to-CPU ratio for your workloads.
Sourcepub fn excluded_instance_types(&self) -> &[String]
pub fn excluded_instance_types(&self) -> &[String]
The instance types to exclude from selection. Use this to prevent Amazon ECS from selecting specific instance types that may not be suitable for your workloads.
If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use .excluded_instance_types.is_none()
.
Sourcepub fn instance_generations(&self) -> &[InstanceGeneration]
pub fn instance_generations(&self) -> &[InstanceGeneration]
The instance generations to include. You can specify current
to use the latest generation instances, or previous
to include previous generation instances for cost optimization.
If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use .instance_generations.is_none()
.
Sourcepub fn spot_max_price_percentage_over_lowest_price(&self) -> Option<i32>
pub fn spot_max_price_percentage_over_lowest_price(&self) -> Option<i32>
The maximum price for Spot instances as a percentage over the lowest priced On-Demand instance. This helps control Spot instance costs while maintaining access to capacity.
Sourcepub fn on_demand_max_price_percentage_over_lowest_price(&self) -> Option<i32>
pub fn on_demand_max_price_percentage_over_lowest_price(&self) -> Option<i32>
The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon ECS selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold.
Sourcepub fn bare_metal(&self) -> Option<&BareMetal>
pub fn bare_metal(&self) -> Option<&BareMetal>
Indicates whether to include bare metal instance types. Set to included
to allow bare metal instances, excluded
to exclude them, or required
to use only bare metal instances.
Sourcepub fn burstable_performance(&self) -> Option<&BurstablePerformance>
pub fn burstable_performance(&self) -> Option<&BurstablePerformance>
Indicates whether to include burstable performance instance types (T2, T3, T3a, T4g). Set to included
to allow burstable instances, excluded
to exclude them, or required
to use only burstable instances.
Sourcepub fn require_hibernate_support(&self) -> Option<bool>
pub fn require_hibernate_support(&self) -> Option<bool>
Indicates whether the instance types must support hibernation. When set to true
, only instance types that support hibernation are selected.
Sourcepub fn network_interface_count(&self) -> Option<&NetworkInterfaceCountRequest>
pub fn network_interface_count(&self) -> Option<&NetworkInterfaceCountRequest>
The minimum and maximum number of network interfaces for the instance types. This is useful for workloads that require multiple network interfaces.
Sourcepub fn local_storage(&self) -> Option<&LocalStorage>
pub fn local_storage(&self) -> Option<&LocalStorage>
Indicates whether to include instance types with local storage. Set to included
to allow local storage, excluded
to exclude it, or required
to use only instances with local storage.
Sourcepub fn local_storage_types(&self) -> &[LocalStorageType]
pub fn local_storage_types(&self) -> &[LocalStorageType]
The local storage types to include. You can specify hdd
for hard disk drives, ssd
for solid state drives, or both.
If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use .local_storage_types.is_none()
.
Sourcepub fn total_local_storage_gb(&self) -> Option<&TotalLocalStorageGbRequest>
pub fn total_local_storage_gb(&self) -> Option<&TotalLocalStorageGbRequest>
The minimum and maximum total local storage in gigabytes (GB) for instance types with local storage.
Sourcepub fn baseline_ebs_bandwidth_mbps(
&self,
) -> Option<&BaselineEbsBandwidthMbpsRequest>
pub fn baseline_ebs_bandwidth_mbps( &self, ) -> Option<&BaselineEbsBandwidthMbpsRequest>
The minimum and maximum baseline Amazon EBS bandwidth in megabits per second (Mbps). This is important for workloads with high storage I/O requirements.
Sourcepub fn accelerator_types(&self) -> &[AcceleratorType]
pub fn accelerator_types(&self) -> &[AcceleratorType]
The accelerator types to include. You can specify gpu
for graphics processing units, fpga
for field programmable gate arrays, or inference
for machine learning inference accelerators.
If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use .accelerator_types.is_none()
.
Sourcepub fn accelerator_count(&self) -> Option<&AcceleratorCountRequest>
pub fn accelerator_count(&self) -> Option<&AcceleratorCountRequest>
The minimum and maximum number of accelerators for the instance types. This is used when you need instances with specific numbers of GPUs or other accelerators.
Sourcepub fn accelerator_manufacturers(&self) -> &[AcceleratorManufacturer]
pub fn accelerator_manufacturers(&self) -> &[AcceleratorManufacturer]
The accelerator manufacturers to include. You can specify nvidia
, amd
, amazon-web-services
, or xilinx
depending on your accelerator requirements.
If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use .accelerator_manufacturers.is_none()
.
Sourcepub fn accelerator_names(&self) -> &[AcceleratorName]
pub fn accelerator_names(&self) -> &[AcceleratorName]
The specific accelerator names to include. For example, you can specify a100
, v100
, k80
, or other specific accelerator models.
If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use .accelerator_names.is_none()
.
Sourcepub fn accelerator_total_memory_mib(
&self,
) -> Option<&AcceleratorTotalMemoryMiBRequest>
pub fn accelerator_total_memory_mib( &self, ) -> Option<&AcceleratorTotalMemoryMiBRequest>
The minimum and maximum total accelerator memory in mebibytes (MiB). This is important for GPU workloads that require specific amounts of video memory.
Sourcepub fn network_bandwidth_gbps(&self) -> Option<&NetworkBandwidthGbpsRequest>
pub fn network_bandwidth_gbps(&self) -> Option<&NetworkBandwidthGbpsRequest>
The minimum and maximum network bandwidth in gigabits per second (Gbps). This is crucial for network-intensive workloads that require high throughput.
Sourcepub fn allowed_instance_types(&self) -> &[String]
pub fn allowed_instance_types(&self) -> &[String]
The instance types to include in the selection. When specified, Amazon ECS only considers these instance types, subject to the other requirements specified.
If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use .allowed_instance_types.is_none()
.
Sourcepub fn max_spot_price_as_percentage_of_optimal_on_demand_price(
&self,
) -> Option<i32>
pub fn max_spot_price_as_percentage_of_optimal_on_demand_price( &self, ) -> Option<i32>
The maximum price for Spot instances as a percentage of the optimal On-Demand price. This provides more precise cost control for Spot instance selection.
Source§impl InstanceRequirementsRequest
impl InstanceRequirementsRequest
Sourcepub fn builder() -> InstanceRequirementsRequestBuilder
pub fn builder() -> InstanceRequirementsRequestBuilder
Creates a new builder-style object to manufacture InstanceRequirementsRequest
.
Trait Implementations§
Source§impl Clone for InstanceRequirementsRequest
impl Clone for InstanceRequirementsRequest
Source§fn clone(&self) -> InstanceRequirementsRequest
fn clone(&self) -> InstanceRequirementsRequest
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for InstanceRequirementsRequest
impl Debug for InstanceRequirementsRequest
impl StructuralPartialEq for InstanceRequirementsRequest
Auto Trait Implementations§
impl Freeze for InstanceRequirementsRequest
impl RefUnwindSafe for InstanceRequirementsRequest
impl Send for InstanceRequirementsRequest
impl Sync for InstanceRequirementsRequest
impl Unpin for InstanceRequirementsRequest
impl UnwindSafe for InstanceRequirementsRequest
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the foreground set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red()
and
green()
, which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg()
:
use yansi::{Paint, Color};
painted.fg(Color::White);
Set foreground color to white using white()
.
use yansi::Paint;
painted.white();
Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the background set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red()
and
on_green()
, which have the same functionality but
are pithier.
§Example
Set background color to red using fg()
:
use yansi::{Paint, Color};
painted.bg(Color::Red);
Set background color to red using on_red()
.
use yansi::Paint;
painted.on_red();
Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute
value
.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold()
and
underline()
, which have the same functionality
but are pithier.
§Example
Make text bold using attr()
:
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);
Make text bold using using bold()
.
use yansi::Paint;
painted.bold();
Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi
Quirk
value
.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask()
and
wrap()
, which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk()
:
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);
Enable wrapping using wrap()
.
use yansi::Paint;
painted.wrap();
Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition
value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted
only when both stdout
and stderr
are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);