aws_sdk_glue/protocol_serde/
shape_snowflake_node_data.rs1pub fn ser_snowflake_node_data(
3 object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
4 input: &crate::types::SnowflakeNodeData,
5) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
6 if let Some(var_1) = &input.source_type {
7 object.key("SourceType").string(var_1.as_str());
8 }
9 if let Some(var_2) = &input.connection {
10 #[allow(unused_mut)]
11 let mut object_3 = object.key("Connection").start_object();
12 crate::protocol_serde::shape_option::ser_option(&mut object_3, var_2)?;
13 object_3.finish();
14 }
15 if let Some(var_4) = &input.schema {
16 object.key("Schema").string(var_4.as_str());
17 }
18 if let Some(var_5) = &input.table {
19 object.key("Table").string(var_5.as_str());
20 }
21 if let Some(var_6) = &input.database {
22 object.key("Database").string(var_6.as_str());
23 }
24 if let Some(var_7) = &input.temp_dir {
25 object.key("TempDir").string(var_7.as_str());
26 }
27 if let Some(var_8) = &input.iam_role {
28 #[allow(unused_mut)]
29 let mut object_9 = object.key("IamRole").start_object();
30 crate::protocol_serde::shape_option::ser_option(&mut object_9, var_8)?;
31 object_9.finish();
32 }
33 if let Some(var_10) = &input.additional_options {
34 #[allow(unused_mut)]
35 let mut object_11 = object.key("AdditionalOptions").start_object();
36 for (key_12, value_13) in var_10 {
37 {
38 object_11.key(key_12.as_str()).string(value_13.as_str());
39 }
40 }
41 object_11.finish();
42 }
43 if let Some(var_14) = &input.sample_query {
44 object.key("SampleQuery").string(var_14.as_str());
45 }
46 if let Some(var_15) = &input.pre_action {
47 object.key("PreAction").string(var_15.as_str());
48 }
49 if let Some(var_16) = &input.post_action {
50 object.key("PostAction").string(var_16.as_str());
51 }
52 if let Some(var_17) = &input.action {
53 object.key("Action").string(var_17.as_str());
54 }
55 if input.upsert {
56 object.key("Upsert").boolean(input.upsert);
57 }
58 if let Some(var_18) = &input.merge_action {
59 object.key("MergeAction").string(var_18.as_str());
60 }
61 if let Some(var_19) = &input.merge_when_matched {
62 object.key("MergeWhenMatched").string(var_19.as_str());
63 }
64 if let Some(var_20) = &input.merge_when_not_matched {
65 object.key("MergeWhenNotMatched").string(var_20.as_str());
66 }
67 if let Some(var_21) = &input.merge_clause {
68 object.key("MergeClause").string(var_21.as_str());
69 }
70 if let Some(var_22) = &input.staging_table {
71 object.key("StagingTable").string(var_22.as_str());
72 }
73 if let Some(var_23) = &input.selected_columns {
74 let mut array_24 = object.key("SelectedColumns").start_array();
75 for item_25 in var_23 {
76 {
77 #[allow(unused_mut)]
78 let mut object_26 = array_24.value().start_object();
79 crate::protocol_serde::shape_option::ser_option(&mut object_26, item_25)?;
80 object_26.finish();
81 }
82 }
83 array_24.finish();
84 }
85 if input.auto_pushdown {
86 object.key("AutoPushdown").boolean(input.auto_pushdown);
87 }
88 if let Some(var_27) = &input.table_schema {
89 let mut array_28 = object.key("TableSchema").start_array();
90 for item_29 in var_27 {
91 {
92 #[allow(unused_mut)]
93 let mut object_30 = array_28.value().start_object();
94 crate::protocol_serde::shape_option::ser_option(&mut object_30, item_29)?;
95 object_30.finish();
96 }
97 }
98 array_28.finish();
99 }
100 Ok(())
101}
102
103pub(crate) fn de_snowflake_node_data<'a, I>(
104 tokens: &mut ::std::iter::Peekable<I>,
105 _value: &'a [u8],
106) -> ::std::result::Result<Option<crate::types::SnowflakeNodeData>, ::aws_smithy_json::deserialize::error::DeserializeError>
107where
108 I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
109{
110 match tokens.next().transpose()? {
111 Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
112 Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
113 #[allow(unused_mut)]
114 let mut builder = crate::types::builders::SnowflakeNodeDataBuilder::default();
115 loop {
116 match tokens.next().transpose()? {
117 Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
118 Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
119 "SourceType" => {
120 builder = builder.set_source_type(
121 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
122 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
123 .transpose()?,
124 );
125 }
126 "Connection" => {
127 builder = builder.set_connection(crate::protocol_serde::shape_option::de_option(tokens, _value)?);
128 }
129 "Schema" => {
130 builder = builder.set_schema(
131 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
132 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
133 .transpose()?,
134 );
135 }
136 "Table" => {
137 builder = builder.set_table(
138 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
139 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
140 .transpose()?,
141 );
142 }
143 "Database" => {
144 builder = builder.set_database(
145 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
146 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
147 .transpose()?,
148 );
149 }
150 "TempDir" => {
151 builder = builder.set_temp_dir(
152 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
153 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
154 .transpose()?,
155 );
156 }
157 "IamRole" => {
158 builder = builder.set_iam_role(crate::protocol_serde::shape_option::de_option(tokens, _value)?);
159 }
160 "AdditionalOptions" => {
161 builder = builder
162 .set_additional_options(crate::protocol_serde::shape_additional_options::de_additional_options(tokens, _value)?);
163 }
164 "SampleQuery" => {
165 builder = builder.set_sample_query(
166 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
167 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
168 .transpose()?,
169 );
170 }
171 "PreAction" => {
172 builder = builder.set_pre_action(
173 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
174 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
175 .transpose()?,
176 );
177 }
178 "PostAction" => {
179 builder = builder.set_post_action(
180 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
181 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
182 .transpose()?,
183 );
184 }
185 "Action" => {
186 builder = builder.set_action(
187 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
188 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
189 .transpose()?,
190 );
191 }
192 "Upsert" => {
193 builder = builder.set_upsert(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
194 }
195 "MergeAction" => {
196 builder = builder.set_merge_action(
197 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
198 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
199 .transpose()?,
200 );
201 }
202 "MergeWhenMatched" => {
203 builder = builder.set_merge_when_matched(
204 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
205 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
206 .transpose()?,
207 );
208 }
209 "MergeWhenNotMatched" => {
210 builder = builder.set_merge_when_not_matched(
211 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
212 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
213 .transpose()?,
214 );
215 }
216 "MergeClause" => {
217 builder = builder.set_merge_clause(
218 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
219 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
220 .transpose()?,
221 );
222 }
223 "StagingTable" => {
224 builder = builder.set_staging_table(
225 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
226 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
227 .transpose()?,
228 );
229 }
230 "SelectedColumns" => {
231 builder = builder.set_selected_columns(crate::protocol_serde::shape_option_list::de_option_list(tokens, _value)?);
232 }
233 "AutoPushdown" => {
234 builder = builder.set_auto_pushdown(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
235 }
236 "TableSchema" => {
237 builder = builder.set_table_schema(crate::protocol_serde::shape_option_list::de_option_list(tokens, _value)?);
238 }
239 _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
240 },
241 other => {
242 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
243 "expected object key or end object, found: {other:?}"
244 )))
245 }
246 }
247 }
248 Ok(Some(builder.build()))
249 }
250 _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
251 "expected start object or null",
252 )),
253 }
254}