aws_sdk_elasticsearch/protocol_serde/
shape_elasticsearch_domain_status.rs1pub(crate) fn de_elasticsearch_domain_status<'a, I>(
3 tokens: &mut ::std::iter::Peekable<I>,
4) -> ::std::result::Result<Option<crate::types::ElasticsearchDomainStatus>, ::aws_smithy_json::deserialize::error::DeserializeError>
5where
6 I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
7{
8 match tokens.next().transpose()? {
9 Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
10 Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
11 #[allow(unused_mut)]
12 let mut builder = crate::types::builders::ElasticsearchDomainStatusBuilder::default();
13 loop {
14 match tokens.next().transpose()? {
15 Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
16 Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
17 "DomainId" => {
18 builder = builder.set_domain_id(
19 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
20 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
21 .transpose()?,
22 );
23 }
24 "DomainName" => {
25 builder = builder.set_domain_name(
26 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
27 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
28 .transpose()?,
29 );
30 }
31 "ARN" => {
32 builder = builder.set_arn(
33 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
34 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
35 .transpose()?,
36 );
37 }
38 "Created" => {
39 builder = builder.set_created(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
40 }
41 "Deleted" => {
42 builder = builder.set_deleted(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
43 }
44 "Endpoint" => {
45 builder = builder.set_endpoint(
46 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
47 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
48 .transpose()?,
49 );
50 }
51 "Endpoints" => {
52 builder = builder.set_endpoints(crate::protocol_serde::shape_endpoints_map::de_endpoints_map(tokens)?);
53 }
54 "Processing" => {
55 builder = builder.set_processing(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
56 }
57 "UpgradeProcessing" => {
58 builder = builder.set_upgrade_processing(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
59 }
60 "ElasticsearchVersion" => {
61 builder = builder.set_elasticsearch_version(
62 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
63 .map(|s| s.to_unescaped().map(|u| u.into_owned()))
64 .transpose()?,
65 );
66 }
67 "ElasticsearchClusterConfig" => {
68 builder = builder.set_elasticsearch_cluster_config(
69 crate::protocol_serde::shape_elasticsearch_cluster_config::de_elasticsearch_cluster_config(tokens)?,
70 );
71 }
72 "EBSOptions" => {
73 builder = builder.set_ebs_options(crate::protocol_serde::shape_ebs_options::de_ebs_options(tokens)?);
74 }
75 "AccessPolicies" => {
76 builder = builder.set_access_policies(
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 "SnapshotOptions" => {
83 builder = builder.set_snapshot_options(crate::protocol_serde::shape_snapshot_options::de_snapshot_options(tokens)?);
84 }
85 "VPCOptions" => {
86 builder = builder.set_vpc_options(crate::protocol_serde::shape_vpc_derived_info::de_vpc_derived_info(tokens)?);
87 }
88 "CognitoOptions" => {
89 builder = builder.set_cognito_options(crate::protocol_serde::shape_cognito_options::de_cognito_options(tokens)?);
90 }
91 "EncryptionAtRestOptions" => {
92 builder = builder.set_encryption_at_rest_options(
93 crate::protocol_serde::shape_encryption_at_rest_options::de_encryption_at_rest_options(tokens)?,
94 );
95 }
96 "NodeToNodeEncryptionOptions" => {
97 builder = builder.set_node_to_node_encryption_options(
98 crate::protocol_serde::shape_node_to_node_encryption_options::de_node_to_node_encryption_options(tokens)?,
99 );
100 }
101 "AdvancedOptions" => {
102 builder = builder.set_advanced_options(crate::protocol_serde::shape_advanced_options::de_advanced_options(tokens)?);
103 }
104 "LogPublishingOptions" => {
105 builder = builder
106 .set_log_publishing_options(crate::protocol_serde::shape_log_publishing_options::de_log_publishing_options(tokens)?);
107 }
108 "ServiceSoftwareOptions" => {
109 builder = builder.set_service_software_options(
110 crate::protocol_serde::shape_service_software_options::de_service_software_options(tokens)?,
111 );
112 }
113 "DomainEndpointOptions" => {
114 builder = builder.set_domain_endpoint_options(
115 crate::protocol_serde::shape_domain_endpoint_options::de_domain_endpoint_options(tokens)?,
116 );
117 }
118 "AdvancedSecurityOptions" => {
119 builder = builder.set_advanced_security_options(
120 crate::protocol_serde::shape_advanced_security_options::de_advanced_security_options(tokens)?,
121 );
122 }
123 "AutoTuneOptions" => {
124 builder = builder.set_auto_tune_options(
125 crate::protocol_serde::shape_auto_tune_options_output::de_auto_tune_options_output(tokens)?,
126 );
127 }
128 "ChangeProgressDetails" => {
129 builder = builder.set_change_progress_details(
130 crate::protocol_serde::shape_change_progress_details::de_change_progress_details(tokens)?,
131 );
132 }
133 "DomainProcessingStatus" => {
134 builder = builder.set_domain_processing_status(
135 ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
136 .map(|s| s.to_unescaped().map(|u| crate::types::DomainProcessingStatusType::from(u.as_ref())))
137 .transpose()?,
138 );
139 }
140 "ModifyingProperties" => {
141 builder = builder.set_modifying_properties(
142 crate::protocol_serde::shape_modifying_properties_list::de_modifying_properties_list(tokens)?,
143 );
144 }
145 _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
146 },
147 other => {
148 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
149 "expected object key or end object, found: {:?}",
150 other
151 )))
152 }
153 }
154 }
155 Ok(Some(
156 crate::serde_util::elasticsearch_domain_status_correct_errors(builder)
157 .build()
158 .map_err(|err| ::aws_smithy_json::deserialize::error::DeserializeError::custom_source("Response was invalid", err))?,
159 ))
160 }
161 _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
162 "expected start object or null",
163 )),
164 }
165}