aws_sdk_ec2/protocol_serde/
shape_instance_network_interface_specification.rs1#[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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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") => {
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}