aws_sdk_ec2/operation/create_network_interface/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_network_interface::_create_network_interface_output::CreateNetworkInterfaceOutputBuilder;
3
4pub use crate::operation::create_network_interface::_create_network_interface_input::CreateNetworkInterfaceInputBuilder;
5
6impl crate::operation::create_network_interface::builders::CreateNetworkInterfaceInputBuilder {
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::create_network_interface::CreateNetworkInterfaceOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::create_network_interface::CreateNetworkInterfaceError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.create_network_interface();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `CreateNetworkInterface`.
24///
25/// <p>Creates a network interface in the specified subnet.</p>
26/// <p>The number of IP addresses you can assign to a network interface varies by instance type.</p>
27/// <p>For more information about network interfaces, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html">Elastic network interfaces</a> in the <i>Amazon EC2 User Guide</i>.</p>
28#[derive(::std::clone::Clone, ::std::fmt::Debug)]
29pub struct CreateNetworkInterfaceFluentBuilder {
30 handle: ::std::sync::Arc<crate::client::Handle>,
31 inner: crate::operation::create_network_interface::builders::CreateNetworkInterfaceInputBuilder,
32 config_override: ::std::option::Option<crate::config::Builder>,
33}
34impl
35 crate::client::customize::internal::CustomizableSend<
36 crate::operation::create_network_interface::CreateNetworkInterfaceOutput,
37 crate::operation::create_network_interface::CreateNetworkInterfaceError,
38 > for CreateNetworkInterfaceFluentBuilder
39{
40 fn send(
41 self,
42 config_override: crate::config::Builder,
43 ) -> crate::client::customize::internal::BoxFuture<
44 crate::client::customize::internal::SendResult<
45 crate::operation::create_network_interface::CreateNetworkInterfaceOutput,
46 crate::operation::create_network_interface::CreateNetworkInterfaceError,
47 >,
48 > {
49 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
50 }
51}
52impl CreateNetworkInterfaceFluentBuilder {
53 /// Creates a new `CreateNetworkInterfaceFluentBuilder`.
54 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
55 Self {
56 handle,
57 inner: ::std::default::Default::default(),
58 config_override: ::std::option::Option::None,
59 }
60 }
61 /// Access the CreateNetworkInterface as a reference.
62 pub fn as_input(&self) -> &crate::operation::create_network_interface::builders::CreateNetworkInterfaceInputBuilder {
63 &self.inner
64 }
65 /// Sends the request and returns the response.
66 ///
67 /// If an error occurs, an `SdkError` will be returned with additional details that
68 /// can be matched against.
69 ///
70 /// By default, any retryable failures will be retried twice. Retry behavior
71 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
72 /// set when configuring the client.
73 pub async fn send(
74 self,
75 ) -> ::std::result::Result<
76 crate::operation::create_network_interface::CreateNetworkInterfaceOutput,
77 ::aws_smithy_runtime_api::client::result::SdkError<
78 crate::operation::create_network_interface::CreateNetworkInterfaceError,
79 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
80 >,
81 > {
82 let input = self
83 .inner
84 .build()
85 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
86 let runtime_plugins = crate::operation::create_network_interface::CreateNetworkInterface::operation_runtime_plugins(
87 self.handle.runtime_plugins.clone(),
88 &self.handle.conf,
89 self.config_override,
90 );
91 crate::operation::create_network_interface::CreateNetworkInterface::orchestrate(&runtime_plugins, input).await
92 }
93
94 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
95 pub fn customize(
96 self,
97 ) -> crate::client::customize::CustomizableOperation<
98 crate::operation::create_network_interface::CreateNetworkInterfaceOutput,
99 crate::operation::create_network_interface::CreateNetworkInterfaceError,
100 Self,
101 > {
102 crate::client::customize::CustomizableOperation::new(self)
103 }
104 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
105 self.set_config_override(::std::option::Option::Some(config_override.into()));
106 self
107 }
108
109 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
110 self.config_override = config_override;
111 self
112 }
113 ///
114 /// Appends an item to `Ipv4Prefixes`.
115 ///
116 /// To override the contents of this collection use [`set_ipv4_prefixes`](Self::set_ipv4_prefixes).
117 ///
118 /// <p>The IPv4 prefixes assigned to the network interface.</p>
119 /// <p>You can't specify IPv4 prefixes if you've specified one of the following: a count of IPv4 prefixes, specific private IPv4 addresses, or a count of private IPv4 addresses.</p>
120 pub fn ipv4_prefixes(mut self, input: crate::types::Ipv4PrefixSpecificationRequest) -> Self {
121 self.inner = self.inner.ipv4_prefixes(input);
122 self
123 }
124 /// <p>The IPv4 prefixes assigned to the network interface.</p>
125 /// <p>You can't specify IPv4 prefixes if you've specified one of the following: a count of IPv4 prefixes, specific private IPv4 addresses, or a count of private IPv4 addresses.</p>
126 pub fn set_ipv4_prefixes(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Ipv4PrefixSpecificationRequest>>) -> Self {
127 self.inner = self.inner.set_ipv4_prefixes(input);
128 self
129 }
130 /// <p>The IPv4 prefixes assigned to the network interface.</p>
131 /// <p>You can't specify IPv4 prefixes if you've specified one of the following: a count of IPv4 prefixes, specific private IPv4 addresses, or a count of private IPv4 addresses.</p>
132 pub fn get_ipv4_prefixes(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Ipv4PrefixSpecificationRequest>> {
133 self.inner.get_ipv4_prefixes()
134 }
135 /// <p>The number of IPv4 prefixes that Amazon Web Services automatically assigns to the network interface.</p>
136 /// <p>You can't specify a count of IPv4 prefixes if you've specified one of the following: specific IPv4 prefixes, specific private IPv4 addresses, or a count of private IPv4 addresses.</p>
137 pub fn ipv4_prefix_count(mut self, input: i32) -> Self {
138 self.inner = self.inner.ipv4_prefix_count(input);
139 self
140 }
141 /// <p>The number of IPv4 prefixes that Amazon Web Services automatically assigns to the network interface.</p>
142 /// <p>You can't specify a count of IPv4 prefixes if you've specified one of the following: specific IPv4 prefixes, specific private IPv4 addresses, or a count of private IPv4 addresses.</p>
143 pub fn set_ipv4_prefix_count(mut self, input: ::std::option::Option<i32>) -> Self {
144 self.inner = self.inner.set_ipv4_prefix_count(input);
145 self
146 }
147 /// <p>The number of IPv4 prefixes that Amazon Web Services automatically assigns to the network interface.</p>
148 /// <p>You can't specify a count of IPv4 prefixes if you've specified one of the following: specific IPv4 prefixes, specific private IPv4 addresses, or a count of private IPv4 addresses.</p>
149 pub fn get_ipv4_prefix_count(&self) -> &::std::option::Option<i32> {
150 self.inner.get_ipv4_prefix_count()
151 }
152 ///
153 /// Appends an item to `Ipv6Prefixes`.
154 ///
155 /// To override the contents of this collection use [`set_ipv6_prefixes`](Self::set_ipv6_prefixes).
156 ///
157 /// <p>The IPv6 prefixes assigned to the network interface.</p>
158 /// <p>You can't specify IPv6 prefixes if you've specified one of the following: a count of IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.</p>
159 pub fn ipv6_prefixes(mut self, input: crate::types::Ipv6PrefixSpecificationRequest) -> Self {
160 self.inner = self.inner.ipv6_prefixes(input);
161 self
162 }
163 /// <p>The IPv6 prefixes assigned to the network interface.</p>
164 /// <p>You can't specify IPv6 prefixes if you've specified one of the following: a count of IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.</p>
165 pub fn set_ipv6_prefixes(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Ipv6PrefixSpecificationRequest>>) -> Self {
166 self.inner = self.inner.set_ipv6_prefixes(input);
167 self
168 }
169 /// <p>The IPv6 prefixes assigned to the network interface.</p>
170 /// <p>You can't specify IPv6 prefixes if you've specified one of the following: a count of IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.</p>
171 pub fn get_ipv6_prefixes(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Ipv6PrefixSpecificationRequest>> {
172 self.inner.get_ipv6_prefixes()
173 }
174 /// <p>The number of IPv6 prefixes that Amazon Web Services automatically assigns to the network interface.</p>
175 /// <p>You can't specify a count of IPv6 prefixes if you've specified one of the following: specific IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.</p>
176 pub fn ipv6_prefix_count(mut self, input: i32) -> Self {
177 self.inner = self.inner.ipv6_prefix_count(input);
178 self
179 }
180 /// <p>The number of IPv6 prefixes that Amazon Web Services automatically assigns to the network interface.</p>
181 /// <p>You can't specify a count of IPv6 prefixes if you've specified one of the following: specific IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.</p>
182 pub fn set_ipv6_prefix_count(mut self, input: ::std::option::Option<i32>) -> Self {
183 self.inner = self.inner.set_ipv6_prefix_count(input);
184 self
185 }
186 /// <p>The number of IPv6 prefixes that Amazon Web Services automatically assigns to the network interface.</p>
187 /// <p>You can't specify a count of IPv6 prefixes if you've specified one of the following: specific IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.</p>
188 pub fn get_ipv6_prefix_count(&self) -> &::std::option::Option<i32> {
189 self.inner.get_ipv6_prefix_count()
190 }
191 /// <p>The type of network interface. The default is <code>interface</code>.</p>
192 /// <p>If you specify <code>efa-only</code>, do not assign any IP addresses to the network interface. EFA-only network interfaces do not support IP addresses.</p>
193 /// <p>The only supported values are <code>interface</code>, <code>efa</code>, <code>efa-only</code>, and <code>trunk</code>.</p>
194 pub fn interface_type(mut self, input: crate::types::NetworkInterfaceCreationType) -> Self {
195 self.inner = self.inner.interface_type(input);
196 self
197 }
198 /// <p>The type of network interface. The default is <code>interface</code>.</p>
199 /// <p>If you specify <code>efa-only</code>, do not assign any IP addresses to the network interface. EFA-only network interfaces do not support IP addresses.</p>
200 /// <p>The only supported values are <code>interface</code>, <code>efa</code>, <code>efa-only</code>, and <code>trunk</code>.</p>
201 pub fn set_interface_type(mut self, input: ::std::option::Option<crate::types::NetworkInterfaceCreationType>) -> Self {
202 self.inner = self.inner.set_interface_type(input);
203 self
204 }
205 /// <p>The type of network interface. The default is <code>interface</code>.</p>
206 /// <p>If you specify <code>efa-only</code>, do not assign any IP addresses to the network interface. EFA-only network interfaces do not support IP addresses.</p>
207 /// <p>The only supported values are <code>interface</code>, <code>efa</code>, <code>efa-only</code>, and <code>trunk</code>.</p>
208 pub fn get_interface_type(&self) -> &::std::option::Option<crate::types::NetworkInterfaceCreationType> {
209 self.inner.get_interface_type()
210 }
211 ///
212 /// Appends an item to `TagSpecifications`.
213 ///
214 /// To override the contents of this collection use [`set_tag_specifications`](Self::set_tag_specifications).
215 ///
216 /// <p>The tags to apply to the new network interface.</p>
217 pub fn tag_specifications(mut self, input: crate::types::TagSpecification) -> Self {
218 self.inner = self.inner.tag_specifications(input);
219 self
220 }
221 /// <p>The tags to apply to the new network interface.</p>
222 pub fn set_tag_specifications(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::TagSpecification>>) -> Self {
223 self.inner = self.inner.set_tag_specifications(input);
224 self
225 }
226 /// <p>The tags to apply to the new network interface.</p>
227 pub fn get_tag_specifications(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::TagSpecification>> {
228 self.inner.get_tag_specifications()
229 }
230 /// <p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html">Ensuring idempotency</a>.</p>
231 pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
232 self.inner = self.inner.client_token(input.into());
233 self
234 }
235 /// <p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html">Ensuring idempotency</a>.</p>
236 pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
237 self.inner = self.inner.set_client_token(input);
238 self
239 }
240 /// <p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html">Ensuring idempotency</a>.</p>
241 pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
242 self.inner.get_client_token()
243 }
244 /// <p>If you’re creating a network interface in a dual-stack or IPv6-only subnet, you have the option to assign a primary IPv6 IP address. A primary IPv6 address is an IPv6 GUA address associated with an ENI that you have enabled to use a primary IPv6 address. Use this option if the instance that this ENI will be attached to relies on its IPv6 address not changing. Amazon Web Services will automatically assign an IPv6 address associated with the ENI attached to your instance to be the primary IPv6 address. Once you enable an IPv6 GUA address to be a primary IPv6, you cannot disable it. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. If you have multiple IPv6 addresses associated with an ENI attached to your instance and you enable a primary IPv6 address, the first IPv6 GUA address associated with the ENI becomes the primary IPv6 address.</p>
245 pub fn enable_primary_ipv6(mut self, input: bool) -> Self {
246 self.inner = self.inner.enable_primary_ipv6(input);
247 self
248 }
249 /// <p>If you’re creating a network interface in a dual-stack or IPv6-only subnet, you have the option to assign a primary IPv6 IP address. A primary IPv6 address is an IPv6 GUA address associated with an ENI that you have enabled to use a primary IPv6 address. Use this option if the instance that this ENI will be attached to relies on its IPv6 address not changing. Amazon Web Services will automatically assign an IPv6 address associated with the ENI attached to your instance to be the primary IPv6 address. Once you enable an IPv6 GUA address to be a primary IPv6, you cannot disable it. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. If you have multiple IPv6 addresses associated with an ENI attached to your instance and you enable a primary IPv6 address, the first IPv6 GUA address associated with the ENI becomes the primary IPv6 address.</p>
250 pub fn set_enable_primary_ipv6(mut self, input: ::std::option::Option<bool>) -> Self {
251 self.inner = self.inner.set_enable_primary_ipv6(input);
252 self
253 }
254 /// <p>If you’re creating a network interface in a dual-stack or IPv6-only subnet, you have the option to assign a primary IPv6 IP address. A primary IPv6 address is an IPv6 GUA address associated with an ENI that you have enabled to use a primary IPv6 address. Use this option if the instance that this ENI will be attached to relies on its IPv6 address not changing. Amazon Web Services will automatically assign an IPv6 address associated with the ENI attached to your instance to be the primary IPv6 address. Once you enable an IPv6 GUA address to be a primary IPv6, you cannot disable it. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. If you have multiple IPv6 addresses associated with an ENI attached to your instance and you enable a primary IPv6 address, the first IPv6 GUA address associated with the ENI becomes the primary IPv6 address.</p>
255 pub fn get_enable_primary_ipv6(&self) -> &::std::option::Option<bool> {
256 self.inner.get_enable_primary_ipv6()
257 }
258 /// <p>A connection tracking specification for the network interface.</p>
259 pub fn connection_tracking_specification(mut self, input: crate::types::ConnectionTrackingSpecificationRequest) -> Self {
260 self.inner = self.inner.connection_tracking_specification(input);
261 self
262 }
263 /// <p>A connection tracking specification for the network interface.</p>
264 pub fn set_connection_tracking_specification(
265 mut self,
266 input: ::std::option::Option<crate::types::ConnectionTrackingSpecificationRequest>,
267 ) -> Self {
268 self.inner = self.inner.set_connection_tracking_specification(input);
269 self
270 }
271 /// <p>A connection tracking specification for the network interface.</p>
272 pub fn get_connection_tracking_specification(&self) -> &::std::option::Option<crate::types::ConnectionTrackingSpecificationRequest> {
273 self.inner.get_connection_tracking_specification()
274 }
275 /// <p>Reserved for internal use.</p>
276 pub fn operator(mut self, input: crate::types::OperatorRequest) -> Self {
277 self.inner = self.inner.operator(input);
278 self
279 }
280 /// <p>Reserved for internal use.</p>
281 pub fn set_operator(mut self, input: ::std::option::Option<crate::types::OperatorRequest>) -> Self {
282 self.inner = self.inner.set_operator(input);
283 self
284 }
285 /// <p>Reserved for internal use.</p>
286 pub fn get_operator(&self) -> &::std::option::Option<crate::types::OperatorRequest> {
287 self.inner.get_operator()
288 }
289 /// <p>The ID of the subnet to associate with the network interface.</p>
290 pub fn subnet_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
291 self.inner = self.inner.subnet_id(input.into());
292 self
293 }
294 /// <p>The ID of the subnet to associate with the network interface.</p>
295 pub fn set_subnet_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
296 self.inner = self.inner.set_subnet_id(input);
297 self
298 }
299 /// <p>The ID of the subnet to associate with the network interface.</p>
300 pub fn get_subnet_id(&self) -> &::std::option::Option<::std::string::String> {
301 self.inner.get_subnet_id()
302 }
303 /// <p>A description for the network interface.</p>
304 pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
305 self.inner = self.inner.description(input.into());
306 self
307 }
308 /// <p>A description for the network interface.</p>
309 pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
310 self.inner = self.inner.set_description(input);
311 self
312 }
313 /// <p>A description for the network interface.</p>
314 pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
315 self.inner.get_description()
316 }
317 /// <p>The primary private IPv4 address of the network interface. If you don't specify an IPv4 address, Amazon EC2 selects one for you from the subnet's IPv4 CIDR range. If you specify an IP address, you cannot indicate any IP addresses specified in <code>privateIpAddresses</code> as primary (only one IP address can be designated as primary).</p>
318 pub fn private_ip_address(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
319 self.inner = self.inner.private_ip_address(input.into());
320 self
321 }
322 /// <p>The primary private IPv4 address of the network interface. If you don't specify an IPv4 address, Amazon EC2 selects one for you from the subnet's IPv4 CIDR range. If you specify an IP address, you cannot indicate any IP addresses specified in <code>privateIpAddresses</code> as primary (only one IP address can be designated as primary).</p>
323 pub fn set_private_ip_address(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
324 self.inner = self.inner.set_private_ip_address(input);
325 self
326 }
327 /// <p>The primary private IPv4 address of the network interface. If you don't specify an IPv4 address, Amazon EC2 selects one for you from the subnet's IPv4 CIDR range. If you specify an IP address, you cannot indicate any IP addresses specified in <code>privateIpAddresses</code> as primary (only one IP address can be designated as primary).</p>
328 pub fn get_private_ip_address(&self) -> &::std::option::Option<::std::string::String> {
329 self.inner.get_private_ip_address()
330 }
331 ///
332 /// Appends an item to `Groups`.
333 ///
334 /// To override the contents of this collection use [`set_groups`](Self::set_groups).
335 ///
336 /// <p>The IDs of the security groups.</p>
337 pub fn groups(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
338 self.inner = self.inner.groups(input.into());
339 self
340 }
341 /// <p>The IDs of the security groups.</p>
342 pub fn set_groups(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
343 self.inner = self.inner.set_groups(input);
344 self
345 }
346 /// <p>The IDs of the security groups.</p>
347 pub fn get_groups(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
348 self.inner.get_groups()
349 }
350 ///
351 /// Appends an item to `PrivateIpAddresses`.
352 ///
353 /// To override the contents of this collection use [`set_private_ip_addresses`](Self::set_private_ip_addresses).
354 ///
355 /// <p>The private IPv4 addresses.</p>
356 /// <p>You can't specify private IPv4 addresses if you've specified one of the following: a count of private IPv4 addresses, specific IPv4 prefixes, or a count of IPv4 prefixes.</p>
357 pub fn private_ip_addresses(mut self, input: crate::types::PrivateIpAddressSpecification) -> Self {
358 self.inner = self.inner.private_ip_addresses(input);
359 self
360 }
361 /// <p>The private IPv4 addresses.</p>
362 /// <p>You can't specify private IPv4 addresses if you've specified one of the following: a count of private IPv4 addresses, specific IPv4 prefixes, or a count of IPv4 prefixes.</p>
363 pub fn set_private_ip_addresses(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::PrivateIpAddressSpecification>>) -> Self {
364 self.inner = self.inner.set_private_ip_addresses(input);
365 self
366 }
367 /// <p>The private IPv4 addresses.</p>
368 /// <p>You can't specify private IPv4 addresses if you've specified one of the following: a count of private IPv4 addresses, specific IPv4 prefixes, or a count of IPv4 prefixes.</p>
369 pub fn get_private_ip_addresses(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::PrivateIpAddressSpecification>> {
370 self.inner.get_private_ip_addresses()
371 }
372 /// <p>The number of secondary private IPv4 addresses to assign to a network interface. When you specify a number of secondary IPv4 addresses, Amazon EC2 selects these IP addresses within the subnet's IPv4 CIDR range. You can't specify this option and specify more than one private IP address using <code>privateIpAddresses</code>.</p>
373 /// <p>You can't specify a count of private IPv4 addresses if you've specified one of the following: specific private IPv4 addresses, specific IPv4 prefixes, or a count of IPv4 prefixes.</p>
374 pub fn secondary_private_ip_address_count(mut self, input: i32) -> Self {
375 self.inner = self.inner.secondary_private_ip_address_count(input);
376 self
377 }
378 /// <p>The number of secondary private IPv4 addresses to assign to a network interface. When you specify a number of secondary IPv4 addresses, Amazon EC2 selects these IP addresses within the subnet's IPv4 CIDR range. You can't specify this option and specify more than one private IP address using <code>privateIpAddresses</code>.</p>
379 /// <p>You can't specify a count of private IPv4 addresses if you've specified one of the following: specific private IPv4 addresses, specific IPv4 prefixes, or a count of IPv4 prefixes.</p>
380 pub fn set_secondary_private_ip_address_count(mut self, input: ::std::option::Option<i32>) -> Self {
381 self.inner = self.inner.set_secondary_private_ip_address_count(input);
382 self
383 }
384 /// <p>The number of secondary private IPv4 addresses to assign to a network interface. When you specify a number of secondary IPv4 addresses, Amazon EC2 selects these IP addresses within the subnet's IPv4 CIDR range. You can't specify this option and specify more than one private IP address using <code>privateIpAddresses</code>.</p>
385 /// <p>You can't specify a count of private IPv4 addresses if you've specified one of the following: specific private IPv4 addresses, specific IPv4 prefixes, or a count of IPv4 prefixes.</p>
386 pub fn get_secondary_private_ip_address_count(&self) -> &::std::option::Option<i32> {
387 self.inner.get_secondary_private_ip_address_count()
388 }
389 ///
390 /// Appends an item to `Ipv6Addresses`.
391 ///
392 /// To override the contents of this collection use [`set_ipv6_addresses`](Self::set_ipv6_addresses).
393 ///
394 /// <p>The IPv6 addresses from the IPv6 CIDR block range of your subnet.</p>
395 /// <p>You can't specify IPv6 addresses using this parameter if you've specified one of the following: a count of IPv6 addresses, specific IPv6 prefixes, or a count of IPv6 prefixes.</p>
396 pub fn ipv6_addresses(mut self, input: crate::types::InstanceIpv6Address) -> Self {
397 self.inner = self.inner.ipv6_addresses(input);
398 self
399 }
400 /// <p>The IPv6 addresses from the IPv6 CIDR block range of your subnet.</p>
401 /// <p>You can't specify IPv6 addresses using this parameter if you've specified one of the following: a count of IPv6 addresses, specific IPv6 prefixes, or a count of IPv6 prefixes.</p>
402 pub fn set_ipv6_addresses(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::InstanceIpv6Address>>) -> Self {
403 self.inner = self.inner.set_ipv6_addresses(input);
404 self
405 }
406 /// <p>The IPv6 addresses from the IPv6 CIDR block range of your subnet.</p>
407 /// <p>You can't specify IPv6 addresses using this parameter if you've specified one of the following: a count of IPv6 addresses, specific IPv6 prefixes, or a count of IPv6 prefixes.</p>
408 pub fn get_ipv6_addresses(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::InstanceIpv6Address>> {
409 self.inner.get_ipv6_addresses()
410 }
411 /// <p>The number of IPv6 addresses to assign to a network interface. Amazon EC2 automatically selects the IPv6 addresses from the subnet range.</p>
412 /// <p>You can't specify a count of IPv6 addresses using this parameter if you've specified one of the following: specific IPv6 addresses, specific IPv6 prefixes, or a count of IPv6 prefixes.</p>
413 /// <p>If your subnet has the <code>AssignIpv6AddressOnCreation</code> attribute set, you can override that setting by specifying 0 as the IPv6 address count.</p>
414 pub fn ipv6_address_count(mut self, input: i32) -> Self {
415 self.inner = self.inner.ipv6_address_count(input);
416 self
417 }
418 /// <p>The number of IPv6 addresses to assign to a network interface. Amazon EC2 automatically selects the IPv6 addresses from the subnet range.</p>
419 /// <p>You can't specify a count of IPv6 addresses using this parameter if you've specified one of the following: specific IPv6 addresses, specific IPv6 prefixes, or a count of IPv6 prefixes.</p>
420 /// <p>If your subnet has the <code>AssignIpv6AddressOnCreation</code> attribute set, you can override that setting by specifying 0 as the IPv6 address count.</p>
421 pub fn set_ipv6_address_count(mut self, input: ::std::option::Option<i32>) -> Self {
422 self.inner = self.inner.set_ipv6_address_count(input);
423 self
424 }
425 /// <p>The number of IPv6 addresses to assign to a network interface. Amazon EC2 automatically selects the IPv6 addresses from the subnet range.</p>
426 /// <p>You can't specify a count of IPv6 addresses using this parameter if you've specified one of the following: specific IPv6 addresses, specific IPv6 prefixes, or a count of IPv6 prefixes.</p>
427 /// <p>If your subnet has the <code>AssignIpv6AddressOnCreation</code> attribute set, you can override that setting by specifying 0 as the IPv6 address count.</p>
428 pub fn get_ipv6_address_count(&self) -> &::std::option::Option<i32> {
429 self.inner.get_ipv6_address_count()
430 }
431 /// <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>
432 pub fn dry_run(mut self, input: bool) -> Self {
433 self.inner = self.inner.dry_run(input);
434 self
435 }
436 /// <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>
437 pub fn set_dry_run(mut self, input: ::std::option::Option<bool>) -> Self {
438 self.inner = self.inner.set_dry_run(input);
439 self
440 }
441 /// <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>
442 pub fn get_dry_run(&self) -> &::std::option::Option<bool> {
443 self.inner.get_dry_run()
444 }
445}