aws_sdk_directconnect/operation/update_virtual_interface_attributes/_update_virtual_interface_attributes_output.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>Information about a virtual interface.</p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct UpdateVirtualInterfaceAttributesOutput {
7 /// <p>The ID of the Amazon Web Services account that owns the virtual interface.</p>
8 pub owner_account: ::std::option::Option<::std::string::String>,
9 /// <p>The ID of the virtual interface.</p>
10 pub virtual_interface_id: ::std::option::Option<::std::string::String>,
11 /// <p>The location of the connection.</p>
12 pub location: ::std::option::Option<::std::string::String>,
13 /// <p>The ID of the connection.</p>
14 pub connection_id: ::std::option::Option<::std::string::String>,
15 /// <p>The type of virtual interface. The possible values are <code>private</code>, <code>public</code> and <code>transit</code>.</p>
16 pub virtual_interface_type: ::std::option::Option<::std::string::String>,
17 /// <p>The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).</p>
18 pub virtual_interface_name: ::std::option::Option<::std::string::String>,
19 /// <p>The ID of the VLAN.</p>
20 pub vlan: i32,
21 /// <p>The autonomous system number (ASN). The valid range is from 1 to 2147483646 for Border Gateway Protocol (BGP) configuration. If you provide a number greater than the maximum, an error is returned. Use <code>asnLong</code> instead.</p><note>
22 /// <p>You can use <code>asnLong</code> or <code>asn</code>, but not both. We recommend using <code>asnLong</code> as it supports a greater pool of numbers.</p>
23 /// <ul>
24 /// <li>
25 /// <p>The <code>asnLong</code> attribute accepts both ASN and long ASN ranges.</p></li>
26 /// <li>
27 /// <p>If you provide a value in the same API call for both <code>asn</code> and <code>asnLong</code>, the API will only accept the value for <code>asnLong</code>.</p></li>
28 /// </ul>
29 /// </note>
30 pub asn: i32,
31 /// <p>The long ASN for the virtual interface. The valid range is from 1 to 4294967294 for BGP configuration.</p><note>
32 /// <p>You can use <code>asnLong</code> or <code>asn</code>, but not both. We recommend using <code>asnLong</code> as it supports a greater pool of numbers.</p>
33 /// <ul>
34 /// <li>
35 /// <p>The <code>asnLong</code> attribute accepts both ASN and long ASN ranges.</p></li>
36 /// <li>
37 /// <p>If you provide a value in the same API call for both <code>asn</code> and <code>asnLong</code>, the API will only accept the value for <code>asnLong</code>.</p></li>
38 /// </ul>
39 /// </note>
40 pub asn_long: ::std::option::Option<i64>,
41 /// <p>The autonomous system number (AS) for the Amazon side of the connection.</p>
42 pub amazon_side_asn: ::std::option::Option<i64>,
43 /// <p>The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.</p>
44 pub auth_key: ::std::option::Option<::std::string::String>,
45 /// <p>The IP address assigned to the Amazon interface.</p>
46 pub amazon_address: ::std::option::Option<::std::string::String>,
47 /// <p>The IP address assigned to the customer interface.</p>
48 pub customer_address: ::std::option::Option<::std::string::String>,
49 /// <p>The address family for the BGP peer.</p>
50 pub address_family: ::std::option::Option<crate::types::AddressFamily>,
51 /// <p>The state of the virtual interface. The following are the possible values:</p>
52 /// <ul>
53 /// <li>
54 /// <p><code>confirming</code>: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner.</p></li>
55 /// <li>
56 /// <p><code>verifying</code>: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created.</p></li>
57 /// <li>
58 /// <p><code>pending</code>: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic.</p></li>
59 /// <li>
60 /// <p><code>available</code>: A virtual interface that is able to forward traffic.</p></li>
61 /// <li>
62 /// <p><code>down</code>: A virtual interface that is BGP down.</p></li>
63 /// <li>
64 /// <p><code>testing</code>: A virtual interface is in this state immediately after calling <code>StartBgpFailoverTest</code> and remains in this state during the duration of the test.</p></li>
65 /// <li>
66 /// <p><code>deleting</code>: A virtual interface is in this state immediately after calling <code>DeleteVirtualInterface</code> until it can no longer forward traffic.</p></li>
67 /// <li>
68 /// <p><code>deleted</code>: A virtual interface that cannot forward traffic.</p></li>
69 /// <li>
70 /// <p><code>rejected</code>: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the <code>Confirming</code> state is deleted by the virtual interface owner, the virtual interface enters the <code>Rejected</code> state.</p></li>
71 /// <li>
72 /// <p><code>unknown</code>: The state of the virtual interface is not available.</p></li>
73 /// </ul>
74 pub virtual_interface_state: ::std::option::Option<crate::types::VirtualInterfaceState>,
75 /// <p>The customer router configuration.</p>
76 pub customer_router_config: ::std::option::Option<::std::string::String>,
77 /// <p>The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 8500. The default value is 1500</p>
78 pub mtu: ::std::option::Option<i32>,
79 /// <p>Indicates whether jumbo frames are supported.</p>
80 pub jumbo_frame_capable: ::std::option::Option<bool>,
81 /// <p>The ID of the virtual private gateway. Applies only to private virtual interfaces.</p>
82 pub virtual_gateway_id: ::std::option::Option<::std::string::String>,
83 /// <p>The ID of the Direct Connect gateway.</p>
84 pub direct_connect_gateway_id: ::std::option::Option<::std::string::String>,
85 /// <p>The routes to be advertised to the Amazon Web Services network in this Region. Applies to public virtual interfaces.</p>
86 pub route_filter_prefixes: ::std::option::Option<::std::vec::Vec<crate::types::RouteFilterPrefix>>,
87 /// <p>The BGP peers configured on this virtual interface.</p>
88 pub bgp_peers: ::std::option::Option<::std::vec::Vec<crate::types::BgpPeer>>,
89 /// <p>The Amazon Web Services Region where the virtual interface is located.</p>
90 pub region: ::std::option::Option<::std::string::String>,
91 /// <p>The Direct Connect endpoint that terminates the physical connection.</p>
92 pub aws_device_v2: ::std::option::Option<::std::string::String>,
93 /// <p>The Direct Connect endpoint that terminates the logical connection. This device might be different than the device that terminates the physical connection.</p>
94 pub aws_logical_device_id: ::std::option::Option<::std::string::String>,
95 /// <p>The tags associated with the virtual interface.</p>
96 pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
97 /// <p>Indicates whether SiteLink is enabled.</p>
98 pub site_link_enabled: ::std::option::Option<bool>,
99 _request_id: Option<String>,
100}
101impl UpdateVirtualInterfaceAttributesOutput {
102 /// <p>The ID of the Amazon Web Services account that owns the virtual interface.</p>
103 pub fn owner_account(&self) -> ::std::option::Option<&str> {
104 self.owner_account.as_deref()
105 }
106 /// <p>The ID of the virtual interface.</p>
107 pub fn virtual_interface_id(&self) -> ::std::option::Option<&str> {
108 self.virtual_interface_id.as_deref()
109 }
110 /// <p>The location of the connection.</p>
111 pub fn location(&self) -> ::std::option::Option<&str> {
112 self.location.as_deref()
113 }
114 /// <p>The ID of the connection.</p>
115 pub fn connection_id(&self) -> ::std::option::Option<&str> {
116 self.connection_id.as_deref()
117 }
118 /// <p>The type of virtual interface. The possible values are <code>private</code>, <code>public</code> and <code>transit</code>.</p>
119 pub fn virtual_interface_type(&self) -> ::std::option::Option<&str> {
120 self.virtual_interface_type.as_deref()
121 }
122 /// <p>The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).</p>
123 pub fn virtual_interface_name(&self) -> ::std::option::Option<&str> {
124 self.virtual_interface_name.as_deref()
125 }
126 /// <p>The ID of the VLAN.</p>
127 pub fn vlan(&self) -> i32 {
128 self.vlan
129 }
130 /// <p>The autonomous system number (ASN). The valid range is from 1 to 2147483646 for Border Gateway Protocol (BGP) configuration. If you provide a number greater than the maximum, an error is returned. Use <code>asnLong</code> instead.</p><note>
131 /// <p>You can use <code>asnLong</code> or <code>asn</code>, but not both. We recommend using <code>asnLong</code> as it supports a greater pool of numbers.</p>
132 /// <ul>
133 /// <li>
134 /// <p>The <code>asnLong</code> attribute accepts both ASN and long ASN ranges.</p></li>
135 /// <li>
136 /// <p>If you provide a value in the same API call for both <code>asn</code> and <code>asnLong</code>, the API will only accept the value for <code>asnLong</code>.</p></li>
137 /// </ul>
138 /// </note>
139 pub fn asn(&self) -> i32 {
140 self.asn
141 }
142 /// <p>The long ASN for the virtual interface. The valid range is from 1 to 4294967294 for BGP configuration.</p><note>
143 /// <p>You can use <code>asnLong</code> or <code>asn</code>, but not both. We recommend using <code>asnLong</code> as it supports a greater pool of numbers.</p>
144 /// <ul>
145 /// <li>
146 /// <p>The <code>asnLong</code> attribute accepts both ASN and long ASN ranges.</p></li>
147 /// <li>
148 /// <p>If you provide a value in the same API call for both <code>asn</code> and <code>asnLong</code>, the API will only accept the value for <code>asnLong</code>.</p></li>
149 /// </ul>
150 /// </note>
151 pub fn asn_long(&self) -> ::std::option::Option<i64> {
152 self.asn_long
153 }
154 /// <p>The autonomous system number (AS) for the Amazon side of the connection.</p>
155 pub fn amazon_side_asn(&self) -> ::std::option::Option<i64> {
156 self.amazon_side_asn
157 }
158 /// <p>The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.</p>
159 pub fn auth_key(&self) -> ::std::option::Option<&str> {
160 self.auth_key.as_deref()
161 }
162 /// <p>The IP address assigned to the Amazon interface.</p>
163 pub fn amazon_address(&self) -> ::std::option::Option<&str> {
164 self.amazon_address.as_deref()
165 }
166 /// <p>The IP address assigned to the customer interface.</p>
167 pub fn customer_address(&self) -> ::std::option::Option<&str> {
168 self.customer_address.as_deref()
169 }
170 /// <p>The address family for the BGP peer.</p>
171 pub fn address_family(&self) -> ::std::option::Option<&crate::types::AddressFamily> {
172 self.address_family.as_ref()
173 }
174 /// <p>The state of the virtual interface. The following are the possible values:</p>
175 /// <ul>
176 /// <li>
177 /// <p><code>confirming</code>: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner.</p></li>
178 /// <li>
179 /// <p><code>verifying</code>: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created.</p></li>
180 /// <li>
181 /// <p><code>pending</code>: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic.</p></li>
182 /// <li>
183 /// <p><code>available</code>: A virtual interface that is able to forward traffic.</p></li>
184 /// <li>
185 /// <p><code>down</code>: A virtual interface that is BGP down.</p></li>
186 /// <li>
187 /// <p><code>testing</code>: A virtual interface is in this state immediately after calling <code>StartBgpFailoverTest</code> and remains in this state during the duration of the test.</p></li>
188 /// <li>
189 /// <p><code>deleting</code>: A virtual interface is in this state immediately after calling <code>DeleteVirtualInterface</code> until it can no longer forward traffic.</p></li>
190 /// <li>
191 /// <p><code>deleted</code>: A virtual interface that cannot forward traffic.</p></li>
192 /// <li>
193 /// <p><code>rejected</code>: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the <code>Confirming</code> state is deleted by the virtual interface owner, the virtual interface enters the <code>Rejected</code> state.</p></li>
194 /// <li>
195 /// <p><code>unknown</code>: The state of the virtual interface is not available.</p></li>
196 /// </ul>
197 pub fn virtual_interface_state(&self) -> ::std::option::Option<&crate::types::VirtualInterfaceState> {
198 self.virtual_interface_state.as_ref()
199 }
200 /// <p>The customer router configuration.</p>
201 pub fn customer_router_config(&self) -> ::std::option::Option<&str> {
202 self.customer_router_config.as_deref()
203 }
204 /// <p>The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 8500. The default value is 1500</p>
205 pub fn mtu(&self) -> ::std::option::Option<i32> {
206 self.mtu
207 }
208 /// <p>Indicates whether jumbo frames are supported.</p>
209 pub fn jumbo_frame_capable(&self) -> ::std::option::Option<bool> {
210 self.jumbo_frame_capable
211 }
212 /// <p>The ID of the virtual private gateway. Applies only to private virtual interfaces.</p>
213 pub fn virtual_gateway_id(&self) -> ::std::option::Option<&str> {
214 self.virtual_gateway_id.as_deref()
215 }
216 /// <p>The ID of the Direct Connect gateway.</p>
217 pub fn direct_connect_gateway_id(&self) -> ::std::option::Option<&str> {
218 self.direct_connect_gateway_id.as_deref()
219 }
220 /// <p>The routes to be advertised to the Amazon Web Services network in this Region. Applies to public virtual interfaces.</p>
221 ///
222 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.route_filter_prefixes.is_none()`.
223 pub fn route_filter_prefixes(&self) -> &[crate::types::RouteFilterPrefix] {
224 self.route_filter_prefixes.as_deref().unwrap_or_default()
225 }
226 /// <p>The BGP peers configured on this virtual interface.</p>
227 ///
228 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.bgp_peers.is_none()`.
229 pub fn bgp_peers(&self) -> &[crate::types::BgpPeer] {
230 self.bgp_peers.as_deref().unwrap_or_default()
231 }
232 /// <p>The Amazon Web Services Region where the virtual interface is located.</p>
233 pub fn region(&self) -> ::std::option::Option<&str> {
234 self.region.as_deref()
235 }
236 /// <p>The Direct Connect endpoint that terminates the physical connection.</p>
237 pub fn aws_device_v2(&self) -> ::std::option::Option<&str> {
238 self.aws_device_v2.as_deref()
239 }
240 /// <p>The Direct Connect endpoint that terminates the logical connection. This device might be different than the device that terminates the physical connection.</p>
241 pub fn aws_logical_device_id(&self) -> ::std::option::Option<&str> {
242 self.aws_logical_device_id.as_deref()
243 }
244 /// <p>The tags associated with the virtual interface.</p>
245 ///
246 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
247 pub fn tags(&self) -> &[crate::types::Tag] {
248 self.tags.as_deref().unwrap_or_default()
249 }
250 /// <p>Indicates whether SiteLink is enabled.</p>
251 pub fn site_link_enabled(&self) -> ::std::option::Option<bool> {
252 self.site_link_enabled
253 }
254}
255impl ::aws_types::request_id::RequestId for UpdateVirtualInterfaceAttributesOutput {
256 fn request_id(&self) -> Option<&str> {
257 self._request_id.as_deref()
258 }
259}
260impl UpdateVirtualInterfaceAttributesOutput {
261 /// Creates a new builder-style object to manufacture [`UpdateVirtualInterfaceAttributesOutput`](crate::operation::update_virtual_interface_attributes::UpdateVirtualInterfaceAttributesOutput).
262 pub fn builder() -> crate::operation::update_virtual_interface_attributes::builders::UpdateVirtualInterfaceAttributesOutputBuilder {
263 crate::operation::update_virtual_interface_attributes::builders::UpdateVirtualInterfaceAttributesOutputBuilder::default()
264 }
265}
266
267/// A builder for [`UpdateVirtualInterfaceAttributesOutput`](crate::operation::update_virtual_interface_attributes::UpdateVirtualInterfaceAttributesOutput).
268#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
269#[non_exhaustive]
270pub struct UpdateVirtualInterfaceAttributesOutputBuilder {
271 pub(crate) owner_account: ::std::option::Option<::std::string::String>,
272 pub(crate) virtual_interface_id: ::std::option::Option<::std::string::String>,
273 pub(crate) location: ::std::option::Option<::std::string::String>,
274 pub(crate) connection_id: ::std::option::Option<::std::string::String>,
275 pub(crate) virtual_interface_type: ::std::option::Option<::std::string::String>,
276 pub(crate) virtual_interface_name: ::std::option::Option<::std::string::String>,
277 pub(crate) vlan: ::std::option::Option<i32>,
278 pub(crate) asn: ::std::option::Option<i32>,
279 pub(crate) asn_long: ::std::option::Option<i64>,
280 pub(crate) amazon_side_asn: ::std::option::Option<i64>,
281 pub(crate) auth_key: ::std::option::Option<::std::string::String>,
282 pub(crate) amazon_address: ::std::option::Option<::std::string::String>,
283 pub(crate) customer_address: ::std::option::Option<::std::string::String>,
284 pub(crate) address_family: ::std::option::Option<crate::types::AddressFamily>,
285 pub(crate) virtual_interface_state: ::std::option::Option<crate::types::VirtualInterfaceState>,
286 pub(crate) customer_router_config: ::std::option::Option<::std::string::String>,
287 pub(crate) mtu: ::std::option::Option<i32>,
288 pub(crate) jumbo_frame_capable: ::std::option::Option<bool>,
289 pub(crate) virtual_gateway_id: ::std::option::Option<::std::string::String>,
290 pub(crate) direct_connect_gateway_id: ::std::option::Option<::std::string::String>,
291 pub(crate) route_filter_prefixes: ::std::option::Option<::std::vec::Vec<crate::types::RouteFilterPrefix>>,
292 pub(crate) bgp_peers: ::std::option::Option<::std::vec::Vec<crate::types::BgpPeer>>,
293 pub(crate) region: ::std::option::Option<::std::string::String>,
294 pub(crate) aws_device_v2: ::std::option::Option<::std::string::String>,
295 pub(crate) aws_logical_device_id: ::std::option::Option<::std::string::String>,
296 pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
297 pub(crate) site_link_enabled: ::std::option::Option<bool>,
298 _request_id: Option<String>,
299}
300impl UpdateVirtualInterfaceAttributesOutputBuilder {
301 /// <p>The ID of the Amazon Web Services account that owns the virtual interface.</p>
302 pub fn owner_account(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
303 self.owner_account = ::std::option::Option::Some(input.into());
304 self
305 }
306 /// <p>The ID of the Amazon Web Services account that owns the virtual interface.</p>
307 pub fn set_owner_account(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
308 self.owner_account = input;
309 self
310 }
311 /// <p>The ID of the Amazon Web Services account that owns the virtual interface.</p>
312 pub fn get_owner_account(&self) -> &::std::option::Option<::std::string::String> {
313 &self.owner_account
314 }
315 /// <p>The ID of the virtual interface.</p>
316 pub fn virtual_interface_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
317 self.virtual_interface_id = ::std::option::Option::Some(input.into());
318 self
319 }
320 /// <p>The ID of the virtual interface.</p>
321 pub fn set_virtual_interface_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
322 self.virtual_interface_id = input;
323 self
324 }
325 /// <p>The ID of the virtual interface.</p>
326 pub fn get_virtual_interface_id(&self) -> &::std::option::Option<::std::string::String> {
327 &self.virtual_interface_id
328 }
329 /// <p>The location of the connection.</p>
330 pub fn location(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
331 self.location = ::std::option::Option::Some(input.into());
332 self
333 }
334 /// <p>The location of the connection.</p>
335 pub fn set_location(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
336 self.location = input;
337 self
338 }
339 /// <p>The location of the connection.</p>
340 pub fn get_location(&self) -> &::std::option::Option<::std::string::String> {
341 &self.location
342 }
343 /// <p>The ID of the connection.</p>
344 pub fn connection_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
345 self.connection_id = ::std::option::Option::Some(input.into());
346 self
347 }
348 /// <p>The ID of the connection.</p>
349 pub fn set_connection_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
350 self.connection_id = input;
351 self
352 }
353 /// <p>The ID of the connection.</p>
354 pub fn get_connection_id(&self) -> &::std::option::Option<::std::string::String> {
355 &self.connection_id
356 }
357 /// <p>The type of virtual interface. The possible values are <code>private</code>, <code>public</code> and <code>transit</code>.</p>
358 pub fn virtual_interface_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
359 self.virtual_interface_type = ::std::option::Option::Some(input.into());
360 self
361 }
362 /// <p>The type of virtual interface. The possible values are <code>private</code>, <code>public</code> and <code>transit</code>.</p>
363 pub fn set_virtual_interface_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
364 self.virtual_interface_type = input;
365 self
366 }
367 /// <p>The type of virtual interface. The possible values are <code>private</code>, <code>public</code> and <code>transit</code>.</p>
368 pub fn get_virtual_interface_type(&self) -> &::std::option::Option<::std::string::String> {
369 &self.virtual_interface_type
370 }
371 /// <p>The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).</p>
372 pub fn virtual_interface_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
373 self.virtual_interface_name = ::std::option::Option::Some(input.into());
374 self
375 }
376 /// <p>The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).</p>
377 pub fn set_virtual_interface_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
378 self.virtual_interface_name = input;
379 self
380 }
381 /// <p>The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).</p>
382 pub fn get_virtual_interface_name(&self) -> &::std::option::Option<::std::string::String> {
383 &self.virtual_interface_name
384 }
385 /// <p>The ID of the VLAN.</p>
386 pub fn vlan(mut self, input: i32) -> Self {
387 self.vlan = ::std::option::Option::Some(input);
388 self
389 }
390 /// <p>The ID of the VLAN.</p>
391 pub fn set_vlan(mut self, input: ::std::option::Option<i32>) -> Self {
392 self.vlan = input;
393 self
394 }
395 /// <p>The ID of the VLAN.</p>
396 pub fn get_vlan(&self) -> &::std::option::Option<i32> {
397 &self.vlan
398 }
399 /// <p>The autonomous system number (ASN). The valid range is from 1 to 2147483646 for Border Gateway Protocol (BGP) configuration. If you provide a number greater than the maximum, an error is returned. Use <code>asnLong</code> instead.</p><note>
400 /// <p>You can use <code>asnLong</code> or <code>asn</code>, but not both. We recommend using <code>asnLong</code> as it supports a greater pool of numbers.</p>
401 /// <ul>
402 /// <li>
403 /// <p>The <code>asnLong</code> attribute accepts both ASN and long ASN ranges.</p></li>
404 /// <li>
405 /// <p>If you provide a value in the same API call for both <code>asn</code> and <code>asnLong</code>, the API will only accept the value for <code>asnLong</code>.</p></li>
406 /// </ul>
407 /// </note>
408 pub fn asn(mut self, input: i32) -> Self {
409 self.asn = ::std::option::Option::Some(input);
410 self
411 }
412 /// <p>The autonomous system number (ASN). The valid range is from 1 to 2147483646 for Border Gateway Protocol (BGP) configuration. If you provide a number greater than the maximum, an error is returned. Use <code>asnLong</code> instead.</p><note>
413 /// <p>You can use <code>asnLong</code> or <code>asn</code>, but not both. We recommend using <code>asnLong</code> as it supports a greater pool of numbers.</p>
414 /// <ul>
415 /// <li>
416 /// <p>The <code>asnLong</code> attribute accepts both ASN and long ASN ranges.</p></li>
417 /// <li>
418 /// <p>If you provide a value in the same API call for both <code>asn</code> and <code>asnLong</code>, the API will only accept the value for <code>asnLong</code>.</p></li>
419 /// </ul>
420 /// </note>
421 pub fn set_asn(mut self, input: ::std::option::Option<i32>) -> Self {
422 self.asn = input;
423 self
424 }
425 /// <p>The autonomous system number (ASN). The valid range is from 1 to 2147483646 for Border Gateway Protocol (BGP) configuration. If you provide a number greater than the maximum, an error is returned. Use <code>asnLong</code> instead.</p><note>
426 /// <p>You can use <code>asnLong</code> or <code>asn</code>, but not both. We recommend using <code>asnLong</code> as it supports a greater pool of numbers.</p>
427 /// <ul>
428 /// <li>
429 /// <p>The <code>asnLong</code> attribute accepts both ASN and long ASN ranges.</p></li>
430 /// <li>
431 /// <p>If you provide a value in the same API call for both <code>asn</code> and <code>asnLong</code>, the API will only accept the value for <code>asnLong</code>.</p></li>
432 /// </ul>
433 /// </note>
434 pub fn get_asn(&self) -> &::std::option::Option<i32> {
435 &self.asn
436 }
437 /// <p>The long ASN for the virtual interface. The valid range is from 1 to 4294967294 for BGP configuration.</p><note>
438 /// <p>You can use <code>asnLong</code> or <code>asn</code>, but not both. We recommend using <code>asnLong</code> as it supports a greater pool of numbers.</p>
439 /// <ul>
440 /// <li>
441 /// <p>The <code>asnLong</code> attribute accepts both ASN and long ASN ranges.</p></li>
442 /// <li>
443 /// <p>If you provide a value in the same API call for both <code>asn</code> and <code>asnLong</code>, the API will only accept the value for <code>asnLong</code>.</p></li>
444 /// </ul>
445 /// </note>
446 pub fn asn_long(mut self, input: i64) -> Self {
447 self.asn_long = ::std::option::Option::Some(input);
448 self
449 }
450 /// <p>The long ASN for the virtual interface. The valid range is from 1 to 4294967294 for BGP configuration.</p><note>
451 /// <p>You can use <code>asnLong</code> or <code>asn</code>, but not both. We recommend using <code>asnLong</code> as it supports a greater pool of numbers.</p>
452 /// <ul>
453 /// <li>
454 /// <p>The <code>asnLong</code> attribute accepts both ASN and long ASN ranges.</p></li>
455 /// <li>
456 /// <p>If you provide a value in the same API call for both <code>asn</code> and <code>asnLong</code>, the API will only accept the value for <code>asnLong</code>.</p></li>
457 /// </ul>
458 /// </note>
459 pub fn set_asn_long(mut self, input: ::std::option::Option<i64>) -> Self {
460 self.asn_long = input;
461 self
462 }
463 /// <p>The long ASN for the virtual interface. The valid range is from 1 to 4294967294 for BGP configuration.</p><note>
464 /// <p>You can use <code>asnLong</code> or <code>asn</code>, but not both. We recommend using <code>asnLong</code> as it supports a greater pool of numbers.</p>
465 /// <ul>
466 /// <li>
467 /// <p>The <code>asnLong</code> attribute accepts both ASN and long ASN ranges.</p></li>
468 /// <li>
469 /// <p>If you provide a value in the same API call for both <code>asn</code> and <code>asnLong</code>, the API will only accept the value for <code>asnLong</code>.</p></li>
470 /// </ul>
471 /// </note>
472 pub fn get_asn_long(&self) -> &::std::option::Option<i64> {
473 &self.asn_long
474 }
475 /// <p>The autonomous system number (AS) for the Amazon side of the connection.</p>
476 pub fn amazon_side_asn(mut self, input: i64) -> Self {
477 self.amazon_side_asn = ::std::option::Option::Some(input);
478 self
479 }
480 /// <p>The autonomous system number (AS) for the Amazon side of the connection.</p>
481 pub fn set_amazon_side_asn(mut self, input: ::std::option::Option<i64>) -> Self {
482 self.amazon_side_asn = input;
483 self
484 }
485 /// <p>The autonomous system number (AS) for the Amazon side of the connection.</p>
486 pub fn get_amazon_side_asn(&self) -> &::std::option::Option<i64> {
487 &self.amazon_side_asn
488 }
489 /// <p>The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.</p>
490 pub fn auth_key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
491 self.auth_key = ::std::option::Option::Some(input.into());
492 self
493 }
494 /// <p>The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.</p>
495 pub fn set_auth_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
496 self.auth_key = input;
497 self
498 }
499 /// <p>The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.</p>
500 pub fn get_auth_key(&self) -> &::std::option::Option<::std::string::String> {
501 &self.auth_key
502 }
503 /// <p>The IP address assigned to the Amazon interface.</p>
504 pub fn amazon_address(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
505 self.amazon_address = ::std::option::Option::Some(input.into());
506 self
507 }
508 /// <p>The IP address assigned to the Amazon interface.</p>
509 pub fn set_amazon_address(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
510 self.amazon_address = input;
511 self
512 }
513 /// <p>The IP address assigned to the Amazon interface.</p>
514 pub fn get_amazon_address(&self) -> &::std::option::Option<::std::string::String> {
515 &self.amazon_address
516 }
517 /// <p>The IP address assigned to the customer interface.</p>
518 pub fn customer_address(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
519 self.customer_address = ::std::option::Option::Some(input.into());
520 self
521 }
522 /// <p>The IP address assigned to the customer interface.</p>
523 pub fn set_customer_address(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
524 self.customer_address = input;
525 self
526 }
527 /// <p>The IP address assigned to the customer interface.</p>
528 pub fn get_customer_address(&self) -> &::std::option::Option<::std::string::String> {
529 &self.customer_address
530 }
531 /// <p>The address family for the BGP peer.</p>
532 pub fn address_family(mut self, input: crate::types::AddressFamily) -> Self {
533 self.address_family = ::std::option::Option::Some(input);
534 self
535 }
536 /// <p>The address family for the BGP peer.</p>
537 pub fn set_address_family(mut self, input: ::std::option::Option<crate::types::AddressFamily>) -> Self {
538 self.address_family = input;
539 self
540 }
541 /// <p>The address family for the BGP peer.</p>
542 pub fn get_address_family(&self) -> &::std::option::Option<crate::types::AddressFamily> {
543 &self.address_family
544 }
545 /// <p>The state of the virtual interface. The following are the possible values:</p>
546 /// <ul>
547 /// <li>
548 /// <p><code>confirming</code>: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner.</p></li>
549 /// <li>
550 /// <p><code>verifying</code>: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created.</p></li>
551 /// <li>
552 /// <p><code>pending</code>: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic.</p></li>
553 /// <li>
554 /// <p><code>available</code>: A virtual interface that is able to forward traffic.</p></li>
555 /// <li>
556 /// <p><code>down</code>: A virtual interface that is BGP down.</p></li>
557 /// <li>
558 /// <p><code>testing</code>: A virtual interface is in this state immediately after calling <code>StartBgpFailoverTest</code> and remains in this state during the duration of the test.</p></li>
559 /// <li>
560 /// <p><code>deleting</code>: A virtual interface is in this state immediately after calling <code>DeleteVirtualInterface</code> until it can no longer forward traffic.</p></li>
561 /// <li>
562 /// <p><code>deleted</code>: A virtual interface that cannot forward traffic.</p></li>
563 /// <li>
564 /// <p><code>rejected</code>: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the <code>Confirming</code> state is deleted by the virtual interface owner, the virtual interface enters the <code>Rejected</code> state.</p></li>
565 /// <li>
566 /// <p><code>unknown</code>: The state of the virtual interface is not available.</p></li>
567 /// </ul>
568 pub fn virtual_interface_state(mut self, input: crate::types::VirtualInterfaceState) -> Self {
569 self.virtual_interface_state = ::std::option::Option::Some(input);
570 self
571 }
572 /// <p>The state of the virtual interface. The following are the possible values:</p>
573 /// <ul>
574 /// <li>
575 /// <p><code>confirming</code>: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner.</p></li>
576 /// <li>
577 /// <p><code>verifying</code>: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created.</p></li>
578 /// <li>
579 /// <p><code>pending</code>: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic.</p></li>
580 /// <li>
581 /// <p><code>available</code>: A virtual interface that is able to forward traffic.</p></li>
582 /// <li>
583 /// <p><code>down</code>: A virtual interface that is BGP down.</p></li>
584 /// <li>
585 /// <p><code>testing</code>: A virtual interface is in this state immediately after calling <code>StartBgpFailoverTest</code> and remains in this state during the duration of the test.</p></li>
586 /// <li>
587 /// <p><code>deleting</code>: A virtual interface is in this state immediately after calling <code>DeleteVirtualInterface</code> until it can no longer forward traffic.</p></li>
588 /// <li>
589 /// <p><code>deleted</code>: A virtual interface that cannot forward traffic.</p></li>
590 /// <li>
591 /// <p><code>rejected</code>: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the <code>Confirming</code> state is deleted by the virtual interface owner, the virtual interface enters the <code>Rejected</code> state.</p></li>
592 /// <li>
593 /// <p><code>unknown</code>: The state of the virtual interface is not available.</p></li>
594 /// </ul>
595 pub fn set_virtual_interface_state(mut self, input: ::std::option::Option<crate::types::VirtualInterfaceState>) -> Self {
596 self.virtual_interface_state = input;
597 self
598 }
599 /// <p>The state of the virtual interface. The following are the possible values:</p>
600 /// <ul>
601 /// <li>
602 /// <p><code>confirming</code>: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner.</p></li>
603 /// <li>
604 /// <p><code>verifying</code>: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created.</p></li>
605 /// <li>
606 /// <p><code>pending</code>: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic.</p></li>
607 /// <li>
608 /// <p><code>available</code>: A virtual interface that is able to forward traffic.</p></li>
609 /// <li>
610 /// <p><code>down</code>: A virtual interface that is BGP down.</p></li>
611 /// <li>
612 /// <p><code>testing</code>: A virtual interface is in this state immediately after calling <code>StartBgpFailoverTest</code> and remains in this state during the duration of the test.</p></li>
613 /// <li>
614 /// <p><code>deleting</code>: A virtual interface is in this state immediately after calling <code>DeleteVirtualInterface</code> until it can no longer forward traffic.</p></li>
615 /// <li>
616 /// <p><code>deleted</code>: A virtual interface that cannot forward traffic.</p></li>
617 /// <li>
618 /// <p><code>rejected</code>: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the <code>Confirming</code> state is deleted by the virtual interface owner, the virtual interface enters the <code>Rejected</code> state.</p></li>
619 /// <li>
620 /// <p><code>unknown</code>: The state of the virtual interface is not available.</p></li>
621 /// </ul>
622 pub fn get_virtual_interface_state(&self) -> &::std::option::Option<crate::types::VirtualInterfaceState> {
623 &self.virtual_interface_state
624 }
625 /// <p>The customer router configuration.</p>
626 pub fn customer_router_config(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
627 self.customer_router_config = ::std::option::Option::Some(input.into());
628 self
629 }
630 /// <p>The customer router configuration.</p>
631 pub fn set_customer_router_config(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
632 self.customer_router_config = input;
633 self
634 }
635 /// <p>The customer router configuration.</p>
636 pub fn get_customer_router_config(&self) -> &::std::option::Option<::std::string::String> {
637 &self.customer_router_config
638 }
639 /// <p>The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 8500. The default value is 1500</p>
640 pub fn mtu(mut self, input: i32) -> Self {
641 self.mtu = ::std::option::Option::Some(input);
642 self
643 }
644 /// <p>The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 8500. The default value is 1500</p>
645 pub fn set_mtu(mut self, input: ::std::option::Option<i32>) -> Self {
646 self.mtu = input;
647 self
648 }
649 /// <p>The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 8500. The default value is 1500</p>
650 pub fn get_mtu(&self) -> &::std::option::Option<i32> {
651 &self.mtu
652 }
653 /// <p>Indicates whether jumbo frames are supported.</p>
654 pub fn jumbo_frame_capable(mut self, input: bool) -> Self {
655 self.jumbo_frame_capable = ::std::option::Option::Some(input);
656 self
657 }
658 /// <p>Indicates whether jumbo frames are supported.</p>
659 pub fn set_jumbo_frame_capable(mut self, input: ::std::option::Option<bool>) -> Self {
660 self.jumbo_frame_capable = input;
661 self
662 }
663 /// <p>Indicates whether jumbo frames are supported.</p>
664 pub fn get_jumbo_frame_capable(&self) -> &::std::option::Option<bool> {
665 &self.jumbo_frame_capable
666 }
667 /// <p>The ID of the virtual private gateway. Applies only to private virtual interfaces.</p>
668 pub fn virtual_gateway_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
669 self.virtual_gateway_id = ::std::option::Option::Some(input.into());
670 self
671 }
672 /// <p>The ID of the virtual private gateway. Applies only to private virtual interfaces.</p>
673 pub fn set_virtual_gateway_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
674 self.virtual_gateway_id = input;
675 self
676 }
677 /// <p>The ID of the virtual private gateway. Applies only to private virtual interfaces.</p>
678 pub fn get_virtual_gateway_id(&self) -> &::std::option::Option<::std::string::String> {
679 &self.virtual_gateway_id
680 }
681 /// <p>The ID of the Direct Connect gateway.</p>
682 pub fn direct_connect_gateway_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
683 self.direct_connect_gateway_id = ::std::option::Option::Some(input.into());
684 self
685 }
686 /// <p>The ID of the Direct Connect gateway.</p>
687 pub fn set_direct_connect_gateway_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
688 self.direct_connect_gateway_id = input;
689 self
690 }
691 /// <p>The ID of the Direct Connect gateway.</p>
692 pub fn get_direct_connect_gateway_id(&self) -> &::std::option::Option<::std::string::String> {
693 &self.direct_connect_gateway_id
694 }
695 /// Appends an item to `route_filter_prefixes`.
696 ///
697 /// To override the contents of this collection use [`set_route_filter_prefixes`](Self::set_route_filter_prefixes).
698 ///
699 /// <p>The routes to be advertised to the Amazon Web Services network in this Region. Applies to public virtual interfaces.</p>
700 pub fn route_filter_prefixes(mut self, input: crate::types::RouteFilterPrefix) -> Self {
701 let mut v = self.route_filter_prefixes.unwrap_or_default();
702 v.push(input);
703 self.route_filter_prefixes = ::std::option::Option::Some(v);
704 self
705 }
706 /// <p>The routes to be advertised to the Amazon Web Services network in this Region. Applies to public virtual interfaces.</p>
707 pub fn set_route_filter_prefixes(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::RouteFilterPrefix>>) -> Self {
708 self.route_filter_prefixes = input;
709 self
710 }
711 /// <p>The routes to be advertised to the Amazon Web Services network in this Region. Applies to public virtual interfaces.</p>
712 pub fn get_route_filter_prefixes(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::RouteFilterPrefix>> {
713 &self.route_filter_prefixes
714 }
715 /// Appends an item to `bgp_peers`.
716 ///
717 /// To override the contents of this collection use [`set_bgp_peers`](Self::set_bgp_peers).
718 ///
719 /// <p>The BGP peers configured on this virtual interface.</p>
720 pub fn bgp_peers(mut self, input: crate::types::BgpPeer) -> Self {
721 let mut v = self.bgp_peers.unwrap_or_default();
722 v.push(input);
723 self.bgp_peers = ::std::option::Option::Some(v);
724 self
725 }
726 /// <p>The BGP peers configured on this virtual interface.</p>
727 pub fn set_bgp_peers(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::BgpPeer>>) -> Self {
728 self.bgp_peers = input;
729 self
730 }
731 /// <p>The BGP peers configured on this virtual interface.</p>
732 pub fn get_bgp_peers(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::BgpPeer>> {
733 &self.bgp_peers
734 }
735 /// <p>The Amazon Web Services Region where the virtual interface is located.</p>
736 pub fn region(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
737 self.region = ::std::option::Option::Some(input.into());
738 self
739 }
740 /// <p>The Amazon Web Services Region where the virtual interface is located.</p>
741 pub fn set_region(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
742 self.region = input;
743 self
744 }
745 /// <p>The Amazon Web Services Region where the virtual interface is located.</p>
746 pub fn get_region(&self) -> &::std::option::Option<::std::string::String> {
747 &self.region
748 }
749 /// <p>The Direct Connect endpoint that terminates the physical connection.</p>
750 pub fn aws_device_v2(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
751 self.aws_device_v2 = ::std::option::Option::Some(input.into());
752 self
753 }
754 /// <p>The Direct Connect endpoint that terminates the physical connection.</p>
755 pub fn set_aws_device_v2(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
756 self.aws_device_v2 = input;
757 self
758 }
759 /// <p>The Direct Connect endpoint that terminates the physical connection.</p>
760 pub fn get_aws_device_v2(&self) -> &::std::option::Option<::std::string::String> {
761 &self.aws_device_v2
762 }
763 /// <p>The Direct Connect endpoint that terminates the logical connection. This device might be different than the device that terminates the physical connection.</p>
764 pub fn aws_logical_device_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
765 self.aws_logical_device_id = ::std::option::Option::Some(input.into());
766 self
767 }
768 /// <p>The Direct Connect endpoint that terminates the logical connection. This device might be different than the device that terminates the physical connection.</p>
769 pub fn set_aws_logical_device_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
770 self.aws_logical_device_id = input;
771 self
772 }
773 /// <p>The Direct Connect endpoint that terminates the logical connection. This device might be different than the device that terminates the physical connection.</p>
774 pub fn get_aws_logical_device_id(&self) -> &::std::option::Option<::std::string::String> {
775 &self.aws_logical_device_id
776 }
777 /// Appends an item to `tags`.
778 ///
779 /// To override the contents of this collection use [`set_tags`](Self::set_tags).
780 ///
781 /// <p>The tags associated with the virtual interface.</p>
782 pub fn tags(mut self, input: crate::types::Tag) -> Self {
783 let mut v = self.tags.unwrap_or_default();
784 v.push(input);
785 self.tags = ::std::option::Option::Some(v);
786 self
787 }
788 /// <p>The tags associated with the virtual interface.</p>
789 pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
790 self.tags = input;
791 self
792 }
793 /// <p>The tags associated with the virtual interface.</p>
794 pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
795 &self.tags
796 }
797 /// <p>Indicates whether SiteLink is enabled.</p>
798 pub fn site_link_enabled(mut self, input: bool) -> Self {
799 self.site_link_enabled = ::std::option::Option::Some(input);
800 self
801 }
802 /// <p>Indicates whether SiteLink is enabled.</p>
803 pub fn set_site_link_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
804 self.site_link_enabled = input;
805 self
806 }
807 /// <p>Indicates whether SiteLink is enabled.</p>
808 pub fn get_site_link_enabled(&self) -> &::std::option::Option<bool> {
809 &self.site_link_enabled
810 }
811 pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
812 self._request_id = Some(request_id.into());
813 self
814 }
815
816 pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
817 self._request_id = request_id;
818 self
819 }
820 /// Consumes the builder and constructs a [`UpdateVirtualInterfaceAttributesOutput`](crate::operation::update_virtual_interface_attributes::UpdateVirtualInterfaceAttributesOutput).
821 pub fn build(self) -> crate::operation::update_virtual_interface_attributes::UpdateVirtualInterfaceAttributesOutput {
822 crate::operation::update_virtual_interface_attributes::UpdateVirtualInterfaceAttributesOutput {
823 owner_account: self.owner_account,
824 virtual_interface_id: self.virtual_interface_id,
825 location: self.location,
826 connection_id: self.connection_id,
827 virtual_interface_type: self.virtual_interface_type,
828 virtual_interface_name: self.virtual_interface_name,
829 vlan: self.vlan.unwrap_or_default(),
830 asn: self.asn.unwrap_or_default(),
831 asn_long: self.asn_long,
832 amazon_side_asn: self.amazon_side_asn,
833 auth_key: self.auth_key,
834 amazon_address: self.amazon_address,
835 customer_address: self.customer_address,
836 address_family: self.address_family,
837 virtual_interface_state: self.virtual_interface_state,
838 customer_router_config: self.customer_router_config,
839 mtu: self.mtu,
840 jumbo_frame_capable: self.jumbo_frame_capable,
841 virtual_gateway_id: self.virtual_gateway_id,
842 direct_connect_gateway_id: self.direct_connect_gateway_id,
843 route_filter_prefixes: self.route_filter_prefixes,
844 bgp_peers: self.bgp_peers,
845 region: self.region,
846 aws_device_v2: self.aws_device_v2,
847 aws_logical_device_id: self.aws_logical_device_id,
848 tags: self.tags,
849 site_link_enabled: self.site_link_enabled,
850 _request_id: self._request_id,
851 }
852 }
853}