aws_sdk_imagebuilder/protocol_serde/
shape_create_image_recipe.rs1#[allow(clippy::unnecessary_wraps)]
3pub fn de_create_image_recipe_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::create_image_recipe::CreateImageRecipeOutput, crate::operation::create_image_recipe::CreateImageRecipeError>
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::create_image_recipe::CreateImageRecipeError::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::create_image_recipe::CreateImageRecipeError::unhandled(generic)),
17 };
18
19 let _error_message = generic.message().map(|msg| msg.to_owned());
20 Err(match error_code {
21 "CallRateLimitExceededException" => crate::operation::create_image_recipe::CreateImageRecipeError::CallRateLimitExceededException({
22 #[allow(unused_mut)]
23 let mut tmp = {
24 #[allow(unused_mut)]
25 let mut output = crate::types::error::builders::CallRateLimitExceededExceptionBuilder::default();
26 output = crate::protocol_serde::shape_call_rate_limit_exceeded_exception::de_call_rate_limit_exceeded_exception_json_err(
27 _response_body,
28 output,
29 )
30 .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
31 let output = output.meta(generic);
32 output.build()
33 };
34 if tmp.message.is_none() {
35 tmp.message = _error_message;
36 }
37 tmp
38 }),
39 "ClientException" => crate::operation::create_image_recipe::CreateImageRecipeError::ClientException({
40 #[allow(unused_mut)]
41 let mut tmp = {
42 #[allow(unused_mut)]
43 let mut output = crate::types::error::builders::ClientExceptionBuilder::default();
44 output = crate::protocol_serde::shape_client_exception::de_client_exception_json_err(_response_body, output)
45 .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
46 let output = output.meta(generic);
47 output.build()
48 };
49 if tmp.message.is_none() {
50 tmp.message = _error_message;
51 }
52 tmp
53 }),
54 "ForbiddenException" => crate::operation::create_image_recipe::CreateImageRecipeError::ForbiddenException({
55 #[allow(unused_mut)]
56 let mut tmp = {
57 #[allow(unused_mut)]
58 let mut output = crate::types::error::builders::ForbiddenExceptionBuilder::default();
59 output = crate::protocol_serde::shape_forbidden_exception::de_forbidden_exception_json_err(_response_body, output)
60 .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
61 let output = output.meta(generic);
62 output.build()
63 };
64 if tmp.message.is_none() {
65 tmp.message = _error_message;
66 }
67 tmp
68 }),
69 "IdempotentParameterMismatchException" => {
70 crate::operation::create_image_recipe::CreateImageRecipeError::IdempotentParameterMismatchException({
71 #[allow(unused_mut)]
72 let mut tmp = {
73 #[allow(unused_mut)]
74 let mut output = crate::types::error::builders::IdempotentParameterMismatchExceptionBuilder::default();
75 output =
76 crate::protocol_serde::shape_idempotent_parameter_mismatch_exception::de_idempotent_parameter_mismatch_exception_json_err(
77 _response_body,
78 output,
79 )
80 .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
81 let output = output.meta(generic);
82 output.build()
83 };
84 if tmp.message.is_none() {
85 tmp.message = _error_message;
86 }
87 tmp
88 })
89 }
90 "InvalidRequestException" => crate::operation::create_image_recipe::CreateImageRecipeError::InvalidRequestException({
91 #[allow(unused_mut)]
92 let mut tmp = {
93 #[allow(unused_mut)]
94 let mut output = crate::types::error::builders::InvalidRequestExceptionBuilder::default();
95 output = crate::protocol_serde::shape_invalid_request_exception::de_invalid_request_exception_json_err(_response_body, output)
96 .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
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 "InvalidVersionNumberException" => crate::operation::create_image_recipe::CreateImageRecipeError::InvalidVersionNumberException({
106 #[allow(unused_mut)]
107 let mut tmp = {
108 #[allow(unused_mut)]
109 let mut output = crate::types::error::builders::InvalidVersionNumberExceptionBuilder::default();
110 output = crate::protocol_serde::shape_invalid_version_number_exception::de_invalid_version_number_exception_json_err(
111 _response_body,
112 output,
113 )
114 .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
115 let output = output.meta(generic);
116 output.build()
117 };
118 if tmp.message.is_none() {
119 tmp.message = _error_message;
120 }
121 tmp
122 }),
123 "ResourceAlreadyExistsException" => crate::operation::create_image_recipe::CreateImageRecipeError::ResourceAlreadyExistsException({
124 #[allow(unused_mut)]
125 let mut tmp = {
126 #[allow(unused_mut)]
127 let mut output = crate::types::error::builders::ResourceAlreadyExistsExceptionBuilder::default();
128 output = crate::protocol_serde::shape_resource_already_exists_exception::de_resource_already_exists_exception_json_err(
129 _response_body,
130 output,
131 )
132 .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
133 let output = output.meta(generic);
134 output.build()
135 };
136 if tmp.message.is_none() {
137 tmp.message = _error_message;
138 }
139 tmp
140 }),
141 "ResourceInUseException" => crate::operation::create_image_recipe::CreateImageRecipeError::ResourceInUseException({
142 #[allow(unused_mut)]
143 let mut tmp = {
144 #[allow(unused_mut)]
145 let mut output = crate::types::error::builders::ResourceInUseExceptionBuilder::default();
146 output = crate::protocol_serde::shape_resource_in_use_exception::de_resource_in_use_exception_json_err(_response_body, output)
147 .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
148 let output = output.meta(generic);
149 output.build()
150 };
151 if tmp.message.is_none() {
152 tmp.message = _error_message;
153 }
154 tmp
155 }),
156 "ServiceException" => crate::operation::create_image_recipe::CreateImageRecipeError::ServiceException({
157 #[allow(unused_mut)]
158 let mut tmp = {
159 #[allow(unused_mut)]
160 let mut output = crate::types::error::builders::ServiceExceptionBuilder::default();
161 output = crate::protocol_serde::shape_service_exception::de_service_exception_json_err(_response_body, output)
162 .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
163 let output = output.meta(generic);
164 output.build()
165 };
166 if tmp.message.is_none() {
167 tmp.message = _error_message;
168 }
169 tmp
170 }),
171 "ServiceQuotaExceededException" => crate::operation::create_image_recipe::CreateImageRecipeError::ServiceQuotaExceededException({
172 #[allow(unused_mut)]
173 let mut tmp = {
174 #[allow(unused_mut)]
175 let mut output = crate::types::error::builders::ServiceQuotaExceededExceptionBuilder::default();
176 output = crate::protocol_serde::shape_service_quota_exceeded_exception::de_service_quota_exceeded_exception_json_err(
177 _response_body,
178 output,
179 )
180 .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
181 let output = output.meta(generic);
182 output.build()
183 };
184 if tmp.message.is_none() {
185 tmp.message = _error_message;
186 }
187 tmp
188 }),
189 "ServiceUnavailableException" => crate::operation::create_image_recipe::CreateImageRecipeError::ServiceUnavailableException({
190 #[allow(unused_mut)]
191 let mut tmp = {
192 #[allow(unused_mut)]
193 let mut output = crate::types::error::builders::ServiceUnavailableExceptionBuilder::default();
194 output =
195 crate::protocol_serde::shape_service_unavailable_exception::de_service_unavailable_exception_json_err(_response_body, output)
196 .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
197 let output = output.meta(generic);
198 output.build()
199 };
200 if tmp.message.is_none() {
201 tmp.message = _error_message;
202 }
203 tmp
204 }),
205 _ => crate::operation::create_image_recipe::CreateImageRecipeError::generic(generic),
206 })
207}
208
209#[allow(clippy::unnecessary_wraps)]
210pub fn de_create_image_recipe_http_response(
211 _response_status: u16,
212 _response_headers: &::aws_smithy_runtime_api::http::Headers,
213 _response_body: &[u8],
214) -> std::result::Result<crate::operation::create_image_recipe::CreateImageRecipeOutput, crate::operation::create_image_recipe::CreateImageRecipeError>
215{
216 Ok({
217 #[allow(unused_mut)]
218 let mut output = crate::operation::create_image_recipe::builders::CreateImageRecipeOutputBuilder::default();
219 output = crate::protocol_serde::shape_create_image_recipe::de_create_image_recipe(_response_body, output)
220 .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
221 output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
222 output.build()
223 })
224}
225
226pub fn ser_create_image_recipe_input(
227 input: &crate::operation::create_image_recipe::CreateImageRecipeInput,
228) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
229 let mut out = String::new();
230 let mut object = ::aws_smithy_json::serialize::JsonObjectWriter::new(&mut out);
231 crate::protocol_serde::shape_create_image_recipe_input::ser_create_image_recipe_input_input(&mut object, input)?;
232 object.finish();
233 Ok(::aws_smithy_types::body::SdkBody::from(out))
234}
235
236pub(crate) fn de_create_image_recipe(
237 value: &[u8],
238 mut builder: crate::operation::create_image_recipe::builders::CreateImageRecipeOutputBuilder,
239) -> ::std::result::Result<
240 crate::operation::create_image_recipe::builders::CreateImageRecipeOutputBuilder,
241 ::aws_smithy_json::deserialize::error::DeserializeError,
242> {
243 let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
244 let tokens = &mut tokens_owned;
245 ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
246 loop {
247 match tokens.next().transpose()? {
248 Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
249 Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
250 "clientToken" => {
251 builder = builder.set_client_token(
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 "imageRecipeArn" => {
258 builder = builder.set_image_recipe_arn(
259 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
260 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
261 .transpose()?,
262 );
263 }
264 "requestId" => {
265 builder = builder.set_request_id(
266 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
267 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
268 .transpose()?,
269 );
270 }
271 _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
272 },
273 other => {
274 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
275 "expected object key or end object, found: {:?}",
276 other
277 )))
278 }
279 }
280 }
281 if tokens.next().is_some() {
282 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
283 "found more JSON tokens after completing parsing",
284 ));
285 }
286 Ok(builder)
287}