aws_sdk_medialive/protocol_serde/
shape_describe_reservation.rs1#[allow(clippy::unnecessary_wraps)]
3pub fn de_describe_reservation_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::describe_reservation::DescribeReservationOutput,
9 crate::operation::describe_reservation::DescribeReservationError,
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::describe_reservation::DescribeReservationError::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 => return Err(crate::operation::describe_reservation::DescribeReservationError::unhandled(generic)),
19 };
20
21 let _error_message = generic.message().map(|msg| msg.to_owned());
22 Err(match error_code {
23 "BadGatewayException" => crate::operation::describe_reservation::DescribeReservationError::BadGatewayException({
24 #[allow(unused_mut)]
25 let mut tmp = {
26 #[allow(unused_mut)]
27 let mut output = crate::types::error::builders::BadGatewayExceptionBuilder::default();
28 output = crate::protocol_serde::shape_bad_gateway_exception::de_bad_gateway_exception_json_err(_response_body, output)
29 .map_err(crate::operation::describe_reservation::DescribeReservationError::unhandled)?;
30 let output = output.meta(generic);
31 output.build()
32 };
33 if tmp.message.is_none() {
34 tmp.message = _error_message;
35 }
36 tmp
37 }),
38 "BadRequestException" => crate::operation::describe_reservation::DescribeReservationError::BadRequestException({
39 #[allow(unused_mut)]
40 let mut tmp = {
41 #[allow(unused_mut)]
42 let mut output = crate::types::error::builders::BadRequestExceptionBuilder::default();
43 output = crate::protocol_serde::shape_bad_request_exception::de_bad_request_exception_json_err(_response_body, output)
44 .map_err(crate::operation::describe_reservation::DescribeReservationError::unhandled)?;
45 let output = output.meta(generic);
46 output.build()
47 };
48 if tmp.message.is_none() {
49 tmp.message = _error_message;
50 }
51 tmp
52 }),
53 "ForbiddenException" => crate::operation::describe_reservation::DescribeReservationError::ForbiddenException({
54 #[allow(unused_mut)]
55 let mut tmp = {
56 #[allow(unused_mut)]
57 let mut output = crate::types::error::builders::ForbiddenExceptionBuilder::default();
58 output = crate::protocol_serde::shape_forbidden_exception::de_forbidden_exception_json_err(_response_body, output)
59 .map_err(crate::operation::describe_reservation::DescribeReservationError::unhandled)?;
60 let output = output.meta(generic);
61 output.build()
62 };
63 if tmp.message.is_none() {
64 tmp.message = _error_message;
65 }
66 tmp
67 }),
68 "GatewayTimeoutException" => crate::operation::describe_reservation::DescribeReservationError::GatewayTimeoutException({
69 #[allow(unused_mut)]
70 let mut tmp = {
71 #[allow(unused_mut)]
72 let mut output = crate::types::error::builders::GatewayTimeoutExceptionBuilder::default();
73 output = crate::protocol_serde::shape_gateway_timeout_exception::de_gateway_timeout_exception_json_err(_response_body, output)
74 .map_err(crate::operation::describe_reservation::DescribeReservationError::unhandled)?;
75 let output = output.meta(generic);
76 output.build()
77 };
78 if tmp.message.is_none() {
79 tmp.message = _error_message;
80 }
81 tmp
82 }),
83 "InternalServerErrorException" => crate::operation::describe_reservation::DescribeReservationError::InternalServerErrorException({
84 #[allow(unused_mut)]
85 let mut tmp = {
86 #[allow(unused_mut)]
87 let mut output = crate::types::error::builders::InternalServerErrorExceptionBuilder::default();
88 output =
89 crate::protocol_serde::shape_internal_server_error_exception::de_internal_server_error_exception_json_err(_response_body, output)
90 .map_err(crate::operation::describe_reservation::DescribeReservationError::unhandled)?;
91 let output = output.meta(generic);
92 output.build()
93 };
94 if tmp.message.is_none() {
95 tmp.message = _error_message;
96 }
97 tmp
98 }),
99 "NotFoundException" => crate::operation::describe_reservation::DescribeReservationError::NotFoundException({
100 #[allow(unused_mut)]
101 let mut tmp = {
102 #[allow(unused_mut)]
103 let mut output = crate::types::error::builders::NotFoundExceptionBuilder::default();
104 output = crate::protocol_serde::shape_not_found_exception::de_not_found_exception_json_err(_response_body, output)
105 .map_err(crate::operation::describe_reservation::DescribeReservationError::unhandled)?;
106 let output = output.meta(generic);
107 output.build()
108 };
109 if tmp.message.is_none() {
110 tmp.message = _error_message;
111 }
112 tmp
113 }),
114 "TooManyRequestsException" => crate::operation::describe_reservation::DescribeReservationError::TooManyRequestsException({
115 #[allow(unused_mut)]
116 let mut tmp = {
117 #[allow(unused_mut)]
118 let mut output = crate::types::error::builders::TooManyRequestsExceptionBuilder::default();
119 output = crate::protocol_serde::shape_too_many_requests_exception::de_too_many_requests_exception_json_err(_response_body, output)
120 .map_err(crate::operation::describe_reservation::DescribeReservationError::unhandled)?;
121 let output = output.meta(generic);
122 output.build()
123 };
124 if tmp.message.is_none() {
125 tmp.message = _error_message;
126 }
127 tmp
128 }),
129 _ => crate::operation::describe_reservation::DescribeReservationError::generic(generic),
130 })
131}
132
133#[allow(clippy::unnecessary_wraps)]
134pub fn de_describe_reservation_http_response(
135 _response_status: u16,
136 _response_headers: &::aws_smithy_runtime_api::http::Headers,
137 _response_body: &[u8],
138) -> std::result::Result<
139 crate::operation::describe_reservation::DescribeReservationOutput,
140 crate::operation::describe_reservation::DescribeReservationError,
141> {
142 Ok({
143 #[allow(unused_mut)]
144 let mut output = crate::operation::describe_reservation::builders::DescribeReservationOutputBuilder::default();
145 output = crate::protocol_serde::shape_describe_reservation::de_describe_reservation(_response_body, output)
146 .map_err(crate::operation::describe_reservation::DescribeReservationError::unhandled)?;
147 output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
148 output.build()
149 })
150}
151
152pub(crate) fn de_describe_reservation(
153 value: &[u8],
154 mut builder: crate::operation::describe_reservation::builders::DescribeReservationOutputBuilder,
155) -> ::std::result::Result<
156 crate::operation::describe_reservation::builders::DescribeReservationOutputBuilder,
157 ::aws_smithy_json::deserialize::error::DeserializeError,
158> {
159 let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
160 let tokens = &mut tokens_owned;
161 ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
162 loop {
163 match tokens.next().transpose()? {
164 Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
165 Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
166 "arn" => {
167 builder = builder.set_arn(
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 "count" => {
174 builder = builder.set_count(
175 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
176 .map(i32::try_from)
177 .transpose()?,
178 );
179 }
180 "currencyCode" => {
181 builder = builder.set_currency_code(
182 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
183 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
184 .transpose()?,
185 );
186 }
187 "duration" => {
188 builder = builder.set_duration(
189 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
190 .map(i32::try_from)
191 .transpose()?,
192 );
193 }
194 "durationUnits" => {
195 builder = builder.set_duration_units(
196 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
197 .map(|s| s.to_unescaped().map(|u| crate::types::OfferingDurationUnits::from(u.as_ref())))
198 .transpose()?,
199 );
200 }
201 "end" => {
202 builder = builder.set_end(
203 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
204 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
205 .transpose()?,
206 );
207 }
208 "fixedPrice" => {
209 builder = builder
210 .set_fixed_price(::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f64_lossy()));
211 }
212 "name" => {
213 builder = builder.set_name(
214 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
215 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
216 .transpose()?,
217 );
218 }
219 "offeringDescription" => {
220 builder = builder.set_offering_description(
221 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
222 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
223 .transpose()?,
224 );
225 }
226 "offeringId" => {
227 builder = builder.set_offering_id(
228 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
229 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
230 .transpose()?,
231 );
232 }
233 "offeringType" => {
234 builder = builder.set_offering_type(
235 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
236 .map(|s| s.to_unescaped().map(|u| crate::types::OfferingType::from(u.as_ref())))
237 .transpose()?,
238 );
239 }
240 "region" => {
241 builder = builder.set_region(
242 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
243 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
244 .transpose()?,
245 );
246 }
247 "renewalSettings" => {
248 builder = builder.set_renewal_settings(crate::protocol_serde::shape_renewal_settings::de_renewal_settings(tokens)?);
249 }
250 "reservationId" => {
251 builder = builder.set_reservation_id(
252 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
253 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
254 .transpose()?,
255 );
256 }
257 "resourceSpecification" => {
258 builder = builder.set_resource_specification(
259 crate::protocol_serde::shape_reservation_resource_specification::de_reservation_resource_specification(tokens)?,
260 );
261 }
262 "start" => {
263 builder = builder.set_start(
264 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
265 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
266 .transpose()?,
267 );
268 }
269 "state" => {
270 builder = builder.set_state(
271 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
272 .map(|s| s.to_unescaped().map(|u| crate::types::ReservationState::from(u.as_ref())))
273 .transpose()?,
274 );
275 }
276 "tags" => {
277 builder = builder.set_tags(crate::protocol_serde::shape_tags::de_tags(tokens)?);
278 }
279 "usagePrice" => {
280 builder = builder
281 .set_usage_price(::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?.map(|v| v.to_f64_lossy()));
282 }
283 _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
284 },
285 other => {
286 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
287 "expected object key or end object, found: {:?}",
288 other
289 )))
290 }
291 }
292 }
293 if tokens.next().is_some() {
294 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
295 "found more JSON tokens after completing parsing",
296 ));
297 }
298 Ok(builder)
299}