pub fn ser_health_check_config(
input: &crate::types::HealthCheckConfig,
writer: ::aws_smithy_xml::encode::ElWriter,
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
#[allow(unused_mut)]
let mut scope = writer.finish();
if let Some(var_1) = &input.ip_address {
let mut inner_writer = scope.start_el("IPAddress").finish();
inner_writer.data(var_1.as_str());
}
if let Some(var_2) = &input.port {
let mut inner_writer = scope.start_el("Port").finish();
inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_2).encode());
}
{
let mut inner_writer = scope.start_el("Type").finish();
inner_writer.data(input.r#type.as_str());
}
if let Some(var_3) = &input.resource_path {
let mut inner_writer = scope.start_el("ResourcePath").finish();
inner_writer.data(var_3.as_str());
}
if let Some(var_4) = &input.fully_qualified_domain_name {
let mut inner_writer = scope.start_el("FullyQualifiedDomainName").finish();
inner_writer.data(var_4.as_str());
}
if let Some(var_5) = &input.search_string {
let mut inner_writer = scope.start_el("SearchString").finish();
inner_writer.data(var_5.as_str());
}
if let Some(var_6) = &input.request_interval {
let mut inner_writer = scope.start_el("RequestInterval").finish();
inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_6).encode());
}
if let Some(var_7) = &input.failure_threshold {
let mut inner_writer = scope.start_el("FailureThreshold").finish();
inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_7).encode());
}
if let Some(var_8) = &input.measure_latency {
let mut inner_writer = scope.start_el("MeasureLatency").finish();
inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_8).encode());
}
if let Some(var_9) = &input.inverted {
let mut inner_writer = scope.start_el("Inverted").finish();
inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_9).encode());
}
if let Some(var_10) = &input.disabled {
let mut inner_writer = scope.start_el("Disabled").finish();
inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_10).encode());
}
if let Some(var_11) = &input.health_threshold {
let mut inner_writer = scope.start_el("HealthThreshold").finish();
inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_11).encode());
}
if let Some(var_12) = &input.child_health_checks {
let mut inner_writer = scope.start_el("ChildHealthChecks").finish();
for list_item_13 in var_12 {
{
let mut inner_writer = inner_writer.start_el("ChildHealthCheck").finish();
inner_writer.data(list_item_13.as_str());
}
}
}
if let Some(var_14) = &input.enable_sni {
let mut inner_writer = scope.start_el("EnableSNI").finish();
inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_14).encode());
}
if let Some(var_15) = &input.regions {
let mut inner_writer = scope.start_el("Regions").finish();
for list_item_16 in var_15 {
{
let mut inner_writer = inner_writer.start_el("Region").finish();
inner_writer.data(list_item_16.as_str());
}
}
}
if let Some(var_17) = &input.alarm_identifier {
let inner_writer = scope.start_el("AlarmIdentifier");
crate::protocol_serde::shape_alarm_identifier::ser_alarm_identifier(var_17, inner_writer)?
}
if let Some(var_18) = &input.insufficient_data_health_status {
let mut inner_writer = scope.start_el("InsufficientDataHealthStatus").finish();
inner_writer.data(var_18.as_str());
}
if let Some(var_19) = &input.routing_control_arn {
let mut inner_writer = scope.start_el("RoutingControlArn").finish();
inner_writer.data(var_19.as_str());
}
scope.finish();
Ok(())
}
#[allow(clippy::needless_question_mark)]
pub fn de_health_check_config(
decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
) -> ::std::result::Result<crate::types::HealthCheckConfig, ::aws_smithy_xml::decode::XmlDecodeError> {
#[allow(unused_mut)]
let mut builder = crate::types::HealthCheckConfig::builder();
while let Some(mut tag) = decoder.next_tag() {
match tag.start_el() {
s if s.matches("IPAddress") => {
let var_20 =
Some(
Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_ip_address(var_20);
}
,
s if s.matches("Port") => {
let var_21 =
Some(
{
<i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.route53#Port`)"))
}
?
)
;
builder = builder.set_port(var_21);
}
,
s if s.matches("Type") => {
let var_22 =
Some(
Result::<crate::types::HealthCheckType, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
crate::types::HealthCheckType::from(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
)
?
)
;
builder = builder.set_type(var_22);
}
,
s if s.matches("ResourcePath") => {
let var_23 =
Some(
Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_resource_path(var_23);
}
,
s if s.matches("FullyQualifiedDomainName") => {
let var_24 =
Some(
Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_fully_qualified_domain_name(var_24);
}
,
s if s.matches("SearchString") => {
let var_25 =
Some(
Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_search_string(var_25);
}
,
s if s.matches("RequestInterval") => {
let var_26 =
Some(
{
<i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.route53#RequestInterval`)"))
}
?
)
;
builder = builder.set_request_interval(var_26);
}
,
s if s.matches("FailureThreshold") => {
let var_27 =
Some(
{
<i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.route53#FailureThreshold`)"))
}
?
)
;
builder = builder.set_failure_threshold(var_27);
}
,
s if s.matches("MeasureLatency") => {
let var_28 =
Some(
{
<bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.route53#MeasureLatency`)"))
}
?
)
;
builder = builder.set_measure_latency(var_28);
}
,
s if s.matches("Inverted") => {
let var_29 =
Some(
{
<bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.route53#Inverted`)"))
}
?
)
;
builder = builder.set_inverted(var_29);
}
,
s if s.matches("Disabled") => {
let var_30 =
Some(
{
<bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.route53#Disabled`)"))
}
?
)
;
builder = builder.set_disabled(var_30);
}
,
s if s.matches("HealthThreshold") => {
let var_31 =
Some(
{
<i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.route53#HealthThreshold`)"))
}
?
)
;
builder = builder.set_health_threshold(var_31);
}
,
s if s.matches("ChildHealthChecks") => {
let var_32 =
Some(
crate::protocol_serde::shape_child_health_check_list::de_child_health_check_list(&mut tag)
?
)
;
builder = builder.set_child_health_checks(var_32);
}
,
s if s.matches("EnableSNI") => {
let var_33 =
Some(
{
<bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
.map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.route53#EnableSNI`)"))
}
?
)
;
builder = builder.set_enable_sni(var_33);
}
,
s if s.matches("Regions") => {
let var_34 =
Some(
crate::protocol_serde::shape_health_check_region_list::de_health_check_region_list(&mut tag)
?
)
;
builder = builder.set_regions(var_34);
}
,
s if s.matches("AlarmIdentifier") => {
let var_35 =
Some(
crate::protocol_serde::shape_alarm_identifier::de_alarm_identifier(&mut tag)
?
)
;
builder = builder.set_alarm_identifier(var_35);
}
,
s if s.matches("InsufficientDataHealthStatus") => {
let var_36 =
Some(
Result::<crate::types::InsufficientDataHealthStatus, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
crate::types::InsufficientDataHealthStatus::from(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
)
)
?
)
;
builder = builder.set_insufficient_data_health_status(var_36);
}
,
s if s.matches("RoutingControlArn") => {
let var_37 =
Some(
Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
.into()
)
?
)
;
builder = builder.set_routing_control_arn(var_37);
}
,
_ => {}
}
}
Ok(crate::serde_util::health_check_config_correct_errors(builder)
.build()
.map_err(|_| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing field"))?)
}