aws_sdk_ecs/protocol_serde/
shape_deployment_configuration.rs1pub fn ser_deployment_configuration(
3 object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
4 input: &crate::types::DeploymentConfiguration,
5) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
6 if let Some(var_1) = &input.deployment_circuit_breaker {
7 #[allow(unused_mut)]
8 let mut object_2 = object.key("deploymentCircuitBreaker").start_object();
9 crate::protocol_serde::shape_deployment_circuit_breaker::ser_deployment_circuit_breaker(&mut object_2, var_1)?;
10 object_2.finish();
11 }
12 if let Some(var_3) = &input.maximum_percent {
13 object.key("maximumPercent").number(
14 #[allow(clippy::useless_conversion)]
15 ::aws_smithy_types::Number::NegInt((*var_3).into()),
16 );
17 }
18 if let Some(var_4) = &input.minimum_healthy_percent {
19 object.key("minimumHealthyPercent").number(
20 #[allow(clippy::useless_conversion)]
21 ::aws_smithy_types::Number::NegInt((*var_4).into()),
22 );
23 }
24 if let Some(var_5) = &input.alarms {
25 #[allow(unused_mut)]
26 let mut object_6 = object.key("alarms").start_object();
27 crate::protocol_serde::shape_deployment_alarms::ser_deployment_alarms(&mut object_6, var_5)?;
28 object_6.finish();
29 }
30 if let Some(var_7) = &input.strategy {
31 object.key("strategy").string(var_7.as_str());
32 }
33 if let Some(var_8) = &input.bake_time_in_minutes {
34 object.key("bakeTimeInMinutes").number(
35 #[allow(clippy::useless_conversion)]
36 ::aws_smithy_types::Number::NegInt((*var_8).into()),
37 );
38 }
39 if let Some(var_9) = &input.lifecycle_hooks {
40 let mut array_10 = object.key("lifecycleHooks").start_array();
41 for item_11 in var_9 {
42 {
43 #[allow(unused_mut)]
44 let mut object_12 = array_10.value().start_object();
45 crate::protocol_serde::shape_deployment_lifecycle_hook::ser_deployment_lifecycle_hook(&mut object_12, item_11)?;
46 object_12.finish();
47 }
48 }
49 array_10.finish();
50 }
51 Ok(())
52}
53
54pub(crate) fn de_deployment_configuration<'a, I>(
55 tokens: &mut ::std::iter::Peekable<I>,
56) -> ::std::result::Result<Option<crate::types::DeploymentConfiguration>, ::aws_smithy_json::deserialize::error::DeserializeError>
57where
58 I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
59{
60 match tokens.next().transpose()? {
61 Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
62 Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
63 #[allow(unused_mut)]
64 let mut builder = crate::types::builders::DeploymentConfigurationBuilder::default();
65 loop {
66 match tokens.next().transpose()? {
67 Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
68 Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
69 "deploymentCircuitBreaker" => {
70 builder = builder.set_deployment_circuit_breaker(
71 crate::protocol_serde::shape_deployment_circuit_breaker::de_deployment_circuit_breaker(tokens)?,
72 );
73 }
74 "maximumPercent" => {
75 builder = builder.set_maximum_percent(
76 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
77 .map(i32::try_from)
78 .transpose()?,
79 );
80 }
81 "minimumHealthyPercent" => {
82 builder = builder.set_minimum_healthy_percent(
83 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
84 .map(i32::try_from)
85 .transpose()?,
86 );
87 }
88 "alarms" => {
89 builder = builder.set_alarms(crate::protocol_serde::shape_deployment_alarms::de_deployment_alarms(tokens)?);
90 }
91 "strategy" => {
92 builder = builder.set_strategy(
93 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
94 .map(|s| s.to_unescaped().map(|u| crate::types::DeploymentStrategy::from(u.as_ref())))
95 .transpose()?,
96 );
97 }
98 "bakeTimeInMinutes" => {
99 builder = builder.set_bake_time_in_minutes(
100 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
101 .map(i32::try_from)
102 .transpose()?,
103 );
104 }
105 "lifecycleHooks" => {
106 builder = builder.set_lifecycle_hooks(
107 crate::protocol_serde::shape_deployment_lifecycle_hook_list::de_deployment_lifecycle_hook_list(tokens)?,
108 );
109 }
110 _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
111 },
112 other => {
113 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
114 "expected object key or end object, found: {:?}",
115 other
116 )))
117 }
118 }
119 }
120 Ok(Some(builder.build()))
121 }
122 _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
123 "expected start object or null",
124 )),
125 }
126}