aws_sdk_databasemigration/protocol_serde/
shape_mongo_db_settings.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub fn ser_mongo_db_settings(
3    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
4    input: &crate::types::MongoDbSettings,
5) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
6    if let Some(var_1) = &input.username {
7        object.key("Username").string(var_1.as_str());
8    }
9    if let Some(var_2) = &input.password {
10        object.key("Password").string(var_2.as_str());
11    }
12    if let Some(var_3) = &input.server_name {
13        object.key("ServerName").string(var_3.as_str());
14    }
15    if let Some(var_4) = &input.port {
16        object.key("Port").number(
17            #[allow(clippy::useless_conversion)]
18            ::aws_smithy_types::Number::NegInt((*var_4).into()),
19        );
20    }
21    if let Some(var_5) = &input.database_name {
22        object.key("DatabaseName").string(var_5.as_str());
23    }
24    if let Some(var_6) = &input.auth_type {
25        object.key("AuthType").string(var_6.as_str());
26    }
27    if let Some(var_7) = &input.auth_mechanism {
28        object.key("AuthMechanism").string(var_7.as_str());
29    }
30    if let Some(var_8) = &input.nesting_level {
31        object.key("NestingLevel").string(var_8.as_str());
32    }
33    if let Some(var_9) = &input.extract_doc_id {
34        object.key("ExtractDocId").string(var_9.as_str());
35    }
36    if let Some(var_10) = &input.docs_to_investigate {
37        object.key("DocsToInvestigate").string(var_10.as_str());
38    }
39    if let Some(var_11) = &input.auth_source {
40        object.key("AuthSource").string(var_11.as_str());
41    }
42    if let Some(var_12) = &input.kms_key_id {
43        object.key("KmsKeyId").string(var_12.as_str());
44    }
45    if let Some(var_13) = &input.secrets_manager_access_role_arn {
46        object.key("SecretsManagerAccessRoleArn").string(var_13.as_str());
47    }
48    if let Some(var_14) = &input.secrets_manager_secret_id {
49        object.key("SecretsManagerSecretId").string(var_14.as_str());
50    }
51    if let Some(var_15) = &input.use_update_look_up {
52        object.key("UseUpdateLookUp").boolean(*var_15);
53    }
54    if let Some(var_16) = &input.replicate_shard_collections {
55        object.key("ReplicateShardCollections").boolean(*var_16);
56    }
57    Ok(())
58}
59
60pub(crate) fn de_mongo_db_settings<'a, I>(
61    tokens: &mut ::std::iter::Peekable<I>,
62) -> ::std::result::Result<Option<crate::types::MongoDbSettings>, ::aws_smithy_json::deserialize::error::DeserializeError>
63where
64    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
65{
66    match tokens.next().transpose()? {
67        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
68        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
69            #[allow(unused_mut)]
70            let mut builder = crate::types::builders::MongoDbSettingsBuilder::default();
71            loop {
72                match tokens.next().transpose()? {
73                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
74                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
75                        "Username" => {
76                            builder = builder.set_username(
77                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
78                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
79                                    .transpose()?,
80                            );
81                        }
82                        "Password" => {
83                            builder = builder.set_password(
84                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
85                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
86                                    .transpose()?,
87                            );
88                        }
89                        "ServerName" => {
90                            builder = builder.set_server_name(
91                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
92                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
93                                    .transpose()?,
94                            );
95                        }
96                        "Port" => {
97                            builder = builder.set_port(
98                                ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
99                                    .map(i32::try_from)
100                                    .transpose()?,
101                            );
102                        }
103                        "DatabaseName" => {
104                            builder = builder.set_database_name(
105                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
106                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
107                                    .transpose()?,
108                            );
109                        }
110                        "AuthType" => {
111                            builder = builder.set_auth_type(
112                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
113                                    .map(|s| s.to_unescaped().map(|u| crate::types::AuthTypeValue::from(u.as_ref())))
114                                    .transpose()?,
115                            );
116                        }
117                        "AuthMechanism" => {
118                            builder = builder.set_auth_mechanism(
119                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
120                                    .map(|s| s.to_unescaped().map(|u| crate::types::AuthMechanismValue::from(u.as_ref())))
121                                    .transpose()?,
122                            );
123                        }
124                        "NestingLevel" => {
125                            builder = builder.set_nesting_level(
126                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
127                                    .map(|s| s.to_unescaped().map(|u| crate::types::NestingLevelValue::from(u.as_ref())))
128                                    .transpose()?,
129                            );
130                        }
131                        "ExtractDocId" => {
132                            builder = builder.set_extract_doc_id(
133                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
134                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
135                                    .transpose()?,
136                            );
137                        }
138                        "DocsToInvestigate" => {
139                            builder = builder.set_docs_to_investigate(
140                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
141                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
142                                    .transpose()?,
143                            );
144                        }
145                        "AuthSource" => {
146                            builder = builder.set_auth_source(
147                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
148                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
149                                    .transpose()?,
150                            );
151                        }
152                        "KmsKeyId" => {
153                            builder = builder.set_kms_key_id(
154                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
155                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
156                                    .transpose()?,
157                            );
158                        }
159                        "SecretsManagerAccessRoleArn" => {
160                            builder = builder.set_secrets_manager_access_role_arn(
161                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
162                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
163                                    .transpose()?,
164                            );
165                        }
166                        "SecretsManagerSecretId" => {
167                            builder = builder.set_secrets_manager_secret_id(
168                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
169                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
170                                    .transpose()?,
171                            );
172                        }
173                        "UseUpdateLookUp" => {
174                            builder = builder.set_use_update_look_up(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
175                        }
176                        "ReplicateShardCollections" => {
177                            builder =
178                                builder.set_replicate_shard_collections(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
179                        }
180                        _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
181                    },
182                    other => {
183                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
184                            "expected object key or end object, found: {:?}",
185                            other
186                        )))
187                    }
188                }
189            }
190            Ok(Some(builder.build()))
191        }
192        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
193            "expected start object or null",
194        )),
195    }
196}