aws_sdk_sagemaker/protocol_serde/
shape_monitoring_job_definition.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub fn ser_monitoring_job_definition(
3    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
4    input: &crate::types::MonitoringJobDefinition,
5) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
6    if let Some(var_1) = &input.baseline_config {
7        #[allow(unused_mut)]
8        let mut object_2 = object.key("BaselineConfig").start_object();
9        crate::protocol_serde::shape_monitoring_baseline_config::ser_monitoring_baseline_config(&mut object_2, var_1)?;
10        object_2.finish();
11    }
12    if let Some(var_3) = &input.monitoring_inputs {
13        let mut array_4 = object.key("MonitoringInputs").start_array();
14        for item_5 in var_3 {
15            {
16                #[allow(unused_mut)]
17                let mut object_6 = array_4.value().start_object();
18                crate::protocol_serde::shape_monitoring_input::ser_monitoring_input(&mut object_6, item_5)?;
19                object_6.finish();
20            }
21        }
22        array_4.finish();
23    }
24    if let Some(var_7) = &input.monitoring_output_config {
25        #[allow(unused_mut)]
26        let mut object_8 = object.key("MonitoringOutputConfig").start_object();
27        crate::protocol_serde::shape_monitoring_output_config::ser_monitoring_output_config(&mut object_8, var_7)?;
28        object_8.finish();
29    }
30    if let Some(var_9) = &input.monitoring_resources {
31        #[allow(unused_mut)]
32        let mut object_10 = object.key("MonitoringResources").start_object();
33        crate::protocol_serde::shape_monitoring_resources::ser_monitoring_resources(&mut object_10, var_9)?;
34        object_10.finish();
35    }
36    if let Some(var_11) = &input.monitoring_app_specification {
37        #[allow(unused_mut)]
38        let mut object_12 = object.key("MonitoringAppSpecification").start_object();
39        crate::protocol_serde::shape_monitoring_app_specification::ser_monitoring_app_specification(&mut object_12, var_11)?;
40        object_12.finish();
41    }
42    if let Some(var_13) = &input.stopping_condition {
43        #[allow(unused_mut)]
44        let mut object_14 = object.key("StoppingCondition").start_object();
45        crate::protocol_serde::shape_monitoring_stopping_condition::ser_monitoring_stopping_condition(&mut object_14, var_13)?;
46        object_14.finish();
47    }
48    if let Some(var_15) = &input.environment {
49        #[allow(unused_mut)]
50        let mut object_16 = object.key("Environment").start_object();
51        for (key_17, value_18) in var_15 {
52            {
53                object_16.key(key_17.as_str()).string(value_18.as_str());
54            }
55        }
56        object_16.finish();
57    }
58    if let Some(var_19) = &input.network_config {
59        #[allow(unused_mut)]
60        let mut object_20 = object.key("NetworkConfig").start_object();
61        crate::protocol_serde::shape_network_config::ser_network_config(&mut object_20, var_19)?;
62        object_20.finish();
63    }
64    if let Some(var_21) = &input.role_arn {
65        object.key("RoleArn").string(var_21.as_str());
66    }
67    Ok(())
68}
69
70pub(crate) fn de_monitoring_job_definition<'a, I>(
71    tokens: &mut ::std::iter::Peekable<I>,
72) -> ::std::result::Result<Option<crate::types::MonitoringJobDefinition>, ::aws_smithy_json::deserialize::error::DeserializeError>
73where
74    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
75{
76    match tokens.next().transpose()? {
77        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
78        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
79            #[allow(unused_mut)]
80            let mut builder = crate::types::builders::MonitoringJobDefinitionBuilder::default();
81            loop {
82                match tokens.next().transpose()? {
83                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
84                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
85                        "BaselineConfig" => {
86                            builder = builder.set_baseline_config(
87                                crate::protocol_serde::shape_monitoring_baseline_config::de_monitoring_baseline_config(tokens)?,
88                            );
89                        }
90                        "MonitoringInputs" => {
91                            builder = builder.set_monitoring_inputs(crate::protocol_serde::shape_monitoring_inputs::de_monitoring_inputs(tokens)?);
92                        }
93                        "MonitoringOutputConfig" => {
94                            builder = builder.set_monitoring_output_config(
95                                crate::protocol_serde::shape_monitoring_output_config::de_monitoring_output_config(tokens)?,
96                            );
97                        }
98                        "MonitoringResources" => {
99                            builder =
100                                builder.set_monitoring_resources(crate::protocol_serde::shape_monitoring_resources::de_monitoring_resources(tokens)?);
101                        }
102                        "MonitoringAppSpecification" => {
103                            builder = builder.set_monitoring_app_specification(
104                                crate::protocol_serde::shape_monitoring_app_specification::de_monitoring_app_specification(tokens)?,
105                            );
106                        }
107                        "StoppingCondition" => {
108                            builder = builder.set_stopping_condition(
109                                crate::protocol_serde::shape_monitoring_stopping_condition::de_monitoring_stopping_condition(tokens)?,
110                            );
111                        }
112                        "Environment" => {
113                            builder = builder.set_environment(
114                                crate::protocol_serde::shape_monitoring_environment_map::de_monitoring_environment_map(tokens)?,
115                            );
116                        }
117                        "NetworkConfig" => {
118                            builder = builder.set_network_config(crate::protocol_serde::shape_network_config::de_network_config(tokens)?);
119                        }
120                        "RoleArn" => {
121                            builder = builder.set_role_arn(
122                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
123                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
124                                    .transpose()?,
125                            );
126                        }
127                        _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
128                    },
129                    other => {
130                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
131                            "expected object key or end object, found: {:?}",
132                            other
133                        )))
134                    }
135                }
136            }
137            Ok(Some(crate::serde_util::monitoring_job_definition_correct_errors(builder).build()))
138        }
139        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
140            "expected start object or null",
141        )),
142    }
143}