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