aws_sdk_ec2/protocol_serde/
shape_vpc_endpoint.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(clippy::needless_question_mark)]
3pub fn de_vpc_endpoint(
4    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
5) -> ::std::result::Result<crate::types::VpcEndpoint, ::aws_smithy_xml::decode::XmlDecodeError> {
6    #[allow(unused_mut)]
7    let mut builder = crate::types::VpcEndpoint::builder();
8    while let Some(mut tag) = decoder.next_tag() {
9        match tag.start_el() {
10            s if s.matches("vpcEndpointId") /* VpcEndpointId com.amazonaws.ec2#VpcEndpoint$VpcEndpointId */ =>  {
11                let var_1 =
12                    Some(
13                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
14                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
15                            .into()
16                        )
17                        ?
18                    )
19                ;
20                builder = builder.set_vpc_endpoint_id(var_1);
21            }
22            ,
23            s if s.matches("vpcEndpointType") /* VpcEndpointType com.amazonaws.ec2#VpcEndpoint$VpcEndpointType */ =>  {
24                let var_2 =
25                    Some(
26                        Result::<crate::types::VpcEndpointType, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
27                            crate::types::VpcEndpointType::from(
28                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
29                            )
30                        )
31                        ?
32                    )
33                ;
34                builder = builder.set_vpc_endpoint_type(var_2);
35            }
36            ,
37            s if s.matches("vpcId") /* VpcId com.amazonaws.ec2#VpcEndpoint$VpcId */ =>  {
38                let var_3 =
39                    Some(
40                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
41                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
42                            .into()
43                        )
44                        ?
45                    )
46                ;
47                builder = builder.set_vpc_id(var_3);
48            }
49            ,
50            s if s.matches("serviceName") /* ServiceName com.amazonaws.ec2#VpcEndpoint$ServiceName */ =>  {
51                let var_4 =
52                    Some(
53                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
54                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
55                            .into()
56                        )
57                        ?
58                    )
59                ;
60                builder = builder.set_service_name(var_4);
61            }
62            ,
63            s if s.matches("state") /* State com.amazonaws.ec2#VpcEndpoint$State */ =>  {
64                let var_5 =
65                    Some(
66                        Result::<crate::types::State, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
67                            crate::types::State::from(
68                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
69                            )
70                        )
71                        ?
72                    )
73                ;
74                builder = builder.set_state(var_5);
75            }
76            ,
77            s if s.matches("policyDocument") /* PolicyDocument com.amazonaws.ec2#VpcEndpoint$PolicyDocument */ =>  {
78                let var_6 =
79                    Some(
80                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
81                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
82                            .into()
83                        )
84                        ?
85                    )
86                ;
87                builder = builder.set_policy_document(var_6);
88            }
89            ,
90            s if s.matches("routeTableIdSet") /* RouteTableIds com.amazonaws.ec2#VpcEndpoint$RouteTableIds */ =>  {
91                let var_7 =
92                    Some(
93                        crate::protocol_serde::shape_value_string_list::de_value_string_list(&mut tag)
94                        ?
95                    )
96                ;
97                builder = builder.set_route_table_ids(var_7);
98            }
99            ,
100            s if s.matches("subnetIdSet") /* SubnetIds com.amazonaws.ec2#VpcEndpoint$SubnetIds */ =>  {
101                let var_8 =
102                    Some(
103                        crate::protocol_serde::shape_value_string_list::de_value_string_list(&mut tag)
104                        ?
105                    )
106                ;
107                builder = builder.set_subnet_ids(var_8);
108            }
109            ,
110            s if s.matches("groupSet") /* Groups com.amazonaws.ec2#VpcEndpoint$Groups */ =>  {
111                let var_9 =
112                    Some(
113                        crate::protocol_serde::shape_group_identifier_set::de_group_identifier_set(&mut tag)
114                        ?
115                    )
116                ;
117                builder = builder.set_groups(var_9);
118            }
119            ,
120            s if s.matches("ipAddressType") /* IpAddressType com.amazonaws.ec2#VpcEndpoint$IpAddressType */ =>  {
121                let var_10 =
122                    Some(
123                        Result::<crate::types::IpAddressType, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
124                            crate::types::IpAddressType::from(
125                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
126                            )
127                        )
128                        ?
129                    )
130                ;
131                builder = builder.set_ip_address_type(var_10);
132            }
133            ,
134            s if s.matches("dnsOptions") /* DnsOptions com.amazonaws.ec2#VpcEndpoint$DnsOptions */ =>  {
135                let var_11 =
136                    Some(
137                        crate::protocol_serde::shape_dns_options::de_dns_options(&mut tag)
138                        ?
139                    )
140                ;
141                builder = builder.set_dns_options(var_11);
142            }
143            ,
144            s if s.matches("privateDnsEnabled") /* PrivateDnsEnabled com.amazonaws.ec2#VpcEndpoint$PrivateDnsEnabled */ =>  {
145                let var_12 =
146                    Some(
147                         {
148                            <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
149                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
150                            )
151                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.ec2#Boolean`)"))
152                        }
153                        ?
154                    )
155                ;
156                builder = builder.set_private_dns_enabled(var_12);
157            }
158            ,
159            s if s.matches("requesterManaged") /* RequesterManaged com.amazonaws.ec2#VpcEndpoint$RequesterManaged */ =>  {
160                let var_13 =
161                    Some(
162                         {
163                            <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
164                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
165                            )
166                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.ec2#Boolean`)"))
167                        }
168                        ?
169                    )
170                ;
171                builder = builder.set_requester_managed(var_13);
172            }
173            ,
174            s if s.matches("networkInterfaceIdSet") /* NetworkInterfaceIds com.amazonaws.ec2#VpcEndpoint$NetworkInterfaceIds */ =>  {
175                let var_14 =
176                    Some(
177                        crate::protocol_serde::shape_value_string_list::de_value_string_list(&mut tag)
178                        ?
179                    )
180                ;
181                builder = builder.set_network_interface_ids(var_14);
182            }
183            ,
184            s if s.matches("dnsEntrySet") /* DnsEntries com.amazonaws.ec2#VpcEndpoint$DnsEntries */ =>  {
185                let var_15 =
186                    Some(
187                        crate::protocol_serde::shape_dns_entry_set::de_dns_entry_set(&mut tag)
188                        ?
189                    )
190                ;
191                builder = builder.set_dns_entries(var_15);
192            }
193            ,
194            s if s.matches("creationTimestamp") /* CreationTimestamp com.amazonaws.ec2#VpcEndpoint$CreationTimestamp */ =>  {
195                let var_16 =
196                    Some(
197                        ::aws_smithy_types::DateTime::from_str(
198                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
199                            , ::aws_smithy_types::date_time::Format::DateTimeWithOffset
200                        )
201                        .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (timestamp: `com.amazonaws.ec2#MillisecondDateTime`)"))
202                        ?
203                    )
204                ;
205                builder = builder.set_creation_timestamp(var_16);
206            }
207            ,
208            s if s.matches("tagSet") /* Tags com.amazonaws.ec2#VpcEndpoint$Tags */ =>  {
209                let var_17 =
210                    Some(
211                        crate::protocol_serde::shape_tag_list::de_tag_list(&mut tag)
212                        ?
213                    )
214                ;
215                builder = builder.set_tags(var_17);
216            }
217            ,
218            s if s.matches("ownerId") /* OwnerId com.amazonaws.ec2#VpcEndpoint$OwnerId */ =>  {
219                let var_18 =
220                    Some(
221                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
222                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
223                            .into()
224                        )
225                        ?
226                    )
227                ;
228                builder = builder.set_owner_id(var_18);
229            }
230            ,
231            s if s.matches("lastError") /* LastError com.amazonaws.ec2#VpcEndpoint$LastError */ =>  {
232                let var_19 =
233                    Some(
234                        crate::protocol_serde::shape_last_error::de_last_error(&mut tag)
235                        ?
236                    )
237                ;
238                builder = builder.set_last_error(var_19);
239            }
240            ,
241            s if s.matches("ipv4PrefixSet") /* Ipv4Prefixes com.amazonaws.ec2#VpcEndpoint$Ipv4Prefixes */ =>  {
242                let var_20 =
243                    Some(
244                        crate::protocol_serde::shape_subnet_ip_prefixes_list::de_subnet_ip_prefixes_list(&mut tag)
245                        ?
246                    )
247                ;
248                builder = builder.set_ipv4_prefixes(var_20);
249            }
250            ,
251            s if s.matches("ipv6PrefixSet") /* Ipv6Prefixes com.amazonaws.ec2#VpcEndpoint$Ipv6Prefixes */ =>  {
252                let var_21 =
253                    Some(
254                        crate::protocol_serde::shape_subnet_ip_prefixes_list::de_subnet_ip_prefixes_list(&mut tag)
255                        ?
256                    )
257                ;
258                builder = builder.set_ipv6_prefixes(var_21);
259            }
260            ,
261            s if s.matches("failureReason") /* FailureReason com.amazonaws.ec2#VpcEndpoint$FailureReason */ =>  {
262                let var_22 =
263                    Some(
264                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
265                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
266                            .into()
267                        )
268                        ?
269                    )
270                ;
271                builder = builder.set_failure_reason(var_22);
272            }
273            ,
274            s if s.matches("serviceNetworkArn") /* ServiceNetworkArn com.amazonaws.ec2#VpcEndpoint$ServiceNetworkArn */ =>  {
275                let var_23 =
276                    Some(
277                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
278                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
279                            .into()
280                        )
281                        ?
282                    )
283                ;
284                builder = builder.set_service_network_arn(var_23);
285            }
286            ,
287            s if s.matches("resourceConfigurationArn") /* ResourceConfigurationArn com.amazonaws.ec2#VpcEndpoint$ResourceConfigurationArn */ =>  {
288                let var_24 =
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_resource_configuration_arn(var_24);
298            }
299            ,
300            s if s.matches("serviceRegion") /* ServiceRegion com.amazonaws.ec2#VpcEndpoint$ServiceRegion */ =>  {
301                let var_25 =
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_service_region(var_25);
311            }
312            ,
313            _ => {}
314        }
315    }
316    Ok(builder.build())
317}