aws_sdk_ec2/protocol_serde/
shape_instance_network_interface_specification.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(unused_mut)]
3pub fn ser_instance_network_interface_specification(
4    mut writer: ::aws_smithy_query::QueryValueWriter,
5    input: &crate::types::InstanceNetworkInterfaceSpecification,
6) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
7    #[allow(unused_mut)]
8    let mut scope_1 = writer.prefix("AssociatePublicIpAddress");
9    if let Some(var_2) = &input.associate_public_ip_address {
10        scope_1.boolean(*var_2);
11    }
12    #[allow(unused_mut)]
13    let mut scope_3 = writer.prefix("DeleteOnTermination");
14    if let Some(var_4) = &input.delete_on_termination {
15        scope_3.boolean(*var_4);
16    }
17    #[allow(unused_mut)]
18    let mut scope_5 = writer.prefix("Description");
19    if let Some(var_6) = &input.description {
20        scope_5.string(var_6);
21    }
22    #[allow(unused_mut)]
23    let mut scope_7 = writer.prefix("DeviceIndex");
24    if let Some(var_8) = &input.device_index {
25        scope_7.number(
26            #[allow(clippy::useless_conversion)]
27            ::aws_smithy_types::Number::NegInt((*var_8).into()),
28        );
29    }
30    #[allow(unused_mut)]
31    let mut scope_9 = writer.prefix("SecurityGroupId");
32    if let Some(var_10) = &input.groups {
33        if !var_10.is_empty() {
34            let mut list_12 = scope_9.start_list(true, Some("SecurityGroupId"));
35            for item_11 in var_10 {
36                #[allow(unused_mut)]
37                let mut entry_13 = list_12.entry();
38                entry_13.string(item_11);
39            }
40            list_12.finish();
41        }
42    }
43    #[allow(unused_mut)]
44    let mut scope_14 = writer.prefix("Ipv6AddressCount");
45    if let Some(var_15) = &input.ipv6_address_count {
46        scope_14.number(
47            #[allow(clippy::useless_conversion)]
48            ::aws_smithy_types::Number::NegInt((*var_15).into()),
49        );
50    }
51    #[allow(unused_mut)]
52    let mut scope_16 = writer.prefix("Ipv6Addresses");
53    if let Some(var_17) = &input.ipv6_addresses {
54        if !var_17.is_empty() {
55            let mut list_19 = scope_16.start_list(true, Some("item"));
56            for item_18 in var_17 {
57                #[allow(unused_mut)]
58                let mut entry_20 = list_19.entry();
59                crate::protocol_serde::shape_instance_ipv6_address::ser_instance_ipv6_address(entry_20, item_18)?;
60            }
61            list_19.finish();
62        }
63    }
64    #[allow(unused_mut)]
65    let mut scope_21 = writer.prefix("NetworkInterfaceId");
66    if let Some(var_22) = &input.network_interface_id {
67        scope_21.string(var_22);
68    }
69    #[allow(unused_mut)]
70    let mut scope_23 = writer.prefix("PrivateIpAddress");
71    if let Some(var_24) = &input.private_ip_address {
72        scope_23.string(var_24);
73    }
74    #[allow(unused_mut)]
75    let mut scope_25 = writer.prefix("PrivateIpAddresses");
76    if let Some(var_26) = &input.private_ip_addresses {
77        if !var_26.is_empty() {
78            let mut list_28 = scope_25.start_list(true, Some("item"));
79            for item_27 in var_26 {
80                #[allow(unused_mut)]
81                let mut entry_29 = list_28.entry();
82                crate::protocol_serde::shape_private_ip_address_specification::ser_private_ip_address_specification(entry_29, item_27)?;
83            }
84            list_28.finish();
85        }
86    }
87    #[allow(unused_mut)]
88    let mut scope_30 = writer.prefix("SecondaryPrivateIpAddressCount");
89    if let Some(var_31) = &input.secondary_private_ip_address_count {
90        scope_30.number(
91            #[allow(clippy::useless_conversion)]
92            ::aws_smithy_types::Number::NegInt((*var_31).into()),
93        );
94    }
95    #[allow(unused_mut)]
96    let mut scope_32 = writer.prefix("SubnetId");
97    if let Some(var_33) = &input.subnet_id {
98        scope_32.string(var_33);
99    }
100    #[allow(unused_mut)]
101    let mut scope_34 = writer.prefix("AssociateCarrierIpAddress");
102    if let Some(var_35) = &input.associate_carrier_ip_address {
103        scope_34.boolean(*var_35);
104    }
105    #[allow(unused_mut)]
106    let mut scope_36 = writer.prefix("InterfaceType");
107    if let Some(var_37) = &input.interface_type {
108        scope_36.string(var_37);
109    }
110    #[allow(unused_mut)]
111    let mut scope_38 = writer.prefix("NetworkCardIndex");
112    if let Some(var_39) = &input.network_card_index {
113        scope_38.number(
114            #[allow(clippy::useless_conversion)]
115            ::aws_smithy_types::Number::NegInt((*var_39).into()),
116        );
117    }
118    #[allow(unused_mut)]
119    let mut scope_40 = writer.prefix("Ipv4Prefix");
120    if let Some(var_41) = &input.ipv4_prefixes {
121        if !var_41.is_empty() {
122            let mut list_43 = scope_40.start_list(true, Some("item"));
123            for item_42 in var_41 {
124                #[allow(unused_mut)]
125                let mut entry_44 = list_43.entry();
126                crate::protocol_serde::shape_ipv4_prefix_specification_request::ser_ipv4_prefix_specification_request(entry_44, item_42)?;
127            }
128            list_43.finish();
129        }
130    }
131    #[allow(unused_mut)]
132    let mut scope_45 = writer.prefix("Ipv4PrefixCount");
133    if let Some(var_46) = &input.ipv4_prefix_count {
134        scope_45.number(
135            #[allow(clippy::useless_conversion)]
136            ::aws_smithy_types::Number::NegInt((*var_46).into()),
137        );
138    }
139    #[allow(unused_mut)]
140    let mut scope_47 = writer.prefix("Ipv6Prefix");
141    if let Some(var_48) = &input.ipv6_prefixes {
142        if !var_48.is_empty() {
143            let mut list_50 = scope_47.start_list(true, Some("item"));
144            for item_49 in var_48 {
145                #[allow(unused_mut)]
146                let mut entry_51 = list_50.entry();
147                crate::protocol_serde::shape_ipv6_prefix_specification_request::ser_ipv6_prefix_specification_request(entry_51, item_49)?;
148            }
149            list_50.finish();
150        }
151    }
152    #[allow(unused_mut)]
153    let mut scope_52 = writer.prefix("Ipv6PrefixCount");
154    if let Some(var_53) = &input.ipv6_prefix_count {
155        scope_52.number(
156            #[allow(clippy::useless_conversion)]
157            ::aws_smithy_types::Number::NegInt((*var_53).into()),
158        );
159    }
160    #[allow(unused_mut)]
161    let mut scope_54 = writer.prefix("PrimaryIpv6");
162    if let Some(var_55) = &input.primary_ipv6 {
163        scope_54.boolean(*var_55);
164    }
165    #[allow(unused_mut)]
166    let mut scope_56 = writer.prefix("EnaSrdSpecification");
167    if let Some(var_57) = &input.ena_srd_specification {
168        crate::protocol_serde::shape_ena_srd_specification_request::ser_ena_srd_specification_request(scope_56, var_57)?;
169    }
170    #[allow(unused_mut)]
171    let mut scope_58 = writer.prefix("ConnectionTrackingSpecification");
172    if let Some(var_59) = &input.connection_tracking_specification {
173        crate::protocol_serde::shape_connection_tracking_specification_request::ser_connection_tracking_specification_request(scope_58, var_59)?;
174    }
175    #[allow(unused_mut)]
176    let mut scope_60 = writer.prefix("EnaQueueCount");
177    if let Some(var_61) = &input.ena_queue_count {
178        scope_60.number(
179            #[allow(clippy::useless_conversion)]
180            ::aws_smithy_types::Number::NegInt((*var_61).into()),
181        );
182    }
183    Ok(())
184}
185
186#[allow(clippy::needless_question_mark)]
187pub fn de_instance_network_interface_specification(
188    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
189) -> ::std::result::Result<crate::types::InstanceNetworkInterfaceSpecification, ::aws_smithy_xml::decode::XmlDecodeError> {
190    #[allow(unused_mut)]
191    let mut builder = crate::types::InstanceNetworkInterfaceSpecification::builder();
192    while let Some(mut tag) = decoder.next_tag() {
193        match tag.start_el() {
194            s if s.matches("associatePublicIpAddress") /* AssociatePublicIpAddress com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$AssociatePublicIpAddress */ =>  {
195                let var_62 =
196                    Some(
197                         {
198                            <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
199                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
200                            )
201                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.ec2#Boolean`)"))
202                        }
203                        ?
204                    )
205                ;
206                builder = builder.set_associate_public_ip_address(var_62);
207            }
208            ,
209            s if s.matches("deleteOnTermination") /* DeleteOnTermination com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$DeleteOnTermination */ =>  {
210                let var_63 =
211                    Some(
212                         {
213                            <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
214                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
215                            )
216                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.ec2#Boolean`)"))
217                        }
218                        ?
219                    )
220                ;
221                builder = builder.set_delete_on_termination(var_63);
222            }
223            ,
224            s if s.matches("description") /* Description com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$Description */ =>  {
225                let var_64 =
226                    Some(
227                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
228                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
229                            .into()
230                        )
231                        ?
232                    )
233                ;
234                builder = builder.set_description(var_64);
235            }
236            ,
237            s if s.matches("deviceIndex") /* DeviceIndex com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$DeviceIndex */ =>  {
238                let var_65 =
239                    Some(
240                         {
241                            <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
242                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
243                            )
244                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#Integer`)"))
245                        }
246                        ?
247                    )
248                ;
249                builder = builder.set_device_index(var_65);
250            }
251            ,
252            s if s.matches("SecurityGroupId") /* Groups com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$Groups */ =>  {
253                let var_66 =
254                    Some(
255                        crate::protocol_serde::shape_security_group_id_string_list::de_security_group_id_string_list(&mut tag)
256                        ?
257                    )
258                ;
259                builder = builder.set_groups(var_66);
260            }
261            ,
262            s if s.matches("ipv6AddressCount") /* Ipv6AddressCount com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$Ipv6AddressCount */ =>  {
263                let var_67 =
264                    Some(
265                         {
266                            <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
267                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
268                            )
269                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#Integer`)"))
270                        }
271                        ?
272                    )
273                ;
274                builder = builder.set_ipv6_address_count(var_67);
275            }
276            ,
277            s if s.matches("ipv6AddressesSet") /* Ipv6Addresses com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$Ipv6Addresses */ =>  {
278                let var_68 =
279                    Some(
280                        crate::protocol_serde::shape_instance_ipv6_address_list::de_instance_ipv6_address_list(&mut tag)
281                        ?
282                    )
283                ;
284                builder = builder.set_ipv6_addresses(var_68);
285            }
286            ,
287            s if s.matches("networkInterfaceId") /* NetworkInterfaceId com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$NetworkInterfaceId */ =>  {
288                let var_69 =
289                    Some(
290                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
291                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
292                            .into()
293                        )
294                        ?
295                    )
296                ;
297                builder = builder.set_network_interface_id(var_69);
298            }
299            ,
300            s if s.matches("privateIpAddress") /* PrivateIpAddress com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$PrivateIpAddress */ =>  {
301                let var_70 =
302                    Some(
303                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
304                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
305                            .into()
306                        )
307                        ?
308                    )
309                ;
310                builder = builder.set_private_ip_address(var_70);
311            }
312            ,
313            s if s.matches("privateIpAddressesSet") /* PrivateIpAddresses com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$PrivateIpAddresses */ =>  {
314                let var_71 =
315                    Some(
316                        crate::protocol_serde::shape_private_ip_address_specification_list::de_private_ip_address_specification_list(&mut tag)
317                        ?
318                    )
319                ;
320                builder = builder.set_private_ip_addresses(var_71);
321            }
322            ,
323            s if s.matches("secondaryPrivateIpAddressCount") /* SecondaryPrivateIpAddressCount com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$SecondaryPrivateIpAddressCount */ =>  {
324                let var_72 =
325                    Some(
326                         {
327                            <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
328                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
329                            )
330                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#Integer`)"))
331                        }
332                        ?
333                    )
334                ;
335                builder = builder.set_secondary_private_ip_address_count(var_72);
336            }
337            ,
338            s if s.matches("subnetId") /* SubnetId com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$SubnetId */ =>  {
339                let var_73 =
340                    Some(
341                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
342                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
343                            .into()
344                        )
345                        ?
346                    )
347                ;
348                builder = builder.set_subnet_id(var_73);
349            }
350            ,
351            s if s.matches("AssociateCarrierIpAddress") /* AssociateCarrierIpAddress com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$AssociateCarrierIpAddress */ =>  {
352                let var_74 =
353                    Some(
354                         {
355                            <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
356                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
357                            )
358                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.ec2#Boolean`)"))
359                        }
360                        ?
361                    )
362                ;
363                builder = builder.set_associate_carrier_ip_address(var_74);
364            }
365            ,
366            s if s.matches("InterfaceType") /* InterfaceType com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$InterfaceType */ =>  {
367                let var_75 =
368                    Some(
369                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
370                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
371                            .into()
372                        )
373                        ?
374                    )
375                ;
376                builder = builder.set_interface_type(var_75);
377            }
378            ,
379            s if s.matches("NetworkCardIndex") /* NetworkCardIndex com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$NetworkCardIndex */ =>  {
380                let var_76 =
381                    Some(
382                         {
383                            <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
384                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
385                            )
386                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#Integer`)"))
387                        }
388                        ?
389                    )
390                ;
391                builder = builder.set_network_card_index(var_76);
392            }
393            ,
394            s if s.matches("Ipv4Prefix") /* Ipv4Prefixes com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$Ipv4Prefixes */ =>  {
395                let var_77 =
396                    Some(
397                        crate::protocol_serde::shape_ipv4_prefix_list::de_ipv4_prefix_list(&mut tag)
398                        ?
399                    )
400                ;
401                builder = builder.set_ipv4_prefixes(var_77);
402            }
403            ,
404            s if s.matches("Ipv4PrefixCount") /* Ipv4PrefixCount com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$Ipv4PrefixCount */ =>  {
405                let var_78 =
406                    Some(
407                         {
408                            <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
409                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
410                            )
411                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#Integer`)"))
412                        }
413                        ?
414                    )
415                ;
416                builder = builder.set_ipv4_prefix_count(var_78);
417            }
418            ,
419            s if s.matches("Ipv6Prefix") /* Ipv6Prefixes com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$Ipv6Prefixes */ =>  {
420                let var_79 =
421                    Some(
422                        crate::protocol_serde::shape_ipv6_prefix_list::de_ipv6_prefix_list(&mut tag)
423                        ?
424                    )
425                ;
426                builder = builder.set_ipv6_prefixes(var_79);
427            }
428            ,
429            s if s.matches("Ipv6PrefixCount") /* Ipv6PrefixCount com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$Ipv6PrefixCount */ =>  {
430                let var_80 =
431                    Some(
432                         {
433                            <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
434                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
435                            )
436                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#Integer`)"))
437                        }
438                        ?
439                    )
440                ;
441                builder = builder.set_ipv6_prefix_count(var_80);
442            }
443            ,
444            s if s.matches("PrimaryIpv6") /* PrimaryIpv6 com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$PrimaryIpv6 */ =>  {
445                let var_81 =
446                    Some(
447                         {
448                            <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
449                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
450                            )
451                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.ec2#Boolean`)"))
452                        }
453                        ?
454                    )
455                ;
456                builder = builder.set_primary_ipv6(var_81);
457            }
458            ,
459            s if s.matches("EnaSrdSpecification") /* EnaSrdSpecification com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$EnaSrdSpecification */ =>  {
460                let var_82 =
461                    Some(
462                        crate::protocol_serde::shape_ena_srd_specification_request::de_ena_srd_specification_request(&mut tag)
463                        ?
464                    )
465                ;
466                builder = builder.set_ena_srd_specification(var_82);
467            }
468            ,
469            s if s.matches("ConnectionTrackingSpecification") /* ConnectionTrackingSpecification com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$ConnectionTrackingSpecification */ =>  {
470                let var_83 =
471                    Some(
472                        crate::protocol_serde::shape_connection_tracking_specification_request::de_connection_tracking_specification_request(&mut tag)
473                        ?
474                    )
475                ;
476                builder = builder.set_connection_tracking_specification(var_83);
477            }
478            ,
479            s if s.matches("EnaQueueCount") /* EnaQueueCount com.amazonaws.ec2#InstanceNetworkInterfaceSpecification$EnaQueueCount */ =>  {
480                let var_84 =
481                    Some(
482                         {
483                            <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
484                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
485                            )
486                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#Integer`)"))
487                        }
488                        ?
489                    )
490                ;
491                builder = builder.set_ena_queue_count(var_84);
492            }
493            ,
494            _ => {}
495        }
496    }
497    Ok(builder.build())
498}