pub(crate) fn de_flow_validation_details<'a, I>(
tokens: &mut ::std::iter::Peekable<I>,
) -> Result<Option<crate::types::FlowValidationDetails>, ::aws_smithy_json::deserialize::error::DeserializeError>
where
I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
{
let mut variant = None;
match tokens.next().transpose()? {
Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => return Ok(None),
Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => loop {
match tokens.next().transpose()? {
Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
if let ::std::option::Option::Some(::std::result::Result::Ok(::aws_smithy_json::deserialize::Token::ValueNull { .. })) =
tokens.peek()
{
let _ = tokens.next().expect("peek returned a token")?;
continue;
}
let key = key.to_unescaped()?;
if key == "__type" {
::aws_smithy_json::deserialize::token::skip_value(tokens)?;
continue;
}
if variant.is_some() {
return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
"encountered mixed variants in union",
));
}
variant = match key.as_ref() {
"cyclicConnection" => {
Some(crate::types::FlowValidationDetails::CyclicConnection(
crate::protocol_serde::shape_cyclic_connection_flow_validation_details::de_cyclic_connection_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'cyclicConnection' cannot be null"))?
))
}
"duplicateConnections" => {
Some(crate::types::FlowValidationDetails::DuplicateConnections(
crate::protocol_serde::shape_duplicate_connections_flow_validation_details::de_duplicate_connections_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'duplicateConnections' cannot be null"))?
))
}
"duplicateConditionExpression" => {
Some(crate::types::FlowValidationDetails::DuplicateConditionExpression(
crate::protocol_serde::shape_duplicate_condition_expression_flow_validation_details::de_duplicate_condition_expression_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'duplicateConditionExpression' cannot be null"))?
))
}
"unreachableNode" => {
Some(crate::types::FlowValidationDetails::UnreachableNode(
crate::protocol_serde::shape_unreachable_node_flow_validation_details::de_unreachable_node_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'unreachableNode' cannot be null"))?
))
}
"unknownConnectionSource" => {
Some(crate::types::FlowValidationDetails::UnknownConnectionSource(
crate::protocol_serde::shape_unknown_connection_source_flow_validation_details::de_unknown_connection_source_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'unknownConnectionSource' cannot be null"))?
))
}
"unknownConnectionSourceOutput" => {
Some(crate::types::FlowValidationDetails::UnknownConnectionSourceOutput(
crate::protocol_serde::shape_unknown_connection_source_output_flow_validation_details::de_unknown_connection_source_output_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'unknownConnectionSourceOutput' cannot be null"))?
))
}
"unknownConnectionTarget" => {
Some(crate::types::FlowValidationDetails::UnknownConnectionTarget(
crate::protocol_serde::shape_unknown_connection_target_flow_validation_details::de_unknown_connection_target_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'unknownConnectionTarget' cannot be null"))?
))
}
"unknownConnectionTargetInput" => {
Some(crate::types::FlowValidationDetails::UnknownConnectionTargetInput(
crate::protocol_serde::shape_unknown_connection_target_input_flow_validation_details::de_unknown_connection_target_input_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'unknownConnectionTargetInput' cannot be null"))?
))
}
"unknownConnectionCondition" => {
Some(crate::types::FlowValidationDetails::UnknownConnectionCondition(
crate::protocol_serde::shape_unknown_connection_condition_flow_validation_details::de_unknown_connection_condition_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'unknownConnectionCondition' cannot be null"))?
))
}
"malformedConditionExpression" => {
Some(crate::types::FlowValidationDetails::MalformedConditionExpression(
crate::protocol_serde::shape_malformed_condition_expression_flow_validation_details::de_malformed_condition_expression_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'malformedConditionExpression' cannot be null"))?
))
}
"malformedNodeInputExpression" => {
Some(crate::types::FlowValidationDetails::MalformedNodeInputExpression(
crate::protocol_serde::shape_malformed_node_input_expression_flow_validation_details::de_malformed_node_input_expression_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'malformedNodeInputExpression' cannot be null"))?
))
}
"mismatchedNodeInputType" => {
Some(crate::types::FlowValidationDetails::MismatchedNodeInputType(
crate::protocol_serde::shape_mismatched_node_input_type_flow_validation_details::de_mismatched_node_input_type_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'mismatchedNodeInputType' cannot be null"))?
))
}
"mismatchedNodeOutputType" => {
Some(crate::types::FlowValidationDetails::MismatchedNodeOutputType(
crate::protocol_serde::shape_mismatched_node_output_type_flow_validation_details::de_mismatched_node_output_type_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'mismatchedNodeOutputType' cannot be null"))?
))
}
"incompatibleConnectionDataType" => {
Some(crate::types::FlowValidationDetails::IncompatibleConnectionDataType(
crate::protocol_serde::shape_incompatible_connection_data_type_flow_validation_details::de_incompatible_connection_data_type_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'incompatibleConnectionDataType' cannot be null"))?
))
}
"missingConnectionConfiguration" => {
Some(crate::types::FlowValidationDetails::MissingConnectionConfiguration(
crate::protocol_serde::shape_missing_connection_configuration_flow_validation_details::de_missing_connection_configuration_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'missingConnectionConfiguration' cannot be null"))?
))
}
"missingDefaultCondition" => {
Some(crate::types::FlowValidationDetails::MissingDefaultCondition(
crate::protocol_serde::shape_missing_default_condition_flow_validation_details::de_missing_default_condition_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'missingDefaultCondition' cannot be null"))?
))
}
"missingEndingNodes" => {
Some(crate::types::FlowValidationDetails::MissingEndingNodes(
crate::protocol_serde::shape_missing_ending_nodes_flow_validation_details::de_missing_ending_nodes_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'missingEndingNodes' cannot be null"))?
))
}
"missingNodeConfiguration" => {
Some(crate::types::FlowValidationDetails::MissingNodeConfiguration(
crate::protocol_serde::shape_missing_node_configuration_flow_validation_details::de_missing_node_configuration_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'missingNodeConfiguration' cannot be null"))?
))
}
"missingNodeInput" => {
Some(crate::types::FlowValidationDetails::MissingNodeInput(
crate::protocol_serde::shape_missing_node_input_flow_validation_details::de_missing_node_input_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'missingNodeInput' cannot be null"))?
))
}
"missingNodeOutput" => {
Some(crate::types::FlowValidationDetails::MissingNodeOutput(
crate::protocol_serde::shape_missing_node_output_flow_validation_details::de_missing_node_output_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'missingNodeOutput' cannot be null"))?
))
}
"missingStartingNodes" => {
Some(crate::types::FlowValidationDetails::MissingStartingNodes(
crate::protocol_serde::shape_missing_starting_nodes_flow_validation_details::de_missing_starting_nodes_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'missingStartingNodes' cannot be null"))?
))
}
"multipleNodeInputConnections" => {
Some(crate::types::FlowValidationDetails::MultipleNodeInputConnections(
crate::protocol_serde::shape_multiple_node_input_connections_flow_validation_details::de_multiple_node_input_connections_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'multipleNodeInputConnections' cannot be null"))?
))
}
"unfulfilledNodeInput" => {
Some(crate::types::FlowValidationDetails::UnfulfilledNodeInput(
crate::protocol_serde::shape_unfulfilled_node_input_flow_validation_details::de_unfulfilled_node_input_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'unfulfilledNodeInput' cannot be null"))?
))
}
"unsatisfiedConnectionConditions" => {
Some(crate::types::FlowValidationDetails::UnsatisfiedConnectionConditions(
crate::protocol_serde::shape_unsatisfied_connection_conditions_flow_validation_details::de_unsatisfied_connection_conditions_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'unsatisfiedConnectionConditions' cannot be null"))?
))
}
"unspecified" => {
Some(crate::types::FlowValidationDetails::Unspecified(
crate::protocol_serde::shape_unspecified_flow_validation_details::de_unspecified_flow_validation_details(tokens)?
.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'unspecified' cannot be null"))?
))
}
_ => {
::aws_smithy_json::deserialize::token::skip_value(tokens)?;
Some(crate::types::FlowValidationDetails::Unknown)
}
};
}
other => {
return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
"expected object key or end object, found: {:?}",
other
)))
}
}
},
_ => {
return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
"expected start object or null",
))
}
}
if variant.is_none() {
return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
"Union did not contain a valid variant.",
));
}
Ok(variant)
}