aws_sdk_redshift/protocol_serde/
shape_authorize_endpoint_access.rs1#[allow(clippy::unnecessary_wraps)]
3pub fn de_authorize_endpoint_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_endpoint_access::AuthorizeEndpointAccessOutput,
9 crate::operation::authorize_endpoint_access::AuthorizeEndpointAccessError,
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_endpoint_access::AuthorizeEndpointAccessError::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_endpoint_access::AuthorizeEndpointAccessError::unhandled(
20 generic,
21 ))
22 }
23 };
24
25 let _error_message = generic.message().map(|msg| msg.to_owned());
26 Err(match error_code {
27 "ClusterNotFound" => crate::operation::authorize_endpoint_access::AuthorizeEndpointAccessError::ClusterNotFoundFault({
28 #[allow(unused_mut)]
29 let mut tmp = {
30 #[allow(unused_mut)]
31 let mut output = crate::types::error::builders::ClusterNotFoundFaultBuilder::default();
32 output = crate::protocol_serde::shape_cluster_not_found_fault::de_cluster_not_found_fault_xml_err(_response_body, output)
33 .map_err(crate::operation::authorize_endpoint_access::AuthorizeEndpointAccessError::unhandled)?;
34 let output = output.meta(generic);
35 output.build()
36 };
37 if tmp.message.is_none() {
38 tmp.message = _error_message;
39 }
40 tmp
41 }),
42 "EndpointAuthorizationAlreadyExists" => {
43 crate::operation::authorize_endpoint_access::AuthorizeEndpointAccessError::EndpointAuthorizationAlreadyExistsFault({
44 #[allow(unused_mut)]
45 let mut tmp = {
46 #[allow(unused_mut)]
47 let mut output = crate::types::error::builders::EndpointAuthorizationAlreadyExistsFaultBuilder::default();
48 output = crate::protocol_serde::shape_endpoint_authorization_already_exists_fault::de_endpoint_authorization_already_exists_fault_xml_err(_response_body, output).map_err(crate::operation::authorize_endpoint_access::AuthorizeEndpointAccessError::unhandled)?;
49 let output = output.meta(generic);
50 output.build()
51 };
52 if tmp.message.is_none() {
53 tmp.message = _error_message;
54 }
55 tmp
56 })
57 }
58 "EndpointAuthorizationsPerClusterLimitExceeded" => {
59 crate::operation::authorize_endpoint_access::AuthorizeEndpointAccessError::EndpointAuthorizationsPerClusterLimitExceededFault({
60 #[allow(unused_mut)]
61 let mut tmp = {
62 #[allow(unused_mut)]
63 let mut output = crate::types::error::builders::EndpointAuthorizationsPerClusterLimitExceededFaultBuilder::default();
64 output = crate::protocol_serde::shape_endpoint_authorizations_per_cluster_limit_exceeded_fault::de_endpoint_authorizations_per_cluster_limit_exceeded_fault_xml_err(_response_body, output).map_err(crate::operation::authorize_endpoint_access::AuthorizeEndpointAccessError::unhandled)?;
65 let output = output.meta(generic);
66 output.build()
67 };
68 if tmp.message.is_none() {
69 tmp.message = _error_message;
70 }
71 tmp
72 })
73 }
74 "InvalidAuthorizationState" => crate::operation::authorize_endpoint_access::AuthorizeEndpointAccessError::InvalidAuthorizationStateFault({
75 #[allow(unused_mut)]
76 let mut tmp = {
77 #[allow(unused_mut)]
78 let mut output = crate::types::error::builders::InvalidAuthorizationStateFaultBuilder::default();
79 output = crate::protocol_serde::shape_invalid_authorization_state_fault::de_invalid_authorization_state_fault_xml_err(
80 _response_body,
81 output,
82 )
83 .map_err(crate::operation::authorize_endpoint_access::AuthorizeEndpointAccessError::unhandled)?;
84 let output = output.meta(generic);
85 output.build()
86 };
87 if tmp.message.is_none() {
88 tmp.message = _error_message;
89 }
90 tmp
91 }),
92 "InvalidClusterState" => crate::operation::authorize_endpoint_access::AuthorizeEndpointAccessError::InvalidClusterStateFault({
93 #[allow(unused_mut)]
94 let mut tmp = {
95 #[allow(unused_mut)]
96 let mut output = crate::types::error::builders::InvalidClusterStateFaultBuilder::default();
97 output = crate::protocol_serde::shape_invalid_cluster_state_fault::de_invalid_cluster_state_fault_xml_err(_response_body, output)
98 .map_err(crate::operation::authorize_endpoint_access::AuthorizeEndpointAccessError::unhandled)?;
99 let output = output.meta(generic);
100 output.build()
101 };
102 if tmp.message.is_none() {
103 tmp.message = _error_message;
104 }
105 tmp
106 }),
107 "UnsupportedOperation" => crate::operation::authorize_endpoint_access::AuthorizeEndpointAccessError::UnsupportedOperationFault({
108 #[allow(unused_mut)]
109 let mut tmp = {
110 #[allow(unused_mut)]
111 let mut output = crate::types::error::builders::UnsupportedOperationFaultBuilder::default();
112 output = crate::protocol_serde::shape_unsupported_operation_fault::de_unsupported_operation_fault_xml_err(_response_body, output)
113 .map_err(crate::operation::authorize_endpoint_access::AuthorizeEndpointAccessError::unhandled)?;
114 let output = output.meta(generic);
115 output.build()
116 };
117 if tmp.message.is_none() {
118 tmp.message = _error_message;
119 }
120 tmp
121 }),
122 _ => crate::operation::authorize_endpoint_access::AuthorizeEndpointAccessError::generic(generic),
123 })
124}
125
126#[allow(clippy::unnecessary_wraps)]
127pub fn de_authorize_endpoint_access_http_response(
128 _response_status: u16,
129 _response_headers: &::aws_smithy_runtime_api::http::Headers,
130 _response_body: &[u8],
131) -> std::result::Result<
132 crate::operation::authorize_endpoint_access::AuthorizeEndpointAccessOutput,
133 crate::operation::authorize_endpoint_access::AuthorizeEndpointAccessError,
134> {
135 Ok({
136 #[allow(unused_mut)]
137 let mut output = crate::operation::authorize_endpoint_access::builders::AuthorizeEndpointAccessOutputBuilder::default();
138 output = crate::protocol_serde::shape_authorize_endpoint_access::de_authorize_endpoint_access(_response_body, output)
139 .map_err(crate::operation::authorize_endpoint_access::AuthorizeEndpointAccessError::unhandled)?;
140 output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
141 output.build()
142 })
143}
144
145#[allow(unused_mut)]
146pub fn de_authorize_endpoint_access(
147 inp: &[u8],
148 mut builder: crate::operation::authorize_endpoint_access::builders::AuthorizeEndpointAccessOutputBuilder,
149) -> std::result::Result<
150 crate::operation::authorize_endpoint_access::builders::AuthorizeEndpointAccessOutputBuilder,
151 ::aws_smithy_xml::decode::XmlDecodeError,
152> {
153 let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
154
155 #[allow(unused_mut)]
156 let mut decoder = doc.root_element()?;
157 #[allow(unused_variables)]
158 let start_el = decoder.start_el();
159 if !(start_el.matches("AuthorizeEndpointAccessResponse")) {
160 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
161 "invalid root, expected AuthorizeEndpointAccessResponse got {:?}",
162 start_el
163 )));
164 }
165 if let Some(mut result_tag) = decoder.next_tag() {
166 let start_el = result_tag.start_el();
167 if !(start_el.matches("AuthorizeEndpointAccessResult")) {
168 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
169 "invalid result, expected AuthorizeEndpointAccessResult got {:?}",
170 start_el
171 )));
172 }
173 while let Some(mut tag) = result_tag.next_tag() {
174 match tag.start_el() {
175 s if s.matches("Grantor") => {
176 let var_1 =
177 Some(
178 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
179 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
180 .into()
181 )
182 ?
183 )
184 ;
185 builder = builder.set_grantor(var_1);
186 }
187 ,
188 s if s.matches("Grantee") => {
189 let var_2 =
190 Some(
191 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
192 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
193 .into()
194 )
195 ?
196 )
197 ;
198 builder = builder.set_grantee(var_2);
199 }
200 ,
201 s if s.matches("ClusterIdentifier") => {
202 let var_3 =
203 Some(
204 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
205 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
206 .into()
207 )
208 ?
209 )
210 ;
211 builder = builder.set_cluster_identifier(var_3);
212 }
213 ,
214 s if s.matches("AuthorizeTime") => {
215 let var_4 =
216 Some(
217 ::aws_smithy_types::DateTime::from_str(
218 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
219 , ::aws_smithy_types::date_time::Format::DateTimeWithOffset
220 )
221 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (timestamp: `com.amazonaws.redshift#TStamp`)"))
222 ?
223 )
224 ;
225 builder = builder.set_authorize_time(var_4);
226 }
227 ,
228 s if s.matches("ClusterStatus") => {
229 let var_5 =
230 Some(
231 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
232 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
233 .into()
234 )
235 ?
236 )
237 ;
238 builder = builder.set_cluster_status(var_5);
239 }
240 ,
241 s if s.matches("Status") => {
242 let var_6 =
243 Some(
244 Result::<crate::types::AuthorizationStatus, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
245 crate::types::AuthorizationStatus::from(
246 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
247 )
248 )
249 ?
250 )
251 ;
252 builder = builder.set_status(var_6);
253 }
254 ,
255 s if s.matches("AllowedAllVPCs") => {
256 let var_7 =
257 Some(
258 {
259 <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
260 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
261 )
262 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.redshift#Boolean`)"))
263 }
264 ?
265 )
266 ;
267 builder = builder.set_allowed_all_vpcs(var_7);
268 }
269 ,
270 s if s.matches("AllowedVPCs") => {
271 let var_8 =
272 Some(
273 crate::protocol_serde::shape_vpc_identifier_list::de_vpc_identifier_list(&mut tag)
274 ?
275 )
276 ;
277 builder = builder.set_allowed_vpcs(var_8);
278 }
279 ,
280 s if s.matches("EndpointCount") => {
281 let var_9 =
282 Some(
283 {
284 <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
285 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
286 )
287 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.redshift#Integer`)"))
288 }
289 ?
290 )
291 ;
292 builder = builder.set_endpoint_count(var_9);
293 }
294 ,
295 _ => {}
296 }
297 }
298 } else {
299 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(
300 "expected AuthorizeEndpointAccessResult tag",
301 ));
302 };
303 Ok(builder)
304}