aws_sdk_redshiftdata/protocol_serde/
shape_describe_statement.rs1#[allow(clippy::unnecessary_wraps)]
3pub fn de_describe_statement_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::describe_statement::DescribeStatementOutput, crate::operation::describe_statement::DescribeStatementError>
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::describe_statement::DescribeStatementError::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::describe_statement::DescribeStatementError::unhandled(generic)),
17 };
18
19 let _error_message = generic.message().map(|msg| msg.to_owned());
20 Err(match error_code {
21 "InternalServerException" => crate::operation::describe_statement::DescribeStatementError::InternalServerException({
22 #[allow(unused_mut)]
23 let mut tmp = {
24 #[allow(unused_mut)]
25 let mut output = crate::types::error::builders::InternalServerExceptionBuilder::default();
26 output = crate::protocol_serde::shape_internal_server_exception::de_internal_server_exception_json_err(_response_body, output)
27 .map_err(crate::operation::describe_statement::DescribeStatementError::unhandled)?;
28 let output = output.meta(generic);
29 crate::serde_util::internal_server_exception_correct_errors(output)
30 .build()
31 .map_err(crate::operation::describe_statement::DescribeStatementError::unhandled)?
32 };
33 tmp
34 }),
35 "ResourceNotFoundException" => crate::operation::describe_statement::DescribeStatementError::ResourceNotFoundException({
36 #[allow(unused_mut)]
37 let mut tmp = {
38 #[allow(unused_mut)]
39 let mut output = crate::types::error::builders::ResourceNotFoundExceptionBuilder::default();
40 output = crate::protocol_serde::shape_resource_not_found_exception::de_resource_not_found_exception_json_err(_response_body, output)
41 .map_err(crate::operation::describe_statement::DescribeStatementError::unhandled)?;
42 let output = output.meta(generic);
43 crate::serde_util::resource_not_found_exception_correct_errors(output)
44 .build()
45 .map_err(crate::operation::describe_statement::DescribeStatementError::unhandled)?
46 };
47 tmp
48 }),
49 "ValidationException" => crate::operation::describe_statement::DescribeStatementError::ValidationException({
50 #[allow(unused_mut)]
51 let mut tmp = {
52 #[allow(unused_mut)]
53 let mut output = crate::types::error::builders::ValidationExceptionBuilder::default();
54 output = crate::protocol_serde::shape_validation_exception::de_validation_exception_json_err(_response_body, output)
55 .map_err(crate::operation::describe_statement::DescribeStatementError::unhandled)?;
56 let output = output.meta(generic);
57 output.build()
58 };
59 if tmp.message.is_none() {
60 tmp.message = _error_message;
61 }
62 tmp
63 }),
64 _ => crate::operation::describe_statement::DescribeStatementError::generic(generic),
65 })
66}
67
68#[allow(clippy::unnecessary_wraps)]
69pub fn de_describe_statement_http_response(
70 _response_status: u16,
71 _response_headers: &::aws_smithy_runtime_api::http::Headers,
72 _response_body: &[u8],
73) -> std::result::Result<crate::operation::describe_statement::DescribeStatementOutput, crate::operation::describe_statement::DescribeStatementError>
74{
75 Ok({
76 #[allow(unused_mut)]
77 let mut output = crate::operation::describe_statement::builders::DescribeStatementOutputBuilder::default();
78 output = crate::protocol_serde::shape_describe_statement::de_describe_statement(_response_body, output)
79 .map_err(crate::operation::describe_statement::DescribeStatementError::unhandled)?;
80 output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
81 crate::serde_util::describe_statement_output_output_correct_errors(output)
82 .build()
83 .map_err(crate::operation::describe_statement::DescribeStatementError::unhandled)?
84 })
85}
86
87pub fn ser_describe_statement_input(
88 input: &crate::operation::describe_statement::DescribeStatementInput,
89) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
90 let mut out = String::new();
91 let mut object = ::aws_smithy_json::serialize::JsonObjectWriter::new(&mut out);
92 crate::protocol_serde::shape_describe_statement_input::ser_describe_statement_input_input(&mut object, input)?;
93 object.finish();
94 Ok(::aws_smithy_types::body::SdkBody::from(out))
95}
96
97pub(crate) fn de_describe_statement(
98 _value: &[u8],
99 mut builder: crate::operation::describe_statement::builders::DescribeStatementOutputBuilder,
100) -> ::std::result::Result<
101 crate::operation::describe_statement::builders::DescribeStatementOutputBuilder,
102 ::aws_smithy_json::deserialize::error::DeserializeError,
103> {
104 let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(_value)).peekable();
105 let tokens = &mut tokens_owned;
106 ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
107 loop {
108 match tokens.next().transpose()? {
109 Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
110 Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
111 "Id" => {
112 builder = builder.set_id(
113 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
114 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
115 .transpose()?,
116 );
117 }
118 "SecretArn" => {
119 builder = builder.set_secret_arn(
120 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
121 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
122 .transpose()?,
123 );
124 }
125 "DbUser" => {
126 builder = builder.set_db_user(
127 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
128 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
129 .transpose()?,
130 );
131 }
132 "Database" => {
133 builder = builder.set_database(
134 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
135 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
136 .transpose()?,
137 );
138 }
139 "ClusterIdentifier" => {
140 builder = builder.set_cluster_identifier(
141 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
142 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
143 .transpose()?,
144 );
145 }
146 "Duration" => {
147 builder = builder.set_duration(
148 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
149 .map(i64::try_from)
150 .transpose()?,
151 );
152 }
153 "Error" => {
154 builder = builder.set_error(
155 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
156 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
157 .transpose()?,
158 );
159 }
160 "Status" => {
161 builder = builder.set_status(
162 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
163 .map(|s| s.to_unescaped().map(|u| crate::types::StatusString::from(u.as_ref())))
164 .transpose()?,
165 );
166 }
167 "CreatedAt" => {
168 builder = builder.set_created_at(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
169 tokens.next(),
170 ::aws_smithy_types::date_time::Format::EpochSeconds,
171 )?);
172 }
173 "UpdatedAt" => {
174 builder = builder.set_updated_at(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
175 tokens.next(),
176 ::aws_smithy_types::date_time::Format::EpochSeconds,
177 )?);
178 }
179 "RedshiftPid" => {
180 builder = builder.set_redshift_pid(
181 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
182 .map(i64::try_from)
183 .transpose()?,
184 );
185 }
186 "HasResultSet" => {
187 builder = builder.set_has_result_set(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
188 }
189 "QueryString" => {
190 builder = builder.set_query_string(
191 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
192 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
193 .transpose()?,
194 );
195 }
196 "ResultRows" => {
197 builder = builder.set_result_rows(
198 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
199 .map(i64::try_from)
200 .transpose()?,
201 );
202 }
203 "ResultSize" => {
204 builder = builder.set_result_size(
205 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
206 .map(i64::try_from)
207 .transpose()?,
208 );
209 }
210 "RedshiftQueryId" => {
211 builder = builder.set_redshift_query_id(
212 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
213 .map(i64::try_from)
214 .transpose()?,
215 );
216 }
217 "QueryParameters" => {
218 builder = builder.set_query_parameters(crate::protocol_serde::shape_sql_parameters_list::de_sql_parameters_list(tokens, _value)?);
219 }
220 "SubStatements" => {
221 builder = builder.set_sub_statements(crate::protocol_serde::shape_sub_statement_list::de_sub_statement_list(tokens, _value)?);
222 }
223 "WorkgroupName" => {
224 builder = builder.set_workgroup_name(
225 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
226 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
227 .transpose()?,
228 );
229 }
230 "ResultFormat" => {
231 builder = builder.set_result_format(
232 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
233 .map(|s| s.to_unescaped().map(|u| crate::types::ResultFormatString::from(u.as_ref())))
234 .transpose()?,
235 );
236 }
237 "SessionId" => {
238 builder = builder.set_session_id(
239 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
240 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
241 .transpose()?,
242 );
243 }
244 _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
245 },
246 other => {
247 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
248 "expected object key or end object, found: {other:?}"
249 )))
250 }
251 }
252 }
253 if tokens.next().is_some() {
254 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
255 "found more JSON tokens after completing parsing",
256 ));
257 }
258 Ok(builder)
259}