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}