aws_sdk_sagemaker/protocol_serde/
shape_model_package_container_definition.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub fn ser_model_package_container_definition(
3    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
4    input: &crate::types::ModelPackageContainerDefinition,
5) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
6    if let Some(var_1) = &input.container_hostname {
7        object.key("ContainerHostname").string(var_1.as_str());
8    }
9    if let Some(var_2) = &input.image {
10        object.key("Image").string(var_2.as_str());
11    }
12    if let Some(var_3) = &input.image_digest {
13        object.key("ImageDigest").string(var_3.as_str());
14    }
15    if let Some(var_4) = &input.model_data_url {
16        object.key("ModelDataUrl").string(var_4.as_str());
17    }
18    if let Some(var_5) = &input.model_data_source {
19        #[allow(unused_mut)]
20        let mut object_6 = object.key("ModelDataSource").start_object();
21        crate::protocol_serde::shape_model_data_source::ser_model_data_source(&mut object_6, var_5)?;
22        object_6.finish();
23    }
24    if let Some(var_7) = &input.product_id {
25        object.key("ProductId").string(var_7.as_str());
26    }
27    if let Some(var_8) = &input.environment {
28        #[allow(unused_mut)]
29        let mut object_9 = object.key("Environment").start_object();
30        for (key_10, value_11) in var_8 {
31            {
32                object_9.key(key_10.as_str()).string(value_11.as_str());
33            }
34        }
35        object_9.finish();
36    }
37    if let Some(var_12) = &input.model_input {
38        #[allow(unused_mut)]
39        let mut object_13 = object.key("ModelInput").start_object();
40        crate::protocol_serde::shape_model_input::ser_model_input(&mut object_13, var_12)?;
41        object_13.finish();
42    }
43    if let Some(var_14) = &input.framework {
44        object.key("Framework").string(var_14.as_str());
45    }
46    if let Some(var_15) = &input.framework_version {
47        object.key("FrameworkVersion").string(var_15.as_str());
48    }
49    if let Some(var_16) = &input.nearest_model_name {
50        object.key("NearestModelName").string(var_16.as_str());
51    }
52    if let Some(var_17) = &input.additional_s3_data_source {
53        #[allow(unused_mut)]
54        let mut object_18 = object.key("AdditionalS3DataSource").start_object();
55        crate::protocol_serde::shape_additional_s3_data_source::ser_additional_s3_data_source(&mut object_18, var_17)?;
56        object_18.finish();
57    }
58    if let Some(var_19) = &input.model_data_e_tag {
59        object.key("ModelDataETag").string(var_19.as_str());
60    }
61    Ok(())
62}
63
64pub(crate) fn de_model_package_container_definition<'a, I>(
65    tokens: &mut ::std::iter::Peekable<I>,
66) -> ::std::result::Result<Option<crate::types::ModelPackageContainerDefinition>, ::aws_smithy_json::deserialize::error::DeserializeError>
67where
68    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
69{
70    match tokens.next().transpose()? {
71        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
72        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
73            #[allow(unused_mut)]
74            let mut builder = crate::types::builders::ModelPackageContainerDefinitionBuilder::default();
75            loop {
76                match tokens.next().transpose()? {
77                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
78                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
79                        "ContainerHostname" => {
80                            builder = builder.set_container_hostname(
81                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
82                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
83                                    .transpose()?,
84                            );
85                        }
86                        "Image" => {
87                            builder = builder.set_image(
88                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
89                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
90                                    .transpose()?,
91                            );
92                        }
93                        "ImageDigest" => {
94                            builder = builder.set_image_digest(
95                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
96                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
97                                    .transpose()?,
98                            );
99                        }
100                        "ModelDataUrl" => {
101                            builder = builder.set_model_data_url(
102                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
103                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
104                                    .transpose()?,
105                            );
106                        }
107                        "ModelDataSource" => {
108                            builder = builder.set_model_data_source(crate::protocol_serde::shape_model_data_source::de_model_data_source(tokens)?);
109                        }
110                        "ProductId" => {
111                            builder = builder.set_product_id(
112                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
113                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
114                                    .transpose()?,
115                            );
116                        }
117                        "Environment" => {
118                            builder = builder.set_environment(crate::protocol_serde::shape_environment_map::de_environment_map(tokens)?);
119                        }
120                        "ModelInput" => {
121                            builder = builder.set_model_input(crate::protocol_serde::shape_model_input::de_model_input(tokens)?);
122                        }
123                        "Framework" => {
124                            builder = builder.set_framework(
125                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
126                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
127                                    .transpose()?,
128                            );
129                        }
130                        "FrameworkVersion" => {
131                            builder = builder.set_framework_version(
132                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
133                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
134                                    .transpose()?,
135                            );
136                        }
137                        "NearestModelName" => {
138                            builder = builder.set_nearest_model_name(
139                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
140                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
141                                    .transpose()?,
142                            );
143                        }
144                        "AdditionalS3DataSource" => {
145                            builder = builder.set_additional_s3_data_source(
146                                crate::protocol_serde::shape_additional_s3_data_source::de_additional_s3_data_source(tokens)?,
147                            );
148                        }
149                        "ModelDataETag" => {
150                            builder = builder.set_model_data_e_tag(
151                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
152                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
153                                    .transpose()?,
154                            );
155                        }
156                        _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
157                    },
158                    other => {
159                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
160                            "expected object key or end object, found: {:?}",
161                            other
162                        )))
163                    }
164                }
165            }
166            Ok(Some(
167                crate::serde_util::model_package_container_definition_correct_errors(builder).build(),
168            ))
169        }
170        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
171            "expected start object or null",
172        )),
173    }
174}