aws_sdk_redshift/protocol_serde/
shape_create_integration.rs1#[allow(clippy::unnecessary_wraps)]
3pub fn de_create_integration_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::create_integration::CreateIntegrationOutput, crate::operation::create_integration::CreateIntegrationError>
8{
9 #[allow(unused_mut)]
10 let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
11 .map_err(crate::operation::create_integration::CreateIntegrationError::unhandled)?;
12 generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
13 let generic = generic_builder.build();
14 let error_code = match generic.code() {
15 Some(code) => code,
16 None => return Err(crate::operation::create_integration::CreateIntegrationError::unhandled(generic)),
17 };
18
19 let _error_message = generic.message().map(|msg| msg.to_owned());
20 Err(match error_code {
21 "IntegrationAlreadyExistsFault" => crate::operation::create_integration::CreateIntegrationError::IntegrationAlreadyExistsFault({
22 #[allow(unused_mut)]
23 let mut tmp = {
24 #[allow(unused_mut)]
25 let mut output = crate::types::error::builders::IntegrationAlreadyExistsFaultBuilder::default();
26 output = crate::protocol_serde::shape_integration_already_exists_fault::de_integration_already_exists_fault_xml_err(
27 _response_body,
28 output,
29 )
30 .map_err(crate::operation::create_integration::CreateIntegrationError::unhandled)?;
31 let output = output.meta(generic);
32 output.build()
33 };
34 if tmp.message.is_none() {
35 tmp.message = _error_message;
36 }
37 tmp
38 }),
39 "IntegrationConflictOperationFault" => crate::operation::create_integration::CreateIntegrationError::IntegrationConflictOperationFault({
40 #[allow(unused_mut)]
41 let mut tmp = {
42 #[allow(unused_mut)]
43 let mut output = crate::types::error::builders::IntegrationConflictOperationFaultBuilder::default();
44 output = crate::protocol_serde::shape_integration_conflict_operation_fault::de_integration_conflict_operation_fault_xml_err(
45 _response_body,
46 output,
47 )
48 .map_err(crate::operation::create_integration::CreateIntegrationError::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 "IntegrationQuotaExceededFault" => crate::operation::create_integration::CreateIntegrationError::IntegrationQuotaExceededFault({
58 #[allow(unused_mut)]
59 let mut tmp = {
60 #[allow(unused_mut)]
61 let mut output = crate::types::error::builders::IntegrationQuotaExceededFaultBuilder::default();
62 output = crate::protocol_serde::shape_integration_quota_exceeded_fault::de_integration_quota_exceeded_fault_xml_err(
63 _response_body,
64 output,
65 )
66 .map_err(crate::operation::create_integration::CreateIntegrationError::unhandled)?;
67 let output = output.meta(generic);
68 output.build()
69 };
70 if tmp.message.is_none() {
71 tmp.message = _error_message;
72 }
73 tmp
74 }),
75 "IntegrationSourceNotFoundFault" => crate::operation::create_integration::CreateIntegrationError::IntegrationSourceNotFoundFault({
76 #[allow(unused_mut)]
77 let mut tmp = {
78 #[allow(unused_mut)]
79 let mut output = crate::types::error::builders::IntegrationSourceNotFoundFaultBuilder::default();
80 output = crate::protocol_serde::shape_integration_source_not_found_fault::de_integration_source_not_found_fault_xml_err(
81 _response_body,
82 output,
83 )
84 .map_err(crate::operation::create_integration::CreateIntegrationError::unhandled)?;
85 let output = output.meta(generic);
86 output.build()
87 };
88 if tmp.message.is_none() {
89 tmp.message = _error_message;
90 }
91 tmp
92 }),
93 "IntegrationTargetNotFoundFault" => crate::operation::create_integration::CreateIntegrationError::IntegrationTargetNotFoundFault({
94 #[allow(unused_mut)]
95 let mut tmp = {
96 #[allow(unused_mut)]
97 let mut output = crate::types::error::builders::IntegrationTargetNotFoundFaultBuilder::default();
98 output = crate::protocol_serde::shape_integration_target_not_found_fault::de_integration_target_not_found_fault_xml_err(
99 _response_body,
100 output,
101 )
102 .map_err(crate::operation::create_integration::CreateIntegrationError::unhandled)?;
103 let output = output.meta(generic);
104 output.build()
105 };
106 if tmp.message.is_none() {
107 tmp.message = _error_message;
108 }
109 tmp
110 }),
111 "InvalidClusterState" => crate::operation::create_integration::CreateIntegrationError::InvalidClusterStateFault({
112 #[allow(unused_mut)]
113 let mut tmp = {
114 #[allow(unused_mut)]
115 let mut output = crate::types::error::builders::InvalidClusterStateFaultBuilder::default();
116 output = crate::protocol_serde::shape_invalid_cluster_state_fault::de_invalid_cluster_state_fault_xml_err(_response_body, output)
117 .map_err(crate::operation::create_integration::CreateIntegrationError::unhandled)?;
118 let output = output.meta(generic);
119 output.build()
120 };
121 if tmp.message.is_none() {
122 tmp.message = _error_message;
123 }
124 tmp
125 }),
126 "InvalidTagFault" => crate::operation::create_integration::CreateIntegrationError::InvalidTagFault({
127 #[allow(unused_mut)]
128 let mut tmp = {
129 #[allow(unused_mut)]
130 let mut output = crate::types::error::builders::InvalidTagFaultBuilder::default();
131 output = crate::protocol_serde::shape_invalid_tag_fault::de_invalid_tag_fault_xml_err(_response_body, output)
132 .map_err(crate::operation::create_integration::CreateIntegrationError::unhandled)?;
133 let output = output.meta(generic);
134 output.build()
135 };
136 if tmp.message.is_none() {
137 tmp.message = _error_message;
138 }
139 tmp
140 }),
141 "TagLimitExceededFault" => crate::operation::create_integration::CreateIntegrationError::TagLimitExceededFault({
142 #[allow(unused_mut)]
143 let mut tmp = {
144 #[allow(unused_mut)]
145 let mut output = crate::types::error::builders::TagLimitExceededFaultBuilder::default();
146 output = crate::protocol_serde::shape_tag_limit_exceeded_fault::de_tag_limit_exceeded_fault_xml_err(_response_body, output)
147 .map_err(crate::operation::create_integration::CreateIntegrationError::unhandled)?;
148 let output = output.meta(generic);
149 output.build()
150 };
151 if tmp.message.is_none() {
152 tmp.message = _error_message;
153 }
154 tmp
155 }),
156 "UnsupportedOperation" => crate::operation::create_integration::CreateIntegrationError::UnsupportedOperationFault({
157 #[allow(unused_mut)]
158 let mut tmp = {
159 #[allow(unused_mut)]
160 let mut output = crate::types::error::builders::UnsupportedOperationFaultBuilder::default();
161 output = crate::protocol_serde::shape_unsupported_operation_fault::de_unsupported_operation_fault_xml_err(_response_body, output)
162 .map_err(crate::operation::create_integration::CreateIntegrationError::unhandled)?;
163 let output = output.meta(generic);
164 output.build()
165 };
166 if tmp.message.is_none() {
167 tmp.message = _error_message;
168 }
169 tmp
170 }),
171 _ => crate::operation::create_integration::CreateIntegrationError::generic(generic),
172 })
173}
174
175#[allow(clippy::unnecessary_wraps)]
176pub fn de_create_integration_http_response(
177 _response_status: u16,
178 _response_headers: &::aws_smithy_runtime_api::http::Headers,
179 _response_body: &[u8],
180) -> std::result::Result<crate::operation::create_integration::CreateIntegrationOutput, crate::operation::create_integration::CreateIntegrationError>
181{
182 Ok({
183 #[allow(unused_mut)]
184 let mut output = crate::operation::create_integration::builders::CreateIntegrationOutputBuilder::default();
185 output = crate::protocol_serde::shape_create_integration::de_create_integration(_response_body, output)
186 .map_err(crate::operation::create_integration::CreateIntegrationError::unhandled)?;
187 output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
188 output.build()
189 })
190}
191
192#[allow(unused_mut)]
193pub fn de_create_integration(
194 inp: &[u8],
195 mut builder: crate::operation::create_integration::builders::CreateIntegrationOutputBuilder,
196) -> std::result::Result<crate::operation::create_integration::builders::CreateIntegrationOutputBuilder, ::aws_smithy_xml::decode::XmlDecodeError> {
197 let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
198
199 #[allow(unused_mut)]
200 let mut decoder = doc.root_element()?;
201 #[allow(unused_variables)]
202 let start_el = decoder.start_el();
203 if !(start_el.matches("CreateIntegrationResponse")) {
204 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
205 "invalid root, expected CreateIntegrationResponse got {:?}",
206 start_el
207 )));
208 }
209 if let Some(mut result_tag) = decoder.next_tag() {
210 let start_el = result_tag.start_el();
211 if !(start_el.matches("CreateIntegrationResult")) {
212 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
213 "invalid result, expected CreateIntegrationResult got {:?}",
214 start_el
215 )));
216 }
217 while let Some(mut tag) = result_tag.next_tag() {
218 match tag.start_el() {
219 s if s.matches("IntegrationArn") => {
220 let var_1 =
221 Some(
222 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
223 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
224 .into()
225 )
226 ?
227 )
228 ;
229 builder = builder.set_integration_arn(var_1);
230 }
231 ,
232 s if s.matches("IntegrationName") => {
233 let var_2 =
234 Some(
235 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
236 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
237 .into()
238 )
239 ?
240 )
241 ;
242 builder = builder.set_integration_name(var_2);
243 }
244 ,
245 s if s.matches("SourceArn") => {
246 let var_3 =
247 Some(
248 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
249 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
250 .into()
251 )
252 ?
253 )
254 ;
255 builder = builder.set_source_arn(var_3);
256 }
257 ,
258 s if s.matches("TargetArn") => {
259 let var_4 =
260 Some(
261 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
262 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
263 .into()
264 )
265 ?
266 )
267 ;
268 builder = builder.set_target_arn(var_4);
269 }
270 ,
271 s if s.matches("Status") => {
272 let var_5 =
273 Some(
274 Result::<crate::types::ZeroEtlIntegrationStatus, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
275 crate::types::ZeroEtlIntegrationStatus::from(
276 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
277 )
278 )
279 ?
280 )
281 ;
282 builder = builder.set_status(var_5);
283 }
284 ,
285 s if s.matches("Errors") => {
286 let var_6 =
287 Some(
288 crate::protocol_serde::shape_integration_error_list::de_integration_error_list(&mut tag)
289 ?
290 )
291 ;
292 builder = builder.set_errors(var_6);
293 }
294 ,
295 s if s.matches("CreateTime") => {
296 let var_7 =
297 Some(
298 ::aws_smithy_types::DateTime::from_str(
299 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
300 , ::aws_smithy_types::date_time::Format::DateTimeWithOffset
301 )
302 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (timestamp: `com.amazonaws.redshift#TStamp`)"))
303 ?
304 )
305 ;
306 builder = builder.set_create_time(var_7);
307 }
308 ,
309 s if s.matches("Description") => {
310 let var_8 =
311 Some(
312 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
313 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
314 .into()
315 )
316 ?
317 )
318 ;
319 builder = builder.set_description(var_8);
320 }
321 ,
322 s if s.matches("KMSKeyId") => {
323 let var_9 =
324 Some(
325 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
326 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
327 .into()
328 )
329 ?
330 )
331 ;
332 builder = builder.set_kms_key_id(var_9);
333 }
334 ,
335 s if s.matches("AdditionalEncryptionContext") => {
336 let var_10 =
337 Some(
338 crate::protocol_serde::shape_encryption_context_map::de_encryption_context_map(&mut tag)
339 ?
340 )
341 ;
342 builder = builder.set_additional_encryption_context(var_10);
343 }
344 ,
345 s if s.matches("Tags") => {
346 let var_11 =
347 Some(
348 crate::protocol_serde::shape_tag_list::de_tag_list(&mut tag)
349 ?
350 )
351 ;
352 builder = builder.set_tags(var_11);
353 }
354 ,
355 _ => {}
356 }
357 }
358 } else {
359 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom("expected CreateIntegrationResult tag"));
360 };
361 Ok(builder)
362}