aws_sdk_ec2/protocol_serde/
shape_describe_instance_attribute.rs1#[allow(clippy::unnecessary_wraps)]
3pub fn de_describe_instance_attribute_http_error(
4 _response_status: u16,
5 _response_headers: &::aws_smithy_runtime_api::http::Headers,
6 _response_body: &[u8],
7) -> std::result::Result<
8 crate::operation::describe_instance_attribute::DescribeInstanceAttributeOutput,
9 crate::operation::describe_instance_attribute::DescribeInstanceAttributeError,
10> {
11 #[allow(unused_mut)]
12 let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
13 .map_err(crate::operation::describe_instance_attribute::DescribeInstanceAttributeError::unhandled)?;
14 generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
15 let generic = generic_builder.build();
16 Err(crate::operation::describe_instance_attribute::DescribeInstanceAttributeError::generic(
17 generic,
18 ))
19}
20
21#[allow(clippy::unnecessary_wraps)]
22pub fn de_describe_instance_attribute_http_response(
23 _response_status: u16,
24 _response_headers: &::aws_smithy_runtime_api::http::Headers,
25 _response_body: &[u8],
26) -> std::result::Result<
27 crate::operation::describe_instance_attribute::DescribeInstanceAttributeOutput,
28 crate::operation::describe_instance_attribute::DescribeInstanceAttributeError,
29> {
30 Ok({
31 #[allow(unused_mut)]
32 let mut output = crate::operation::describe_instance_attribute::builders::DescribeInstanceAttributeOutputBuilder::default();
33 output = crate::protocol_serde::shape_describe_instance_attribute::de_describe_instance_attribute(_response_body, output)
34 .map_err(crate::operation::describe_instance_attribute::DescribeInstanceAttributeError::unhandled)?;
35 output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
36 output.build()
37 })
38}
39
40#[allow(unused_mut)]
41pub fn de_describe_instance_attribute(
42 inp: &[u8],
43 mut builder: crate::operation::describe_instance_attribute::builders::DescribeInstanceAttributeOutputBuilder,
44) -> std::result::Result<
45 crate::operation::describe_instance_attribute::builders::DescribeInstanceAttributeOutputBuilder,
46 ::aws_smithy_xml::decode::XmlDecodeError,
47> {
48 let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
49
50 #[allow(unused_mut)]
51 let mut decoder = doc.root_element()?;
52 #[allow(unused_variables)]
53 let start_el = decoder.start_el();
54 if !(start_el.matches("DescribeInstanceAttributeResponse")) {
55 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
56 "invalid root, expected DescribeInstanceAttributeResponse got {:?}",
57 start_el
58 )));
59 }
60 while let Some(mut tag) = decoder.next_tag() {
61 match tag.start_el() {
62 s if s.matches("blockDeviceMapping") => {
63 let var_1 =
64 Some(
65 crate::protocol_serde::shape_instance_block_device_mapping_list::de_instance_block_device_mapping_list(&mut tag)
66 ?
67 )
68 ;
69 builder = builder.set_block_device_mappings(var_1);
70 }
71 ,
72 s if s.matches("disableApiTermination") => {
73 let var_2 =
74 Some(
75 crate::protocol_serde::shape_attribute_boolean_value::de_attribute_boolean_value(&mut tag)
76 ?
77 )
78 ;
79 builder = builder.set_disable_api_termination(var_2);
80 }
81 ,
82 s if s.matches("enaSupport") => {
83 let var_3 =
84 Some(
85 crate::protocol_serde::shape_attribute_boolean_value::de_attribute_boolean_value(&mut tag)
86 ?
87 )
88 ;
89 builder = builder.set_ena_support(var_3);
90 }
91 ,
92 s if s.matches("enclaveOptions") => {
93 let var_4 =
94 Some(
95 crate::protocol_serde::shape_enclave_options::de_enclave_options(&mut tag)
96 ?
97 )
98 ;
99 builder = builder.set_enclave_options(var_4);
100 }
101 ,
102 s if s.matches("ebsOptimized") => {
103 let var_5 =
104 Some(
105 crate::protocol_serde::shape_attribute_boolean_value::de_attribute_boolean_value(&mut tag)
106 ?
107 )
108 ;
109 builder = builder.set_ebs_optimized(var_5);
110 }
111 ,
112 s if s.matches("instanceId") => {
113 let var_6 =
114 Some(
115 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
116 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
117 .into()
118 )
119 ?
120 )
121 ;
122 builder = builder.set_instance_id(var_6);
123 }
124 ,
125 s if s.matches("instanceInitiatedShutdownBehavior") => {
126 let var_7 =
127 Some(
128 crate::protocol_serde::shape_attribute_value::de_attribute_value(&mut tag)
129 ?
130 )
131 ;
132 builder = builder.set_instance_initiated_shutdown_behavior(var_7);
133 }
134 ,
135 s if s.matches("instanceType") => {
136 let var_8 =
137 Some(
138 crate::protocol_serde::shape_attribute_value::de_attribute_value(&mut tag)
139 ?
140 )
141 ;
142 builder = builder.set_instance_type(var_8);
143 }
144 ,
145 s if s.matches("kernel") => {
146 let var_9 =
147 Some(
148 crate::protocol_serde::shape_attribute_value::de_attribute_value(&mut tag)
149 ?
150 )
151 ;
152 builder = builder.set_kernel_id(var_9);
153 }
154 ,
155 s if s.matches("productCodes") => {
156 let var_10 =
157 Some(
158 crate::protocol_serde::shape_product_code_list::de_product_code_list(&mut tag)
159 ?
160 )
161 ;
162 builder = builder.set_product_codes(var_10);
163 }
164 ,
165 s if s.matches("ramdisk") => {
166 let var_11 =
167 Some(
168 crate::protocol_serde::shape_attribute_value::de_attribute_value(&mut tag)
169 ?
170 )
171 ;
172 builder = builder.set_ramdisk_id(var_11);
173 }
174 ,
175 s if s.matches("rootDeviceName") => {
176 let var_12 =
177 Some(
178 crate::protocol_serde::shape_attribute_value::de_attribute_value(&mut tag)
179 ?
180 )
181 ;
182 builder = builder.set_root_device_name(var_12);
183 }
184 ,
185 s if s.matches("sourceDestCheck") => {
186 let var_13 =
187 Some(
188 crate::protocol_serde::shape_attribute_boolean_value::de_attribute_boolean_value(&mut tag)
189 ?
190 )
191 ;
192 builder = builder.set_source_dest_check(var_13);
193 }
194 ,
195 s if s.matches("sriovNetSupport") => {
196 let var_14 =
197 Some(
198 crate::protocol_serde::shape_attribute_value::de_attribute_value(&mut tag)
199 ?
200 )
201 ;
202 builder = builder.set_sriov_net_support(var_14);
203 }
204 ,
205 s if s.matches("userData") => {
206 let var_15 =
207 Some(
208 crate::protocol_serde::shape_attribute_value::de_attribute_value(&mut tag)
209 ?
210 )
211 ;
212 builder = builder.set_user_data(var_15);
213 }
214 ,
215 s if s.matches("disableApiStop") => {
216 let var_16 =
217 Some(
218 crate::protocol_serde::shape_attribute_boolean_value::de_attribute_boolean_value(&mut tag)
219 ?
220 )
221 ;
222 builder = builder.set_disable_api_stop(var_16);
223 }
224 ,
225 s if s.matches("groupSet") => {
226 let var_17 =
227 Some(
228 crate::protocol_serde::shape_group_identifier_list::de_group_identifier_list(&mut tag)
229 ?
230 )
231 ;
232 builder = builder.set_groups(var_17);
233 }
234 ,
235 _ => {}
236 }
237 }
238 Ok(builder)
239}