aws_sdk_s3/protocol_serde/
shape_upload_part_copy.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(clippy::unnecessary_wraps)]
3pub fn de_upload_part_copy_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::upload_part_copy::UploadPartCopyOutput, crate::operation::upload_part_copy::UploadPartCopyError> {
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::upload_part_copy::UploadPartCopyError::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::upload_part_copy::UploadPartCopyError::generic(generic))
15}
16
17#[allow(clippy::unnecessary_wraps)]
18pub fn de_upload_part_copy_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::upload_part_copy::UploadPartCopyOutput, crate::operation::upload_part_copy::UploadPartCopyError> {
23    Ok({
24        #[allow(unused_mut)]
25        let mut output = crate::operation::upload_part_copy::builders::UploadPartCopyOutputBuilder::default();
26        output = output.set_bucket_key_enabled(
27            crate::protocol_serde::shape_upload_part_copy_output::de_bucket_key_enabled_header(_response_headers).map_err(|_| {
28                crate::operation::upload_part_copy::UploadPartCopyError::unhandled(
29                    "Failed to parse BucketKeyEnabled from header `x-amz-server-side-encryption-bucket-key-enabled",
30                )
31            })?,
32        );
33        output = output.set_copy_part_result(crate::protocol_serde::shape_upload_part_copy_output::de_copy_part_result_payload(
34            _response_body,
35        )?);
36        output = output.set_copy_source_version_id(
37            crate::protocol_serde::shape_upload_part_copy_output::de_copy_source_version_id_header(_response_headers).map_err(|_| {
38                crate::operation::upload_part_copy::UploadPartCopyError::unhandled(
39                    "Failed to parse CopySourceVersionId from header `x-amz-copy-source-version-id",
40                )
41            })?,
42        );
43        output = output.set_request_charged(
44            crate::protocol_serde::shape_upload_part_copy_output::de_request_charged_header(_response_headers).map_err(|_| {
45                crate::operation::upload_part_copy::UploadPartCopyError::unhandled(
46                    "Failed to parse RequestCharged from header `x-amz-request-charged",
47                )
48            })?,
49        );
50        output = output.set_sse_customer_algorithm(
51            crate::protocol_serde::shape_upload_part_copy_output::de_sse_customer_algorithm_header(_response_headers).map_err(|_| {
52                crate::operation::upload_part_copy::UploadPartCopyError::unhandled(
53                    "Failed to parse SSECustomerAlgorithm from header `x-amz-server-side-encryption-customer-algorithm",
54                )
55            })?,
56        );
57        output = output.set_sse_customer_key_md5(
58            crate::protocol_serde::shape_upload_part_copy_output::de_sse_customer_key_md5_header(_response_headers).map_err(|_| {
59                crate::operation::upload_part_copy::UploadPartCopyError::unhandled(
60                    "Failed to parse SSECustomerKeyMD5 from header `x-amz-server-side-encryption-customer-key-MD5",
61                )
62            })?,
63        );
64        output = output.set_ssekms_key_id(
65            crate::protocol_serde::shape_upload_part_copy_output::de_ssekms_key_id_header(_response_headers).map_err(|_| {
66                crate::operation::upload_part_copy::UploadPartCopyError::unhandled(
67                    "Failed to parse SSEKMSKeyId from header `x-amz-server-side-encryption-aws-kms-key-id",
68                )
69            })?,
70        );
71        output = output.set_server_side_encryption(
72            crate::protocol_serde::shape_upload_part_copy_output::de_server_side_encryption_header(_response_headers).map_err(|_| {
73                crate::operation::upload_part_copy::UploadPartCopyError::unhandled(
74                    "Failed to parse ServerSideEncryption from header `x-amz-server-side-encryption",
75                )
76            })?,
77        );
78        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
79        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
80        output.build()
81    })
82}
83
84pub fn ser_upload_part_copy_headers(
85    input: &crate::operation::upload_part_copy::UploadPartCopyInput,
86    mut builder: ::http::request::Builder,
87) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
88    if let ::std::option::Option::Some(inner_1) = &input.copy_source {
89        let formatted_2 = inner_1.as_str();
90        let header_value = formatted_2;
91        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
92            ::aws_smithy_types::error::operation::BuildError::invalid_field(
93                "copy_source",
94                format!("`{}` cannot be used as a header value: {}", &header_value, err),
95            )
96        })?;
97        builder = builder.header("x-amz-copy-source", header_value);
98    }
99    if let ::std::option::Option::Some(inner_3) = &input.copy_source_if_match {
100        let formatted_4 = inner_3.as_str();
101        let header_value = formatted_4;
102        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
103            ::aws_smithy_types::error::operation::BuildError::invalid_field(
104                "copy_source_if_match",
105                format!("`{}` cannot be used as a header value: {}", &header_value, err),
106            )
107        })?;
108        builder = builder.header("x-amz-copy-source-if-match", header_value);
109    }
110    if let ::std::option::Option::Some(inner_5) = &input.copy_source_if_modified_since {
111        let formatted_6 = inner_5.fmt(::aws_smithy_types::date_time::Format::HttpDate)?;
112        let header_value = formatted_6;
113        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
114            ::aws_smithy_types::error::operation::BuildError::invalid_field(
115                "copy_source_if_modified_since",
116                format!("`{}` cannot be used as a header value: {}", &header_value, err),
117            )
118        })?;
119        builder = builder.header("x-amz-copy-source-if-modified-since", header_value);
120    }
121    if let ::std::option::Option::Some(inner_7) = &input.copy_source_if_none_match {
122        let formatted_8 = inner_7.as_str();
123        let header_value = formatted_8;
124        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
125            ::aws_smithy_types::error::operation::BuildError::invalid_field(
126                "copy_source_if_none_match",
127                format!("`{}` cannot be used as a header value: {}", &header_value, err),
128            )
129        })?;
130        builder = builder.header("x-amz-copy-source-if-none-match", header_value);
131    }
132    if let ::std::option::Option::Some(inner_9) = &input.copy_source_if_unmodified_since {
133        let formatted_10 = inner_9.fmt(::aws_smithy_types::date_time::Format::HttpDate)?;
134        let header_value = formatted_10;
135        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
136            ::aws_smithy_types::error::operation::BuildError::invalid_field(
137                "copy_source_if_unmodified_since",
138                format!("`{}` cannot be used as a header value: {}", &header_value, err),
139            )
140        })?;
141        builder = builder.header("x-amz-copy-source-if-unmodified-since", header_value);
142    }
143    if let ::std::option::Option::Some(inner_11) = &input.copy_source_range {
144        let formatted_12 = inner_11.as_str();
145        let header_value = formatted_12;
146        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
147            ::aws_smithy_types::error::operation::BuildError::invalid_field(
148                "copy_source_range",
149                format!("`{}` cannot be used as a header value: {}", &header_value, err),
150            )
151        })?;
152        builder = builder.header("x-amz-copy-source-range", header_value);
153    }
154    if let ::std::option::Option::Some(inner_13) = &input.sse_customer_algorithm {
155        let formatted_14 = inner_13.as_str();
156        let header_value = formatted_14;
157        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
158            ::aws_smithy_types::error::operation::BuildError::invalid_field(
159                "sse_customer_algorithm",
160                format!("`{}` cannot be used as a header value: {}", &header_value, err),
161            )
162        })?;
163        builder = builder.header("x-amz-server-side-encryption-customer-algorithm", header_value);
164    }
165    if let ::std::option::Option::Some(inner_15) = &input.sse_customer_key {
166        let formatted_16 = inner_15.as_str();
167        let header_value = formatted_16;
168        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
169            ::aws_smithy_types::error::operation::BuildError::invalid_field(
170                "sse_customer_key",
171                format!("`{}` cannot be used as a header value: {}", &"*** Sensitive Data Redacted ***", err),
172            )
173        })?;
174        builder = builder.header("x-amz-server-side-encryption-customer-key", header_value);
175    }
176    if let ::std::option::Option::Some(inner_17) = &input.sse_customer_key_md5 {
177        let formatted_18 = inner_17.as_str();
178        let header_value = formatted_18;
179        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
180            ::aws_smithy_types::error::operation::BuildError::invalid_field(
181                "sse_customer_key_md5",
182                format!("`{}` cannot be used as a header value: {}", &header_value, err),
183            )
184        })?;
185        builder = builder.header("x-amz-server-side-encryption-customer-key-MD5", header_value);
186    }
187    if let ::std::option::Option::Some(inner_19) = &input.copy_source_sse_customer_algorithm {
188        let formatted_20 = inner_19.as_str();
189        let header_value = formatted_20;
190        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
191            ::aws_smithy_types::error::operation::BuildError::invalid_field(
192                "copy_source_sse_customer_algorithm",
193                format!("`{}` cannot be used as a header value: {}", &header_value, err),
194            )
195        })?;
196        builder = builder.header("x-amz-copy-source-server-side-encryption-customer-algorithm", header_value);
197    }
198    if let ::std::option::Option::Some(inner_21) = &input.copy_source_sse_customer_key {
199        let formatted_22 = inner_21.as_str();
200        let header_value = formatted_22;
201        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
202            ::aws_smithy_types::error::operation::BuildError::invalid_field(
203                "copy_source_sse_customer_key",
204                format!("`{}` cannot be used as a header value: {}", &"*** Sensitive Data Redacted ***", err),
205            )
206        })?;
207        builder = builder.header("x-amz-copy-source-server-side-encryption-customer-key", header_value);
208    }
209    if let ::std::option::Option::Some(inner_23) = &input.copy_source_sse_customer_key_md5 {
210        let formatted_24 = inner_23.as_str();
211        let header_value = formatted_24;
212        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
213            ::aws_smithy_types::error::operation::BuildError::invalid_field(
214                "copy_source_sse_customer_key_md5",
215                format!("`{}` cannot be used as a header value: {}", &header_value, err),
216            )
217        })?;
218        builder = builder.header("x-amz-copy-source-server-side-encryption-customer-key-MD5", header_value);
219    }
220    if let ::std::option::Option::Some(inner_25) = &input.request_payer {
221        let formatted_26 = inner_25.as_str();
222        let header_value = formatted_26;
223        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
224            ::aws_smithy_types::error::operation::BuildError::invalid_field(
225                "request_payer",
226                format!("`{}` cannot be used as a header value: {}", &header_value, err),
227            )
228        })?;
229        builder = builder.header("x-amz-request-payer", header_value);
230    }
231    if let ::std::option::Option::Some(inner_27) = &input.expected_bucket_owner {
232        let formatted_28 = inner_27.as_str();
233        let header_value = formatted_28;
234        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
235            ::aws_smithy_types::error::operation::BuildError::invalid_field(
236                "expected_bucket_owner",
237                format!("`{}` cannot be used as a header value: {}", &header_value, err),
238            )
239        })?;
240        builder = builder.header("x-amz-expected-bucket-owner", header_value);
241    }
242    if let ::std::option::Option::Some(inner_29) = &input.expected_source_bucket_owner {
243        let formatted_30 = inner_29.as_str();
244        let header_value = formatted_30;
245        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
246            ::aws_smithy_types::error::operation::BuildError::invalid_field(
247                "expected_source_bucket_owner",
248                format!("`{}` cannot be used as a header value: {}", &header_value, err),
249            )
250        })?;
251        builder = builder.header("x-amz-source-expected-bucket-owner", header_value);
252    }
253    Ok(builder)
254}