aws_sdk_backup/protocol_serde/
shape_backup_job.rs1pub(crate) fn de_backup_job<'a, I>(
3 tokens: &mut ::std::iter::Peekable<I>,
4) -> ::std::result::Result<Option<crate::types::BackupJob>, ::aws_smithy_json::deserialize::error::DeserializeError>
5where
6 I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
7{
8 match tokens.next().transpose()? {
9 Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
10 Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
11 #[allow(unused_mut)]
12 let mut builder = crate::types::builders::BackupJobBuilder::default();
13 loop {
14 match tokens.next().transpose()? {
15 Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
16 Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
17 "AccountId" => {
18 builder = builder.set_account_id(
19 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
20 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
21 .transpose()?,
22 );
23 }
24 "BackupJobId" => {
25 builder = builder.set_backup_job_id(
26 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
27 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
28 .transpose()?,
29 );
30 }
31 "BackupVaultName" => {
32 builder = builder.set_backup_vault_name(
33 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
34 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
35 .transpose()?,
36 );
37 }
38 "BackupVaultArn" => {
39 builder = builder.set_backup_vault_arn(
40 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
41 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
42 .transpose()?,
43 );
44 }
45 "RecoveryPointArn" => {
46 builder = builder.set_recovery_point_arn(
47 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
48 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
49 .transpose()?,
50 );
51 }
52 "ResourceArn" => {
53 builder = builder.set_resource_arn(
54 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
55 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
56 .transpose()?,
57 );
58 }
59 "CreationDate" => {
60 builder = builder.set_creation_date(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
61 tokens.next(),
62 ::aws_smithy_types::date_time::Format::EpochSeconds,
63 )?);
64 }
65 "CompletionDate" => {
66 builder = builder.set_completion_date(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
67 tokens.next(),
68 ::aws_smithy_types::date_time::Format::EpochSeconds,
69 )?);
70 }
71 "State" => {
72 builder = builder.set_state(
73 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
74 .map(|s| s.to_unescaped().map(|u| crate::types::BackupJobState::from(u.as_ref())))
75 .transpose()?,
76 );
77 }
78 "StatusMessage" => {
79 builder = builder.set_status_message(
80 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
81 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
82 .transpose()?,
83 );
84 }
85 "PercentDone" => {
86 builder = builder.set_percent_done(
87 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
88 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
89 .transpose()?,
90 );
91 }
92 "BackupSizeInBytes" => {
93 builder = builder.set_backup_size_in_bytes(
94 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
95 .map(i64::try_from)
96 .transpose()?,
97 );
98 }
99 "IamRoleArn" => {
100 builder = builder.set_iam_role_arn(
101 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
102 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
103 .transpose()?,
104 );
105 }
106 "CreatedBy" => {
107 builder = builder.set_created_by(crate::protocol_serde::shape_recovery_point_creator::de_recovery_point_creator(tokens)?);
108 }
109 "ExpectedCompletionDate" => {
110 builder = builder.set_expected_completion_date(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
111 tokens.next(),
112 ::aws_smithy_types::date_time::Format::EpochSeconds,
113 )?);
114 }
115 "StartBy" => {
116 builder = builder.set_start_by(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
117 tokens.next(),
118 ::aws_smithy_types::date_time::Format::EpochSeconds,
119 )?);
120 }
121 "ResourceType" => {
122 builder = builder.set_resource_type(
123 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
124 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
125 .transpose()?,
126 );
127 }
128 "BytesTransferred" => {
129 builder = builder.set_bytes_transferred(
130 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
131 .map(i64::try_from)
132 .transpose()?,
133 );
134 }
135 "BackupOptions" => {
136 builder = builder.set_backup_options(crate::protocol_serde::shape_backup_options::de_backup_options(tokens)?);
137 }
138 "BackupType" => {
139 builder = builder.set_backup_type(
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 "ParentJobId" => {
146 builder = builder.set_parent_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 "IsParent" => {
153 builder = builder.set_is_parent(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
154 }
155 "ResourceName" => {
156 builder = builder.set_resource_name(
157 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
158 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
159 .transpose()?,
160 );
161 }
162 "InitiationDate" => {
163 builder = builder.set_initiation_date(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
164 tokens.next(),
165 ::aws_smithy_types::date_time::Format::EpochSeconds,
166 )?);
167 }
168 "MessageCategory" => {
169 builder = builder.set_message_category(
170 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
171 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
172 .transpose()?,
173 );
174 }
175 _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
176 },
177 other => {
178 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
179 "expected object key or end object, found: {:?}",
180 other
181 )))
182 }
183 }
184 }
185 Ok(Some(builder.build()))
186 }
187 _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
188 "expected start object or null",
189 )),
190 }
191}