aws_sdk_apigateway/protocol_serde/
shape_put_rest_api.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(clippy::unnecessary_wraps)]
3pub fn de_put_rest_api_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::put_rest_api::PutRestApiOutput, crate::operation::put_rest_api::PutRestApiError> {
8    #[allow(unused_mut)]
9    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
10        .map_err(crate::operation::put_rest_api::PutRestApiError::unhandled)?;
11    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
12    let generic = generic_builder.build();
13    let error_code = match generic.code() {
14        Some(code) => code,
15        None => return Err(crate::operation::put_rest_api::PutRestApiError::unhandled(generic)),
16    };
17
18    let _error_message = generic.message().map(|msg| msg.to_owned());
19    Err(match error_code {
20        "BadRequestException" => crate::operation::put_rest_api::PutRestApiError::BadRequestException({
21            #[allow(unused_mut)]
22            let mut tmp = {
23                #[allow(unused_mut)]
24                let mut output = crate::types::error::builders::BadRequestExceptionBuilder::default();
25                output = crate::protocol_serde::shape_bad_request_exception::de_bad_request_exception_json_err(_response_body, output)
26                    .map_err(crate::operation::put_rest_api::PutRestApiError::unhandled)?;
27                let output = output.meta(generic);
28                output.build()
29            };
30            if tmp.message.is_none() {
31                tmp.message = _error_message;
32            }
33            tmp
34        }),
35        "ConflictException" => crate::operation::put_rest_api::PutRestApiError::ConflictException({
36            #[allow(unused_mut)]
37            let mut tmp = {
38                #[allow(unused_mut)]
39                let mut output = crate::types::error::builders::ConflictExceptionBuilder::default();
40                output = crate::protocol_serde::shape_conflict_exception::de_conflict_exception_json_err(_response_body, output)
41                    .map_err(crate::operation::put_rest_api::PutRestApiError::unhandled)?;
42                let output = output.meta(generic);
43                output.build()
44            };
45            if tmp.message.is_none() {
46                tmp.message = _error_message;
47            }
48            tmp
49        }),
50        "LimitExceededException" => crate::operation::put_rest_api::PutRestApiError::LimitExceededException({
51            #[allow(unused_mut)]
52            let mut tmp = {
53                #[allow(unused_mut)]
54                let mut output = crate::types::error::builders::LimitExceededExceptionBuilder::default();
55                output = crate::protocol_serde::shape_limit_exceeded_exception::de_limit_exceeded_exception_json_err(_response_body, output)
56                    .map_err(crate::operation::put_rest_api::PutRestApiError::unhandled)?;
57                output = output.set_retry_after_seconds(
58                    crate::protocol_serde::shape_limit_exceeded_exception::de_retry_after_seconds_header(_response_headers).map_err(|_| {
59                        crate::operation::put_rest_api::PutRestApiError::unhandled("Failed to parse retryAfterSeconds from header `Retry-After")
60                    })?,
61                );
62                let output = output.meta(generic);
63                output.build()
64            };
65            if tmp.message.is_none() {
66                tmp.message = _error_message;
67            }
68            tmp
69        }),
70        "NotFoundException" => crate::operation::put_rest_api::PutRestApiError::NotFoundException({
71            #[allow(unused_mut)]
72            let mut tmp = {
73                #[allow(unused_mut)]
74                let mut output = crate::types::error::builders::NotFoundExceptionBuilder::default();
75                output = crate::protocol_serde::shape_not_found_exception::de_not_found_exception_json_err(_response_body, output)
76                    .map_err(crate::operation::put_rest_api::PutRestApiError::unhandled)?;
77                let output = output.meta(generic);
78                output.build()
79            };
80            if tmp.message.is_none() {
81                tmp.message = _error_message;
82            }
83            tmp
84        }),
85        "TooManyRequestsException" => crate::operation::put_rest_api::PutRestApiError::TooManyRequestsException({
86            #[allow(unused_mut)]
87            let mut tmp = {
88                #[allow(unused_mut)]
89                let mut output = crate::types::error::builders::TooManyRequestsExceptionBuilder::default();
90                output = crate::protocol_serde::shape_too_many_requests_exception::de_too_many_requests_exception_json_err(_response_body, output)
91                    .map_err(crate::operation::put_rest_api::PutRestApiError::unhandled)?;
92                output = output.set_retry_after_seconds(
93                    crate::protocol_serde::shape_too_many_requests_exception::de_retry_after_seconds_header(_response_headers).map_err(|_| {
94                        crate::operation::put_rest_api::PutRestApiError::unhandled("Failed to parse retryAfterSeconds from header `Retry-After")
95                    })?,
96                );
97                let output = output.meta(generic);
98                output.build()
99            };
100            if tmp.message.is_none() {
101                tmp.message = _error_message;
102            }
103            tmp
104        }),
105        "UnauthorizedException" => crate::operation::put_rest_api::PutRestApiError::UnauthorizedException({
106            #[allow(unused_mut)]
107            let mut tmp = {
108                #[allow(unused_mut)]
109                let mut output = crate::types::error::builders::UnauthorizedExceptionBuilder::default();
110                output = crate::protocol_serde::shape_unauthorized_exception::de_unauthorized_exception_json_err(_response_body, output)
111                    .map_err(crate::operation::put_rest_api::PutRestApiError::unhandled)?;
112                let output = output.meta(generic);
113                output.build()
114            };
115            if tmp.message.is_none() {
116                tmp.message = _error_message;
117            }
118            tmp
119        }),
120        _ => crate::operation::put_rest_api::PutRestApiError::generic(generic),
121    })
122}
123
124#[allow(clippy::unnecessary_wraps)]
125pub fn de_put_rest_api_http_response(
126    _response_status: u16,
127    _response_headers: &::aws_smithy_runtime_api::http::Headers,
128    _response_body: &[u8],
129) -> std::result::Result<crate::operation::put_rest_api::PutRestApiOutput, crate::operation::put_rest_api::PutRestApiError> {
130    Ok({
131        #[allow(unused_mut)]
132        let mut output = crate::operation::put_rest_api::builders::PutRestApiOutputBuilder::default();
133        output = crate::protocol_serde::shape_put_rest_api::de_put_rest_api(_response_body, output)
134            .map_err(crate::operation::put_rest_api::PutRestApiError::unhandled)?;
135        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
136        output.build()
137    })
138}
139
140pub(crate) fn de_put_rest_api(
141    value: &[u8],
142    mut builder: crate::operation::put_rest_api::builders::PutRestApiOutputBuilder,
143) -> ::std::result::Result<crate::operation::put_rest_api::builders::PutRestApiOutputBuilder, ::aws_smithy_json::deserialize::error::DeserializeError>
144{
145    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
146    let tokens = &mut tokens_owned;
147    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
148    loop {
149        match tokens.next().transpose()? {
150            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
151            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
152                "apiKeySource" => {
153                    builder = builder.set_api_key_source(
154                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
155                            .map(|s| s.to_unescaped().map(|u| crate::types::ApiKeySourceType::from(u.as_ref())))
156                            .transpose()?,
157                    );
158                }
159                "apiStatus" => {
160                    builder = builder.set_api_status(
161                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
162                            .map(|s| s.to_unescaped().map(|u| crate::types::ApiStatus::from(u.as_ref())))
163                            .transpose()?,
164                    );
165                }
166                "apiStatusMessage" => {
167                    builder = builder.set_api_status_message(
168                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
169                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
170                            .transpose()?,
171                    );
172                }
173                "binaryMediaTypes" => {
174                    builder = builder.set_binary_media_types(crate::protocol_serde::shape_list_of_string::de_list_of_string(tokens)?);
175                }
176                "createdDate" => {
177                    builder = builder.set_created_date(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
178                        tokens.next(),
179                        ::aws_smithy_types::date_time::Format::EpochSeconds,
180                    )?);
181                }
182                "description" => {
183                    builder = builder.set_description(
184                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
185                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
186                            .transpose()?,
187                    );
188                }
189                "disableExecuteApiEndpoint" => {
190                    builder = builder.set_disable_execute_api_endpoint(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
191                }
192                "endpointAccessMode" => {
193                    builder = builder.set_endpoint_access_mode(
194                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
195                            .map(|s| s.to_unescaped().map(|u| crate::types::EndpointAccessMode::from(u.as_ref())))
196                            .transpose()?,
197                    );
198                }
199                "endpointConfiguration" => {
200                    builder =
201                        builder.set_endpoint_configuration(crate::protocol_serde::shape_endpoint_configuration::de_endpoint_configuration(tokens)?);
202                }
203                "id" => {
204                    builder = builder.set_id(
205                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
206                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
207                            .transpose()?,
208                    );
209                }
210                "minimumCompressionSize" => {
211                    builder = builder.set_minimum_compression_size(
212                        ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
213                            .map(i32::try_from)
214                            .transpose()?,
215                    );
216                }
217                "name" => {
218                    builder = builder.set_name(
219                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
220                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
221                            .transpose()?,
222                    );
223                }
224                "policy" => {
225                    builder = builder.set_policy(
226                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
227                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
228                            .transpose()?,
229                    );
230                }
231                "rootResourceId" => {
232                    builder = builder.set_root_resource_id(
233                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
234                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
235                            .transpose()?,
236                    );
237                }
238                "securityPolicy" => {
239                    builder = builder.set_security_policy(
240                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
241                            .map(|s| s.to_unescaped().map(|u| crate::types::SecurityPolicy::from(u.as_ref())))
242                            .transpose()?,
243                    );
244                }
245                "tags" => {
246                    builder = builder.set_tags(crate::protocol_serde::shape_map_of_string_to_string::de_map_of_string_to_string(tokens)?);
247                }
248                "version" => {
249                    builder = builder.set_version(
250                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
251                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
252                            .transpose()?,
253                    );
254                }
255                "warnings" => {
256                    builder = builder.set_warnings(crate::protocol_serde::shape_list_of_string::de_list_of_string(tokens)?);
257                }
258                _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
259            },
260            other => {
261                return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
262                    "expected object key or end object, found: {other:?}"
263                )))
264            }
265        }
266    }
267    if tokens.next().is_some() {
268        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
269            "found more JSON tokens after completing parsing",
270        ));
271    }
272    Ok(builder)
273}