aws_sdk_backup/protocol_serde/
shape_describe_backup_job.rs1#[allow(clippy::unnecessary_wraps)]
3pub fn de_describe_backup_job_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_backup_job::DescribeBackupJobOutput, crate::operation::describe_backup_job::DescribeBackupJobError>
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_backup_job::DescribeBackupJobError::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_backup_job::DescribeBackupJobError::unhandled(generic)),
17 };
18
19 let _error_message = generic.message().map(|msg| msg.to_owned());
20 Err(match error_code {
21 "DependencyFailureException" => crate::operation::describe_backup_job::DescribeBackupJobError::DependencyFailureException({
22 #[allow(unused_mut)]
23 let mut tmp = {
24 #[allow(unused_mut)]
25 let mut output = crate::types::error::builders::DependencyFailureExceptionBuilder::default();
26 output = crate::protocol_serde::shape_dependency_failure_exception::de_dependency_failure_exception_json_err(_response_body, output)
27 .map_err(crate::operation::describe_backup_job::DescribeBackupJobError::unhandled)?;
28 let output = output.meta(generic);
29 output.build()
30 };
31 if tmp.message.is_none() {
32 tmp.message = _error_message;
33 }
34 tmp
35 }),
36 "InvalidParameterValueException" => crate::operation::describe_backup_job::DescribeBackupJobError::InvalidParameterValueException({
37 #[allow(unused_mut)]
38 let mut tmp = {
39 #[allow(unused_mut)]
40 let mut output = crate::types::error::builders::InvalidParameterValueExceptionBuilder::default();
41 output = crate::protocol_serde::shape_invalid_parameter_value_exception::de_invalid_parameter_value_exception_json_err(
42 _response_body,
43 output,
44 )
45 .map_err(crate::operation::describe_backup_job::DescribeBackupJobError::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 "MissingParameterValueException" => crate::operation::describe_backup_job::DescribeBackupJobError::MissingParameterValueException({
55 #[allow(unused_mut)]
56 let mut tmp = {
57 #[allow(unused_mut)]
58 let mut output = crate::types::error::builders::MissingParameterValueExceptionBuilder::default();
59 output = crate::protocol_serde::shape_missing_parameter_value_exception::de_missing_parameter_value_exception_json_err(
60 _response_body,
61 output,
62 )
63 .map_err(crate::operation::describe_backup_job::DescribeBackupJobError::unhandled)?;
64 let output = output.meta(generic);
65 output.build()
66 };
67 if tmp.message.is_none() {
68 tmp.message = _error_message;
69 }
70 tmp
71 }),
72 "ResourceNotFoundException" => crate::operation::describe_backup_job::DescribeBackupJobError::ResourceNotFoundException({
73 #[allow(unused_mut)]
74 let mut tmp = {
75 #[allow(unused_mut)]
76 let mut output = crate::types::error::builders::ResourceNotFoundExceptionBuilder::default();
77 output = crate::protocol_serde::shape_resource_not_found_exception::de_resource_not_found_exception_json_err(_response_body, output)
78 .map_err(crate::operation::describe_backup_job::DescribeBackupJobError::unhandled)?;
79 let output = output.meta(generic);
80 output.build()
81 };
82 if tmp.message.is_none() {
83 tmp.message = _error_message;
84 }
85 tmp
86 }),
87 "ServiceUnavailableException" => crate::operation::describe_backup_job::DescribeBackupJobError::ServiceUnavailableException({
88 #[allow(unused_mut)]
89 let mut tmp = {
90 #[allow(unused_mut)]
91 let mut output = crate::types::error::builders::ServiceUnavailableExceptionBuilder::default();
92 output =
93 crate::protocol_serde::shape_service_unavailable_exception::de_service_unavailable_exception_json_err(_response_body, output)
94 .map_err(crate::operation::describe_backup_job::DescribeBackupJobError::unhandled)?;
95 let output = output.meta(generic);
96 output.build()
97 };
98 if tmp.message.is_none() {
99 tmp.message = _error_message;
100 }
101 tmp
102 }),
103 _ => crate::operation::describe_backup_job::DescribeBackupJobError::generic(generic),
104 })
105}
106
107#[allow(clippy::unnecessary_wraps)]
108pub fn de_describe_backup_job_http_response(
109 _response_status: u16,
110 _response_headers: &::aws_smithy_runtime_api::http::Headers,
111 _response_body: &[u8],
112) -> std::result::Result<crate::operation::describe_backup_job::DescribeBackupJobOutput, crate::operation::describe_backup_job::DescribeBackupJobError>
113{
114 Ok({
115 #[allow(unused_mut)]
116 let mut output = crate::operation::describe_backup_job::builders::DescribeBackupJobOutputBuilder::default();
117 output = crate::protocol_serde::shape_describe_backup_job::de_describe_backup_job(_response_body, output)
118 .map_err(crate::operation::describe_backup_job::DescribeBackupJobError::unhandled)?;
119 output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
120 output.build()
121 })
122}
123
124pub(crate) fn de_describe_backup_job(
125 value: &[u8],
126 mut builder: crate::operation::describe_backup_job::builders::DescribeBackupJobOutputBuilder,
127) -> ::std::result::Result<
128 crate::operation::describe_backup_job::builders::DescribeBackupJobOutputBuilder,
129 ::aws_smithy_json::deserialize::error::DeserializeError,
130> {
131 let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
132 let tokens = &mut tokens_owned;
133 ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
134 loop {
135 match tokens.next().transpose()? {
136 Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
137 Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
138 "AccountId" => {
139 builder = builder.set_account_id(
140 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
141 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
142 .transpose()?,
143 );
144 }
145 "BackupJobId" => {
146 builder = builder.set_backup_job_id(
147 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
148 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
149 .transpose()?,
150 );
151 }
152 "BackupOptions" => {
153 builder = builder.set_backup_options(crate::protocol_serde::shape_backup_options::de_backup_options(tokens)?);
154 }
155 "BackupSizeInBytes" => {
156 builder = builder.set_backup_size_in_bytes(
157 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
158 .map(i64::try_from)
159 .transpose()?,
160 );
161 }
162 "BackupType" => {
163 builder = builder.set_backup_type(
164 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
165 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
166 .transpose()?,
167 );
168 }
169 "BackupVaultArn" => {
170 builder = builder.set_backup_vault_arn(
171 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
172 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
173 .transpose()?,
174 );
175 }
176 "BackupVaultName" => {
177 builder = builder.set_backup_vault_name(
178 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
179 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
180 .transpose()?,
181 );
182 }
183 "BytesTransferred" => {
184 builder = builder.set_bytes_transferred(
185 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
186 .map(i64::try_from)
187 .transpose()?,
188 );
189 }
190 "ChildJobsInState" => {
191 builder = builder.set_child_jobs_in_state(
192 crate::protocol_serde::shape_backup_job_child_jobs_in_state::de_backup_job_child_jobs_in_state(tokens)?,
193 );
194 }
195 "CompletionDate" => {
196 builder = builder.set_completion_date(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
197 tokens.next(),
198 ::aws_smithy_types::date_time::Format::EpochSeconds,
199 )?);
200 }
201 "CreatedBy" => {
202 builder = builder.set_created_by(crate::protocol_serde::shape_recovery_point_creator::de_recovery_point_creator(tokens)?);
203 }
204 "CreationDate" => {
205 builder = builder.set_creation_date(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
206 tokens.next(),
207 ::aws_smithy_types::date_time::Format::EpochSeconds,
208 )?);
209 }
210 "ExpectedCompletionDate" => {
211 builder = builder.set_expected_completion_date(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
212 tokens.next(),
213 ::aws_smithy_types::date_time::Format::EpochSeconds,
214 )?);
215 }
216 "IamRoleArn" => {
217 builder = builder.set_iam_role_arn(
218 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
219 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
220 .transpose()?,
221 );
222 }
223 "InitiationDate" => {
224 builder = builder.set_initiation_date(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
225 tokens.next(),
226 ::aws_smithy_types::date_time::Format::EpochSeconds,
227 )?);
228 }
229 "IsParent" => {
230 builder = builder.set_is_parent(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
231 }
232 "MessageCategory" => {
233 builder = builder.set_message_category(
234 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
235 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
236 .transpose()?,
237 );
238 }
239 "NumberOfChildJobs" => {
240 builder = builder.set_number_of_child_jobs(
241 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
242 .map(i64::try_from)
243 .transpose()?,
244 );
245 }
246 "ParentJobId" => {
247 builder = builder.set_parent_job_id(
248 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
249 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
250 .transpose()?,
251 );
252 }
253 "PercentDone" => {
254 builder = builder.set_percent_done(
255 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
256 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
257 .transpose()?,
258 );
259 }
260 "RecoveryPointArn" => {
261 builder = builder.set_recovery_point_arn(
262 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
263 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
264 .transpose()?,
265 );
266 }
267 "ResourceArn" => {
268 builder = builder.set_resource_arn(
269 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
270 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
271 .transpose()?,
272 );
273 }
274 "ResourceName" => {
275 builder = builder.set_resource_name(
276 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
277 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
278 .transpose()?,
279 );
280 }
281 "ResourceType" => {
282 builder = builder.set_resource_type(
283 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
284 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
285 .transpose()?,
286 );
287 }
288 "StartBy" => {
289 builder = builder.set_start_by(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
290 tokens.next(),
291 ::aws_smithy_types::date_time::Format::EpochSeconds,
292 )?);
293 }
294 "State" => {
295 builder = builder.set_state(
296 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
297 .map(|s| s.to_unescaped().map(|u| crate::types::BackupJobState::from(u.as_ref())))
298 .transpose()?,
299 );
300 }
301 "StatusMessage" => {
302 builder = builder.set_status_message(
303 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
304 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
305 .transpose()?,
306 );
307 }
308 _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
309 },
310 other => {
311 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
312 "expected object key or end object, found: {:?}",
313 other
314 )))
315 }
316 }
317 }
318 if tokens.next().is_some() {
319 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
320 "found more JSON tokens after completing parsing",
321 ));
322 }
323 Ok(builder)
324}