aws_sdk_elasticsearch/protocol_serde/
shape_elasticsearch_cluster_config.rs1pub fn ser_elasticsearch_cluster_config(
3 object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
4 input: &crate::types::ElasticsearchClusterConfig,
5) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
6 if let Some(var_1) = &input.instance_type {
7 object.key("InstanceType").string(var_1.as_str());
8 }
9 if let Some(var_2) = &input.instance_count {
10 object.key("InstanceCount").number(
11 #[allow(clippy::useless_conversion)]
12 ::aws_smithy_types::Number::NegInt((*var_2).into()),
13 );
14 }
15 if let Some(var_3) = &input.dedicated_master_enabled {
16 object.key("DedicatedMasterEnabled").boolean(*var_3);
17 }
18 if let Some(var_4) = &input.zone_awareness_enabled {
19 object.key("ZoneAwarenessEnabled").boolean(*var_4);
20 }
21 if let Some(var_5) = &input.zone_awareness_config {
22 #[allow(unused_mut)]
23 let mut object_6 = object.key("ZoneAwarenessConfig").start_object();
24 crate::protocol_serde::shape_zone_awareness_config::ser_zone_awareness_config(&mut object_6, var_5)?;
25 object_6.finish();
26 }
27 if let Some(var_7) = &input.dedicated_master_type {
28 object.key("DedicatedMasterType").string(var_7.as_str());
29 }
30 if let Some(var_8) = &input.dedicated_master_count {
31 object.key("DedicatedMasterCount").number(
32 #[allow(clippy::useless_conversion)]
33 ::aws_smithy_types::Number::NegInt((*var_8).into()),
34 );
35 }
36 if let Some(var_9) = &input.warm_enabled {
37 object.key("WarmEnabled").boolean(*var_9);
38 }
39 if let Some(var_10) = &input.warm_type {
40 object.key("WarmType").string(var_10.as_str());
41 }
42 if let Some(var_11) = &input.warm_count {
43 object.key("WarmCount").number(
44 #[allow(clippy::useless_conversion)]
45 ::aws_smithy_types::Number::NegInt((*var_11).into()),
46 );
47 }
48 if let Some(var_12) = &input.cold_storage_options {
49 #[allow(unused_mut)]
50 let mut object_13 = object.key("ColdStorageOptions").start_object();
51 crate::protocol_serde::shape_cold_storage_options::ser_cold_storage_options(&mut object_13, var_12)?;
52 object_13.finish();
53 }
54 Ok(())
55}
56
57pub(crate) fn de_elasticsearch_cluster_config<'a, I>(
58 tokens: &mut ::std::iter::Peekable<I>,
59) -> ::std::result::Result<Option<crate::types::ElasticsearchClusterConfig>, ::aws_smithy_json::deserialize::error::DeserializeError>
60where
61 I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
62{
63 match tokens.next().transpose()? {
64 Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
65 Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
66 #[allow(unused_mut)]
67 let mut builder = crate::types::builders::ElasticsearchClusterConfigBuilder::default();
68 loop {
69 match tokens.next().transpose()? {
70 Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
71 Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
72 "InstanceType" => {
73 builder = builder.set_instance_type(
74 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
75 .map(|s| s.to_unescaped().map(|u| crate::types::EsPartitionInstanceType::from(u.as_ref())))
76 .transpose()?,
77 );
78 }
79 "InstanceCount" => {
80 builder = builder.set_instance_count(
81 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
82 .map(i32::try_from)
83 .transpose()?,
84 );
85 }
86 "DedicatedMasterEnabled" => {
87 builder =
88 builder.set_dedicated_master_enabled(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
89 }
90 "ZoneAwarenessEnabled" => {
91 builder = builder.set_zone_awareness_enabled(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
92 }
93 "ZoneAwarenessConfig" => {
94 builder = builder
95 .set_zone_awareness_config(crate::protocol_serde::shape_zone_awareness_config::de_zone_awareness_config(tokens)?);
96 }
97 "DedicatedMasterType" => {
98 builder = builder.set_dedicated_master_type(
99 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
100 .map(|s| s.to_unescaped().map(|u| crate::types::EsPartitionInstanceType::from(u.as_ref())))
101 .transpose()?,
102 );
103 }
104 "DedicatedMasterCount" => {
105 builder = builder.set_dedicated_master_count(
106 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
107 .map(i32::try_from)
108 .transpose()?,
109 );
110 }
111 "WarmEnabled" => {
112 builder = builder.set_warm_enabled(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
113 }
114 "WarmType" => {
115 builder = builder.set_warm_type(
116 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
117 .map(|s| s.to_unescaped().map(|u| crate::types::EsWarmPartitionInstanceType::from(u.as_ref())))
118 .transpose()?,
119 );
120 }
121 "WarmCount" => {
122 builder = builder.set_warm_count(
123 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
124 .map(i32::try_from)
125 .transpose()?,
126 );
127 }
128 "ColdStorageOptions" => {
129 builder =
130 builder.set_cold_storage_options(crate::protocol_serde::shape_cold_storage_options::de_cold_storage_options(tokens)?);
131 }
132 _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
133 },
134 other => {
135 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
136 "expected object key or end object, found: {:?}",
137 other
138 )))
139 }
140 }
141 }
142 Ok(Some(builder.build()))
143 }
144 _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
145 "expected start object or null",
146 )),
147 }
148}