aws_sdk_redshift/protocol_serde/
shape_authorize_snapshot_access.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(clippy::unnecessary_wraps)]
3pub fn de_authorize_snapshot_access_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::authorize_snapshot_access::AuthorizeSnapshotAccessOutput,
9    crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessError,
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::authorize_snapshot_access::AuthorizeSnapshotAccessError::unhandled)?;
14    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
15    let generic = generic_builder.build();
16    let error_code = match generic.code() {
17        Some(code) => code,
18        None => {
19            return Err(crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessError::unhandled(
20                generic,
21            ))
22        }
23    };
24
25    let _error_message = generic.message().map(|msg| msg.to_owned());
26    Err(match error_code {
27        "AuthorizationAlreadyExists" => crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessError::AuthorizationAlreadyExistsFault({
28            #[allow(unused_mut)]
29            let mut tmp = {
30                #[allow(unused_mut)]
31                let mut output = crate::types::error::builders::AuthorizationAlreadyExistsFaultBuilder::default();
32                output = crate::protocol_serde::shape_authorization_already_exists_fault::de_authorization_already_exists_fault_xml_err(
33                    _response_body,
34                    output,
35                )
36                .map_err(crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessError::unhandled)?;
37                let output = output.meta(generic);
38                output.build()
39            };
40            if tmp.message.is_none() {
41                tmp.message = _error_message;
42            }
43            tmp
44        }),
45        "AuthorizationQuotaExceeded" => crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessError::AuthorizationQuotaExceededFault({
46            #[allow(unused_mut)]
47            let mut tmp = {
48                #[allow(unused_mut)]
49                let mut output = crate::types::error::builders::AuthorizationQuotaExceededFaultBuilder::default();
50                output = crate::protocol_serde::shape_authorization_quota_exceeded_fault::de_authorization_quota_exceeded_fault_xml_err(
51                    _response_body,
52                    output,
53                )
54                .map_err(crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessError::unhandled)?;
55                let output = output.meta(generic);
56                output.build()
57            };
58            if tmp.message.is_none() {
59                tmp.message = _error_message;
60            }
61            tmp
62        }),
63        "ClusterSnapshotNotFound" => crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessError::ClusterSnapshotNotFoundFault({
64            #[allow(unused_mut)]
65            let mut tmp = {
66                #[allow(unused_mut)]
67                let mut output = crate::types::error::builders::ClusterSnapshotNotFoundFaultBuilder::default();
68                output = crate::protocol_serde::shape_cluster_snapshot_not_found_fault::de_cluster_snapshot_not_found_fault_xml_err(
69                    _response_body,
70                    output,
71                )
72                .map_err(crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessError::unhandled)?;
73                let output = output.meta(generic);
74                output.build()
75            };
76            if tmp.message.is_none() {
77                tmp.message = _error_message;
78            }
79            tmp
80        }),
81        "DependentServiceRequestThrottlingFault" => {
82            crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessError::DependentServiceRequestThrottlingFault({
83                #[allow(unused_mut)]
84                let mut tmp = {
85                    #[allow(unused_mut)]
86                    let mut output = crate::types::error::builders::DependentServiceRequestThrottlingFaultBuilder::default();
87                    output = crate::protocol_serde::shape_dependent_service_request_throttling_fault::de_dependent_service_request_throttling_fault_xml_err(_response_body, output).map_err(crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessError::unhandled)?;
88                    let output = output.meta(generic);
89                    output.build()
90                };
91                if tmp.message.is_none() {
92                    tmp.message = _error_message;
93                }
94                tmp
95            })
96        }
97        "InvalidClusterSnapshotState" => {
98            crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessError::InvalidClusterSnapshotStateFault({
99                #[allow(unused_mut)]
100                let mut tmp = {
101                    #[allow(unused_mut)]
102                    let mut output = crate::types::error::builders::InvalidClusterSnapshotStateFaultBuilder::default();
103                    output = crate::protocol_serde::shape_invalid_cluster_snapshot_state_fault::de_invalid_cluster_snapshot_state_fault_xml_err(
104                        _response_body,
105                        output,
106                    )
107                    .map_err(crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessError::unhandled)?;
108                    let output = output.meta(generic);
109                    output.build()
110                };
111                if tmp.message.is_none() {
112                    tmp.message = _error_message;
113                }
114                tmp
115            })
116        }
117        "LimitExceededFault" => crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessError::LimitExceededFault({
118            #[allow(unused_mut)]
119            let mut tmp = {
120                #[allow(unused_mut)]
121                let mut output = crate::types::error::builders::LimitExceededFaultBuilder::default();
122                output = crate::protocol_serde::shape_limit_exceeded_fault::de_limit_exceeded_fault_xml_err(_response_body, output)
123                    .map_err(crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessError::unhandled)?;
124                let output = output.meta(generic);
125                output.build()
126            };
127            if tmp.message.is_none() {
128                tmp.message = _error_message;
129            }
130            tmp
131        }),
132        "UnsupportedOperation" => crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessError::UnsupportedOperationFault({
133            #[allow(unused_mut)]
134            let mut tmp = {
135                #[allow(unused_mut)]
136                let mut output = crate::types::error::builders::UnsupportedOperationFaultBuilder::default();
137                output = crate::protocol_serde::shape_unsupported_operation_fault::de_unsupported_operation_fault_xml_err(_response_body, output)
138                    .map_err(crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessError::unhandled)?;
139                let output = output.meta(generic);
140                output.build()
141            };
142            if tmp.message.is_none() {
143                tmp.message = _error_message;
144            }
145            tmp
146        }),
147        _ => crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessError::generic(generic),
148    })
149}
150
151#[allow(clippy::unnecessary_wraps)]
152pub fn de_authorize_snapshot_access_http_response(
153    _response_status: u16,
154    _response_headers: &::aws_smithy_runtime_api::http::Headers,
155    _response_body: &[u8],
156) -> std::result::Result<
157    crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessOutput,
158    crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessError,
159> {
160    Ok({
161        #[allow(unused_mut)]
162        let mut output = crate::operation::authorize_snapshot_access::builders::AuthorizeSnapshotAccessOutputBuilder::default();
163        output = crate::protocol_serde::shape_authorize_snapshot_access::de_authorize_snapshot_access(_response_body, output)
164            .map_err(crate::operation::authorize_snapshot_access::AuthorizeSnapshotAccessError::unhandled)?;
165        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
166        output.build()
167    })
168}
169
170#[allow(unused_mut)]
171pub fn de_authorize_snapshot_access(
172    inp: &[u8],
173    mut builder: crate::operation::authorize_snapshot_access::builders::AuthorizeSnapshotAccessOutputBuilder,
174) -> std::result::Result<
175    crate::operation::authorize_snapshot_access::builders::AuthorizeSnapshotAccessOutputBuilder,
176    ::aws_smithy_xml::decode::XmlDecodeError,
177> {
178    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
179
180    #[allow(unused_mut)]
181    let mut decoder = doc.root_element()?;
182    #[allow(unused_variables)]
183    let start_el = decoder.start_el();
184    if !(start_el.matches("AuthorizeSnapshotAccessResponse")) {
185        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
186            "invalid root, expected AuthorizeSnapshotAccessResponse got {:?}",
187            start_el
188        )));
189    }
190    if let Some(mut result_tag) = decoder.next_tag() {
191        let start_el = result_tag.start_el();
192        if !(start_el.matches("AuthorizeSnapshotAccessResult")) {
193            return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
194                "invalid result, expected AuthorizeSnapshotAccessResult got {:?}",
195                start_el
196            )));
197        }
198        while let Some(mut tag) = result_tag.next_tag() {
199            match tag.start_el() {
200            s if s.matches("Snapshot") /* Snapshot com.amazonaws.redshift.synthetic#AuthorizeSnapshotAccessOutput$Snapshot */ =>  {
201                let var_1 =
202                    Some(
203                        crate::protocol_serde::shape_snapshot::de_snapshot(&mut tag)
204                        ?
205                    )
206                ;
207                builder = builder.set_snapshot(var_1);
208            }
209            ,
210            _ => {}
211        }
212        }
213    } else {
214        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(
215            "expected AuthorizeSnapshotAccessResult tag",
216        ));
217    };
218    Ok(builder)
219}