aws_sdk_sagemaker/protocol_serde/
shape_inference_component_rolling_update_policy.rs1pub(crate) fn de_inference_component_rolling_update_policy<'a, I>(
3 tokens: &mut ::std::iter::Peekable<I>,
4) -> ::std::result::Result<Option<crate::types::InferenceComponentRollingUpdatePolicy>, ::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::InferenceComponentRollingUpdatePolicyBuilder::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 "MaximumBatchSize" => {
18 builder = builder.set_maximum_batch_size(
19 crate::protocol_serde::shape_inference_component_capacity_size::de_inference_component_capacity_size(tokens)?,
20 );
21 }
22 "WaitIntervalInSeconds" => {
23 builder = builder.set_wait_interval_in_seconds(
24 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
25 .map(i32::try_from)
26 .transpose()?,
27 );
28 }
29 "MaximumExecutionTimeoutInSeconds" => {
30 builder = builder.set_maximum_execution_timeout_in_seconds(
31 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
32 .map(i32::try_from)
33 .transpose()?,
34 );
35 }
36 "RollbackMaximumBatchSize" => {
37 builder = builder.set_rollback_maximum_batch_size(
38 crate::protocol_serde::shape_inference_component_capacity_size::de_inference_component_capacity_size(tokens)?,
39 );
40 }
41 _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
42 },
43 other => {
44 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
45 "expected object key or end object, found: {:?}",
46 other
47 )))
48 }
49 }
50 }
51 Ok(Some(
52 crate::serde_util::inference_component_rolling_update_policy_correct_errors(builder).build(),
53 ))
54 }
55 _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
56 "expected start object or null",
57 )),
58 }
59}
60
61pub fn ser_inference_component_rolling_update_policy(
62 object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
63 input: &crate::types::InferenceComponentRollingUpdatePolicy,
64) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
65 if let Some(var_1) = &input.maximum_batch_size {
66 #[allow(unused_mut)]
67 let mut object_2 = object.key("MaximumBatchSize").start_object();
68 crate::protocol_serde::shape_inference_component_capacity_size::ser_inference_component_capacity_size(&mut object_2, var_1)?;
69 object_2.finish();
70 }
71 if let Some(var_3) = &input.wait_interval_in_seconds {
72 object.key("WaitIntervalInSeconds").number(
73 #[allow(clippy::useless_conversion)]
74 ::aws_smithy_types::Number::NegInt((*var_3).into()),
75 );
76 }
77 if let Some(var_4) = &input.maximum_execution_timeout_in_seconds {
78 object.key("MaximumExecutionTimeoutInSeconds").number(
79 #[allow(clippy::useless_conversion)]
80 ::aws_smithy_types::Number::NegInt((*var_4).into()),
81 );
82 }
83 if let Some(var_5) = &input.rollback_maximum_batch_size {
84 #[allow(unused_mut)]
85 let mut object_6 = object.key("RollbackMaximumBatchSize").start_object();
86 crate::protocol_serde::shape_inference_component_capacity_size::ser_inference_component_capacity_size(&mut object_6, var_5)?;
87 object_6.finish();
88 }
89 Ok(())
90}