aws_sdk_securityhub/protocol_serde/
shape_aws_rds_event_subscription_details.rs1pub fn ser_aws_rds_event_subscription_details(
3 object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
4 input: &crate::types::AwsRdsEventSubscriptionDetails,
5) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
6 if let Some(var_1) = &input.cust_subscription_id {
7 object.key("CustSubscriptionId").string(var_1.as_str());
8 }
9 if let Some(var_2) = &input.customer_aws_id {
10 object.key("CustomerAwsId").string(var_2.as_str());
11 }
12 if let Some(var_3) = &input.enabled {
13 object.key("Enabled").boolean(*var_3);
14 }
15 if let Some(var_4) = &input.event_categories_list {
16 let mut array_5 = object.key("EventCategoriesList").start_array();
17 for item_6 in var_4 {
18 {
19 array_5.value().string(item_6.as_str());
20 }
21 }
22 array_5.finish();
23 }
24 if let Some(var_7) = &input.event_subscription_arn {
25 object.key("EventSubscriptionArn").string(var_7.as_str());
26 }
27 if let Some(var_8) = &input.sns_topic_arn {
28 object.key("SnsTopicArn").string(var_8.as_str());
29 }
30 if let Some(var_9) = &input.source_ids_list {
31 let mut array_10 = object.key("SourceIdsList").start_array();
32 for item_11 in var_9 {
33 {
34 array_10.value().string(item_11.as_str());
35 }
36 }
37 array_10.finish();
38 }
39 if let Some(var_12) = &input.source_type {
40 object.key("SourceType").string(var_12.as_str());
41 }
42 if let Some(var_13) = &input.status {
43 object.key("Status").string(var_13.as_str());
44 }
45 if let Some(var_14) = &input.subscription_creation_time {
46 object.key("SubscriptionCreationTime").string(var_14.as_str());
47 }
48 Ok(())
49}
50
51pub(crate) fn de_aws_rds_event_subscription_details<'a, I>(
52 tokens: &mut ::std::iter::Peekable<I>,
53) -> ::std::result::Result<Option<crate::types::AwsRdsEventSubscriptionDetails>, ::aws_smithy_json::deserialize::error::DeserializeError>
54where
55 I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
56{
57 match tokens.next().transpose()? {
58 Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
59 Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
60 #[allow(unused_mut)]
61 let mut builder = crate::types::builders::AwsRdsEventSubscriptionDetailsBuilder::default();
62 loop {
63 match tokens.next().transpose()? {
64 Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
65 Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
66 "CustSubscriptionId" => {
67 builder = builder.set_cust_subscription_id(
68 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
69 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
70 .transpose()?,
71 );
72 }
73 "CustomerAwsId" => {
74 builder = builder.set_customer_aws_id(
75 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
76 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
77 .transpose()?,
78 );
79 }
80 "Enabled" => {
81 builder = builder.set_enabled(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
82 }
83 "EventCategoriesList" => {
84 builder = builder
85 .set_event_categories_list(crate::protocol_serde::shape_non_empty_string_list::de_non_empty_string_list(tokens)?);
86 }
87 "EventSubscriptionArn" => {
88 builder = builder.set_event_subscription_arn(
89 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
90 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
91 .transpose()?,
92 );
93 }
94 "SnsTopicArn" => {
95 builder = builder.set_sns_topic_arn(
96 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
97 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
98 .transpose()?,
99 );
100 }
101 "SourceIdsList" => {
102 builder =
103 builder.set_source_ids_list(crate::protocol_serde::shape_non_empty_string_list::de_non_empty_string_list(tokens)?);
104 }
105 "SourceType" => {
106 builder = builder.set_source_type(
107 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
108 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
109 .transpose()?,
110 );
111 }
112 "Status" => {
113 builder = builder.set_status(
114 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
115 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
116 .transpose()?,
117 );
118 }
119 "SubscriptionCreationTime" => {
120 builder = builder.set_subscription_creation_time(
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 _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
127 },
128 other => {
129 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
130 "expected object key or end object, found: {other:?}"
131 )))
132 }
133 }
134 }
135 Ok(Some(builder.build()))
136 }
137 _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
138 "expected start object or null",
139 )),
140 }
141}