aws_sdk_lexmodelsv2/protocol_serde/
shape_update_bot_recommendation.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(clippy::unnecessary_wraps)]
3pub fn de_update_bot_recommendation_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::update_bot_recommendation::UpdateBotRecommendationOutput,
9    crate::operation::update_bot_recommendation::UpdateBotRecommendationError,
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::update_bot_recommendation::UpdateBotRecommendationError::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::update_bot_recommendation::UpdateBotRecommendationError::unhandled(
20                generic,
21            ))
22        }
23    };
24
25    let _error_message = generic.message().map(|msg| msg.to_owned());
26    Err(match error_code {
27        "ConflictException" => crate::operation::update_bot_recommendation::UpdateBotRecommendationError::ConflictException({
28            #[allow(unused_mut)]
29            let mut tmp = {
30                #[allow(unused_mut)]
31                let mut output = crate::types::error::builders::ConflictExceptionBuilder::default();
32                output = crate::protocol_serde::shape_conflict_exception::de_conflict_exception_json_err(_response_body, output)
33                    .map_err(crate::operation::update_bot_recommendation::UpdateBotRecommendationError::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        "InternalServerException" => crate::operation::update_bot_recommendation::UpdateBotRecommendationError::InternalServerException({
43            #[allow(unused_mut)]
44            let mut tmp = {
45                #[allow(unused_mut)]
46                let mut output = crate::types::error::builders::InternalServerExceptionBuilder::default();
47                output = crate::protocol_serde::shape_internal_server_exception::de_internal_server_exception_json_err(_response_body, output)
48                    .map_err(crate::operation::update_bot_recommendation::UpdateBotRecommendationError::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        "PreconditionFailedException" => crate::operation::update_bot_recommendation::UpdateBotRecommendationError::PreconditionFailedException({
58            #[allow(unused_mut)]
59            let mut tmp = {
60                #[allow(unused_mut)]
61                let mut output = crate::types::error::builders::PreconditionFailedExceptionBuilder::default();
62                output =
63                    crate::protocol_serde::shape_precondition_failed_exception::de_precondition_failed_exception_json_err(_response_body, output)
64                        .map_err(crate::operation::update_bot_recommendation::UpdateBotRecommendationError::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        "ResourceNotFoundException" => crate::operation::update_bot_recommendation::UpdateBotRecommendationError::ResourceNotFoundException({
74            #[allow(unused_mut)]
75            let mut tmp = {
76                #[allow(unused_mut)]
77                let mut output = crate::types::error::builders::ResourceNotFoundExceptionBuilder::default();
78                output = crate::protocol_serde::shape_resource_not_found_exception::de_resource_not_found_exception_json_err(_response_body, output)
79                    .map_err(crate::operation::update_bot_recommendation::UpdateBotRecommendationError::unhandled)?;
80                let output = output.meta(generic);
81                output.build()
82            };
83            if tmp.message.is_none() {
84                tmp.message = _error_message;
85            }
86            tmp
87        }),
88        "ServiceQuotaExceededException" => {
89            crate::operation::update_bot_recommendation::UpdateBotRecommendationError::ServiceQuotaExceededException({
90                #[allow(unused_mut)]
91                let mut tmp = {
92                    #[allow(unused_mut)]
93                    let mut output = crate::types::error::builders::ServiceQuotaExceededExceptionBuilder::default();
94                    output = crate::protocol_serde::shape_service_quota_exceeded_exception::de_service_quota_exceeded_exception_json_err(
95                        _response_body,
96                        output,
97                    )
98                    .map_err(crate::operation::update_bot_recommendation::UpdateBotRecommendationError::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        }
108        "ThrottlingException" => crate::operation::update_bot_recommendation::UpdateBotRecommendationError::ThrottlingException({
109            #[allow(unused_mut)]
110            let mut tmp = {
111                #[allow(unused_mut)]
112                let mut output = crate::types::error::builders::ThrottlingExceptionBuilder::default();
113                output = crate::protocol_serde::shape_throttling_exception::de_throttling_exception_json_err(_response_body, output)
114                    .map_err(crate::operation::update_bot_recommendation::UpdateBotRecommendationError::unhandled)?;
115                output = output.set_retry_after_seconds(
116                    crate::protocol_serde::shape_throttling_exception::de_retry_after_seconds_header(_response_headers).map_err(|_| {
117                        crate::operation::update_bot_recommendation::UpdateBotRecommendationError::unhandled(
118                            "Failed to parse retryAfterSeconds from header `Retry-After",
119                        )
120                    })?,
121                );
122                let output = output.meta(generic);
123                output.build()
124            };
125            if tmp.message.is_none() {
126                tmp.message = _error_message;
127            }
128            tmp
129        }),
130        "ValidationException" => crate::operation::update_bot_recommendation::UpdateBotRecommendationError::ValidationException({
131            #[allow(unused_mut)]
132            let mut tmp = {
133                #[allow(unused_mut)]
134                let mut output = crate::types::error::builders::ValidationExceptionBuilder::default();
135                output = crate::protocol_serde::shape_validation_exception::de_validation_exception_json_err(_response_body, output)
136                    .map_err(crate::operation::update_bot_recommendation::UpdateBotRecommendationError::unhandled)?;
137                let output = output.meta(generic);
138                output.build()
139            };
140            if tmp.message.is_none() {
141                tmp.message = _error_message;
142            }
143            tmp
144        }),
145        _ => crate::operation::update_bot_recommendation::UpdateBotRecommendationError::generic(generic),
146    })
147}
148
149#[allow(clippy::unnecessary_wraps)]
150pub fn de_update_bot_recommendation_http_response(
151    _response_status: u16,
152    _response_headers: &::aws_smithy_runtime_api::http::Headers,
153    _response_body: &[u8],
154) -> std::result::Result<
155    crate::operation::update_bot_recommendation::UpdateBotRecommendationOutput,
156    crate::operation::update_bot_recommendation::UpdateBotRecommendationError,
157> {
158    Ok({
159        #[allow(unused_mut)]
160        let mut output = crate::operation::update_bot_recommendation::builders::UpdateBotRecommendationOutputBuilder::default();
161        output = crate::protocol_serde::shape_update_bot_recommendation::de_update_bot_recommendation(_response_body, output)
162            .map_err(crate::operation::update_bot_recommendation::UpdateBotRecommendationError::unhandled)?;
163        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
164        output.build()
165    })
166}
167
168pub fn ser_update_bot_recommendation_input(
169    input: &crate::operation::update_bot_recommendation::UpdateBotRecommendationInput,
170) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
171    let mut out = String::new();
172    let mut object = ::aws_smithy_json::serialize::JsonObjectWriter::new(&mut out);
173    crate::protocol_serde::shape_update_bot_recommendation_input::ser_update_bot_recommendation_input_input(&mut object, input)?;
174    object.finish();
175    Ok(::aws_smithy_types::body::SdkBody::from(out))
176}
177
178pub(crate) fn de_update_bot_recommendation(
179    value: &[u8],
180    mut builder: crate::operation::update_bot_recommendation::builders::UpdateBotRecommendationOutputBuilder,
181) -> ::std::result::Result<
182    crate::operation::update_bot_recommendation::builders::UpdateBotRecommendationOutputBuilder,
183    ::aws_smithy_json::deserialize::error::DeserializeError,
184> {
185    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
186    let tokens = &mut tokens_owned;
187    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
188    loop {
189        match tokens.next().transpose()? {
190            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
191            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
192                "botId" => {
193                    builder = builder.set_bot_id(
194                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
195                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
196                            .transpose()?,
197                    );
198                }
199                "botRecommendationId" => {
200                    builder = builder.set_bot_recommendation_id(
201                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
202                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
203                            .transpose()?,
204                    );
205                }
206                "botRecommendationStatus" => {
207                    builder = builder.set_bot_recommendation_status(
208                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
209                            .map(|s| s.to_unescaped().map(|u| crate::types::BotRecommendationStatus::from(u.as_ref())))
210                            .transpose()?,
211                    );
212                }
213                "botVersion" => {
214                    builder = builder.set_bot_version(
215                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
216                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
217                            .transpose()?,
218                    );
219                }
220                "creationDateTime" => {
221                    builder = builder.set_creation_date_time(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
222                        tokens.next(),
223                        ::aws_smithy_types::date_time::Format::EpochSeconds,
224                    )?);
225                }
226                "encryptionSetting" => {
227                    builder = builder.set_encryption_setting(crate::protocol_serde::shape_encryption_setting::de_encryption_setting(tokens)?);
228                }
229                "lastUpdatedDateTime" => {
230                    builder = builder.set_last_updated_date_time(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
231                        tokens.next(),
232                        ::aws_smithy_types::date_time::Format::EpochSeconds,
233                    )?);
234                }
235                "localeId" => {
236                    builder = builder.set_locale_id(
237                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
238                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
239                            .transpose()?,
240                    );
241                }
242                "transcriptSourceSetting" => {
243                    builder = builder.set_transcript_source_setting(
244                        crate::protocol_serde::shape_transcript_source_setting::de_transcript_source_setting(tokens)?,
245                    );
246                }
247                _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
248            },
249            other => {
250                return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
251                    "expected object key or end object, found: {other:?}"
252                )))
253            }
254        }
255    }
256    if tokens.next().is_some() {
257        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
258            "found more JSON tokens after completing parsing",
259        ));
260    }
261    Ok(builder)
262}