aws_sdk_redshift/protocol_serde/
shape_authorize_snapshot_access.rs1#[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") => {
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}