Skip to main content

aws_sdk_ec2/operation/describe_instance_types/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::describe_instance_types::_describe_instance_types_input::DescribeInstanceTypesInputBuilder;
3
4pub use crate::operation::describe_instance_types::_describe_instance_types_output::DescribeInstanceTypesOutputBuilder;
5
6impl crate::operation::describe_instance_types::builders::DescribeInstanceTypesInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::describe_instance_types::DescribeInstanceTypesOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::describe_instance_types::DescribeInstanceTypesError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.describe_instance_types();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `DescribeInstanceTypes`.
24///
25/// <p>Describes the specified instance types. By default, all instance types for the current Region are described. Alternatively, you can filter the results.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct DescribeInstanceTypesFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::describe_instance_types::builders::DescribeInstanceTypesInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::describe_instance_types::DescribeInstanceTypesOutput,
35        crate::operation::describe_instance_types::DescribeInstanceTypesError,
36    > for DescribeInstanceTypesFluentBuilder
37{
38    fn send(
39        self,
40        config_override: crate::config::Builder,
41    ) -> crate::client::customize::internal::BoxFuture<
42        crate::client::customize::internal::SendResult<
43            crate::operation::describe_instance_types::DescribeInstanceTypesOutput,
44            crate::operation::describe_instance_types::DescribeInstanceTypesError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl DescribeInstanceTypesFluentBuilder {
51    /// Creates a new `DescribeInstanceTypesFluentBuilder`.
52    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53        Self {
54            handle,
55            inner: ::std::default::Default::default(),
56            config_override: ::std::option::Option::None,
57        }
58    }
59    /// Access the DescribeInstanceTypes as a reference.
60    pub fn as_input(&self) -> &crate::operation::describe_instance_types::builders::DescribeInstanceTypesInputBuilder {
61        &self.inner
62    }
63    /// Sends the request and returns the response.
64    ///
65    /// If an error occurs, an `SdkError` will be returned with additional details that
66    /// can be matched against.
67    ///
68    /// By default, any retryable failures will be retried twice. Retry behavior
69    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
70    /// set when configuring the client.
71    pub async fn send(
72        self,
73    ) -> ::std::result::Result<
74        crate::operation::describe_instance_types::DescribeInstanceTypesOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::describe_instance_types::DescribeInstanceTypesError,
77            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78        >,
79    > {
80        let input = self
81            .inner
82            .build()
83            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84        let runtime_plugins = crate::operation::describe_instance_types::DescribeInstanceTypes::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::describe_instance_types::DescribeInstanceTypes::orchestrate(&runtime_plugins, input).await
90    }
91
92    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93    pub fn customize(
94        self,
95    ) -> crate::client::customize::CustomizableOperation<
96        crate::operation::describe_instance_types::DescribeInstanceTypesOutput,
97        crate::operation::describe_instance_types::DescribeInstanceTypesError,
98        Self,
99    > {
100        crate::client::customize::CustomizableOperation::new(self)
101    }
102    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103        self.set_config_override(::std::option::Option::Some(config_override.into()));
104        self
105    }
106
107    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108        self.config_override = config_override;
109        self
110    }
111    /// Create a paginator for this request
112    ///
113    /// Paginators are used by calling [`send().await`](crate::operation::describe_instance_types::paginator::DescribeInstanceTypesPaginator::send) which returns a [`PaginationStream`](aws_smithy_async::future::pagination_stream::PaginationStream).
114    pub fn into_paginator(self) -> crate::operation::describe_instance_types::paginator::DescribeInstanceTypesPaginator {
115        crate::operation::describe_instance_types::paginator::DescribeInstanceTypesPaginator::new(self.handle, self.inner)
116    }
117    /// <p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
118    pub fn dry_run(mut self, input: bool) -> Self {
119        self.inner = self.inner.dry_run(input);
120        self
121    }
122    /// <p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
123    pub fn set_dry_run(mut self, input: ::std::option::Option<bool>) -> Self {
124        self.inner = self.inner.set_dry_run(input);
125        self
126    }
127    /// <p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
128    pub fn get_dry_run(&self) -> &::std::option::Option<bool> {
129        self.inner.get_dry_run()
130    }
131    ///
132    /// Appends an item to `InstanceTypes`.
133    ///
134    /// To override the contents of this collection use [`set_instance_types`](Self::set_instance_types).
135    ///
136    /// <p>The instance types.</p>
137    pub fn instance_types(mut self, input: crate::types::InstanceType) -> Self {
138        self.inner = self.inner.instance_types(input);
139        self
140    }
141    /// <p>The instance types.</p>
142    pub fn set_instance_types(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::InstanceType>>) -> Self {
143        self.inner = self.inner.set_instance_types(input);
144        self
145    }
146    /// <p>The instance types.</p>
147    pub fn get_instance_types(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::InstanceType>> {
148        self.inner.get_instance_types()
149    }
150    ///
151    /// Appends an item to `Filters`.
152    ///
153    /// To override the contents of this collection use [`set_filters`](Self::set_filters).
154    ///
155    /// <p>One or more filters. Filter names and values are case-sensitive.</p>
156    /// <ul>
157    /// <li>
158    /// <p><code>auto-recovery-supported</code> - Indicates whether Amazon CloudWatch action based recovery is supported (<code>true</code> | <code>false</code>).</p></li>
159    /// <li>
160    /// <p><code>bare-metal</code> - Indicates whether it is a bare metal instance type (<code>true</code> | <code>false</code>).</p></li>
161    /// <li>
162    /// <p><code>burstable-performance-supported</code> - Indicates whether the instance type is a burstable performance T instance type (<code>true</code> | <code>false</code>).</p></li>
163    /// <li>
164    /// <p><code>current-generation</code> - Indicates whether this instance type is the latest generation instance type of an instance family (<code>true</code> | <code>false</code>).</p></li>
165    /// <li>
166    /// <p><code>dedicated-hosts-supported</code> - Indicates whether the instance type supports Dedicated Hosts. (<code>true</code> | <code>false</code>)</p></li>
167    /// <li>
168    /// <p><code>ebs-info.attachment-limit-type</code> - The type of Amazon EBS volume attachment limit (<code>shared</code> | <code>dedicated</code>).</p></li>
169    /// <li>
170    /// <p><code>ebs-info.maximum-ebs-attachments</code> - The maximum number of Amazon EBS volumes that can be attached to the instance type.</p></li>
171    /// <li>
172    /// <p><code>ebs-info.ebs-optimized-info.baseline-bandwidth-in-mbps</code> - The baseline bandwidth performance for an EBS-optimized instance type, in Mbps.</p></li>
173    /// <li>
174    /// <p><code>ebs-info.ebs-optimized-info.baseline-iops</code> - The baseline input/output storage operations per second for an EBS-optimized instance type.</p></li>
175    /// <li>
176    /// <p><code>ebs-info.ebs-optimized-info.baseline-throughput-in-mbps</code> - The baseline throughput performance for an EBS-optimized instance type, in MB/s.</p></li>
177    /// <li>
178    /// <p><code>ebs-info.ebs-optimized-info.maximum-bandwidth-in-mbps</code> - The maximum bandwidth performance for an EBS-optimized instance type, in Mbps.</p></li>
179    /// <li>
180    /// <p><code>ebs-info.ebs-optimized-info.maximum-iops</code> - The maximum input/output storage operations per second for an EBS-optimized instance type.</p></li>
181    /// <li>
182    /// <p><code>ebs-info.ebs-optimized-info.maximum-throughput-in-mbps</code> - The maximum throughput performance for an EBS-optimized instance type, in MB/s.</p></li>
183    /// <li>
184    /// <p><code>ebs-info.ebs-optimized-support</code> - Indicates whether the instance type is EBS-optimized (<code>supported</code> | <code>unsupported</code> | <code>default</code>).</p></li>
185    /// <li>
186    /// <p><code>ebs-info.encryption-support</code> - Indicates whether EBS encryption is supported (<code>supported</code> | <code>unsupported</code>).</p></li>
187    /// <li>
188    /// <p><code>ebs-info.nvme-support</code> - Indicates whether non-volatile memory express (NVMe) is supported for EBS volumes (<code>required</code> | <code>supported</code> | <code>unsupported</code>).</p></li>
189    /// <li>
190    /// <p><code>free-tier-eligible</code> - A Boolean that indicates whether this instance type can be used under the Amazon Web Services Free Tier (<code>true</code> | <code>false</code>).</p></li>
191    /// <li>
192    /// <p><code>hibernation-supported</code> - Indicates whether On-Demand hibernation is supported (<code>true</code> | <code>false</code>).</p></li>
193    /// <li>
194    /// <p><code>hypervisor</code> - The hypervisor (<code>nitro</code> | <code>xen</code>).</p></li>
195    /// <li>
196    /// <p><code>instance-storage-info.disk.count</code> - The number of local disks.</p></li>
197    /// <li>
198    /// <p><code>instance-storage-info.disk.size-in-gb</code> - The storage size of each instance storage disk, in GB.</p></li>
199    /// <li>
200    /// <p><code>instance-storage-info.disk.type</code> - The storage technology for the local instance storage disks (<code>hdd</code> | <code>ssd</code>).</p></li>
201    /// <li>
202    /// <p><code>instance-storage-info.encryption-support</code> - Indicates whether data is encrypted at rest (<code>required</code> | <code>supported</code> | <code>unsupported</code>).</p></li>
203    /// <li>
204    /// <p><code>instance-storage-info.nvme-support</code> - Indicates whether non-volatile memory express (NVMe) is supported for instance store (<code>required</code> | <code>supported</code> | <code>unsupported</code>).</p></li>
205    /// <li>
206    /// <p><code>instance-storage-info.total-size-in-gb</code> - The total amount of storage available from all local instance storage, in GB.</p></li>
207    /// <li>
208    /// <p><code>instance-storage-supported</code> - Indicates whether the instance type has local instance storage (<code>true</code> | <code>false</code>).</p></li>
209    /// <li>
210    /// <p><code>instance-type</code> - The instance type (for example <code>c5.2xlarge</code> or c5*).</p></li>
211    /// <li>
212    /// <p><code>memory-info.size-in-mib</code> - The memory size.</p></li>
213    /// <li>
214    /// <p><code>network-info.bandwidth-weightings</code> - For instances that support bandwidth weighting to boost performance (<code>default</code>, <code>vpc-1</code>, <code>ebs-1</code>).</p></li>
215    /// <li>
216    /// <p><code>network-info.efa-info.maximum-efa-interfaces</code> - The maximum number of Elastic Fabric Adapters (EFAs) per instance.</p></li>
217    /// <li>
218    /// <p><code>network-info.efa-supported</code> - Indicates whether the instance type supports Elastic Fabric Adapter (EFA) (<code>true</code> | <code>false</code>).</p></li>
219    /// <li>
220    /// <p><code>network-info.ena-support</code> - Indicates whether Elastic Network Adapter (ENA) is supported or required (<code>required</code> | <code>supported</code> | <code>unsupported</code>).</p></li>
221    /// <li>
222    /// <p><code>network-info.flexible-ena-queues-support</code> - Indicates whether an instance supports flexible ENA queues (<code>supported</code> | <code>unsupported</code>).</p></li>
223    /// <li>
224    /// <p><code>network-info.encryption-in-transit-supported</code> - Indicates whether the instance type automatically encrypts in-transit traffic between instances (<code>true</code> | <code>false</code>).</p></li>
225    /// <li>
226    /// <p><code>network-info.ipv4-addresses-per-interface</code> - The maximum number of private IPv4 addresses per network interface.</p></li>
227    /// <li>
228    /// <p><code>network-info.ipv6-addresses-per-interface</code> - The maximum number of private IPv6 addresses per network interface.</p></li>
229    /// <li>
230    /// <p><code>network-info.ipv6-supported</code> - Indicates whether the instance type supports IPv6 (<code>true</code> | <code>false</code>).</p></li>
231    /// <li>
232    /// <p><code>network-info.maximum-network-cards</code> - The maximum number of network cards per instance.</p></li>
233    /// <li>
234    /// <p><code>network-info.maximum-network-interfaces</code> - The maximum number of network interfaces per instance.</p></li>
235    /// <li>
236    /// <p><code>network-info.network-performance</code> - The network performance (for example, "25 Gigabit").</p></li>
237    /// <li>
238    /// <p><code>nitro-enclaves-support</code> - Indicates whether Nitro Enclaves is supported (<code>supported</code> | <code>unsupported</code>).</p></li>
239    /// <li>
240    /// <p><code>nitro-tpm-support</code> - Indicates whether NitroTPM is supported (<code>supported</code> | <code>unsupported</code>).</p></li>
241    /// <li>
242    /// <p><code>nitro-tpm-info.supported-versions</code> - The supported NitroTPM version (<code>2.0</code>).</p></li>
243    /// <li>
244    /// <p><code>processor-info.supported-architecture</code> - The CPU architecture (<code>arm64</code> | <code>i386</code> | <code>x86_64</code>).</p></li>
245    /// <li>
246    /// <p><code>processor-info.sustained-clock-speed-in-ghz</code> - The CPU clock speed, in GHz.</p></li>
247    /// <li>
248    /// <p><code>processor-info.supported-features</code> - The supported CPU features (<code>amd-sev-snp</code>).</p></li>
249    /// <li>
250    /// <p><code>reboot-migration-support</code> - Indicates whether enabling reboot migration is supported (<code>supported</code> | <code>unsupported</code>).</p></li>
251    /// <li>
252    /// <p><code>supported-boot-mode</code> - The boot mode (<code>legacy-bios</code> | <code>uefi</code>).</p></li>
253    /// <li>
254    /// <p><code>supported-root-device-type</code> - The root device type (<code>ebs</code> | <code>instance-store</code>).</p></li>
255    /// <li>
256    /// <p><code>supported-usage-class</code> - The usage class (<code>on-demand</code> | <code>spot</code> | <code>capacity-block</code>).</p></li>
257    /// <li>
258    /// <p><code>supported-virtualization-type</code> - The virtualization type (<code>hvm</code> | <code>paravirtual</code>).</p></li>
259    /// <li>
260    /// <p><code>vcpu-info.default-cores</code> - The default number of cores for the instance type.</p></li>
261    /// <li>
262    /// <p><code>vcpu-info.default-threads-per-core</code> - The default number of threads per core for the instance type.</p></li>
263    /// <li>
264    /// <p><code>vcpu-info.default-vcpus</code> - The default number of vCPUs for the instance type.</p></li>
265    /// <li>
266    /// <p><code>vcpu-info.valid-cores</code> - The number of cores that can be configured for the instance type.</p></li>
267    /// <li>
268    /// <p><code>vcpu-info.valid-threads-per-core</code> - The number of threads per core that can be configured for the instance type. For example, "1" or "1,2".</p></li>
269    /// </ul>
270    pub fn filters(mut self, input: crate::types::Filter) -> Self {
271        self.inner = self.inner.filters(input);
272        self
273    }
274    /// <p>One or more filters. Filter names and values are case-sensitive.</p>
275    /// <ul>
276    /// <li>
277    /// <p><code>auto-recovery-supported</code> - Indicates whether Amazon CloudWatch action based recovery is supported (<code>true</code> | <code>false</code>).</p></li>
278    /// <li>
279    /// <p><code>bare-metal</code> - Indicates whether it is a bare metal instance type (<code>true</code> | <code>false</code>).</p></li>
280    /// <li>
281    /// <p><code>burstable-performance-supported</code> - Indicates whether the instance type is a burstable performance T instance type (<code>true</code> | <code>false</code>).</p></li>
282    /// <li>
283    /// <p><code>current-generation</code> - Indicates whether this instance type is the latest generation instance type of an instance family (<code>true</code> | <code>false</code>).</p></li>
284    /// <li>
285    /// <p><code>dedicated-hosts-supported</code> - Indicates whether the instance type supports Dedicated Hosts. (<code>true</code> | <code>false</code>)</p></li>
286    /// <li>
287    /// <p><code>ebs-info.attachment-limit-type</code> - The type of Amazon EBS volume attachment limit (<code>shared</code> | <code>dedicated</code>).</p></li>
288    /// <li>
289    /// <p><code>ebs-info.maximum-ebs-attachments</code> - The maximum number of Amazon EBS volumes that can be attached to the instance type.</p></li>
290    /// <li>
291    /// <p><code>ebs-info.ebs-optimized-info.baseline-bandwidth-in-mbps</code> - The baseline bandwidth performance for an EBS-optimized instance type, in Mbps.</p></li>
292    /// <li>
293    /// <p><code>ebs-info.ebs-optimized-info.baseline-iops</code> - The baseline input/output storage operations per second for an EBS-optimized instance type.</p></li>
294    /// <li>
295    /// <p><code>ebs-info.ebs-optimized-info.baseline-throughput-in-mbps</code> - The baseline throughput performance for an EBS-optimized instance type, in MB/s.</p></li>
296    /// <li>
297    /// <p><code>ebs-info.ebs-optimized-info.maximum-bandwidth-in-mbps</code> - The maximum bandwidth performance for an EBS-optimized instance type, in Mbps.</p></li>
298    /// <li>
299    /// <p><code>ebs-info.ebs-optimized-info.maximum-iops</code> - The maximum input/output storage operations per second for an EBS-optimized instance type.</p></li>
300    /// <li>
301    /// <p><code>ebs-info.ebs-optimized-info.maximum-throughput-in-mbps</code> - The maximum throughput performance for an EBS-optimized instance type, in MB/s.</p></li>
302    /// <li>
303    /// <p><code>ebs-info.ebs-optimized-support</code> - Indicates whether the instance type is EBS-optimized (<code>supported</code> | <code>unsupported</code> | <code>default</code>).</p></li>
304    /// <li>
305    /// <p><code>ebs-info.encryption-support</code> - Indicates whether EBS encryption is supported (<code>supported</code> | <code>unsupported</code>).</p></li>
306    /// <li>
307    /// <p><code>ebs-info.nvme-support</code> - Indicates whether non-volatile memory express (NVMe) is supported for EBS volumes (<code>required</code> | <code>supported</code> | <code>unsupported</code>).</p></li>
308    /// <li>
309    /// <p><code>free-tier-eligible</code> - A Boolean that indicates whether this instance type can be used under the Amazon Web Services Free Tier (<code>true</code> | <code>false</code>).</p></li>
310    /// <li>
311    /// <p><code>hibernation-supported</code> - Indicates whether On-Demand hibernation is supported (<code>true</code> | <code>false</code>).</p></li>
312    /// <li>
313    /// <p><code>hypervisor</code> - The hypervisor (<code>nitro</code> | <code>xen</code>).</p></li>
314    /// <li>
315    /// <p><code>instance-storage-info.disk.count</code> - The number of local disks.</p></li>
316    /// <li>
317    /// <p><code>instance-storage-info.disk.size-in-gb</code> - The storage size of each instance storage disk, in GB.</p></li>
318    /// <li>
319    /// <p><code>instance-storage-info.disk.type</code> - The storage technology for the local instance storage disks (<code>hdd</code> | <code>ssd</code>).</p></li>
320    /// <li>
321    /// <p><code>instance-storage-info.encryption-support</code> - Indicates whether data is encrypted at rest (<code>required</code> | <code>supported</code> | <code>unsupported</code>).</p></li>
322    /// <li>
323    /// <p><code>instance-storage-info.nvme-support</code> - Indicates whether non-volatile memory express (NVMe) is supported for instance store (<code>required</code> | <code>supported</code> | <code>unsupported</code>).</p></li>
324    /// <li>
325    /// <p><code>instance-storage-info.total-size-in-gb</code> - The total amount of storage available from all local instance storage, in GB.</p></li>
326    /// <li>
327    /// <p><code>instance-storage-supported</code> - Indicates whether the instance type has local instance storage (<code>true</code> | <code>false</code>).</p></li>
328    /// <li>
329    /// <p><code>instance-type</code> - The instance type (for example <code>c5.2xlarge</code> or c5*).</p></li>
330    /// <li>
331    /// <p><code>memory-info.size-in-mib</code> - The memory size.</p></li>
332    /// <li>
333    /// <p><code>network-info.bandwidth-weightings</code> - For instances that support bandwidth weighting to boost performance (<code>default</code>, <code>vpc-1</code>, <code>ebs-1</code>).</p></li>
334    /// <li>
335    /// <p><code>network-info.efa-info.maximum-efa-interfaces</code> - The maximum number of Elastic Fabric Adapters (EFAs) per instance.</p></li>
336    /// <li>
337    /// <p><code>network-info.efa-supported</code> - Indicates whether the instance type supports Elastic Fabric Adapter (EFA) (<code>true</code> | <code>false</code>).</p></li>
338    /// <li>
339    /// <p><code>network-info.ena-support</code> - Indicates whether Elastic Network Adapter (ENA) is supported or required (<code>required</code> | <code>supported</code> | <code>unsupported</code>).</p></li>
340    /// <li>
341    /// <p><code>network-info.flexible-ena-queues-support</code> - Indicates whether an instance supports flexible ENA queues (<code>supported</code> | <code>unsupported</code>).</p></li>
342    /// <li>
343    /// <p><code>network-info.encryption-in-transit-supported</code> - Indicates whether the instance type automatically encrypts in-transit traffic between instances (<code>true</code> | <code>false</code>).</p></li>
344    /// <li>
345    /// <p><code>network-info.ipv4-addresses-per-interface</code> - The maximum number of private IPv4 addresses per network interface.</p></li>
346    /// <li>
347    /// <p><code>network-info.ipv6-addresses-per-interface</code> - The maximum number of private IPv6 addresses per network interface.</p></li>
348    /// <li>
349    /// <p><code>network-info.ipv6-supported</code> - Indicates whether the instance type supports IPv6 (<code>true</code> | <code>false</code>).</p></li>
350    /// <li>
351    /// <p><code>network-info.maximum-network-cards</code> - The maximum number of network cards per instance.</p></li>
352    /// <li>
353    /// <p><code>network-info.maximum-network-interfaces</code> - The maximum number of network interfaces per instance.</p></li>
354    /// <li>
355    /// <p><code>network-info.network-performance</code> - The network performance (for example, "25 Gigabit").</p></li>
356    /// <li>
357    /// <p><code>nitro-enclaves-support</code> - Indicates whether Nitro Enclaves is supported (<code>supported</code> | <code>unsupported</code>).</p></li>
358    /// <li>
359    /// <p><code>nitro-tpm-support</code> - Indicates whether NitroTPM is supported (<code>supported</code> | <code>unsupported</code>).</p></li>
360    /// <li>
361    /// <p><code>nitro-tpm-info.supported-versions</code> - The supported NitroTPM version (<code>2.0</code>).</p></li>
362    /// <li>
363    /// <p><code>processor-info.supported-architecture</code> - The CPU architecture (<code>arm64</code> | <code>i386</code> | <code>x86_64</code>).</p></li>
364    /// <li>
365    /// <p><code>processor-info.sustained-clock-speed-in-ghz</code> - The CPU clock speed, in GHz.</p></li>
366    /// <li>
367    /// <p><code>processor-info.supported-features</code> - The supported CPU features (<code>amd-sev-snp</code>).</p></li>
368    /// <li>
369    /// <p><code>reboot-migration-support</code> - Indicates whether enabling reboot migration is supported (<code>supported</code> | <code>unsupported</code>).</p></li>
370    /// <li>
371    /// <p><code>supported-boot-mode</code> - The boot mode (<code>legacy-bios</code> | <code>uefi</code>).</p></li>
372    /// <li>
373    /// <p><code>supported-root-device-type</code> - The root device type (<code>ebs</code> | <code>instance-store</code>).</p></li>
374    /// <li>
375    /// <p><code>supported-usage-class</code> - The usage class (<code>on-demand</code> | <code>spot</code> | <code>capacity-block</code>).</p></li>
376    /// <li>
377    /// <p><code>supported-virtualization-type</code> - The virtualization type (<code>hvm</code> | <code>paravirtual</code>).</p></li>
378    /// <li>
379    /// <p><code>vcpu-info.default-cores</code> - The default number of cores for the instance type.</p></li>
380    /// <li>
381    /// <p><code>vcpu-info.default-threads-per-core</code> - The default number of threads per core for the instance type.</p></li>
382    /// <li>
383    /// <p><code>vcpu-info.default-vcpus</code> - The default number of vCPUs for the instance type.</p></li>
384    /// <li>
385    /// <p><code>vcpu-info.valid-cores</code> - The number of cores that can be configured for the instance type.</p></li>
386    /// <li>
387    /// <p><code>vcpu-info.valid-threads-per-core</code> - The number of threads per core that can be configured for the instance type. For example, "1" or "1,2".</p></li>
388    /// </ul>
389    pub fn set_filters(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Filter>>) -> Self {
390        self.inner = self.inner.set_filters(input);
391        self
392    }
393    /// <p>One or more filters. Filter names and values are case-sensitive.</p>
394    /// <ul>
395    /// <li>
396    /// <p><code>auto-recovery-supported</code> - Indicates whether Amazon CloudWatch action based recovery is supported (<code>true</code> | <code>false</code>).</p></li>
397    /// <li>
398    /// <p><code>bare-metal</code> - Indicates whether it is a bare metal instance type (<code>true</code> | <code>false</code>).</p></li>
399    /// <li>
400    /// <p><code>burstable-performance-supported</code> - Indicates whether the instance type is a burstable performance T instance type (<code>true</code> | <code>false</code>).</p></li>
401    /// <li>
402    /// <p><code>current-generation</code> - Indicates whether this instance type is the latest generation instance type of an instance family (<code>true</code> | <code>false</code>).</p></li>
403    /// <li>
404    /// <p><code>dedicated-hosts-supported</code> - Indicates whether the instance type supports Dedicated Hosts. (<code>true</code> | <code>false</code>)</p></li>
405    /// <li>
406    /// <p><code>ebs-info.attachment-limit-type</code> - The type of Amazon EBS volume attachment limit (<code>shared</code> | <code>dedicated</code>).</p></li>
407    /// <li>
408    /// <p><code>ebs-info.maximum-ebs-attachments</code> - The maximum number of Amazon EBS volumes that can be attached to the instance type.</p></li>
409    /// <li>
410    /// <p><code>ebs-info.ebs-optimized-info.baseline-bandwidth-in-mbps</code> - The baseline bandwidth performance for an EBS-optimized instance type, in Mbps.</p></li>
411    /// <li>
412    /// <p><code>ebs-info.ebs-optimized-info.baseline-iops</code> - The baseline input/output storage operations per second for an EBS-optimized instance type.</p></li>
413    /// <li>
414    /// <p><code>ebs-info.ebs-optimized-info.baseline-throughput-in-mbps</code> - The baseline throughput performance for an EBS-optimized instance type, in MB/s.</p></li>
415    /// <li>
416    /// <p><code>ebs-info.ebs-optimized-info.maximum-bandwidth-in-mbps</code> - The maximum bandwidth performance for an EBS-optimized instance type, in Mbps.</p></li>
417    /// <li>
418    /// <p><code>ebs-info.ebs-optimized-info.maximum-iops</code> - The maximum input/output storage operations per second for an EBS-optimized instance type.</p></li>
419    /// <li>
420    /// <p><code>ebs-info.ebs-optimized-info.maximum-throughput-in-mbps</code> - The maximum throughput performance for an EBS-optimized instance type, in MB/s.</p></li>
421    /// <li>
422    /// <p><code>ebs-info.ebs-optimized-support</code> - Indicates whether the instance type is EBS-optimized (<code>supported</code> | <code>unsupported</code> | <code>default</code>).</p></li>
423    /// <li>
424    /// <p><code>ebs-info.encryption-support</code> - Indicates whether EBS encryption is supported (<code>supported</code> | <code>unsupported</code>).</p></li>
425    /// <li>
426    /// <p><code>ebs-info.nvme-support</code> - Indicates whether non-volatile memory express (NVMe) is supported for EBS volumes (<code>required</code> | <code>supported</code> | <code>unsupported</code>).</p></li>
427    /// <li>
428    /// <p><code>free-tier-eligible</code> - A Boolean that indicates whether this instance type can be used under the Amazon Web Services Free Tier (<code>true</code> | <code>false</code>).</p></li>
429    /// <li>
430    /// <p><code>hibernation-supported</code> - Indicates whether On-Demand hibernation is supported (<code>true</code> | <code>false</code>).</p></li>
431    /// <li>
432    /// <p><code>hypervisor</code> - The hypervisor (<code>nitro</code> | <code>xen</code>).</p></li>
433    /// <li>
434    /// <p><code>instance-storage-info.disk.count</code> - The number of local disks.</p></li>
435    /// <li>
436    /// <p><code>instance-storage-info.disk.size-in-gb</code> - The storage size of each instance storage disk, in GB.</p></li>
437    /// <li>
438    /// <p><code>instance-storage-info.disk.type</code> - The storage technology for the local instance storage disks (<code>hdd</code> | <code>ssd</code>).</p></li>
439    /// <li>
440    /// <p><code>instance-storage-info.encryption-support</code> - Indicates whether data is encrypted at rest (<code>required</code> | <code>supported</code> | <code>unsupported</code>).</p></li>
441    /// <li>
442    /// <p><code>instance-storage-info.nvme-support</code> - Indicates whether non-volatile memory express (NVMe) is supported for instance store (<code>required</code> | <code>supported</code> | <code>unsupported</code>).</p></li>
443    /// <li>
444    /// <p><code>instance-storage-info.total-size-in-gb</code> - The total amount of storage available from all local instance storage, in GB.</p></li>
445    /// <li>
446    /// <p><code>instance-storage-supported</code> - Indicates whether the instance type has local instance storage (<code>true</code> | <code>false</code>).</p></li>
447    /// <li>
448    /// <p><code>instance-type</code> - The instance type (for example <code>c5.2xlarge</code> or c5*).</p></li>
449    /// <li>
450    /// <p><code>memory-info.size-in-mib</code> - The memory size.</p></li>
451    /// <li>
452    /// <p><code>network-info.bandwidth-weightings</code> - For instances that support bandwidth weighting to boost performance (<code>default</code>, <code>vpc-1</code>, <code>ebs-1</code>).</p></li>
453    /// <li>
454    /// <p><code>network-info.efa-info.maximum-efa-interfaces</code> - The maximum number of Elastic Fabric Adapters (EFAs) per instance.</p></li>
455    /// <li>
456    /// <p><code>network-info.efa-supported</code> - Indicates whether the instance type supports Elastic Fabric Adapter (EFA) (<code>true</code> | <code>false</code>).</p></li>
457    /// <li>
458    /// <p><code>network-info.ena-support</code> - Indicates whether Elastic Network Adapter (ENA) is supported or required (<code>required</code> | <code>supported</code> | <code>unsupported</code>).</p></li>
459    /// <li>
460    /// <p><code>network-info.flexible-ena-queues-support</code> - Indicates whether an instance supports flexible ENA queues (<code>supported</code> | <code>unsupported</code>).</p></li>
461    /// <li>
462    /// <p><code>network-info.encryption-in-transit-supported</code> - Indicates whether the instance type automatically encrypts in-transit traffic between instances (<code>true</code> | <code>false</code>).</p></li>
463    /// <li>
464    /// <p><code>network-info.ipv4-addresses-per-interface</code> - The maximum number of private IPv4 addresses per network interface.</p></li>
465    /// <li>
466    /// <p><code>network-info.ipv6-addresses-per-interface</code> - The maximum number of private IPv6 addresses per network interface.</p></li>
467    /// <li>
468    /// <p><code>network-info.ipv6-supported</code> - Indicates whether the instance type supports IPv6 (<code>true</code> | <code>false</code>).</p></li>
469    /// <li>
470    /// <p><code>network-info.maximum-network-cards</code> - The maximum number of network cards per instance.</p></li>
471    /// <li>
472    /// <p><code>network-info.maximum-network-interfaces</code> - The maximum number of network interfaces per instance.</p></li>
473    /// <li>
474    /// <p><code>network-info.network-performance</code> - The network performance (for example, "25 Gigabit").</p></li>
475    /// <li>
476    /// <p><code>nitro-enclaves-support</code> - Indicates whether Nitro Enclaves is supported (<code>supported</code> | <code>unsupported</code>).</p></li>
477    /// <li>
478    /// <p><code>nitro-tpm-support</code> - Indicates whether NitroTPM is supported (<code>supported</code> | <code>unsupported</code>).</p></li>
479    /// <li>
480    /// <p><code>nitro-tpm-info.supported-versions</code> - The supported NitroTPM version (<code>2.0</code>).</p></li>
481    /// <li>
482    /// <p><code>processor-info.supported-architecture</code> - The CPU architecture (<code>arm64</code> | <code>i386</code> | <code>x86_64</code>).</p></li>
483    /// <li>
484    /// <p><code>processor-info.sustained-clock-speed-in-ghz</code> - The CPU clock speed, in GHz.</p></li>
485    /// <li>
486    /// <p><code>processor-info.supported-features</code> - The supported CPU features (<code>amd-sev-snp</code>).</p></li>
487    /// <li>
488    /// <p><code>reboot-migration-support</code> - Indicates whether enabling reboot migration is supported (<code>supported</code> | <code>unsupported</code>).</p></li>
489    /// <li>
490    /// <p><code>supported-boot-mode</code> - The boot mode (<code>legacy-bios</code> | <code>uefi</code>).</p></li>
491    /// <li>
492    /// <p><code>supported-root-device-type</code> - The root device type (<code>ebs</code> | <code>instance-store</code>).</p></li>
493    /// <li>
494    /// <p><code>supported-usage-class</code> - The usage class (<code>on-demand</code> | <code>spot</code> | <code>capacity-block</code>).</p></li>
495    /// <li>
496    /// <p><code>supported-virtualization-type</code> - The virtualization type (<code>hvm</code> | <code>paravirtual</code>).</p></li>
497    /// <li>
498    /// <p><code>vcpu-info.default-cores</code> - The default number of cores for the instance type.</p></li>
499    /// <li>
500    /// <p><code>vcpu-info.default-threads-per-core</code> - The default number of threads per core for the instance type.</p></li>
501    /// <li>
502    /// <p><code>vcpu-info.default-vcpus</code> - The default number of vCPUs for the instance type.</p></li>
503    /// <li>
504    /// <p><code>vcpu-info.valid-cores</code> - The number of cores that can be configured for the instance type.</p></li>
505    /// <li>
506    /// <p><code>vcpu-info.valid-threads-per-core</code> - The number of threads per core that can be configured for the instance type. For example, "1" or "1,2".</p></li>
507    /// </ul>
508    pub fn get_filters(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Filter>> {
509        self.inner.get_filters()
510    }
511    /// <p>The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination">Pagination</a>.</p>
512    pub fn max_results(mut self, input: i32) -> Self {
513        self.inner = self.inner.max_results(input);
514        self
515    }
516    /// <p>The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination">Pagination</a>.</p>
517    pub fn set_max_results(mut self, input: ::std::option::Option<i32>) -> Self {
518        self.inner = self.inner.set_max_results(input);
519        self
520    }
521    /// <p>The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination">Pagination</a>.</p>
522    pub fn get_max_results(&self) -> &::std::option::Option<i32> {
523        self.inner.get_max_results()
524    }
525    /// <p>The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.</p>
526    pub fn next_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
527        self.inner = self.inner.next_token(input.into());
528        self
529    }
530    /// <p>The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.</p>
531    pub fn set_next_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
532        self.inner = self.inner.set_next_token(input);
533        self
534    }
535    /// <p>The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.</p>
536    pub fn get_next_token(&self) -> &::std::option::Option<::std::string::String> {
537        self.inner.get_next_token()
538    }
539}