aws_sdk_ec2/protocol_serde/
shape_explanation.rs1#[allow(clippy::needless_question_mark)]
3pub fn de_explanation(
4 decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
5) -> ::std::result::Result<crate::types::Explanation, ::aws_smithy_xml::decode::XmlDecodeError> {
6 #[allow(unused_mut)]
7 let mut builder = crate::types::Explanation::builder();
8 while let Some(mut tag) = decoder.next_tag() {
9 match tag.start_el() {
10 s if s.matches("acl") => {
11 let var_1 =
12 Some(
13 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
14 ?
15 )
16 ;
17 builder = builder.set_acl(var_1);
18 }
19 ,
20 s if s.matches("aclRule") => {
21 let var_2 =
22 Some(
23 crate::protocol_serde::shape_analysis_acl_rule::de_analysis_acl_rule(&mut tag)
24 ?
25 )
26 ;
27 builder = builder.set_acl_rule(var_2);
28 }
29 ,
30 s if s.matches("address") => {
31 let var_3 =
32 Some(
33 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
34 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
35 .into()
36 )
37 ?
38 )
39 ;
40 builder = builder.set_address(var_3);
41 }
42 ,
43 s if s.matches("addressSet") => {
44 let var_4 =
45 Some(
46 crate::protocol_serde::shape_ip_address_list::de_ip_address_list(&mut tag)
47 ?
48 )
49 ;
50 builder = builder.set_addresses(var_4);
51 }
52 ,
53 s if s.matches("attachedTo") => {
54 let var_5 =
55 Some(
56 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
57 ?
58 )
59 ;
60 builder = builder.set_attached_to(var_5);
61 }
62 ,
63 s if s.matches("availabilityZoneSet") => {
64 let var_6 =
65 Some(
66 crate::protocol_serde::shape_value_string_list::de_value_string_list(&mut tag)
67 ?
68 )
69 ;
70 builder = builder.set_availability_zones(var_6);
71 }
72 ,
73 s if s.matches("availabilityZoneIdSet") => {
74 let var_7 =
75 Some(
76 crate::protocol_serde::shape_value_string_list::de_value_string_list(&mut tag)
77 ?
78 )
79 ;
80 builder = builder.set_availability_zone_ids(var_7);
81 }
82 ,
83 s if s.matches("cidrSet") => {
84 let var_8 =
85 Some(
86 crate::protocol_serde::shape_value_string_list::de_value_string_list(&mut tag)
87 ?
88 )
89 ;
90 builder = builder.set_cidrs(var_8);
91 }
92 ,
93 s if s.matches("component") => {
94 let var_9 =
95 Some(
96 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
97 ?
98 )
99 ;
100 builder = builder.set_component(var_9);
101 }
102 ,
103 s if s.matches("customerGateway") => {
104 let var_10 =
105 Some(
106 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
107 ?
108 )
109 ;
110 builder = builder.set_customer_gateway(var_10);
111 }
112 ,
113 s if s.matches("destination") => {
114 let var_11 =
115 Some(
116 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
117 ?
118 )
119 ;
120 builder = builder.set_destination(var_11);
121 }
122 ,
123 s if s.matches("destinationVpc") => {
124 let var_12 =
125 Some(
126 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
127 ?
128 )
129 ;
130 builder = builder.set_destination_vpc(var_12);
131 }
132 ,
133 s if s.matches("direction") => {
134 let var_13 =
135 Some(
136 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
137 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
138 .into()
139 )
140 ?
141 )
142 ;
143 builder = builder.set_direction(var_13);
144 }
145 ,
146 s if s.matches("explanationCode") => {
147 let var_14 =
148 Some(
149 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
150 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
151 .into()
152 )
153 ?
154 )
155 ;
156 builder = builder.set_explanation_code(var_14);
157 }
158 ,
159 s if s.matches("ingressRouteTable") => {
160 let var_15 =
161 Some(
162 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
163 ?
164 )
165 ;
166 builder = builder.set_ingress_route_table(var_15);
167 }
168 ,
169 s if s.matches("internetGateway") => {
170 let var_16 =
171 Some(
172 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
173 ?
174 )
175 ;
176 builder = builder.set_internet_gateway(var_16);
177 }
178 ,
179 s if s.matches("loadBalancerArn") => {
180 let var_17 =
181 Some(
182 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
183 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
184 .into()
185 )
186 ?
187 )
188 ;
189 builder = builder.set_load_balancer_arn(var_17);
190 }
191 ,
192 s if s.matches("classicLoadBalancerListener") => {
193 let var_18 =
194 Some(
195 crate::protocol_serde::shape_analysis_load_balancer_listener::de_analysis_load_balancer_listener(&mut tag)
196 ?
197 )
198 ;
199 builder = builder.set_classic_load_balancer_listener(var_18);
200 }
201 ,
202 s if s.matches("loadBalancerListenerPort") => {
203 let var_19 =
204 Some(
205 {
206 <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
207 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
208 )
209 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#Port`)"))
210 }
211 ?
212 )
213 ;
214 builder = builder.set_load_balancer_listener_port(var_19);
215 }
216 ,
217 s if s.matches("loadBalancerTarget") => {
218 let var_20 =
219 Some(
220 crate::protocol_serde::shape_analysis_load_balancer_target::de_analysis_load_balancer_target(&mut tag)
221 ?
222 )
223 ;
224 builder = builder.set_load_balancer_target(var_20);
225 }
226 ,
227 s if s.matches("loadBalancerTargetGroup") => {
228 let var_21 =
229 Some(
230 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
231 ?
232 )
233 ;
234 builder = builder.set_load_balancer_target_group(var_21);
235 }
236 ,
237 s if s.matches("loadBalancerTargetGroupSet") => {
238 let var_22 =
239 Some(
240 crate::protocol_serde::shape_analysis_component_list::de_analysis_component_list(&mut tag)
241 ?
242 )
243 ;
244 builder = builder.set_load_balancer_target_groups(var_22);
245 }
246 ,
247 s if s.matches("loadBalancerTargetPort") => {
248 let var_23 =
249 Some(
250 {
251 <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
252 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
253 )
254 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#Port`)"))
255 }
256 ?
257 )
258 ;
259 builder = builder.set_load_balancer_target_port(var_23);
260 }
261 ,
262 s if s.matches("elasticLoadBalancerListener") => {
263 let var_24 =
264 Some(
265 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
266 ?
267 )
268 ;
269 builder = builder.set_elastic_load_balancer_listener(var_24);
270 }
271 ,
272 s if s.matches("missingComponent") => {
273 let var_25 =
274 Some(
275 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
276 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
277 .into()
278 )
279 ?
280 )
281 ;
282 builder = builder.set_missing_component(var_25);
283 }
284 ,
285 s if s.matches("natGateway") => {
286 let var_26 =
287 Some(
288 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
289 ?
290 )
291 ;
292 builder = builder.set_nat_gateway(var_26);
293 }
294 ,
295 s if s.matches("networkInterface") => {
296 let var_27 =
297 Some(
298 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
299 ?
300 )
301 ;
302 builder = builder.set_network_interface(var_27);
303 }
304 ,
305 s if s.matches("packetField") => {
306 let var_28 =
307 Some(
308 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
309 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
310 .into()
311 )
312 ?
313 )
314 ;
315 builder = builder.set_packet_field(var_28);
316 }
317 ,
318 s if s.matches("vpcPeeringConnection") => {
319 let var_29 =
320 Some(
321 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
322 ?
323 )
324 ;
325 builder = builder.set_vpc_peering_connection(var_29);
326 }
327 ,
328 s if s.matches("port") => {
329 let var_30 =
330 Some(
331 {
332 <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
333 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
334 )
335 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.ec2#Port`)"))
336 }
337 ?
338 )
339 ;
340 builder = builder.set_port(var_30);
341 }
342 ,
343 s if s.matches("portRangeSet") => {
344 let var_31 =
345 Some(
346 crate::protocol_serde::shape_port_range_list::de_port_range_list(&mut tag)
347 ?
348 )
349 ;
350 builder = builder.set_port_ranges(var_31);
351 }
352 ,
353 s if s.matches("prefixList") => {
354 let var_32 =
355 Some(
356 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
357 ?
358 )
359 ;
360 builder = builder.set_prefix_list(var_32);
361 }
362 ,
363 s if s.matches("protocolSet") => {
364 let var_33 =
365 Some(
366 crate::protocol_serde::shape_string_list::de_string_list(&mut tag)
367 ?
368 )
369 ;
370 builder = builder.set_protocols(var_33);
371 }
372 ,
373 s if s.matches("routeTableRoute") => {
374 let var_34 =
375 Some(
376 crate::protocol_serde::shape_analysis_route_table_route::de_analysis_route_table_route(&mut tag)
377 ?
378 )
379 ;
380 builder = builder.set_route_table_route(var_34);
381 }
382 ,
383 s if s.matches("routeTable") => {
384 let var_35 =
385 Some(
386 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
387 ?
388 )
389 ;
390 builder = builder.set_route_table(var_35);
391 }
392 ,
393 s if s.matches("securityGroup") => {
394 let var_36 =
395 Some(
396 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
397 ?
398 )
399 ;
400 builder = builder.set_security_group(var_36);
401 }
402 ,
403 s if s.matches("securityGroupRule") => {
404 let var_37 =
405 Some(
406 crate::protocol_serde::shape_analysis_security_group_rule::de_analysis_security_group_rule(&mut tag)
407 ?
408 )
409 ;
410 builder = builder.set_security_group_rule(var_37);
411 }
412 ,
413 s if s.matches("securityGroupSet") => {
414 let var_38 =
415 Some(
416 crate::protocol_serde::shape_analysis_component_list::de_analysis_component_list(&mut tag)
417 ?
418 )
419 ;
420 builder = builder.set_security_groups(var_38);
421 }
422 ,
423 s if s.matches("sourceVpc") => {
424 let var_39 =
425 Some(
426 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
427 ?
428 )
429 ;
430 builder = builder.set_source_vpc(var_39);
431 }
432 ,
433 s if s.matches("state") => {
434 let var_40 =
435 Some(
436 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
437 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
438 .into()
439 )
440 ?
441 )
442 ;
443 builder = builder.set_state(var_40);
444 }
445 ,
446 s if s.matches("subnet") => {
447 let var_41 =
448 Some(
449 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
450 ?
451 )
452 ;
453 builder = builder.set_subnet(var_41);
454 }
455 ,
456 s if s.matches("subnetRouteTable") => {
457 let var_42 =
458 Some(
459 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
460 ?
461 )
462 ;
463 builder = builder.set_subnet_route_table(var_42);
464 }
465 ,
466 s if s.matches("vpc") => {
467 let var_43 =
468 Some(
469 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
470 ?
471 )
472 ;
473 builder = builder.set_vpc(var_43);
474 }
475 ,
476 s if s.matches("vpcEndpoint") => {
477 let var_44 =
478 Some(
479 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
480 ?
481 )
482 ;
483 builder = builder.set_vpc_endpoint(var_44);
484 }
485 ,
486 s if s.matches("vpnConnection") => {
487 let var_45 =
488 Some(
489 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
490 ?
491 )
492 ;
493 builder = builder.set_vpn_connection(var_45);
494 }
495 ,
496 s if s.matches("vpnGateway") => {
497 let var_46 =
498 Some(
499 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
500 ?
501 )
502 ;
503 builder = builder.set_vpn_gateway(var_46);
504 }
505 ,
506 s if s.matches("transitGateway") => {
507 let var_47 =
508 Some(
509 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
510 ?
511 )
512 ;
513 builder = builder.set_transit_gateway(var_47);
514 }
515 ,
516 s if s.matches("transitGatewayRouteTable") => {
517 let var_48 =
518 Some(
519 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
520 ?
521 )
522 ;
523 builder = builder.set_transit_gateway_route_table(var_48);
524 }
525 ,
526 s if s.matches("transitGatewayRouteTableRoute") => {
527 let var_49 =
528 Some(
529 crate::protocol_serde::shape_transit_gateway_route_table_route::de_transit_gateway_route_table_route(&mut tag)
530 ?
531 )
532 ;
533 builder = builder.set_transit_gateway_route_table_route(var_49);
534 }
535 ,
536 s if s.matches("transitGatewayAttachment") => {
537 let var_50 =
538 Some(
539 crate::protocol_serde::shape_analysis_component::de_analysis_component(&mut tag)
540 ?
541 )
542 ;
543 builder = builder.set_transit_gateway_attachment(var_50);
544 }
545 ,
546 s if s.matches("componentAccount") => {
547 let var_51 =
548 Some(
549 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
550 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
551 .into()
552 )
553 ?
554 )
555 ;
556 builder = builder.set_component_account(var_51);
557 }
558 ,
559 s if s.matches("componentRegion") => {
560 let var_52 =
561 Some(
562 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
563 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
564 .into()
565 )
566 ?
567 )
568 ;
569 builder = builder.set_component_region(var_52);
570 }
571 ,
572 s if s.matches("firewallStatelessRule") => {
573 let var_53 =
574 Some(
575 crate::protocol_serde::shape_firewall_stateless_rule::de_firewall_stateless_rule(&mut tag)
576 ?
577 )
578 ;
579 builder = builder.set_firewall_stateless_rule(var_53);
580 }
581 ,
582 s if s.matches("firewallStatefulRule") => {
583 let var_54 =
584 Some(
585 crate::protocol_serde::shape_firewall_stateful_rule::de_firewall_stateful_rule(&mut tag)
586 ?
587 )
588 ;
589 builder = builder.set_firewall_stateful_rule(var_54);
590 }
591 ,
592 _ => {}
593 }
594 }
595 Ok(builder.build())
596}