aws_sdk_ec2/protocol_serde/
shape_explanation.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[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") /* Acl com.amazonaws.ec2#Explanation$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") /* AclRule com.amazonaws.ec2#Explanation$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") /* Address com.amazonaws.ec2#Explanation$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") /* Addresses com.amazonaws.ec2#Explanation$Addresses */ =>  {
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") /* AttachedTo com.amazonaws.ec2#Explanation$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") /* AvailabilityZones com.amazonaws.ec2#Explanation$AvailabilityZones */ =>  {
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") /* AvailabilityZoneIds com.amazonaws.ec2#Explanation$AvailabilityZoneIds */ =>  {
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") /* Cidrs com.amazonaws.ec2#Explanation$Cidrs */ =>  {
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") /* Component com.amazonaws.ec2#Explanation$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") /* CustomerGateway com.amazonaws.ec2#Explanation$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") /* Destination com.amazonaws.ec2#Explanation$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") /* DestinationVpc com.amazonaws.ec2#Explanation$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") /* Direction com.amazonaws.ec2#Explanation$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") /* ExplanationCode com.amazonaws.ec2#Explanation$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") /* IngressRouteTable com.amazonaws.ec2#Explanation$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") /* InternetGateway com.amazonaws.ec2#Explanation$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") /* LoadBalancerArn com.amazonaws.ec2#Explanation$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") /* ClassicLoadBalancerListener com.amazonaws.ec2#Explanation$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") /* LoadBalancerListenerPort com.amazonaws.ec2#Explanation$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") /* LoadBalancerTarget com.amazonaws.ec2#Explanation$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") /* LoadBalancerTargetGroup com.amazonaws.ec2#Explanation$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") /* LoadBalancerTargetGroups com.amazonaws.ec2#Explanation$LoadBalancerTargetGroups */ =>  {
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") /* LoadBalancerTargetPort com.amazonaws.ec2#Explanation$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") /* ElasticLoadBalancerListener com.amazonaws.ec2#Explanation$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") /* MissingComponent com.amazonaws.ec2#Explanation$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") /* NatGateway com.amazonaws.ec2#Explanation$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") /* NetworkInterface com.amazonaws.ec2#Explanation$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") /* PacketField com.amazonaws.ec2#Explanation$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") /* VpcPeeringConnection com.amazonaws.ec2#Explanation$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") /* Port com.amazonaws.ec2#Explanation$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") /* PortRanges com.amazonaws.ec2#Explanation$PortRanges */ =>  {
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") /* PrefixList com.amazonaws.ec2#Explanation$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") /* Protocols com.amazonaws.ec2#Explanation$Protocols */ =>  {
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") /* RouteTableRoute com.amazonaws.ec2#Explanation$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") /* RouteTable com.amazonaws.ec2#Explanation$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") /* SecurityGroup com.amazonaws.ec2#Explanation$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") /* SecurityGroupRule com.amazonaws.ec2#Explanation$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") /* SecurityGroups com.amazonaws.ec2#Explanation$SecurityGroups */ =>  {
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") /* SourceVpc com.amazonaws.ec2#Explanation$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") /* State com.amazonaws.ec2#Explanation$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") /* Subnet com.amazonaws.ec2#Explanation$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") /* SubnetRouteTable com.amazonaws.ec2#Explanation$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") /* Vpc com.amazonaws.ec2#Explanation$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") /* VpcEndpoint com.amazonaws.ec2#Explanation$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") /* VpnConnection com.amazonaws.ec2#Explanation$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") /* VpnGateway com.amazonaws.ec2#Explanation$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") /* TransitGateway com.amazonaws.ec2#Explanation$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") /* TransitGatewayRouteTable com.amazonaws.ec2#Explanation$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") /* TransitGatewayRouteTableRoute com.amazonaws.ec2#Explanation$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") /* TransitGatewayAttachment com.amazonaws.ec2#Explanation$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") /* ComponentAccount com.amazonaws.ec2#Explanation$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") /* ComponentRegion com.amazonaws.ec2#Explanation$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") /* FirewallStatelessRule com.amazonaws.ec2#Explanation$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") /* FirewallStatefulRule com.amazonaws.ec2#Explanation$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}