aws_sdk_s3/protocol_serde/
shape_list_parts.rs1#[allow(clippy::unnecessary_wraps)]
3pub fn de_list_parts_http_error(
4 _response_status: u16,
5 _response_headers: &::aws_smithy_runtime_api::http::Headers,
6 _response_body: &[u8],
7) -> std::result::Result<crate::operation::list_parts::ListPartsOutput, crate::operation::list_parts::ListPartsError> {
8 #[allow(unused_mut)]
9 let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
10 .map_err(crate::operation::list_parts::ListPartsError::unhandled)?;
11 generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
12 generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
13 let generic = generic_builder.build();
14 Err(crate::operation::list_parts::ListPartsError::generic(generic))
15}
16
17#[allow(clippy::unnecessary_wraps)]
18pub fn de_list_parts_http_response(
19 _response_status: u16,
20 _response_headers: &::aws_smithy_runtime_api::http::Headers,
21 _response_body: &[u8],
22) -> std::result::Result<crate::operation::list_parts::ListPartsOutput, crate::operation::list_parts::ListPartsError> {
23 Ok({
24 #[allow(unused_mut)]
25 let mut output = crate::operation::list_parts::builders::ListPartsOutputBuilder::default();
26 output = crate::protocol_serde::shape_list_parts::de_list_parts(_response_body, output)
27 .map_err(crate::operation::list_parts::ListPartsError::unhandled)?;
28 output = output.set_abort_date(
29 crate::protocol_serde::shape_list_parts_output::de_abort_date_header(_response_headers)
30 .map_err(|_| crate::operation::list_parts::ListPartsError::unhandled("Failed to parse AbortDate from header `x-amz-abort-date"))?,
31 );
32 output = output.set_abort_rule_id(
33 crate::protocol_serde::shape_list_parts_output::de_abort_rule_id_header(_response_headers).map_err(|_| {
34 crate::operation::list_parts::ListPartsError::unhandled("Failed to parse AbortRuleId from header `x-amz-abort-rule-id")
35 })?,
36 );
37 output = output.set_request_charged(
38 crate::protocol_serde::shape_list_parts_output::de_request_charged_header(_response_headers).map_err(|_| {
39 crate::operation::list_parts::ListPartsError::unhandled("Failed to parse RequestCharged from header `x-amz-request-charged")
40 })?,
41 );
42 output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
43 output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
44 output.build()
45 })
46}
47
48pub fn ser_list_parts_headers(
49 input: &crate::operation::list_parts::ListPartsInput,
50 mut builder: ::http::request::Builder,
51) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
52 if let ::std::option::Option::Some(inner_1) = &input.request_payer {
53 let formatted_2 = inner_1.as_str();
54 let header_value = formatted_2;
55 let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
56 ::aws_smithy_types::error::operation::BuildError::invalid_field(
57 "request_payer",
58 format!("`{}` cannot be used as a header value: {}", &header_value, err),
59 )
60 })?;
61 builder = builder.header("x-amz-request-payer", header_value);
62 }
63 if let ::std::option::Option::Some(inner_3) = &input.expected_bucket_owner {
64 let formatted_4 = inner_3.as_str();
65 let header_value = formatted_4;
66 let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
67 ::aws_smithy_types::error::operation::BuildError::invalid_field(
68 "expected_bucket_owner",
69 format!("`{}` cannot be used as a header value: {}", &header_value, err),
70 )
71 })?;
72 builder = builder.header("x-amz-expected-bucket-owner", header_value);
73 }
74 if let ::std::option::Option::Some(inner_5) = &input.sse_customer_algorithm {
75 let formatted_6 = inner_5.as_str();
76 let header_value = formatted_6;
77 let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
78 ::aws_smithy_types::error::operation::BuildError::invalid_field(
79 "sse_customer_algorithm",
80 format!("`{}` cannot be used as a header value: {}", &header_value, err),
81 )
82 })?;
83 builder = builder.header("x-amz-server-side-encryption-customer-algorithm", header_value);
84 }
85 if let ::std::option::Option::Some(inner_7) = &input.sse_customer_key {
86 let formatted_8 = inner_7.as_str();
87 let header_value = formatted_8;
88 let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
89 ::aws_smithy_types::error::operation::BuildError::invalid_field(
90 "sse_customer_key",
91 format!("`{}` cannot be used as a header value: {}", &"*** Sensitive Data Redacted ***", err),
92 )
93 })?;
94 builder = builder.header("x-amz-server-side-encryption-customer-key", header_value);
95 }
96 if let ::std::option::Option::Some(inner_9) = &input.sse_customer_key_md5 {
97 let formatted_10 = inner_9.as_str();
98 let header_value = formatted_10;
99 let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
100 ::aws_smithy_types::error::operation::BuildError::invalid_field(
101 "sse_customer_key_md5",
102 format!("`{}` cannot be used as a header value: {}", &header_value, err),
103 )
104 })?;
105 builder = builder.header("x-amz-server-side-encryption-customer-key-MD5", header_value);
106 }
107 Ok(builder)
108}
109
110#[allow(unused_mut)]
111pub fn de_list_parts(
112 inp: &[u8],
113 mut builder: crate::operation::list_parts::builders::ListPartsOutputBuilder,
114) -> std::result::Result<crate::operation::list_parts::builders::ListPartsOutputBuilder, ::aws_smithy_xml::decode::XmlDecodeError> {
115 let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
116
117 #[allow(unused_mut)]
118 let mut decoder = doc.root_element()?;
119 #[allow(unused_variables)]
120 let start_el = decoder.start_el();
121 if !start_el.matches("ListPartsResult") {
122 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
123 "encountered invalid XML root: expected ListPartsResult but got {start_el:?}. This is likely a bug in the SDK."
124 )));
125 }
126 while let Some(mut tag) = decoder.next_tag() {
127 match tag.start_el() {
128 s if s.matches("Owner") => {
129 let var_11 =
130 Some(
131 crate::protocol_serde::shape_owner::de_owner(&mut tag)
132 ?
133 )
134 ;
135 builder = builder.set_owner(var_11);
136 }
137 ,
138 s if s.matches("NextPartNumberMarker") => {
139 let var_12 =
140 Some(
141 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
142 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
143 .into()
144 )
145 ?
146 )
147 ;
148 builder = builder.set_next_part_number_marker(var_12);
149 }
150 ,
151 s if s.matches("StorageClass") => {
152 let var_13 =
153 Some(
154 Result::<crate::types::StorageClass, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
155 crate::types::StorageClass::from(
156 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
157 )
158 )
159 ?
160 )
161 ;
162 builder = builder.set_storage_class(var_13);
163 }
164 ,
165 s if s.matches("ChecksumAlgorithm") => {
166 let var_14 =
167 Some(
168 Result::<crate::types::ChecksumAlgorithm, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
169 crate::types::ChecksumAlgorithm::from(
170 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
171 )
172 )
173 ?
174 )
175 ;
176 builder = builder.set_checksum_algorithm(var_14);
177 }
178 ,
179 s if s.matches("IsTruncated") => {
180 let var_15 =
181 Some(
182 {
183 <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
184 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
185 )
186 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.s3#IsTruncated`)"))
187 }
188 ?
189 )
190 ;
191 builder = builder.set_is_truncated(var_15);
192 }
193 ,
194 s if s.matches("MaxParts") => {
195 let var_16 =
196 Some(
197 {
198 <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
199 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
200 )
201 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.s3#MaxParts`)"))
202 }
203 ?
204 )
205 ;
206 builder = builder.set_max_parts(var_16);
207 }
208 ,
209 s if s.matches("ChecksumType") => {
210 let var_17 =
211 Some(
212 Result::<crate::types::ChecksumType, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
213 crate::types::ChecksumType::from(
214 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
215 )
216 )
217 ?
218 )
219 ;
220 builder = builder.set_checksum_type(var_17);
221 }
222 ,
223 s if s.matches("UploadId") => {
224 let var_18 =
225 Some(
226 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
227 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
228 .into()
229 )
230 ?
231 )
232 ;
233 builder = builder.set_upload_id(var_18);
234 }
235 ,
236 s if s.matches("PartNumberMarker") => {
237 let var_19 =
238 Some(
239 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
240 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
241 .into()
242 )
243 ?
244 )
245 ;
246 builder = builder.set_part_number_marker(var_19);
247 }
248 ,
249 s if s.matches("Bucket") => {
250 let var_20 =
251 Some(
252 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
253 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
254 .into()
255 )
256 ?
257 )
258 ;
259 builder = builder.set_bucket(var_20);
260 }
261 ,
262 s if s.matches("Part") => {
263 let var_21 =
264 Some(
265 Result::<::std::vec::Vec::<crate::types::Part>, ::aws_smithy_xml::decode::XmlDecodeError>::Ok({
266 let mut list_22 = builder.parts.take().unwrap_or_default();
267 list_22.push(
268 crate::protocol_serde::shape_part::de_part(&mut tag)
269 ?
270 );
271 list_22
272 })
273 ?
274 )
275 ;
276 builder = builder.set_parts(var_21);
277 }
278 ,
279 s if s.matches("Initiator") => {
280 let var_23 =
281 Some(
282 crate::protocol_serde::shape_initiator::de_initiator(&mut tag)
283 ?
284 )
285 ;
286 builder = builder.set_initiator(var_23);
287 }
288 ,
289 s if s.matches("Key") => {
290 let var_24 =
291 Some(
292 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
293 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
294 .into()
295 )
296 ?
297 )
298 ;
299 builder = builder.set_key(var_24);
300 }
301 ,
302 _ => {}
303 }
304 }
305 Ok(builder)
306}