aws_sdk_ec2/protocol_serde/
shape_response_launch_template_data.rs1#[allow(clippy::needless_question_mark)]
3pub fn de_response_launch_template_data(
4 decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
5) -> ::std::result::Result<crate::types::ResponseLaunchTemplateData, ::aws_smithy_xml::decode::XmlDecodeError> {
6 #[allow(unused_mut)]
7 let mut builder = crate::types::ResponseLaunchTemplateData::builder();
8 while let Some(mut tag) = decoder.next_tag() {
9 match tag.start_el() {
10 s if s.matches("kernelId") => {
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_kernel_id(var_1);
21 }
22 ,
23 s if s.matches("ebsOptimized") => {
24 let var_2 =
25 Some(
26 {
27 <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
28 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
29 )
30 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.ec2#Boolean`)"))
31 }
32 ?
33 )
34 ;
35 builder = builder.set_ebs_optimized(var_2);
36 }
37 ,
38 s if s.matches("iamInstanceProfile") => {
39 let var_3 =
40 Some(
41 crate::protocol_serde::shape_launch_template_iam_instance_profile_specification::de_launch_template_iam_instance_profile_specification(&mut tag)
42 ?
43 )
44 ;
45 builder = builder.set_iam_instance_profile(var_3);
46 }
47 ,
48 s if s.matches("blockDeviceMappingSet") => {
49 let var_4 =
50 Some(
51 crate::protocol_serde::shape_launch_template_block_device_mapping_list::de_launch_template_block_device_mapping_list(&mut tag)
52 ?
53 )
54 ;
55 builder = builder.set_block_device_mappings(var_4);
56 }
57 ,
58 s if s.matches("networkInterfaceSet") => {
59 let var_5 =
60 Some(
61 crate::protocol_serde::shape_launch_template_instance_network_interface_specification_list::de_launch_template_instance_network_interface_specification_list(&mut tag)
62 ?
63 )
64 ;
65 builder = builder.set_network_interfaces(var_5);
66 }
67 ,
68 s if s.matches("imageId") => {
69 let var_6 =
70 Some(
71 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
72 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
73 .into()
74 )
75 ?
76 )
77 ;
78 builder = builder.set_image_id(var_6);
79 }
80 ,
81 s if s.matches("instanceType") => {
82 let var_7 =
83 Some(
84 Result::<crate::types::InstanceType, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
85 crate::types::InstanceType::from(
86 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
87 )
88 )
89 ?
90 )
91 ;
92 builder = builder.set_instance_type(var_7);
93 }
94 ,
95 s if s.matches("keyName") => {
96 let var_8 =
97 Some(
98 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
99 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
100 .into()
101 )
102 ?
103 )
104 ;
105 builder = builder.set_key_name(var_8);
106 }
107 ,
108 s if s.matches("monitoring") => {
109 let var_9 =
110 Some(
111 crate::protocol_serde::shape_launch_templates_monitoring::de_launch_templates_monitoring(&mut tag)
112 ?
113 )
114 ;
115 builder = builder.set_monitoring(var_9);
116 }
117 ,
118 s if s.matches("placement") => {
119 let var_10 =
120 Some(
121 crate::protocol_serde::shape_launch_template_placement::de_launch_template_placement(&mut tag)
122 ?
123 )
124 ;
125 builder = builder.set_placement(var_10);
126 }
127 ,
128 s if s.matches("ramDiskId") => {
129 let var_11 =
130 Some(
131 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
132 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
133 .into()
134 )
135 ?
136 )
137 ;
138 builder = builder.set_ram_disk_id(var_11);
139 }
140 ,
141 s if s.matches("disableApiTermination") => {
142 let var_12 =
143 Some(
144 {
145 <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
146 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
147 )
148 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.ec2#Boolean`)"))
149 }
150 ?
151 )
152 ;
153 builder = builder.set_disable_api_termination(var_12);
154 }
155 ,
156 s if s.matches("instanceInitiatedShutdownBehavior") => {
157 let var_13 =
158 Some(
159 Result::<crate::types::ShutdownBehavior, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
160 crate::types::ShutdownBehavior::from(
161 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
162 )
163 )
164 ?
165 )
166 ;
167 builder = builder.set_instance_initiated_shutdown_behavior(var_13);
168 }
169 ,
170 s if s.matches("userData") => {
171 let var_14 =
172 Some(
173 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
174 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
175 .into()
176 )
177 ?
178 )
179 ;
180 builder = builder.set_user_data(var_14);
181 }
182 ,
183 s if s.matches("tagSpecificationSet") => {
184 let var_15 =
185 Some(
186 crate::protocol_serde::shape_launch_template_tag_specification_list::de_launch_template_tag_specification_list(&mut tag)
187 ?
188 )
189 ;
190 builder = builder.set_tag_specifications(var_15);
191 }
192 ,
193 s if s.matches("elasticGpuSpecificationSet") => {
194 let var_16 =
195 Some(
196 crate::protocol_serde::shape_elastic_gpu_specification_response_list::de_elastic_gpu_specification_response_list(&mut tag)
197 ?
198 )
199 ;
200 builder = builder.set_elastic_gpu_specifications(var_16);
201 }
202 ,
203 s if s.matches("elasticInferenceAcceleratorSet") => {
204 let var_17 =
205 Some(
206 crate::protocol_serde::shape_launch_template_elastic_inference_accelerator_response_list::de_launch_template_elastic_inference_accelerator_response_list(&mut tag)
207 ?
208 )
209 ;
210 builder = builder.set_elastic_inference_accelerators(var_17);
211 }
212 ,
213 s if s.matches("securityGroupIdSet") => {
214 let var_18 =
215 Some(
216 crate::protocol_serde::shape_value_string_list::de_value_string_list(&mut tag)
217 ?
218 )
219 ;
220 builder = builder.set_security_group_ids(var_18);
221 }
222 ,
223 s if s.matches("securityGroupSet") => {
224 let var_19 =
225 Some(
226 crate::protocol_serde::shape_value_string_list::de_value_string_list(&mut tag)
227 ?
228 )
229 ;
230 builder = builder.set_security_groups(var_19);
231 }
232 ,
233 s if s.matches("instanceMarketOptions") => {
234 let var_20 =
235 Some(
236 crate::protocol_serde::shape_launch_template_instance_market_options::de_launch_template_instance_market_options(&mut tag)
237 ?
238 )
239 ;
240 builder = builder.set_instance_market_options(var_20);
241 }
242 ,
243 s if s.matches("creditSpecification") => {
244 let var_21 =
245 Some(
246 crate::protocol_serde::shape_credit_specification::de_credit_specification(&mut tag)
247 ?
248 )
249 ;
250 builder = builder.set_credit_specification(var_21);
251 }
252 ,
253 s if s.matches("cpuOptions") => {
254 let var_22 =
255 Some(
256 crate::protocol_serde::shape_launch_template_cpu_options::de_launch_template_cpu_options(&mut tag)
257 ?
258 )
259 ;
260 builder = builder.set_cpu_options(var_22);
261 }
262 ,
263 s if s.matches("capacityReservationSpecification") => {
264 let var_23 =
265 Some(
266 crate::protocol_serde::shape_launch_template_capacity_reservation_specification_response::de_launch_template_capacity_reservation_specification_response(&mut tag)
267 ?
268 )
269 ;
270 builder = builder.set_capacity_reservation_specification(var_23);
271 }
272 ,
273 s if s.matches("licenseSet") => {
274 let var_24 =
275 Some(
276 crate::protocol_serde::shape_launch_template_license_list::de_launch_template_license_list(&mut tag)
277 ?
278 )
279 ;
280 builder = builder.set_license_specifications(var_24);
281 }
282 ,
283 s if s.matches("hibernationOptions") => {
284 let var_25 =
285 Some(
286 crate::protocol_serde::shape_launch_template_hibernation_options::de_launch_template_hibernation_options(&mut tag)
287 ?
288 )
289 ;
290 builder = builder.set_hibernation_options(var_25);
291 }
292 ,
293 s if s.matches("metadataOptions") => {
294 let var_26 =
295 Some(
296 crate::protocol_serde::shape_launch_template_instance_metadata_options::de_launch_template_instance_metadata_options(&mut tag)
297 ?
298 )
299 ;
300 builder = builder.set_metadata_options(var_26);
301 }
302 ,
303 s if s.matches("enclaveOptions") => {
304 let var_27 =
305 Some(
306 crate::protocol_serde::shape_launch_template_enclave_options::de_launch_template_enclave_options(&mut tag)
307 ?
308 )
309 ;
310 builder = builder.set_enclave_options(var_27);
311 }
312 ,
313 s if s.matches("instanceRequirements") => {
314 let var_28 =
315 Some(
316 crate::protocol_serde::shape_instance_requirements::de_instance_requirements(&mut tag)
317 ?
318 )
319 ;
320 builder = builder.set_instance_requirements(var_28);
321 }
322 ,
323 s if s.matches("privateDnsNameOptions") => {
324 let var_29 =
325 Some(
326 crate::protocol_serde::shape_launch_template_private_dns_name_options::de_launch_template_private_dns_name_options(&mut tag)
327 ?
328 )
329 ;
330 builder = builder.set_private_dns_name_options(var_29);
331 }
332 ,
333 s if s.matches("maintenanceOptions") => {
334 let var_30 =
335 Some(
336 crate::protocol_serde::shape_launch_template_instance_maintenance_options::de_launch_template_instance_maintenance_options(&mut tag)
337 ?
338 )
339 ;
340 builder = builder.set_maintenance_options(var_30);
341 }
342 ,
343 s if s.matches("disableApiStop") => {
344 let var_31 =
345 Some(
346 {
347 <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
348 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
349 )
350 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.ec2#Boolean`)"))
351 }
352 ?
353 )
354 ;
355 builder = builder.set_disable_api_stop(var_31);
356 }
357 ,
358 s if s.matches("operator") => {
359 let var_32 =
360 Some(
361 crate::protocol_serde::shape_operator_response::de_operator_response(&mut tag)
362 ?
363 )
364 ;
365 builder = builder.set_operator(var_32);
366 }
367 ,
368 s if s.matches("networkPerformanceOptions") => {
369 let var_33 =
370 Some(
371 crate::protocol_serde::shape_launch_template_network_performance_options::de_launch_template_network_performance_options(&mut tag)
372 ?
373 )
374 ;
375 builder = builder.set_network_performance_options(var_33);
376 }
377 ,
378 _ => {}
379 }
380 }
381 Ok(builder.build())
382}