aws_sdk_ecs/protocol_serde/
shape_task_definition.rs1pub(crate) fn de_task_definition<'a, I>(
3 tokens: &mut ::std::iter::Peekable<I>,
4) -> ::std::result::Result<Option<crate::types::TaskDefinition>, ::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::TaskDefinitionBuilder::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 "taskDefinitionArn" => {
18 builder = builder.set_task_definition_arn(
19 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
20 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
21 .transpose()?,
22 );
23 }
24 "containerDefinitions" => {
25 builder = builder
26 .set_container_definitions(crate::protocol_serde::shape_container_definitions::de_container_definitions(tokens)?);
27 }
28 "family" => {
29 builder = builder.set_family(
30 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
31 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
32 .transpose()?,
33 );
34 }
35 "taskRoleArn" => {
36 builder = builder.set_task_role_arn(
37 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
38 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
39 .transpose()?,
40 );
41 }
42 "executionRoleArn" => {
43 builder = builder.set_execution_role_arn(
44 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
45 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
46 .transpose()?,
47 );
48 }
49 "networkMode" => {
50 builder = builder.set_network_mode(
51 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
52 .map(|s| s.to_unescaped().map(|u| crate::types::NetworkMode::from(u.as_ref())))
53 .transpose()?,
54 );
55 }
56 "revision" => {
57 builder = builder.set_revision(
58 ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
59 .map(i32::try_from)
60 .transpose()?,
61 );
62 }
63 "volumes" => {
64 builder = builder.set_volumes(crate::protocol_serde::shape_volume_list::de_volume_list(tokens)?);
65 }
66 "status" => {
67 builder = builder.set_status(
68 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
69 .map(|s| s.to_unescaped().map(|u| crate::types::TaskDefinitionStatus::from(u.as_ref())))
70 .transpose()?,
71 );
72 }
73 "requiresAttributes" => {
74 builder =
75 builder.set_requires_attributes(crate::protocol_serde::shape_requires_attributes::de_requires_attributes(tokens)?);
76 }
77 "placementConstraints" => {
78 builder = builder.set_placement_constraints(
79 crate::protocol_serde::shape_task_definition_placement_constraints::de_task_definition_placement_constraints(tokens)?,
80 );
81 }
82 "compatibilities" => {
83 builder = builder.set_compatibilities(crate::protocol_serde::shape_compatibility_list::de_compatibility_list(tokens)?);
84 }
85 "runtimePlatform" => {
86 builder = builder.set_runtime_platform(crate::protocol_serde::shape_runtime_platform::de_runtime_platform(tokens)?);
87 }
88 "requiresCompatibilities" => {
89 builder =
90 builder.set_requires_compatibilities(crate::protocol_serde::shape_compatibility_list::de_compatibility_list(tokens)?);
91 }
92 "cpu" => {
93 builder = builder.set_cpu(
94 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
95 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
96 .transpose()?,
97 );
98 }
99 "memory" => {
100 builder = builder.set_memory(
101 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
102 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
103 .transpose()?,
104 );
105 }
106 "inferenceAccelerators" => {
107 builder = builder
108 .set_inference_accelerators(crate::protocol_serde::shape_inference_accelerators::de_inference_accelerators(tokens)?);
109 }
110 "pidMode" => {
111 builder = builder.set_pid_mode(
112 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
113 .map(|s| s.to_unescaped().map(|u| crate::types::PidMode::from(u.as_ref())))
114 .transpose()?,
115 );
116 }
117 "ipcMode" => {
118 builder = builder.set_ipc_mode(
119 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
120 .map(|s| s.to_unescaped().map(|u| crate::types::IpcMode::from(u.as_ref())))
121 .transpose()?,
122 );
123 }
124 "proxyConfiguration" => {
125 builder =
126 builder.set_proxy_configuration(crate::protocol_serde::shape_proxy_configuration::de_proxy_configuration(tokens)?);
127 }
128 "registeredAt" => {
129 builder = builder.set_registered_at(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
130 tokens.next(),
131 ::aws_smithy_types::date_time::Format::EpochSeconds,
132 )?);
133 }
134 "deregisteredAt" => {
135 builder = builder.set_deregistered_at(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
136 tokens.next(),
137 ::aws_smithy_types::date_time::Format::EpochSeconds,
138 )?);
139 }
140 "registeredBy" => {
141 builder = builder.set_registered_by(
142 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
143 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
144 .transpose()?,
145 );
146 }
147 "ephemeralStorage" => {
148 builder = builder.set_ephemeral_storage(crate::protocol_serde::shape_ephemeral_storage::de_ephemeral_storage(tokens)?);
149 }
150 "enableFaultInjection" => {
151 builder = builder.set_enable_fault_injection(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
152 }
153 _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
154 },
155 other => {
156 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
157 "expected object key or end object, found: {:?}",
158 other
159 )))
160 }
161 }
162 }
163 Ok(Some(builder.build()))
164 }
165 _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
166 "expected start object or null",
167 )),
168 }
169}