aws_sdk_s3/protocol_serde/
shape_delete_objects.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(clippy::unnecessary_wraps)]
3pub fn de_delete_objects_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::delete_objects::DeleteObjectsOutput, crate::operation::delete_objects::DeleteObjectsError> {
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::delete_objects::DeleteObjectsError::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::delete_objects::DeleteObjectsError::generic(generic))
15}
16
17#[allow(clippy::unnecessary_wraps)]
18pub fn de_delete_objects_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::delete_objects::DeleteObjectsOutput, crate::operation::delete_objects::DeleteObjectsError> {
23    Ok({
24        #[allow(unused_mut)]
25        let mut output = crate::operation::delete_objects::builders::DeleteObjectsOutputBuilder::default();
26        output = crate::protocol_serde::shape_delete_objects::de_delete_objects(_response_body, output)
27            .map_err(crate::operation::delete_objects::DeleteObjectsError::unhandled)?;
28        output = output.set_request_charged(
29            crate::protocol_serde::shape_delete_objects_output::de_request_charged_header(_response_headers).map_err(|_| {
30                crate::operation::delete_objects::DeleteObjectsError::unhandled("Failed to parse RequestCharged from header `x-amz-request-charged")
31            })?,
32        );
33        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
34        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
35        output.build()
36    })
37}
38
39pub fn ser_delete_objects_headers(
40    input: &crate::operation::delete_objects::DeleteObjectsInput,
41    mut builder: ::http::request::Builder,
42) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
43    if let ::std::option::Option::Some(inner_1) = &input.mfa {
44        let formatted_2 = inner_1.as_str();
45        let header_value = formatted_2;
46        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
47            ::aws_smithy_types::error::operation::BuildError::invalid_field(
48                "mfa",
49                format!("`{}` cannot be used as a header value: {}", &header_value, err),
50            )
51        })?;
52        builder = builder.header("x-amz-mfa", header_value);
53    }
54    if let ::std::option::Option::Some(inner_3) = &input.request_payer {
55        let formatted_4 = inner_3.as_str();
56        let header_value = formatted_4;
57        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
58            ::aws_smithy_types::error::operation::BuildError::invalid_field(
59                "request_payer",
60                format!("`{}` cannot be used as a header value: {}", &header_value, err),
61            )
62        })?;
63        builder = builder.header("x-amz-request-payer", header_value);
64    }
65    if let ::std::option::Option::Some(inner_5) = &input.bypass_governance_retention {
66        let mut encoder = ::aws_smithy_types::primitive::Encoder::from(*inner_5);
67        let formatted_6 = encoder.encode();
68        let header_value = formatted_6;
69        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
70            ::aws_smithy_types::error::operation::BuildError::invalid_field(
71                "bypass_governance_retention",
72                format!("`{}` cannot be used as a header value: {}", &header_value, err),
73            )
74        })?;
75        builder = builder.header("x-amz-bypass-governance-retention", header_value);
76    }
77    if let ::std::option::Option::Some(inner_7) = &input.expected_bucket_owner {
78        let formatted_8 = inner_7.as_str();
79        let header_value = formatted_8;
80        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
81            ::aws_smithy_types::error::operation::BuildError::invalid_field(
82                "expected_bucket_owner",
83                format!("`{}` cannot be used as a header value: {}", &header_value, err),
84            )
85        })?;
86        builder = builder.header("x-amz-expected-bucket-owner", header_value);
87    }
88    if let ::std::option::Option::Some(inner_9) = &input.checksum_algorithm {
89        let formatted_10 = inner_9.as_str();
90        let header_value = formatted_10;
91        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
92            ::aws_smithy_types::error::operation::BuildError::invalid_field(
93                "checksum_algorithm",
94                format!("`{}` cannot be used as a header value: {}", &header_value, err),
95            )
96        })?;
97        builder = builder.header("x-amz-sdk-checksum-algorithm", header_value);
98    }
99    Ok(builder)
100}
101
102#[allow(unused_mut)]
103pub fn de_delete_objects(
104    inp: &[u8],
105    mut builder: crate::operation::delete_objects::builders::DeleteObjectsOutputBuilder,
106) -> std::result::Result<crate::operation::delete_objects::builders::DeleteObjectsOutputBuilder, ::aws_smithy_xml::decode::XmlDecodeError> {
107    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
108
109    #[allow(unused_mut)]
110    let mut decoder = doc.root_element()?;
111    #[allow(unused_variables)]
112    let start_el = decoder.start_el();
113    if !start_el.matches("DeleteResult") {
114        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
115            "encountered invalid XML root: expected DeleteResult but got {:?}. This is likely a bug in the SDK.",
116            start_el
117        )));
118    }
119    while let Some(mut tag) = decoder.next_tag() {
120        match tag.start_el() {
121            s if s.matches("Error") /* Errors com.amazonaws.s3.synthetic#DeleteObjectsOutput$Errors */ =>  {
122                let var_11 =
123                    Some(
124                        Result::<::std::vec::Vec::<crate::types::Error>, ::aws_smithy_xml::decode::XmlDecodeError>::Ok({
125                            let mut list_12 = builder.errors.take().unwrap_or_default();
126                            list_12.push(
127                                crate::protocol_serde::shape_error::de_error(&mut tag)
128                                ?
129                            );
130                            list_12
131                        })
132                        ?
133                    )
134                ;
135                builder = builder.set_errors(var_11);
136            }
137            ,
138            s if s.matches("Deleted") /* Deleted com.amazonaws.s3.synthetic#DeleteObjectsOutput$Deleted */ =>  {
139                let var_13 =
140                    Some(
141                        Result::<::std::vec::Vec::<crate::types::DeletedObject>, ::aws_smithy_xml::decode::XmlDecodeError>::Ok({
142                            let mut list_14 = builder.deleted.take().unwrap_or_default();
143                            list_14.push(
144                                crate::protocol_serde::shape_deleted_object::de_deleted_object(&mut tag)
145                                ?
146                            );
147                            list_14
148                        })
149                        ?
150                    )
151                ;
152                builder = builder.set_deleted(var_13);
153            }
154            ,
155            _ => {}
156        }
157    }
158    Ok(builder)
159}