aws_sdk_securityhub/protocol_serde/
shape_aws_ecs_task_definition_details.rs1pub fn ser_aws_ecs_task_definition_details(
3 object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
4 input: &crate::types::AwsEcsTaskDefinitionDetails,
5) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
6 if let Some(var_1) = &input.container_definitions {
7 let mut array_2 = object.key("ContainerDefinitions").start_array();
8 for item_3 in var_1 {
9 {
10 #[allow(unused_mut)]
11 let mut object_4 = array_2.value().start_object();
12 crate::protocol_serde::shape_aws_ecs_task_definition_container_definitions_details::ser_aws_ecs_task_definition_container_definitions_details(&mut object_4, item_3)?;
13 object_4.finish();
14 }
15 }
16 array_2.finish();
17 }
18 if let Some(var_5) = &input.cpu {
19 object.key("Cpu").string(var_5.as_str());
20 }
21 if let Some(var_6) = &input.execution_role_arn {
22 object.key("ExecutionRoleArn").string(var_6.as_str());
23 }
24 if let Some(var_7) = &input.family {
25 object.key("Family").string(var_7.as_str());
26 }
27 if let Some(var_8) = &input.inference_accelerators {
28 let mut array_9 = object.key("InferenceAccelerators").start_array();
29 for item_10 in var_8 {
30 {
31 #[allow(unused_mut)]
32 let mut object_11 = array_9.value().start_object();
33 crate::protocol_serde::shape_aws_ecs_task_definition_inference_accelerators_details::ser_aws_ecs_task_definition_inference_accelerators_details(&mut object_11, item_10)?;
34 object_11.finish();
35 }
36 }
37 array_9.finish();
38 }
39 if let Some(var_12) = &input.ipc_mode {
40 object.key("IpcMode").string(var_12.as_str());
41 }
42 if let Some(var_13) = &input.memory {
43 object.key("Memory").string(var_13.as_str());
44 }
45 if let Some(var_14) = &input.network_mode {
46 object.key("NetworkMode").string(var_14.as_str());
47 }
48 if let Some(var_15) = &input.pid_mode {
49 object.key("PidMode").string(var_15.as_str());
50 }
51 if let Some(var_16) = &input.placement_constraints {
52 let mut array_17 = object.key("PlacementConstraints").start_array();
53 for item_18 in var_16 {
54 {
55 #[allow(unused_mut)]
56 let mut object_19 = array_17.value().start_object();
57 crate::protocol_serde::shape_aws_ecs_task_definition_placement_constraints_details::ser_aws_ecs_task_definition_placement_constraints_details(&mut object_19, item_18)?;
58 object_19.finish();
59 }
60 }
61 array_17.finish();
62 }
63 if let Some(var_20) = &input.proxy_configuration {
64 #[allow(unused_mut)]
65 let mut object_21 = object.key("ProxyConfiguration").start_object();
66 crate::protocol_serde::shape_aws_ecs_task_definition_proxy_configuration_details::ser_aws_ecs_task_definition_proxy_configuration_details(
67 &mut object_21,
68 var_20,
69 )?;
70 object_21.finish();
71 }
72 if let Some(var_22) = &input.requires_compatibilities {
73 let mut array_23 = object.key("RequiresCompatibilities").start_array();
74 for item_24 in var_22 {
75 {
76 array_23.value().string(item_24.as_str());
77 }
78 }
79 array_23.finish();
80 }
81 if let Some(var_25) = &input.task_role_arn {
82 object.key("TaskRoleArn").string(var_25.as_str());
83 }
84 if let Some(var_26) = &input.volumes {
85 let mut array_27 = object.key("Volumes").start_array();
86 for item_28 in var_26 {
87 {
88 #[allow(unused_mut)]
89 let mut object_29 = array_27.value().start_object();
90 crate::protocol_serde::shape_aws_ecs_task_definition_volumes_details::ser_aws_ecs_task_definition_volumes_details(
91 &mut object_29,
92 item_28,
93 )?;
94 object_29.finish();
95 }
96 }
97 array_27.finish();
98 }
99 if let Some(var_30) = &input.status {
100 object.key("Status").string(var_30.as_str());
101 }
102 Ok(())
103}
104
105pub(crate) fn de_aws_ecs_task_definition_details<'a, I>(
106 tokens: &mut ::std::iter::Peekable<I>,
107) -> ::std::result::Result<Option<crate::types::AwsEcsTaskDefinitionDetails>, ::aws_smithy_json::deserialize::error::DeserializeError>
108where
109 I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
110{
111 match tokens.next().transpose()? {
112 Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
113 Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
114 #[allow(unused_mut)]
115 let mut builder = crate::types::builders::AwsEcsTaskDefinitionDetailsBuilder::default();
116 loop {
117 match tokens.next().transpose()? {
118 Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
119 Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
120 "ContainerDefinitions" => {
121 builder = builder.set_container_definitions(
122 crate::protocol_serde::shape_aws_ecs_task_definition_container_definitions_list::de_aws_ecs_task_definition_container_definitions_list(tokens)?
123 );
124 }
125 "Cpu" => {
126 builder = builder.set_cpu(
127 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
128 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
129 .transpose()?,
130 );
131 }
132 "ExecutionRoleArn" => {
133 builder = builder.set_execution_role_arn(
134 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
135 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
136 .transpose()?,
137 );
138 }
139 "Family" => {
140 builder = builder.set_family(
141 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
142 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
143 .transpose()?,
144 );
145 }
146 "InferenceAccelerators" => {
147 builder = builder.set_inference_accelerators(
148 crate::protocol_serde::shape_aws_ecs_task_definition_inference_accelerators_list::de_aws_ecs_task_definition_inference_accelerators_list(tokens)?
149 );
150 }
151 "IpcMode" => {
152 builder = builder.set_ipc_mode(
153 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
154 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
155 .transpose()?,
156 );
157 }
158 "Memory" => {
159 builder = builder.set_memory(
160 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
161 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
162 .transpose()?,
163 );
164 }
165 "NetworkMode" => {
166 builder = builder.set_network_mode(
167 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
168 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
169 .transpose()?,
170 );
171 }
172 "PidMode" => {
173 builder = builder.set_pid_mode(
174 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
175 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
176 .transpose()?,
177 );
178 }
179 "PlacementConstraints" => {
180 builder = builder.set_placement_constraints(
181 crate::protocol_serde::shape_aws_ecs_task_definition_placement_constraints_list::de_aws_ecs_task_definition_placement_constraints_list(tokens)?
182 );
183 }
184 "ProxyConfiguration" => {
185 builder = builder.set_proxy_configuration(
186 crate::protocol_serde::shape_aws_ecs_task_definition_proxy_configuration_details::de_aws_ecs_task_definition_proxy_configuration_details(tokens)?
187 );
188 }
189 "RequiresCompatibilities" => {
190 builder = builder
191 .set_requires_compatibilities(crate::protocol_serde::shape_non_empty_string_list::de_non_empty_string_list(tokens)?);
192 }
193 "TaskRoleArn" => {
194 builder = builder.set_task_role_arn(
195 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
196 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
197 .transpose()?,
198 );
199 }
200 "Volumes" => {
201 builder = builder.set_volumes(
202 crate::protocol_serde::shape_aws_ecs_task_definition_volumes_list::de_aws_ecs_task_definition_volumes_list(tokens)?,
203 );
204 }
205 "Status" => {
206 builder = builder.set_status(
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 _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
213 },
214 other => {
215 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
216 "expected object key or end object, found: {:?}",
217 other
218 )))
219 }
220 }
221 }
222 Ok(Some(builder.build()))
223 }
224 _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
225 "expected start object or null",
226 )),
227 }
228}