aws_sdk_lambda/protocol_serde/
shape_function_configuration.rs1pub(crate) fn de_function_configuration<'a, I>(
3 tokens: &mut ::std::iter::Peekable<I>,
4 _value: &'a [u8],
5) -> ::std::result::Result<Option<crate::types::FunctionConfiguration>, ::aws_smithy_json::deserialize::error::DeserializeError>
6where
7 I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
8{
9 match tokens.next().transpose()? {
10 Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
11 Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
12 #[allow(unused_mut)]
13 let mut builder = crate::types::builders::FunctionConfigurationBuilder::default();
14 loop {
15 match tokens.next().transpose()? {
16 Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
17 Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
18 "FunctionName" => {
19 builder = builder.set_function_name(
20 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
21 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
22 .transpose()?,
23 );
24 }
25 "FunctionArn" => {
26 builder = builder.set_function_arn(
27 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
28 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
29 .transpose()?,
30 );
31 }
32 "Runtime" => {
33 builder = builder.set_runtime(
34 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
35 .map(|s| s.to_unescaped().map(|u| crate::types::Runtime::from(u.as_ref())))
36 .transpose()?,
37 );
38 }
39 "Role" => {
40 builder = builder.set_role(
41 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
42 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
43 .transpose()?,
44 );
45 }
46 "Handler" => {
47 builder = builder.set_handler(
48 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
49 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
50 .transpose()?,
51 );
52 }
53 "CodeSize" => {
54 builder = builder.set_code_size(
55 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
56 .map(i64::try_from)
57 .transpose()?,
58 );
59 }
60 "Description" => {
61 builder = builder.set_description(
62 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
63 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
64 .transpose()?,
65 );
66 }
67 "Timeout" => {
68 builder = builder.set_timeout(
69 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
70 .map(i32::try_from)
71 .transpose()?,
72 );
73 }
74 "MemorySize" => {
75 builder = builder.set_memory_size(
76 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
77 .map(i32::try_from)
78 .transpose()?,
79 );
80 }
81 "LastModified" => {
82 builder = builder.set_last_modified(
83 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
84 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
85 .transpose()?,
86 );
87 }
88 "CodeSha256" => {
89 builder = builder.set_code_sha256(
90 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
91 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
92 .transpose()?,
93 );
94 }
95 "Version" => {
96 builder = builder.set_version(
97 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
98 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
99 .transpose()?,
100 );
101 }
102 "VpcConfig" => {
103 builder =
104 builder.set_vpc_config(crate::protocol_serde::shape_vpc_config_response::de_vpc_config_response(tokens, _value)?);
105 }
106 "DeadLetterConfig" => {
107 builder = builder
108 .set_dead_letter_config(crate::protocol_serde::shape_dead_letter_config::de_dead_letter_config(tokens, _value)?);
109 }
110 "Environment" => {
111 builder = builder.set_environment(crate::protocol_serde::shape_environment_response::de_environment_response(
112 tokens, _value,
113 )?);
114 }
115 "KMSKeyArn" => {
116 builder = builder.set_kms_key_arn(
117 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
118 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
119 .transpose()?,
120 );
121 }
122 "TracingConfig" => {
123 builder = builder.set_tracing_config(crate::protocol_serde::shape_tracing_config_response::de_tracing_config_response(
124 tokens, _value,
125 )?);
126 }
127 "MasterArn" => {
128 builder = builder.set_master_arn(
129 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
130 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
131 .transpose()?,
132 );
133 }
134 "RevisionId" => {
135 builder = builder.set_revision_id(
136 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
137 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
138 .transpose()?,
139 );
140 }
141 "Layers" => {
142 builder = builder.set_layers(crate::protocol_serde::shape_layers_reference_list::de_layers_reference_list(
143 tokens, _value,
144 )?);
145 }
146 "State" => {
147 builder = builder.set_state(
148 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
149 .map(|s| s.to_unescaped().map(|u| crate::types::State::from(u.as_ref())))
150 .transpose()?,
151 );
152 }
153 "StateReason" => {
154 builder = builder.set_state_reason(
155 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
156 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
157 .transpose()?,
158 );
159 }
160 "StateReasonCode" => {
161 builder = builder.set_state_reason_code(
162 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
163 .map(|s| s.to_unescaped().map(|u| crate::types::StateReasonCode::from(u.as_ref())))
164 .transpose()?,
165 );
166 }
167 "LastUpdateStatus" => {
168 builder = builder.set_last_update_status(
169 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
170 .map(|s| s.to_unescaped().map(|u| crate::types::LastUpdateStatus::from(u.as_ref())))
171 .transpose()?,
172 );
173 }
174 "LastUpdateStatusReason" => {
175 builder = builder.set_last_update_status_reason(
176 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
177 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
178 .transpose()?,
179 );
180 }
181 "LastUpdateStatusReasonCode" => {
182 builder = builder.set_last_update_status_reason_code(
183 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
184 .map(|s| s.to_unescaped().map(|u| crate::types::LastUpdateStatusReasonCode::from(u.as_ref())))
185 .transpose()?,
186 );
187 }
188 "FileSystemConfigs" => {
189 builder = builder.set_file_system_configs(
190 crate::protocol_serde::shape_file_system_config_list::de_file_system_config_list(tokens, _value)?,
191 );
192 }
193 "PackageType" => {
194 builder = builder.set_package_type(
195 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
196 .map(|s| s.to_unescaped().map(|u| crate::types::PackageType::from(u.as_ref())))
197 .transpose()?,
198 );
199 }
200 "ImageConfigResponse" => {
201 builder = builder.set_image_config_response(
202 crate::protocol_serde::shape_image_config_response::de_image_config_response(tokens, _value)?,
203 );
204 }
205 "SigningProfileVersionArn" => {
206 builder = builder.set_signing_profile_version_arn(
207 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
208 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
209 .transpose()?,
210 );
211 }
212 "SigningJobArn" => {
213 builder = builder.set_signing_job_arn(
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 "Architectures" => {
220 builder =
221 builder.set_architectures(crate::protocol_serde::shape_architectures_list::de_architectures_list(tokens, _value)?);
222 }
223 "EphemeralStorage" => {
224 builder =
225 builder.set_ephemeral_storage(crate::protocol_serde::shape_ephemeral_storage::de_ephemeral_storage(tokens, _value)?);
226 }
227 "SnapStart" => {
228 builder =
229 builder.set_snap_start(crate::protocol_serde::shape_snap_start_response::de_snap_start_response(tokens, _value)?);
230 }
231 "RuntimeVersionConfig" => {
232 builder = builder.set_runtime_version_config(
233 crate::protocol_serde::shape_runtime_version_config::de_runtime_version_config(tokens, _value)?,
234 );
235 }
236 "LoggingConfig" => {
237 builder = builder.set_logging_config(crate::protocol_serde::shape_logging_config::de_logging_config(tokens, _value)?);
238 }
239 "CapacityProviderConfig" => {
240 builder = builder.set_capacity_provider_config(
241 crate::protocol_serde::shape_capacity_provider_config::de_capacity_provider_config(tokens, _value)?,
242 );
243 }
244 "ConfigSha256" => {
245 builder = builder.set_config_sha256(
246 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
247 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
248 .transpose()?,
249 );
250 }
251 "DurableConfig" => {
252 builder = builder.set_durable_config(crate::protocol_serde::shape_durable_config::de_durable_config(tokens, _value)?);
253 }
254 "TenancyConfig" => {
255 builder = builder.set_tenancy_config(crate::protocol_serde::shape_tenancy_config::de_tenancy_config(tokens, _value)?);
256 }
257 _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
258 },
259 other => {
260 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
261 "expected object key or end object, found: {other:?}"
262 )))
263 }
264 }
265 }
266 Ok(Some(builder.build()))
267 }
268 _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
269 "expected start object or null",
270 )),
271 }
272}