Skip to main content

aws_sdk_redshiftdata/protocol_serde/
shape_describe_statement.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[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}