aws_sdk_codepipeline/protocol_serde/
shape_action_declaration.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub fn ser_action_declaration(
3    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
4    input: &crate::types::ActionDeclaration,
5) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
6    {
7        object.key("name").string(input.name.as_str());
8    }
9    if let Some(var_1) = &input.action_type_id {
10        #[allow(unused_mut)]
11        let mut object_2 = object.key("actionTypeId").start_object();
12        crate::protocol_serde::shape_action_type_id::ser_action_type_id(&mut object_2, var_1)?;
13        object_2.finish();
14    }
15    if let Some(var_3) = &input.run_order {
16        object.key("runOrder").number(
17            #[allow(clippy::useless_conversion)]
18            ::aws_smithy_types::Number::NegInt((*var_3).into()),
19        );
20    }
21    if let Some(var_4) = &input.configuration {
22        #[allow(unused_mut)]
23        let mut object_5 = object.key("configuration").start_object();
24        for (key_6, value_7) in var_4 {
25            {
26                object_5.key(key_6.as_str()).string(value_7.as_str());
27            }
28        }
29        object_5.finish();
30    }
31    if let Some(var_8) = &input.commands {
32        let mut array_9 = object.key("commands").start_array();
33        for item_10 in var_8 {
34            {
35                array_9.value().string(item_10.as_str());
36            }
37        }
38        array_9.finish();
39    }
40    if let Some(var_11) = &input.output_artifacts {
41        let mut array_12 = object.key("outputArtifacts").start_array();
42        for item_13 in var_11 {
43            {
44                #[allow(unused_mut)]
45                let mut object_14 = array_12.value().start_object();
46                crate::protocol_serde::shape_output_artifact::ser_output_artifact(&mut object_14, item_13)?;
47                object_14.finish();
48            }
49        }
50        array_12.finish();
51    }
52    if let Some(var_15) = &input.input_artifacts {
53        let mut array_16 = object.key("inputArtifacts").start_array();
54        for item_17 in var_15 {
55            {
56                #[allow(unused_mut)]
57                let mut object_18 = array_16.value().start_object();
58                crate::protocol_serde::shape_input_artifact::ser_input_artifact(&mut object_18, item_17)?;
59                object_18.finish();
60            }
61        }
62        array_16.finish();
63    }
64    if let Some(var_19) = &input.output_variables {
65        let mut array_20 = object.key("outputVariables").start_array();
66        for item_21 in var_19 {
67            {
68                array_20.value().string(item_21.as_str());
69            }
70        }
71        array_20.finish();
72    }
73    if let Some(var_22) = &input.role_arn {
74        object.key("roleArn").string(var_22.as_str());
75    }
76    if let Some(var_23) = &input.region {
77        object.key("region").string(var_23.as_str());
78    }
79    if let Some(var_24) = &input.namespace {
80        object.key("namespace").string(var_24.as_str());
81    }
82    if let Some(var_25) = &input.timeout_in_minutes {
83        object.key("timeoutInMinutes").number(
84            #[allow(clippy::useless_conversion)]
85            ::aws_smithy_types::Number::NegInt((*var_25).into()),
86        );
87    }
88    if let Some(var_26) = &input.environment_variables {
89        let mut array_27 = object.key("environmentVariables").start_array();
90        for item_28 in var_26 {
91            {
92                #[allow(unused_mut)]
93                let mut object_29 = array_27.value().start_object();
94                crate::protocol_serde::shape_environment_variable::ser_environment_variable(&mut object_29, item_28)?;
95                object_29.finish();
96            }
97        }
98        array_27.finish();
99    }
100    Ok(())
101}
102
103pub(crate) fn de_action_declaration<'a, I>(
104    tokens: &mut ::std::iter::Peekable<I>,
105) -> ::std::result::Result<Option<crate::types::ActionDeclaration>, ::aws_smithy_json::deserialize::error::DeserializeError>
106where
107    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
108{
109    match tokens.next().transpose()? {
110        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
111        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
112            #[allow(unused_mut)]
113            let mut builder = crate::types::builders::ActionDeclarationBuilder::default();
114            loop {
115                match tokens.next().transpose()? {
116                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
117                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
118                        "name" => {
119                            builder = builder.set_name(
120                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
121                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
122                                    .transpose()?,
123                            );
124                        }
125                        "actionTypeId" => {
126                            builder = builder.set_action_type_id(crate::protocol_serde::shape_action_type_id::de_action_type_id(tokens)?);
127                        }
128                        "runOrder" => {
129                            builder = builder.set_run_order(
130                                ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
131                                    .map(i32::try_from)
132                                    .transpose()?,
133                            );
134                        }
135                        "configuration" => {
136                            builder = builder.set_configuration(crate::protocol_serde::shape_action_configuration_map::de_action_configuration_map(
137                                tokens,
138                            )?);
139                        }
140                        "commands" => {
141                            builder = builder.set_commands(crate::protocol_serde::shape_command_list::de_command_list(tokens)?);
142                        }
143                        "outputArtifacts" => {
144                            builder =
145                                builder.set_output_artifacts(crate::protocol_serde::shape_output_artifact_list::de_output_artifact_list(tokens)?);
146                        }
147                        "inputArtifacts" => {
148                            builder = builder.set_input_artifacts(crate::protocol_serde::shape_input_artifact_list::de_input_artifact_list(tokens)?);
149                        }
150                        "outputVariables" => {
151                            builder =
152                                builder.set_output_variables(crate::protocol_serde::shape_output_variable_list::de_output_variable_list(tokens)?);
153                        }
154                        "roleArn" => {
155                            builder = builder.set_role_arn(
156                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
157                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
158                                    .transpose()?,
159                            );
160                        }
161                        "region" => {
162                            builder = builder.set_region(
163                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
164                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
165                                    .transpose()?,
166                            );
167                        }
168                        "namespace" => {
169                            builder = builder.set_namespace(
170                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
171                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
172                                    .transpose()?,
173                            );
174                        }
175                        "timeoutInMinutes" => {
176                            builder = builder.set_timeout_in_minutes(
177                                ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
178                                    .map(i32::try_from)
179                                    .transpose()?,
180                            );
181                        }
182                        "environmentVariables" => {
183                            builder = builder.set_environment_variables(
184                                crate::protocol_serde::shape_environment_variable_list::de_environment_variable_list(tokens)?,
185                            );
186                        }
187                        _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
188                    },
189                    other => {
190                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
191                            "expected object key or end object, found: {:?}",
192                            other
193                        )))
194                    }
195                }
196            }
197            Ok(Some(crate::serde_util::action_declaration_correct_errors(builder).build().map_err(
198                |err| ::aws_smithy_json::deserialize::error::DeserializeError::custom_source("Response was invalid", err),
199            )?))
200        }
201        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
202            "expected start object or null",
203        )),
204    }
205}