aws_sdk_ec2/operation/describe_network_interfaces/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::describe_network_interfaces::_describe_network_interfaces_output::DescribeNetworkInterfacesOutputBuilder;
3
4pub use crate::operation::describe_network_interfaces::_describe_network_interfaces_input::DescribeNetworkInterfacesInputBuilder;
5
6impl crate::operation::describe_network_interfaces::builders::DescribeNetworkInterfacesInputBuilder {
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_network_interfaces::DescribeNetworkInterfacesOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::describe_network_interfaces::DescribeNetworkInterfacesError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.describe_network_interfaces();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `DescribeNetworkInterfaces`.
24///
25/// <p>Describes the specified network interfaces or all your network interfaces.</p>
26/// <p>If you have a large number of network interfaces, the operation fails unless you use pagination or one of the following filters: <code>group-id</code>, <code>mac-address</code>, <code>private-dns-name</code>, <code>private-ip-address</code>, <code>subnet-id</code>, or <code>vpc-id</code>.</p><important>
27/// <p>We strongly recommend using only paginated requests. Unpaginated requests are susceptible to throttling and timeouts.</p>
28/// </important>
29#[derive(::std::clone::Clone, ::std::fmt::Debug)]
30pub struct DescribeNetworkInterfacesFluentBuilder {
31    handle: ::std::sync::Arc<crate::client::Handle>,
32    inner: crate::operation::describe_network_interfaces::builders::DescribeNetworkInterfacesInputBuilder,
33    config_override: ::std::option::Option<crate::config::Builder>,
34}
35impl
36    crate::client::customize::internal::CustomizableSend<
37        crate::operation::describe_network_interfaces::DescribeNetworkInterfacesOutput,
38        crate::operation::describe_network_interfaces::DescribeNetworkInterfacesError,
39    > for DescribeNetworkInterfacesFluentBuilder
40{
41    fn send(
42        self,
43        config_override: crate::config::Builder,
44    ) -> crate::client::customize::internal::BoxFuture<
45        crate::client::customize::internal::SendResult<
46            crate::operation::describe_network_interfaces::DescribeNetworkInterfacesOutput,
47            crate::operation::describe_network_interfaces::DescribeNetworkInterfacesError,
48        >,
49    > {
50        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
51    }
52}
53impl DescribeNetworkInterfacesFluentBuilder {
54    /// Creates a new `DescribeNetworkInterfacesFluentBuilder`.
55    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
56        Self {
57            handle,
58            inner: ::std::default::Default::default(),
59            config_override: ::std::option::Option::None,
60        }
61    }
62    /// Access the DescribeNetworkInterfaces as a reference.
63    pub fn as_input(&self) -> &crate::operation::describe_network_interfaces::builders::DescribeNetworkInterfacesInputBuilder {
64        &self.inner
65    }
66    /// Sends the request and returns the response.
67    ///
68    /// If an error occurs, an `SdkError` will be returned with additional details that
69    /// can be matched against.
70    ///
71    /// By default, any retryable failures will be retried twice. Retry behavior
72    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
73    /// set when configuring the client.
74    pub async fn send(
75        self,
76    ) -> ::std::result::Result<
77        crate::operation::describe_network_interfaces::DescribeNetworkInterfacesOutput,
78        ::aws_smithy_runtime_api::client::result::SdkError<
79            crate::operation::describe_network_interfaces::DescribeNetworkInterfacesError,
80            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
81        >,
82    > {
83        let input = self
84            .inner
85            .build()
86            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
87        let runtime_plugins = crate::operation::describe_network_interfaces::DescribeNetworkInterfaces::operation_runtime_plugins(
88            self.handle.runtime_plugins.clone(),
89            &self.handle.conf,
90            self.config_override,
91        );
92        crate::operation::describe_network_interfaces::DescribeNetworkInterfaces::orchestrate(&runtime_plugins, input).await
93    }
94
95    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
96    pub fn customize(
97        self,
98    ) -> crate::client::customize::CustomizableOperation<
99        crate::operation::describe_network_interfaces::DescribeNetworkInterfacesOutput,
100        crate::operation::describe_network_interfaces::DescribeNetworkInterfacesError,
101        Self,
102    > {
103        crate::client::customize::CustomizableOperation::new(self)
104    }
105    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
106        self.set_config_override(::std::option::Option::Some(config_override.into()));
107        self
108    }
109
110    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
111        self.config_override = config_override;
112        self
113    }
114    /// Create a paginator for this request
115    ///
116    /// Paginators are used by calling [`send().await`](crate::operation::describe_network_interfaces::paginator::DescribeNetworkInterfacesPaginator::send) which returns a [`PaginationStream`](aws_smithy_async::future::pagination_stream::PaginationStream).
117    pub fn into_paginator(self) -> crate::operation::describe_network_interfaces::paginator::DescribeNetworkInterfacesPaginator {
118        crate::operation::describe_network_interfaces::paginator::DescribeNetworkInterfacesPaginator::new(self.handle, self.inner)
119    }
120    /// <p>The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.</p>
121    pub fn next_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
122        self.inner = self.inner.next_token(input.into());
123        self
124    }
125    /// <p>The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.</p>
126    pub fn set_next_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
127        self.inner = self.inner.set_next_token(input);
128        self
129    }
130    /// <p>The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.</p>
131    pub fn get_next_token(&self) -> &::std::option::Option<::std::string::String> {
132        self.inner.get_next_token()
133    }
134    /// <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. You cannot specify this parameter and the network interface IDs parameter in the same request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination">Pagination</a>.</p>
135    pub fn max_results(mut self, input: i32) -> Self {
136        self.inner = self.inner.max_results(input);
137        self
138    }
139    /// <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. You cannot specify this parameter and the network interface IDs parameter in the same request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination">Pagination</a>.</p>
140    pub fn set_max_results(mut self, input: ::std::option::Option<i32>) -> Self {
141        self.inner = self.inner.set_max_results(input);
142        self
143    }
144    /// <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. You cannot specify this parameter and the network interface IDs parameter in the same request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination">Pagination</a>.</p>
145    pub fn get_max_results(&self) -> &::std::option::Option<i32> {
146        self.inner.get_max_results()
147    }
148    /// <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>
149    pub fn dry_run(mut self, input: bool) -> Self {
150        self.inner = self.inner.dry_run(input);
151        self
152    }
153    /// <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>
154    pub fn set_dry_run(mut self, input: ::std::option::Option<bool>) -> Self {
155        self.inner = self.inner.set_dry_run(input);
156        self
157    }
158    /// <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>
159    pub fn get_dry_run(&self) -> &::std::option::Option<bool> {
160        self.inner.get_dry_run()
161    }
162    ///
163    /// Appends an item to `NetworkInterfaceIds`.
164    ///
165    /// To override the contents of this collection use [`set_network_interface_ids`](Self::set_network_interface_ids).
166    ///
167    /// <p>The network interface IDs.</p>
168    /// <p>Default: Describes all your network interfaces.</p>
169    pub fn network_interface_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
170        self.inner = self.inner.network_interface_ids(input.into());
171        self
172    }
173    /// <p>The network interface IDs.</p>
174    /// <p>Default: Describes all your network interfaces.</p>
175    pub fn set_network_interface_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
176        self.inner = self.inner.set_network_interface_ids(input);
177        self
178    }
179    /// <p>The network interface IDs.</p>
180    /// <p>Default: Describes all your network interfaces.</p>
181    pub fn get_network_interface_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
182        self.inner.get_network_interface_ids()
183    }
184    ///
185    /// Appends an item to `Filters`.
186    ///
187    /// To override the contents of this collection use [`set_filters`](Self::set_filters).
188    ///
189    /// <p>One or more filters.</p>
190    /// <ul>
191    /// <li>
192    /// <p><code>association.allocation-id</code> - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface.</p></li>
193    /// <li>
194    /// <p><code>association.association-id</code> - The association ID returned when the network interface was associated with an IPv4 address.</p></li>
195    /// <li>
196    /// <p><code>addresses.association.owner-id</code> - The owner ID of the addresses associated with the network interface.</p></li>
197    /// <li>
198    /// <p><code>addresses.association.public-ip</code> - The association ID returned when the network interface was associated with the Elastic IP address (IPv4).</p></li>
199    /// <li>
200    /// <p><code>addresses.primary</code> - Whether the private IPv4 address is the primary IP address associated with the network interface.</p></li>
201    /// <li>
202    /// <p><code>addresses.private-ip-address</code> - The private IPv4 addresses associated with the network interface.</p></li>
203    /// <li>
204    /// <p><code>association.ip-owner-id</code> - The owner of the Elastic IP address (IPv4) associated with the network interface.</p></li>
205    /// <li>
206    /// <p><code>association.public-ip</code> - The address of the Elastic IP address (IPv4) bound to the network interface.</p></li>
207    /// <li>
208    /// <p><code>association.public-dns-name</code> - The public DNS name for the network interface (IPv4).</p></li>
209    /// <li>
210    /// <p><code>attachment.attach-time</code> - The time that the network interface was attached to an instance.</p></li>
211    /// <li>
212    /// <p><code>attachment.attachment-id</code> - The ID of the interface attachment.</p></li>
213    /// <li>
214    /// <p><code>attachment.delete-on-termination</code> - Indicates whether the attachment is deleted when an instance is terminated.</p></li>
215    /// <li>
216    /// <p><code>attachment.device-index</code> - The device index to which the network interface is attached.</p></li>
217    /// <li>
218    /// <p><code>attachment.instance-id</code> - The ID of the instance to which the network interface is attached.</p></li>
219    /// <li>
220    /// <p><code>attachment.instance-owner-id</code> - The owner ID of the instance to which the network interface is attached.</p></li>
221    /// <li>
222    /// <p><code>attachment.status</code> - The status of the attachment (<code>attaching</code> | <code>attached</code> | <code>detaching</code> | <code>detached</code>).</p></li>
223    /// <li>
224    /// <p><code>availability-zone</code> - The Availability Zone of the network interface.</p></li>
225    /// <li>
226    /// <p><code>description</code> - The description of the network interface.</p></li>
227    /// <li>
228    /// <p><code>group-id</code> - The ID of a security group associated with the network interface.</p></li>
229    /// <li>
230    /// <p><code>ipv6-addresses.ipv6-address</code> - An IPv6 address associated with the network interface.</p></li>
231    /// <li>
232    /// <p><code>interface-type</code> - The type of network interface (<code>api_gateway_managed</code> | <code>aws_codestar_connections_managed</code> | <code>branch</code> | <code>ec2_instance_connect_endpoint</code> | <code>efa</code> | <code>efa-only</code> | <code>efs</code> | <code>evs</code> | <code>gateway_load_balancer</code> | <code>gateway_load_balancer_endpoint</code> | <code>global_accelerator_managed</code> | <code>interface</code> | <code>iot_rules_managed</code> | <code>lambda</code> | <code>load_balancer</code> | <code>nat_gateway</code> | <code>network_load_balancer</code> | <code>quicksight</code> | <code>transit_gateway</code> | <code>trunk</code> | <code>vpc_endpoint</code>).</p></li>
233    /// <li>
234    /// <p><code>mac-address</code> - The MAC address of the network interface.</p></li>
235    /// <li>
236    /// <p><code>network-interface-id</code> - The ID of the network interface.</p></li>
237    /// <li>
238    /// <p><code>operator.managed</code> - A Boolean that indicates whether this is a managed network interface.</p></li>
239    /// <li>
240    /// <p><code>operator.principal</code> - The principal that manages the network interface. Only valid for managed network interfaces, where <code>managed</code> is <code>true</code>.</p></li>
241    /// <li>
242    /// <p><code>owner-id</code> - The Amazon Web Services account ID of the network interface owner.</p></li>
243    /// <li>
244    /// <p><code>private-dns-name</code> - The private DNS name of the network interface (IPv4).</p></li>
245    /// <li>
246    /// <p><code>private-ip-address</code> - The private IPv4 address or addresses of the network interface.</p></li>
247    /// <li>
248    /// <p><code>requester-id</code> - The alias or Amazon Web Services account ID of the principal or service that created the network interface.</p></li>
249    /// <li>
250    /// <p><code>requester-managed</code> - Indicates whether the network interface is being managed by an Amazon Web Services service (for example, Amazon Web Services Management Console, Auto Scaling, and so on).</p></li>
251    /// <li>
252    /// <p><code>source-dest-check</code> - Indicates whether the network interface performs source/destination checking. A value of <code>true</code> means checking is enabled, and <code>false</code> means checking is disabled. The value must be <code>false</code> for the network interface to perform network address translation (NAT) in your VPC.</p></li>
253    /// <li>
254    /// <p><code>status</code> - The status of the network interface. If the network interface is not attached to an instance, the status is <code>available</code>; if a network interface is attached to an instance the status is <code>in-use</code>.</p></li>
255    /// <li>
256    /// <p><code>subnet-id</code> - The ID of the subnet for the network interface.</p></li>
257    /// <li>
258    /// <p><code>tag</code>:<key>
259    /// - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key
260    /// <code>Owner</code> and the value
261    /// <code>TeamA</code>, specify
262    /// <code>tag:Owner</code> for the filter name and
263    /// <code>TeamA</code> for the filter value.
264    /// </key></p></li>
265    /// <li>
266    /// <p><code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p></li>
267    /// <li>
268    /// <p><code>vpc-id</code> - The ID of the VPC for the network interface.</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.</p>
275    /// <ul>
276    /// <li>
277    /// <p><code>association.allocation-id</code> - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface.</p></li>
278    /// <li>
279    /// <p><code>association.association-id</code> - The association ID returned when the network interface was associated with an IPv4 address.</p></li>
280    /// <li>
281    /// <p><code>addresses.association.owner-id</code> - The owner ID of the addresses associated with the network interface.</p></li>
282    /// <li>
283    /// <p><code>addresses.association.public-ip</code> - The association ID returned when the network interface was associated with the Elastic IP address (IPv4).</p></li>
284    /// <li>
285    /// <p><code>addresses.primary</code> - Whether the private IPv4 address is the primary IP address associated with the network interface.</p></li>
286    /// <li>
287    /// <p><code>addresses.private-ip-address</code> - The private IPv4 addresses associated with the network interface.</p></li>
288    /// <li>
289    /// <p><code>association.ip-owner-id</code> - The owner of the Elastic IP address (IPv4) associated with the network interface.</p></li>
290    /// <li>
291    /// <p><code>association.public-ip</code> - The address of the Elastic IP address (IPv4) bound to the network interface.</p></li>
292    /// <li>
293    /// <p><code>association.public-dns-name</code> - The public DNS name for the network interface (IPv4).</p></li>
294    /// <li>
295    /// <p><code>attachment.attach-time</code> - The time that the network interface was attached to an instance.</p></li>
296    /// <li>
297    /// <p><code>attachment.attachment-id</code> - The ID of the interface attachment.</p></li>
298    /// <li>
299    /// <p><code>attachment.delete-on-termination</code> - Indicates whether the attachment is deleted when an instance is terminated.</p></li>
300    /// <li>
301    /// <p><code>attachment.device-index</code> - The device index to which the network interface is attached.</p></li>
302    /// <li>
303    /// <p><code>attachment.instance-id</code> - The ID of the instance to which the network interface is attached.</p></li>
304    /// <li>
305    /// <p><code>attachment.instance-owner-id</code> - The owner ID of the instance to which the network interface is attached.</p></li>
306    /// <li>
307    /// <p><code>attachment.status</code> - The status of the attachment (<code>attaching</code> | <code>attached</code> | <code>detaching</code> | <code>detached</code>).</p></li>
308    /// <li>
309    /// <p><code>availability-zone</code> - The Availability Zone of the network interface.</p></li>
310    /// <li>
311    /// <p><code>description</code> - The description of the network interface.</p></li>
312    /// <li>
313    /// <p><code>group-id</code> - The ID of a security group associated with the network interface.</p></li>
314    /// <li>
315    /// <p><code>ipv6-addresses.ipv6-address</code> - An IPv6 address associated with the network interface.</p></li>
316    /// <li>
317    /// <p><code>interface-type</code> - The type of network interface (<code>api_gateway_managed</code> | <code>aws_codestar_connections_managed</code> | <code>branch</code> | <code>ec2_instance_connect_endpoint</code> | <code>efa</code> | <code>efa-only</code> | <code>efs</code> | <code>evs</code> | <code>gateway_load_balancer</code> | <code>gateway_load_balancer_endpoint</code> | <code>global_accelerator_managed</code> | <code>interface</code> | <code>iot_rules_managed</code> | <code>lambda</code> | <code>load_balancer</code> | <code>nat_gateway</code> | <code>network_load_balancer</code> | <code>quicksight</code> | <code>transit_gateway</code> | <code>trunk</code> | <code>vpc_endpoint</code>).</p></li>
318    /// <li>
319    /// <p><code>mac-address</code> - The MAC address of the network interface.</p></li>
320    /// <li>
321    /// <p><code>network-interface-id</code> - The ID of the network interface.</p></li>
322    /// <li>
323    /// <p><code>operator.managed</code> - A Boolean that indicates whether this is a managed network interface.</p></li>
324    /// <li>
325    /// <p><code>operator.principal</code> - The principal that manages the network interface. Only valid for managed network interfaces, where <code>managed</code> is <code>true</code>.</p></li>
326    /// <li>
327    /// <p><code>owner-id</code> - The Amazon Web Services account ID of the network interface owner.</p></li>
328    /// <li>
329    /// <p><code>private-dns-name</code> - The private DNS name of the network interface (IPv4).</p></li>
330    /// <li>
331    /// <p><code>private-ip-address</code> - The private IPv4 address or addresses of the network interface.</p></li>
332    /// <li>
333    /// <p><code>requester-id</code> - The alias or Amazon Web Services account ID of the principal or service that created the network interface.</p></li>
334    /// <li>
335    /// <p><code>requester-managed</code> - Indicates whether the network interface is being managed by an Amazon Web Services service (for example, Amazon Web Services Management Console, Auto Scaling, and so on).</p></li>
336    /// <li>
337    /// <p><code>source-dest-check</code> - Indicates whether the network interface performs source/destination checking. A value of <code>true</code> means checking is enabled, and <code>false</code> means checking is disabled. The value must be <code>false</code> for the network interface to perform network address translation (NAT) in your VPC.</p></li>
338    /// <li>
339    /// <p><code>status</code> - The status of the network interface. If the network interface is not attached to an instance, the status is <code>available</code>; if a network interface is attached to an instance the status is <code>in-use</code>.</p></li>
340    /// <li>
341    /// <p><code>subnet-id</code> - The ID of the subnet for the network interface.</p></li>
342    /// <li>
343    /// <p><code>tag</code>:<key>
344    /// - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key
345    /// <code>Owner</code> and the value
346    /// <code>TeamA</code>, specify
347    /// <code>tag:Owner</code> for the filter name and
348    /// <code>TeamA</code> for the filter value.
349    /// </key></p></li>
350    /// <li>
351    /// <p><code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p></li>
352    /// <li>
353    /// <p><code>vpc-id</code> - The ID of the VPC for the network interface.</p></li>
354    /// </ul>
355    pub fn set_filters(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Filter>>) -> Self {
356        self.inner = self.inner.set_filters(input);
357        self
358    }
359    /// <p>One or more filters.</p>
360    /// <ul>
361    /// <li>
362    /// <p><code>association.allocation-id</code> - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface.</p></li>
363    /// <li>
364    /// <p><code>association.association-id</code> - The association ID returned when the network interface was associated with an IPv4 address.</p></li>
365    /// <li>
366    /// <p><code>addresses.association.owner-id</code> - The owner ID of the addresses associated with the network interface.</p></li>
367    /// <li>
368    /// <p><code>addresses.association.public-ip</code> - The association ID returned when the network interface was associated with the Elastic IP address (IPv4).</p></li>
369    /// <li>
370    /// <p><code>addresses.primary</code> - Whether the private IPv4 address is the primary IP address associated with the network interface.</p></li>
371    /// <li>
372    /// <p><code>addresses.private-ip-address</code> - The private IPv4 addresses associated with the network interface.</p></li>
373    /// <li>
374    /// <p><code>association.ip-owner-id</code> - The owner of the Elastic IP address (IPv4) associated with the network interface.</p></li>
375    /// <li>
376    /// <p><code>association.public-ip</code> - The address of the Elastic IP address (IPv4) bound to the network interface.</p></li>
377    /// <li>
378    /// <p><code>association.public-dns-name</code> - The public DNS name for the network interface (IPv4).</p></li>
379    /// <li>
380    /// <p><code>attachment.attach-time</code> - The time that the network interface was attached to an instance.</p></li>
381    /// <li>
382    /// <p><code>attachment.attachment-id</code> - The ID of the interface attachment.</p></li>
383    /// <li>
384    /// <p><code>attachment.delete-on-termination</code> - Indicates whether the attachment is deleted when an instance is terminated.</p></li>
385    /// <li>
386    /// <p><code>attachment.device-index</code> - The device index to which the network interface is attached.</p></li>
387    /// <li>
388    /// <p><code>attachment.instance-id</code> - The ID of the instance to which the network interface is attached.</p></li>
389    /// <li>
390    /// <p><code>attachment.instance-owner-id</code> - The owner ID of the instance to which the network interface is attached.</p></li>
391    /// <li>
392    /// <p><code>attachment.status</code> - The status of the attachment (<code>attaching</code> | <code>attached</code> | <code>detaching</code> | <code>detached</code>).</p></li>
393    /// <li>
394    /// <p><code>availability-zone</code> - The Availability Zone of the network interface.</p></li>
395    /// <li>
396    /// <p><code>description</code> - The description of the network interface.</p></li>
397    /// <li>
398    /// <p><code>group-id</code> - The ID of a security group associated with the network interface.</p></li>
399    /// <li>
400    /// <p><code>ipv6-addresses.ipv6-address</code> - An IPv6 address associated with the network interface.</p></li>
401    /// <li>
402    /// <p><code>interface-type</code> - The type of network interface (<code>api_gateway_managed</code> | <code>aws_codestar_connections_managed</code> | <code>branch</code> | <code>ec2_instance_connect_endpoint</code> | <code>efa</code> | <code>efa-only</code> | <code>efs</code> | <code>evs</code> | <code>gateway_load_balancer</code> | <code>gateway_load_balancer_endpoint</code> | <code>global_accelerator_managed</code> | <code>interface</code> | <code>iot_rules_managed</code> | <code>lambda</code> | <code>load_balancer</code> | <code>nat_gateway</code> | <code>network_load_balancer</code> | <code>quicksight</code> | <code>transit_gateway</code> | <code>trunk</code> | <code>vpc_endpoint</code>).</p></li>
403    /// <li>
404    /// <p><code>mac-address</code> - The MAC address of the network interface.</p></li>
405    /// <li>
406    /// <p><code>network-interface-id</code> - The ID of the network interface.</p></li>
407    /// <li>
408    /// <p><code>operator.managed</code> - A Boolean that indicates whether this is a managed network interface.</p></li>
409    /// <li>
410    /// <p><code>operator.principal</code> - The principal that manages the network interface. Only valid for managed network interfaces, where <code>managed</code> is <code>true</code>.</p></li>
411    /// <li>
412    /// <p><code>owner-id</code> - The Amazon Web Services account ID of the network interface owner.</p></li>
413    /// <li>
414    /// <p><code>private-dns-name</code> - The private DNS name of the network interface (IPv4).</p></li>
415    /// <li>
416    /// <p><code>private-ip-address</code> - The private IPv4 address or addresses of the network interface.</p></li>
417    /// <li>
418    /// <p><code>requester-id</code> - The alias or Amazon Web Services account ID of the principal or service that created the network interface.</p></li>
419    /// <li>
420    /// <p><code>requester-managed</code> - Indicates whether the network interface is being managed by an Amazon Web Services service (for example, Amazon Web Services Management Console, Auto Scaling, and so on).</p></li>
421    /// <li>
422    /// <p><code>source-dest-check</code> - Indicates whether the network interface performs source/destination checking. A value of <code>true</code> means checking is enabled, and <code>false</code> means checking is disabled. The value must be <code>false</code> for the network interface to perform network address translation (NAT) in your VPC.</p></li>
423    /// <li>
424    /// <p><code>status</code> - The status of the network interface. If the network interface is not attached to an instance, the status is <code>available</code>; if a network interface is attached to an instance the status is <code>in-use</code>.</p></li>
425    /// <li>
426    /// <p><code>subnet-id</code> - The ID of the subnet for the network interface.</p></li>
427    /// <li>
428    /// <p><code>tag</code>:<key>
429    /// - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key
430    /// <code>Owner</code> and the value
431    /// <code>TeamA</code>, specify
432    /// <code>tag:Owner</code> for the filter name and
433    /// <code>TeamA</code> for the filter value.
434    /// </key></p></li>
435    /// <li>
436    /// <p><code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p></li>
437    /// <li>
438    /// <p><code>vpc-id</code> - The ID of the VPC for the network interface.</p></li>
439    /// </ul>
440    pub fn get_filters(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Filter>> {
441        self.inner.get_filters()
442    }
443}