aws-sdk-cloudfront 0.24.0

AWS SDK for Amazon CloudFront
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub fn serialize_structure_crate_input_copy_distribution_input(
    input: &crate::input::CopyDistributionInput,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_1) = &input.caller_reference {
        let mut inner_writer = scope.start_el("CallerReference").finish();
        inner_writer.data(var_1.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_create_cache_policy_input_cache_policy_config(
    input: &crate::model::CachePolicyConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("CachePolicyConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_cache_policy_config(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_create_cloud_front_origin_access_identity_input_cloud_front_origin_access_identity_config(
    input: &crate::model::CloudFrontOriginAccessIdentityConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("CloudFrontOriginAccessIdentityConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_cloud_front_origin_access_identity_config(
            input, root,
        )?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_create_continuous_deployment_policy_input_continuous_deployment_policy_config(
    input: &crate::model::ContinuousDeploymentPolicyConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("ContinuousDeploymentPolicyConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_continuous_deployment_policy_config(
            input, root,
        )?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_create_distribution_input_distribution_config(
    input: &crate::model::DistributionConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("DistributionConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_distribution_config(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_create_distribution_with_tags_input_distribution_config_with_tags(
    input: &crate::model::DistributionConfigWithTags,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("DistributionConfigWithTags")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_distribution_config_with_tags(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_create_field_level_encryption_config_input_field_level_encryption_config(
    input: &crate::model::FieldLevelEncryptionConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("FieldLevelEncryptionConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_field_level_encryption_config(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_create_field_level_encryption_profile_input_field_level_encryption_profile_config(
    input: &crate::model::FieldLevelEncryptionProfileConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("FieldLevelEncryptionProfileConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_field_level_encryption_profile_config(
            input, root,
        )?
    }
    Ok(out.into_bytes())
}

pub fn serialize_structure_crate_input_create_function_input(
    input: &crate::input::CreateFunctionInput,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_2) = &input.function_code {
        let mut inner_writer = scope.start_el("FunctionCode").finish();
        inner_writer.data(aws_smithy_types::base64::encode(var_2.as_ref()).as_ref());
    }
    if let Some(var_3) = &input.function_config {
        let inner_writer = scope.start_el("FunctionConfig");
        crate::xml_ser::serialize_structure_crate_model_function_config(var_3, inner_writer)?
    }
    if let Some(var_4) = &input.name {
        let mut inner_writer = scope.start_el("Name").finish();
        inner_writer.data(var_4.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_create_invalidation_input_invalidation_batch(
    input: &crate::model::InvalidationBatch,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("InvalidationBatch")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_invalidation_batch(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_create_key_group_input_key_group_config(
    input: &crate::model::KeyGroupConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("KeyGroupConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_key_group_config(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_create_monitoring_subscription_input_monitoring_subscription(
    input: &crate::model::MonitoringSubscription,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("MonitoringSubscription")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_monitoring_subscription(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_create_origin_access_control_input_origin_access_control_config(
    input: &crate::model::OriginAccessControlConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("OriginAccessControlConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_origin_access_control_config(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_create_origin_request_policy_input_origin_request_policy_config(
    input: &crate::model::OriginRequestPolicyConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("OriginRequestPolicyConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_origin_request_policy_config(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_create_public_key_input_public_key_config(
    input: &crate::model::PublicKeyConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("PublicKeyConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_public_key_config(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_structure_crate_input_create_realtime_log_config_input(
    input: &crate::input::CreateRealtimeLogConfigInput,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_5) = &input.end_points {
        let mut inner_writer = scope.start_el("EndPoints").finish();
        for list_item_6 in var_5 {
            {
                let inner_writer = inner_writer.start_el("member");
                crate::xml_ser::serialize_structure_crate_model_end_point(
                    list_item_6,
                    inner_writer,
                )?
            }
        }
    }
    if let Some(var_7) = &input.fields {
        let mut inner_writer = scope.start_el("Fields").finish();
        for list_item_8 in var_7 {
            {
                let mut inner_writer = inner_writer.start_el("Field").finish();
                inner_writer.data(list_item_8.as_str());
            }
        }
    }
    if let Some(var_9) = &input.name {
        let mut inner_writer = scope.start_el("Name").finish();
        inner_writer.data(var_9.as_str());
    }
    if let Some(var_10) = &input.sampling_rate {
        let mut inner_writer = scope.start_el("SamplingRate").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_10).encode());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_create_response_headers_policy_input_response_headers_policy_config(
    input: &crate::model::ResponseHeadersPolicyConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("ResponseHeadersPolicyConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_response_headers_policy_config(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_create_streaming_distribution_input_streaming_distribution_config(
    input: &crate::model::StreamingDistributionConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("StreamingDistributionConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_streaming_distribution_config(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_create_streaming_distribution_with_tags_input_streaming_distribution_config_with_tags(
    input: &crate::model::StreamingDistributionConfigWithTags,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("StreamingDistributionConfigWithTags")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_streaming_distribution_config_with_tags(
            input, root,
        )?
    }
    Ok(out.into_bytes())
}

pub fn serialize_structure_crate_input_delete_realtime_log_config_input(
    input: &crate::input::DeleteRealtimeLogConfigInput,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_11) = &input.arn {
        let mut inner_writer = scope.start_el("ARN").finish();
        inner_writer.data(var_11.as_str());
    }
    if let Some(var_12) = &input.name {
        let mut inner_writer = scope.start_el("Name").finish();
        inner_writer.data(var_12.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_input_get_realtime_log_config_input(
    input: &crate::input::GetRealtimeLogConfigInput,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_13) = &input.arn {
        let mut inner_writer = scope.start_el("ARN").finish();
        inner_writer.data(var_13.as_str());
    }
    if let Some(var_14) = &input.name {
        let mut inner_writer = scope.start_el("Name").finish();
        inner_writer.data(var_14.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_input_list_distributions_by_realtime_log_config_input(
    input: &crate::input::ListDistributionsByRealtimeLogConfigInput,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_15) = &input.marker {
        let mut inner_writer = scope.start_el("Marker").finish();
        inner_writer.data(var_15.as_str());
    }
    if let Some(var_16) = &input.max_items {
        let mut inner_writer = scope.start_el("MaxItems").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_16).encode());
    }
    if let Some(var_17) = &input.realtime_log_config_arn {
        let mut inner_writer = scope.start_el("RealtimeLogConfigArn").finish();
        inner_writer.data(var_17.as_str());
    }
    if let Some(var_18) = &input.realtime_log_config_name {
        let mut inner_writer = scope.start_el("RealtimeLogConfigName").finish();
        inner_writer.data(var_18.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_tag_resource_input_tags(
    input: &crate::model::Tags,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("Tags")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_tags(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_structure_crate_input_test_function_input(
    input: &crate::input::TestFunctionInput,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_19) = &input.event_object {
        let mut inner_writer = scope.start_el("EventObject").finish();
        inner_writer.data(aws_smithy_types::base64::encode(var_19.as_ref()).as_ref());
    }
    if let Some(var_20) = &input.stage {
        let mut inner_writer = scope.start_el("Stage").finish();
        inner_writer.data(var_20.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_untag_resource_input_tag_keys(
    input: &crate::model::TagKeys,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("TagKeys")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_tag_keys(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_update_cache_policy_input_cache_policy_config(
    input: &crate::model::CachePolicyConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("CachePolicyConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_cache_policy_config(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_update_cloud_front_origin_access_identity_input_cloud_front_origin_access_identity_config(
    input: &crate::model::CloudFrontOriginAccessIdentityConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("CloudFrontOriginAccessIdentityConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_cloud_front_origin_access_identity_config(
            input, root,
        )?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_update_continuous_deployment_policy_input_continuous_deployment_policy_config(
    input: &crate::model::ContinuousDeploymentPolicyConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("ContinuousDeploymentPolicyConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_continuous_deployment_policy_config(
            input, root,
        )?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_update_distribution_input_distribution_config(
    input: &crate::model::DistributionConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("DistributionConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_distribution_config(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_update_field_level_encryption_config_input_field_level_encryption_config(
    input: &crate::model::FieldLevelEncryptionConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("FieldLevelEncryptionConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_field_level_encryption_config(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_update_field_level_encryption_profile_input_field_level_encryption_profile_config(
    input: &crate::model::FieldLevelEncryptionProfileConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("FieldLevelEncryptionProfileConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_field_level_encryption_profile_config(
            input, root,
        )?
    }
    Ok(out.into_bytes())
}

pub fn serialize_structure_crate_input_update_function_input(
    input: &crate::input::UpdateFunctionInput,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_21) = &input.function_code {
        let mut inner_writer = scope.start_el("FunctionCode").finish();
        inner_writer.data(aws_smithy_types::base64::encode(var_21.as_ref()).as_ref());
    }
    if let Some(var_22) = &input.function_config {
        let inner_writer = scope.start_el("FunctionConfig");
        crate::xml_ser::serialize_structure_crate_model_function_config(var_22, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_update_key_group_input_key_group_config(
    input: &crate::model::KeyGroupConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("KeyGroupConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_key_group_config(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_update_origin_access_control_input_origin_access_control_config(
    input: &crate::model::OriginAccessControlConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("OriginAccessControlConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_origin_access_control_config(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_update_origin_request_policy_input_origin_request_policy_config(
    input: &crate::model::OriginRequestPolicyConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("OriginRequestPolicyConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_origin_request_policy_config(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_update_public_key_input_public_key_config(
    input: &crate::model::PublicKeyConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("PublicKeyConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_public_key_config(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_structure_crate_input_update_realtime_log_config_input(
    input: &crate::input::UpdateRealtimeLogConfigInput,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_23) = &input.arn {
        let mut inner_writer = scope.start_el("ARN").finish();
        inner_writer.data(var_23.as_str());
    }
    if let Some(var_24) = &input.end_points {
        let mut inner_writer = scope.start_el("EndPoints").finish();
        for list_item_25 in var_24 {
            {
                let inner_writer = inner_writer.start_el("member");
                crate::xml_ser::serialize_structure_crate_model_end_point(
                    list_item_25,
                    inner_writer,
                )?
            }
        }
    }
    if let Some(var_26) = &input.fields {
        let mut inner_writer = scope.start_el("Fields").finish();
        for list_item_27 in var_26 {
            {
                let mut inner_writer = inner_writer.start_el("Field").finish();
                inner_writer.data(list_item_27.as_str());
            }
        }
    }
    if let Some(var_28) = &input.name {
        let mut inner_writer = scope.start_el("Name").finish();
        inner_writer.data(var_28.as_str());
    }
    if let Some(var_29) = &input.sampling_rate {
        let mut inner_writer = scope.start_el("SamplingRate").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_29).encode());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_update_response_headers_policy_input_response_headers_policy_config(
    input: &crate::model::ResponseHeadersPolicyConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("ResponseHeadersPolicyConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_response_headers_policy_config(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_member_com_amazonaws_cloudfront_synthetic_update_streaming_distribution_input_streaming_distribution_config(
    input: &crate::model::StreamingDistributionConfig,
) -> std::result::Result<std::vec::Vec<u8>, aws_smithy_http::operation::error::SerializationError> {
    let mut out = String::new();
    {
        let mut writer = aws_smithy_xml::encode::XmlWriter::new(&mut out);
        #[allow(unused_mut)]
        let mut root = writer
            .start_el("StreamingDistributionConfig")
            .write_ns("http://cloudfront.amazonaws.com/doc/2020-05-31/", None);
        crate::xml_ser::serialize_structure_crate_model_streaming_distribution_config(input, root)?
    }
    Ok(out.into_bytes())
}

pub fn serialize_structure_crate_model_cache_policy_config(
    input: &crate::model::CachePolicyConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_30) = &input.comment {
        let mut inner_writer = scope.start_el("Comment").finish();
        inner_writer.data(var_30.as_str());
    }
    if let Some(var_31) = &input.name {
        let mut inner_writer = scope.start_el("Name").finish();
        inner_writer.data(var_31.as_str());
    }
    if let Some(var_32) = &input.default_ttl {
        let mut inner_writer = scope.start_el("DefaultTTL").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_32).encode());
    }
    if let Some(var_33) = &input.max_ttl {
        let mut inner_writer = scope.start_el("MaxTTL").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_33).encode());
    }
    if let Some(var_34) = &input.min_ttl {
        let mut inner_writer = scope.start_el("MinTTL").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_34).encode());
    }
    if let Some(var_35) = &input.parameters_in_cache_key_and_forwarded_to_origin {
        let inner_writer = scope.start_el("ParametersInCacheKeyAndForwardedToOrigin");
        crate::xml_ser::serialize_structure_crate_model_parameters_in_cache_key_and_forwarded_to_origin(var_35, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_cloud_front_origin_access_identity_config(
    input: &crate::model::CloudFrontOriginAccessIdentityConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_36) = &input.caller_reference {
        let mut inner_writer = scope.start_el("CallerReference").finish();
        inner_writer.data(var_36.as_str());
    }
    if let Some(var_37) = &input.comment {
        let mut inner_writer = scope.start_el("Comment").finish();
        inner_writer.data(var_37.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_continuous_deployment_policy_config(
    input: &crate::model::ContinuousDeploymentPolicyConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_38) = &input.staging_distribution_dns_names {
        let inner_writer = scope.start_el("StagingDistributionDnsNames");
        crate::xml_ser::serialize_structure_crate_model_staging_distribution_dns_names(
            var_38,
            inner_writer,
        )?
    }
    if let Some(var_39) = &input.enabled {
        let mut inner_writer = scope.start_el("Enabled").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_39).encode());
    }
    if let Some(var_40) = &input.traffic_config {
        let inner_writer = scope.start_el("TrafficConfig");
        crate::xml_ser::serialize_structure_crate_model_traffic_config(var_40, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_distribution_config(
    input: &crate::model::DistributionConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_41) = &input.caller_reference {
        let mut inner_writer = scope.start_el("CallerReference").finish();
        inner_writer.data(var_41.as_str());
    }
    if let Some(var_42) = &input.aliases {
        let inner_writer = scope.start_el("Aliases");
        crate::xml_ser::serialize_structure_crate_model_aliases(var_42, inner_writer)?
    }
    if let Some(var_43) = &input.default_root_object {
        let mut inner_writer = scope.start_el("DefaultRootObject").finish();
        inner_writer.data(var_43.as_str());
    }
    if let Some(var_44) = &input.origins {
        let inner_writer = scope.start_el("Origins");
        crate::xml_ser::serialize_structure_crate_model_origins(var_44, inner_writer)?
    }
    if let Some(var_45) = &input.origin_groups {
        let inner_writer = scope.start_el("OriginGroups");
        crate::xml_ser::serialize_structure_crate_model_origin_groups(var_45, inner_writer)?
    }
    if let Some(var_46) = &input.default_cache_behavior {
        let inner_writer = scope.start_el("DefaultCacheBehavior");
        crate::xml_ser::serialize_structure_crate_model_default_cache_behavior(
            var_46,
            inner_writer,
        )?
    }
    if let Some(var_47) = &input.cache_behaviors {
        let inner_writer = scope.start_el("CacheBehaviors");
        crate::xml_ser::serialize_structure_crate_model_cache_behaviors(var_47, inner_writer)?
    }
    if let Some(var_48) = &input.custom_error_responses {
        let inner_writer = scope.start_el("CustomErrorResponses");
        crate::xml_ser::serialize_structure_crate_model_custom_error_responses(
            var_48,
            inner_writer,
        )?
    }
    if let Some(var_49) = &input.comment {
        let mut inner_writer = scope.start_el("Comment").finish();
        inner_writer.data(var_49.as_str());
    }
    if let Some(var_50) = &input.logging {
        let inner_writer = scope.start_el("Logging");
        crate::xml_ser::serialize_structure_crate_model_logging_config(var_50, inner_writer)?
    }
    if let Some(var_51) = &input.price_class {
        let mut inner_writer = scope.start_el("PriceClass").finish();
        inner_writer.data(var_51.as_str());
    }
    if let Some(var_52) = &input.enabled {
        let mut inner_writer = scope.start_el("Enabled").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_52).encode());
    }
    if let Some(var_53) = &input.viewer_certificate {
        let inner_writer = scope.start_el("ViewerCertificate");
        crate::xml_ser::serialize_structure_crate_model_viewer_certificate(var_53, inner_writer)?
    }
    if let Some(var_54) = &input.restrictions {
        let inner_writer = scope.start_el("Restrictions");
        crate::xml_ser::serialize_structure_crate_model_restrictions(var_54, inner_writer)?
    }
    if let Some(var_55) = &input.web_acl_id {
        let mut inner_writer = scope.start_el("WebACLId").finish();
        inner_writer.data(var_55.as_str());
    }
    if let Some(var_56) = &input.http_version {
        let mut inner_writer = scope.start_el("HttpVersion").finish();
        inner_writer.data(var_56.as_str());
    }
    if let Some(var_57) = &input.is_ipv6_enabled {
        let mut inner_writer = scope.start_el("IsIPV6Enabled").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_57).encode());
    }
    if let Some(var_58) = &input.continuous_deployment_policy_id {
        let mut inner_writer = scope.start_el("ContinuousDeploymentPolicyId").finish();
        inner_writer.data(var_58.as_str());
    }
    if let Some(var_59) = &input.staging {
        let mut inner_writer = scope.start_el("Staging").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_59).encode());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_distribution_config_with_tags(
    input: &crate::model::DistributionConfigWithTags,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_60) = &input.distribution_config {
        let inner_writer = scope.start_el("DistributionConfig");
        crate::xml_ser::serialize_structure_crate_model_distribution_config(var_60, inner_writer)?
    }
    if let Some(var_61) = &input.tags {
        let inner_writer = scope.start_el("Tags");
        crate::xml_ser::serialize_structure_crate_model_tags(var_61, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_field_level_encryption_config(
    input: &crate::model::FieldLevelEncryptionConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_62) = &input.caller_reference {
        let mut inner_writer = scope.start_el("CallerReference").finish();
        inner_writer.data(var_62.as_str());
    }
    if let Some(var_63) = &input.comment {
        let mut inner_writer = scope.start_el("Comment").finish();
        inner_writer.data(var_63.as_str());
    }
    if let Some(var_64) = &input.query_arg_profile_config {
        let inner_writer = scope.start_el("QueryArgProfileConfig");
        crate::xml_ser::serialize_structure_crate_model_query_arg_profile_config(
            var_64,
            inner_writer,
        )?
    }
    if let Some(var_65) = &input.content_type_profile_config {
        let inner_writer = scope.start_el("ContentTypeProfileConfig");
        crate::xml_ser::serialize_structure_crate_model_content_type_profile_config(
            var_65,
            inner_writer,
        )?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_field_level_encryption_profile_config(
    input: &crate::model::FieldLevelEncryptionProfileConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_66) = &input.name {
        let mut inner_writer = scope.start_el("Name").finish();
        inner_writer.data(var_66.as_str());
    }
    if let Some(var_67) = &input.caller_reference {
        let mut inner_writer = scope.start_el("CallerReference").finish();
        inner_writer.data(var_67.as_str());
    }
    if let Some(var_68) = &input.comment {
        let mut inner_writer = scope.start_el("Comment").finish();
        inner_writer.data(var_68.as_str());
    }
    if let Some(var_69) = &input.encryption_entities {
        let inner_writer = scope.start_el("EncryptionEntities");
        crate::xml_ser::serialize_structure_crate_model_encryption_entities(var_69, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_function_config(
    input: &crate::model::FunctionConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_70) = &input.comment {
        let mut inner_writer = scope.start_el("Comment").finish();
        inner_writer.data(var_70.as_str());
    }
    if let Some(var_71) = &input.runtime {
        let mut inner_writer = scope.start_el("Runtime").finish();
        inner_writer.data(var_71.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_invalidation_batch(
    input: &crate::model::InvalidationBatch,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_72) = &input.paths {
        let inner_writer = scope.start_el("Paths");
        crate::xml_ser::serialize_structure_crate_model_paths(var_72, inner_writer)?
    }
    if let Some(var_73) = &input.caller_reference {
        let mut inner_writer = scope.start_el("CallerReference").finish();
        inner_writer.data(var_73.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_key_group_config(
    input: &crate::model::KeyGroupConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_74) = &input.name {
        let mut inner_writer = scope.start_el("Name").finish();
        inner_writer.data(var_74.as_str());
    }
    if let Some(var_75) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_76 in var_75 {
            {
                let mut inner_writer = inner_writer.start_el("PublicKey").finish();
                inner_writer.data(list_item_76.as_str());
            }
        }
    }
    if let Some(var_77) = &input.comment {
        let mut inner_writer = scope.start_el("Comment").finish();
        inner_writer.data(var_77.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_monitoring_subscription(
    input: &crate::model::MonitoringSubscription,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_78) = &input.realtime_metrics_subscription_config {
        let inner_writer = scope.start_el("RealtimeMetricsSubscriptionConfig");
        crate::xml_ser::serialize_structure_crate_model_realtime_metrics_subscription_config(
            var_78,
            inner_writer,
        )?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_origin_access_control_config(
    input: &crate::model::OriginAccessControlConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_79) = &input.name {
        let mut inner_writer = scope.start_el("Name").finish();
        inner_writer.data(var_79.as_str());
    }
    if let Some(var_80) = &input.description {
        let mut inner_writer = scope.start_el("Description").finish();
        inner_writer.data(var_80.as_str());
    }
    if let Some(var_81) = &input.signing_protocol {
        let mut inner_writer = scope.start_el("SigningProtocol").finish();
        inner_writer.data(var_81.as_str());
    }
    if let Some(var_82) = &input.signing_behavior {
        let mut inner_writer = scope.start_el("SigningBehavior").finish();
        inner_writer.data(var_82.as_str());
    }
    if let Some(var_83) = &input.origin_access_control_origin_type {
        let mut inner_writer = scope.start_el("OriginAccessControlOriginType").finish();
        inner_writer.data(var_83.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_origin_request_policy_config(
    input: &crate::model::OriginRequestPolicyConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_84) = &input.comment {
        let mut inner_writer = scope.start_el("Comment").finish();
        inner_writer.data(var_84.as_str());
    }
    if let Some(var_85) = &input.name {
        let mut inner_writer = scope.start_el("Name").finish();
        inner_writer.data(var_85.as_str());
    }
    if let Some(var_86) = &input.headers_config {
        let inner_writer = scope.start_el("HeadersConfig");
        crate::xml_ser::serialize_structure_crate_model_origin_request_policy_headers_config(
            var_86,
            inner_writer,
        )?
    }
    if let Some(var_87) = &input.cookies_config {
        let inner_writer = scope.start_el("CookiesConfig");
        crate::xml_ser::serialize_structure_crate_model_origin_request_policy_cookies_config(
            var_87,
            inner_writer,
        )?
    }
    if let Some(var_88) = &input.query_strings_config {
        let inner_writer = scope.start_el("QueryStringsConfig");
        crate::xml_ser::serialize_structure_crate_model_origin_request_policy_query_strings_config(
            var_88,
            inner_writer,
        )?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_public_key_config(
    input: &crate::model::PublicKeyConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_89) = &input.caller_reference {
        let mut inner_writer = scope.start_el("CallerReference").finish();
        inner_writer.data(var_89.as_str());
    }
    if let Some(var_90) = &input.name {
        let mut inner_writer = scope.start_el("Name").finish();
        inner_writer.data(var_90.as_str());
    }
    if let Some(var_91) = &input.encoded_key {
        let mut inner_writer = scope.start_el("EncodedKey").finish();
        inner_writer.data(var_91.as_str());
    }
    if let Some(var_92) = &input.comment {
        let mut inner_writer = scope.start_el("Comment").finish();
        inner_writer.data(var_92.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_end_point(
    input: &crate::model::EndPoint,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_93) = &input.stream_type {
        let mut inner_writer = scope.start_el("StreamType").finish();
        inner_writer.data(var_93.as_str());
    }
    if let Some(var_94) = &input.kinesis_stream_config {
        let inner_writer = scope.start_el("KinesisStreamConfig");
        crate::xml_ser::serialize_structure_crate_model_kinesis_stream_config(var_94, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_response_headers_policy_config(
    input: &crate::model::ResponseHeadersPolicyConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_95) = &input.comment {
        let mut inner_writer = scope.start_el("Comment").finish();
        inner_writer.data(var_95.as_str());
    }
    if let Some(var_96) = &input.name {
        let mut inner_writer = scope.start_el("Name").finish();
        inner_writer.data(var_96.as_str());
    }
    if let Some(var_97) = &input.cors_config {
        let inner_writer = scope.start_el("CorsConfig");
        crate::xml_ser::serialize_structure_crate_model_response_headers_policy_cors_config(
            var_97,
            inner_writer,
        )?
    }
    if let Some(var_98) = &input.security_headers_config {
        let inner_writer = scope.start_el("SecurityHeadersConfig");
        crate::xml_ser::serialize_structure_crate_model_response_headers_policy_security_headers_config(var_98, inner_writer)?
    }
    if let Some(var_99) = &input.server_timing_headers_config {
        let inner_writer = scope.start_el("ServerTimingHeadersConfig");
        crate::xml_ser::serialize_structure_crate_model_response_headers_policy_server_timing_headers_config(var_99, inner_writer)?
    }
    if let Some(var_100) = &input.custom_headers_config {
        let inner_writer = scope.start_el("CustomHeadersConfig");
        crate::xml_ser::serialize_structure_crate_model_response_headers_policy_custom_headers_config(var_100, inner_writer)?
    }
    if let Some(var_101) = &input.remove_headers_config {
        let inner_writer = scope.start_el("RemoveHeadersConfig");
        crate::xml_ser::serialize_structure_crate_model_response_headers_policy_remove_headers_config(var_101, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_streaming_distribution_config(
    input: &crate::model::StreamingDistributionConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_102) = &input.caller_reference {
        let mut inner_writer = scope.start_el("CallerReference").finish();
        inner_writer.data(var_102.as_str());
    }
    if let Some(var_103) = &input.s3_origin {
        let inner_writer = scope.start_el("S3Origin");
        crate::xml_ser::serialize_structure_crate_model_s3_origin(var_103, inner_writer)?
    }
    if let Some(var_104) = &input.aliases {
        let inner_writer = scope.start_el("Aliases");
        crate::xml_ser::serialize_structure_crate_model_aliases(var_104, inner_writer)?
    }
    if let Some(var_105) = &input.comment {
        let mut inner_writer = scope.start_el("Comment").finish();
        inner_writer.data(var_105.as_str());
    }
    if let Some(var_106) = &input.logging {
        let inner_writer = scope.start_el("Logging");
        crate::xml_ser::serialize_structure_crate_model_streaming_logging_config(
            var_106,
            inner_writer,
        )?
    }
    if let Some(var_107) = &input.trusted_signers {
        let inner_writer = scope.start_el("TrustedSigners");
        crate::xml_ser::serialize_structure_crate_model_trusted_signers(var_107, inner_writer)?
    }
    if let Some(var_108) = &input.price_class {
        let mut inner_writer = scope.start_el("PriceClass").finish();
        inner_writer.data(var_108.as_str());
    }
    if let Some(var_109) = &input.enabled {
        let mut inner_writer = scope.start_el("Enabled").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_109).encode());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_streaming_distribution_config_with_tags(
    input: &crate::model::StreamingDistributionConfigWithTags,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_110) = &input.streaming_distribution_config {
        let inner_writer = scope.start_el("StreamingDistributionConfig");
        crate::xml_ser::serialize_structure_crate_model_streaming_distribution_config(
            var_110,
            inner_writer,
        )?
    }
    if let Some(var_111) = &input.tags {
        let inner_writer = scope.start_el("Tags");
        crate::xml_ser::serialize_structure_crate_model_tags(var_111, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_tags(
    input: &crate::model::Tags,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_112) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_113 in var_112 {
            {
                let inner_writer = inner_writer.start_el("Tag");
                crate::xml_ser::serialize_structure_crate_model_tag(list_item_113, inner_writer)?
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_tag_keys(
    input: &crate::model::TagKeys,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_114) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_115 in var_114 {
            {
                let mut inner_writer = inner_writer.start_el("Key").finish();
                inner_writer.data(list_item_115.as_str());
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_parameters_in_cache_key_and_forwarded_to_origin(
    input: &crate::model::ParametersInCacheKeyAndForwardedToOrigin,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_116) = &input.enable_accept_encoding_gzip {
        let mut inner_writer = scope.start_el("EnableAcceptEncodingGzip").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_116).encode());
    }
    if let Some(var_117) = &input.enable_accept_encoding_brotli {
        let mut inner_writer = scope.start_el("EnableAcceptEncodingBrotli").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_117).encode());
    }
    if let Some(var_118) = &input.headers_config {
        let inner_writer = scope.start_el("HeadersConfig");
        crate::xml_ser::serialize_structure_crate_model_cache_policy_headers_config(
            var_118,
            inner_writer,
        )?
    }
    if let Some(var_119) = &input.cookies_config {
        let inner_writer = scope.start_el("CookiesConfig");
        crate::xml_ser::serialize_structure_crate_model_cache_policy_cookies_config(
            var_119,
            inner_writer,
        )?
    }
    if let Some(var_120) = &input.query_strings_config {
        let inner_writer = scope.start_el("QueryStringsConfig");
        crate::xml_ser::serialize_structure_crate_model_cache_policy_query_strings_config(
            var_120,
            inner_writer,
        )?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_staging_distribution_dns_names(
    input: &crate::model::StagingDistributionDnsNames,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_121) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_121).encode());
    }
    if let Some(var_122) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_123 in var_122 {
            {
                let mut inner_writer = inner_writer.start_el("DnsName").finish();
                inner_writer.data(list_item_123.as_str());
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_traffic_config(
    input: &crate::model::TrafficConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_124) = &input.single_weight_config {
        let inner_writer = scope.start_el("SingleWeightConfig");
        crate::xml_ser::serialize_structure_crate_model_continuous_deployment_single_weight_config(
            var_124,
            inner_writer,
        )?
    }
    if let Some(var_125) = &input.single_header_config {
        let inner_writer = scope.start_el("SingleHeaderConfig");
        crate::xml_ser::serialize_structure_crate_model_continuous_deployment_single_header_config(
            var_125,
            inner_writer,
        )?
    }
    if let Some(var_126) = &input.r#type {
        let mut inner_writer = scope.start_el("Type").finish();
        inner_writer.data(var_126.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_aliases(
    input: &crate::model::Aliases,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_127) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_127).encode());
    }
    if let Some(var_128) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_129 in var_128 {
            {
                let mut inner_writer = inner_writer.start_el("CNAME").finish();
                inner_writer.data(list_item_129.as_str());
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_origins(
    input: &crate::model::Origins,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_130) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_130).encode());
    }
    if let Some(var_131) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_132 in var_131 {
            {
                let inner_writer = inner_writer.start_el("Origin");
                crate::xml_ser::serialize_structure_crate_model_origin(list_item_132, inner_writer)?
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_origin_groups(
    input: &crate::model::OriginGroups,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_133) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_133).encode());
    }
    if let Some(var_134) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_135 in var_134 {
            {
                let inner_writer = inner_writer.start_el("OriginGroup");
                crate::xml_ser::serialize_structure_crate_model_origin_group(
                    list_item_135,
                    inner_writer,
                )?
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_default_cache_behavior(
    input: &crate::model::DefaultCacheBehavior,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_136) = &input.target_origin_id {
        let mut inner_writer = scope.start_el("TargetOriginId").finish();
        inner_writer.data(var_136.as_str());
    }
    if let Some(var_137) = &input.trusted_signers {
        let inner_writer = scope.start_el("TrustedSigners");
        crate::xml_ser::serialize_structure_crate_model_trusted_signers(var_137, inner_writer)?
    }
    if let Some(var_138) = &input.trusted_key_groups {
        let inner_writer = scope.start_el("TrustedKeyGroups");
        crate::xml_ser::serialize_structure_crate_model_trusted_key_groups(var_138, inner_writer)?
    }
    if let Some(var_139) = &input.viewer_protocol_policy {
        let mut inner_writer = scope.start_el("ViewerProtocolPolicy").finish();
        inner_writer.data(var_139.as_str());
    }
    if let Some(var_140) = &input.allowed_methods {
        let inner_writer = scope.start_el("AllowedMethods");
        crate::xml_ser::serialize_structure_crate_model_allowed_methods(var_140, inner_writer)?
    }
    if let Some(var_141) = &input.smooth_streaming {
        let mut inner_writer = scope.start_el("SmoothStreaming").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_141).encode());
    }
    if let Some(var_142) = &input.compress {
        let mut inner_writer = scope.start_el("Compress").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_142).encode());
    }
    if let Some(var_143) = &input.lambda_function_associations {
        let inner_writer = scope.start_el("LambdaFunctionAssociations");
        crate::xml_ser::serialize_structure_crate_model_lambda_function_associations(
            var_143,
            inner_writer,
        )?
    }
    if let Some(var_144) = &input.function_associations {
        let inner_writer = scope.start_el("FunctionAssociations");
        crate::xml_ser::serialize_structure_crate_model_function_associations(
            var_144,
            inner_writer,
        )?
    }
    if let Some(var_145) = &input.field_level_encryption_id {
        let mut inner_writer = scope.start_el("FieldLevelEncryptionId").finish();
        inner_writer.data(var_145.as_str());
    }
    if let Some(var_146) = &input.realtime_log_config_arn {
        let mut inner_writer = scope.start_el("RealtimeLogConfigArn").finish();
        inner_writer.data(var_146.as_str());
    }
    if let Some(var_147) = &input.cache_policy_id {
        let mut inner_writer = scope.start_el("CachePolicyId").finish();
        inner_writer.data(var_147.as_str());
    }
    if let Some(var_148) = &input.origin_request_policy_id {
        let mut inner_writer = scope.start_el("OriginRequestPolicyId").finish();
        inner_writer.data(var_148.as_str());
    }
    if let Some(var_149) = &input.response_headers_policy_id {
        let mut inner_writer = scope.start_el("ResponseHeadersPolicyId").finish();
        inner_writer.data(var_149.as_str());
    }
    if let Some(var_150) = &input.forwarded_values {
        let inner_writer = scope.start_el("ForwardedValues");
        crate::xml_ser::serialize_structure_crate_model_forwarded_values(var_150, inner_writer)?
    }
    if let Some(var_151) = &input.min_ttl {
        let mut inner_writer = scope.start_el("MinTTL").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_151).encode());
    }
    if let Some(var_152) = &input.default_ttl {
        let mut inner_writer = scope.start_el("DefaultTTL").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_152).encode());
    }
    if let Some(var_153) = &input.max_ttl {
        let mut inner_writer = scope.start_el("MaxTTL").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_153).encode());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_cache_behaviors(
    input: &crate::model::CacheBehaviors,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_154) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_154).encode());
    }
    if let Some(var_155) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_156 in var_155 {
            {
                let inner_writer = inner_writer.start_el("CacheBehavior");
                crate::xml_ser::serialize_structure_crate_model_cache_behavior(
                    list_item_156,
                    inner_writer,
                )?
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_custom_error_responses(
    input: &crate::model::CustomErrorResponses,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_157) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_157).encode());
    }
    if let Some(var_158) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_159 in var_158 {
            {
                let inner_writer = inner_writer.start_el("CustomErrorResponse");
                crate::xml_ser::serialize_structure_crate_model_custom_error_response(
                    list_item_159,
                    inner_writer,
                )?
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_logging_config(
    input: &crate::model::LoggingConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_160) = &input.enabled {
        let mut inner_writer = scope.start_el("Enabled").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_160).encode());
    }
    if let Some(var_161) = &input.include_cookies {
        let mut inner_writer = scope.start_el("IncludeCookies").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_161).encode());
    }
    if let Some(var_162) = &input.bucket {
        let mut inner_writer = scope.start_el("Bucket").finish();
        inner_writer.data(var_162.as_str());
    }
    if let Some(var_163) = &input.prefix {
        let mut inner_writer = scope.start_el("Prefix").finish();
        inner_writer.data(var_163.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_viewer_certificate(
    input: &crate::model::ViewerCertificate,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_164) = &input.cloud_front_default_certificate {
        let mut inner_writer = scope.start_el("CloudFrontDefaultCertificate").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_164).encode());
    }
    if let Some(var_165) = &input.iam_certificate_id {
        let mut inner_writer = scope.start_el("IAMCertificateId").finish();
        inner_writer.data(var_165.as_str());
    }
    if let Some(var_166) = &input.acm_certificate_arn {
        let mut inner_writer = scope.start_el("ACMCertificateArn").finish();
        inner_writer.data(var_166.as_str());
    }
    if let Some(var_167) = &input.ssl_support_method {
        let mut inner_writer = scope.start_el("SSLSupportMethod").finish();
        inner_writer.data(var_167.as_str());
    }
    if let Some(var_168) = &input.minimum_protocol_version {
        let mut inner_writer = scope.start_el("MinimumProtocolVersion").finish();
        inner_writer.data(var_168.as_str());
    }
    if let Some(var_169) = &input.certificate {
        let mut inner_writer = scope.start_el("Certificate").finish();
        inner_writer.data(var_169.as_str());
    }
    if let Some(var_170) = &input.certificate_source {
        let mut inner_writer = scope.start_el("CertificateSource").finish();
        inner_writer.data(var_170.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_restrictions(
    input: &crate::model::Restrictions,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_171) = &input.geo_restriction {
        let inner_writer = scope.start_el("GeoRestriction");
        crate::xml_ser::serialize_structure_crate_model_geo_restriction(var_171, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_query_arg_profile_config(
    input: &crate::model::QueryArgProfileConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_172) = &input.forward_when_query_arg_profile_is_unknown {
        let mut inner_writer = scope
            .start_el("ForwardWhenQueryArgProfileIsUnknown")
            .finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_172).encode());
    }
    if let Some(var_173) = &input.query_arg_profiles {
        let inner_writer = scope.start_el("QueryArgProfiles");
        crate::xml_ser::serialize_structure_crate_model_query_arg_profiles(var_173, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_content_type_profile_config(
    input: &crate::model::ContentTypeProfileConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_174) = &input.forward_when_content_type_is_unknown {
        let mut inner_writer = scope.start_el("ForwardWhenContentTypeIsUnknown").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_174).encode());
    }
    if let Some(var_175) = &input.content_type_profiles {
        let inner_writer = scope.start_el("ContentTypeProfiles");
        crate::xml_ser::serialize_structure_crate_model_content_type_profiles(
            var_175,
            inner_writer,
        )?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_encryption_entities(
    input: &crate::model::EncryptionEntities,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_176) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_176).encode());
    }
    if let Some(var_177) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_178 in var_177 {
            {
                let inner_writer = inner_writer.start_el("EncryptionEntity");
                crate::xml_ser::serialize_structure_crate_model_encryption_entity(
                    list_item_178,
                    inner_writer,
                )?
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_paths(
    input: &crate::model::Paths,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_179) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_179).encode());
    }
    if let Some(var_180) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_181 in var_180 {
            {
                let mut inner_writer = inner_writer.start_el("Path").finish();
                inner_writer.data(list_item_181.as_str());
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_realtime_metrics_subscription_config(
    input: &crate::model::RealtimeMetricsSubscriptionConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_182) = &input.realtime_metrics_subscription_status {
        let mut inner_writer = scope.start_el("RealtimeMetricsSubscriptionStatus").finish();
        inner_writer.data(var_182.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_origin_request_policy_headers_config(
    input: &crate::model::OriginRequestPolicyHeadersConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_183) = &input.header_behavior {
        let mut inner_writer = scope.start_el("HeaderBehavior").finish();
        inner_writer.data(var_183.as_str());
    }
    if let Some(var_184) = &input.headers {
        let inner_writer = scope.start_el("Headers");
        crate::xml_ser::serialize_structure_crate_model_headers(var_184, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_origin_request_policy_cookies_config(
    input: &crate::model::OriginRequestPolicyCookiesConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_185) = &input.cookie_behavior {
        let mut inner_writer = scope.start_el("CookieBehavior").finish();
        inner_writer.data(var_185.as_str());
    }
    if let Some(var_186) = &input.cookies {
        let inner_writer = scope.start_el("Cookies");
        crate::xml_ser::serialize_structure_crate_model_cookie_names(var_186, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_origin_request_policy_query_strings_config(
    input: &crate::model::OriginRequestPolicyQueryStringsConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_187) = &input.query_string_behavior {
        let mut inner_writer = scope.start_el("QueryStringBehavior").finish();
        inner_writer.data(var_187.as_str());
    }
    if let Some(var_188) = &input.query_strings {
        let inner_writer = scope.start_el("QueryStrings");
        crate::xml_ser::serialize_structure_crate_model_query_string_names(var_188, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_kinesis_stream_config(
    input: &crate::model::KinesisStreamConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_189) = &input.role_arn {
        let mut inner_writer = scope.start_el("RoleARN").finish();
        inner_writer.data(var_189.as_str());
    }
    if let Some(var_190) = &input.stream_arn {
        let mut inner_writer = scope.start_el("StreamARN").finish();
        inner_writer.data(var_190.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_response_headers_policy_cors_config(
    input: &crate::model::ResponseHeadersPolicyCorsConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_191) = &input.access_control_allow_origins {
        let inner_writer = scope.start_el("AccessControlAllowOrigins");
        crate::xml_ser::serialize_structure_crate_model_response_headers_policy_access_control_allow_origins(var_191, inner_writer)?
    }
    if let Some(var_192) = &input.access_control_allow_headers {
        let inner_writer = scope.start_el("AccessControlAllowHeaders");
        crate::xml_ser::serialize_structure_crate_model_response_headers_policy_access_control_allow_headers(var_192, inner_writer)?
    }
    if let Some(var_193) = &input.access_control_allow_methods {
        let inner_writer = scope.start_el("AccessControlAllowMethods");
        crate::xml_ser::serialize_structure_crate_model_response_headers_policy_access_control_allow_methods(var_193, inner_writer)?
    }
    if let Some(var_194) = &input.access_control_allow_credentials {
        let mut inner_writer = scope.start_el("AccessControlAllowCredentials").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_194).encode());
    }
    if let Some(var_195) = &input.access_control_expose_headers {
        let inner_writer = scope.start_el("AccessControlExposeHeaders");
        crate::xml_ser::serialize_structure_crate_model_response_headers_policy_access_control_expose_headers(var_195, inner_writer)?
    }
    if let Some(var_196) = &input.access_control_max_age_sec {
        let mut inner_writer = scope.start_el("AccessControlMaxAgeSec").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_196).encode());
    }
    if let Some(var_197) = &input.origin_override {
        let mut inner_writer = scope.start_el("OriginOverride").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_197).encode());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_response_headers_policy_security_headers_config(
    input: &crate::model::ResponseHeadersPolicySecurityHeadersConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_198) = &input.xss_protection {
        let inner_writer = scope.start_el("XSSProtection");
        crate::xml_ser::serialize_structure_crate_model_response_headers_policy_xss_protection(
            var_198,
            inner_writer,
        )?
    }
    if let Some(var_199) = &input.frame_options {
        let inner_writer = scope.start_el("FrameOptions");
        crate::xml_ser::serialize_structure_crate_model_response_headers_policy_frame_options(
            var_199,
            inner_writer,
        )?
    }
    if let Some(var_200) = &input.referrer_policy {
        let inner_writer = scope.start_el("ReferrerPolicy");
        crate::xml_ser::serialize_structure_crate_model_response_headers_policy_referrer_policy(
            var_200,
            inner_writer,
        )?
    }
    if let Some(var_201) = &input.content_security_policy {
        let inner_writer = scope.start_el("ContentSecurityPolicy");
        crate::xml_ser::serialize_structure_crate_model_response_headers_policy_content_security_policy(var_201, inner_writer)?
    }
    if let Some(var_202) = &input.content_type_options {
        let inner_writer = scope.start_el("ContentTypeOptions");
        crate::xml_ser::serialize_structure_crate_model_response_headers_policy_content_type_options(var_202, inner_writer)?
    }
    if let Some(var_203) = &input.strict_transport_security {
        let inner_writer = scope.start_el("StrictTransportSecurity");
        crate::xml_ser::serialize_structure_crate_model_response_headers_policy_strict_transport_security(var_203, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_response_headers_policy_server_timing_headers_config(
    input: &crate::model::ResponseHeadersPolicyServerTimingHeadersConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_204) = &input.enabled {
        let mut inner_writer = scope.start_el("Enabled").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_204).encode());
    }
    if let Some(var_205) = &input.sampling_rate {
        let mut inner_writer = scope.start_el("SamplingRate").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_205).encode());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_response_headers_policy_custom_headers_config(
    input: &crate::model::ResponseHeadersPolicyCustomHeadersConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_206) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_206).encode());
    }
    if let Some(var_207) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_208 in var_207 {
            {
                let inner_writer = inner_writer.start_el("ResponseHeadersPolicyCustomHeader");
                crate::xml_ser::serialize_structure_crate_model_response_headers_policy_custom_header(list_item_208, inner_writer)?
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_response_headers_policy_remove_headers_config(
    input: &crate::model::ResponseHeadersPolicyRemoveHeadersConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_209) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_209).encode());
    }
    if let Some(var_210) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_211 in var_210 {
            {
                let inner_writer = inner_writer.start_el("ResponseHeadersPolicyRemoveHeader");
                crate::xml_ser::serialize_structure_crate_model_response_headers_policy_remove_header(list_item_211, inner_writer)?
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_s3_origin(
    input: &crate::model::S3Origin,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_212) = &input.domain_name {
        let mut inner_writer = scope.start_el("DomainName").finish();
        inner_writer.data(var_212.as_str());
    }
    if let Some(var_213) = &input.origin_access_identity {
        let mut inner_writer = scope.start_el("OriginAccessIdentity").finish();
        inner_writer.data(var_213.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_streaming_logging_config(
    input: &crate::model::StreamingLoggingConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_214) = &input.enabled {
        let mut inner_writer = scope.start_el("Enabled").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_214).encode());
    }
    if let Some(var_215) = &input.bucket {
        let mut inner_writer = scope.start_el("Bucket").finish();
        inner_writer.data(var_215.as_str());
    }
    if let Some(var_216) = &input.prefix {
        let mut inner_writer = scope.start_el("Prefix").finish();
        inner_writer.data(var_216.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_trusted_signers(
    input: &crate::model::TrustedSigners,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_217) = &input.enabled {
        let mut inner_writer = scope.start_el("Enabled").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_217).encode());
    }
    if let Some(var_218) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_218).encode());
    }
    if let Some(var_219) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_220 in var_219 {
            {
                let mut inner_writer = inner_writer.start_el("AwsAccountNumber").finish();
                inner_writer.data(list_item_220.as_str());
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_tag(
    input: &crate::model::Tag,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_221) = &input.key {
        let mut inner_writer = scope.start_el("Key").finish();
        inner_writer.data(var_221.as_str());
    }
    if let Some(var_222) = &input.value {
        let mut inner_writer = scope.start_el("Value").finish();
        inner_writer.data(var_222.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_cache_policy_headers_config(
    input: &crate::model::CachePolicyHeadersConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_223) = &input.header_behavior {
        let mut inner_writer = scope.start_el("HeaderBehavior").finish();
        inner_writer.data(var_223.as_str());
    }
    if let Some(var_224) = &input.headers {
        let inner_writer = scope.start_el("Headers");
        crate::xml_ser::serialize_structure_crate_model_headers(var_224, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_cache_policy_cookies_config(
    input: &crate::model::CachePolicyCookiesConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_225) = &input.cookie_behavior {
        let mut inner_writer = scope.start_el("CookieBehavior").finish();
        inner_writer.data(var_225.as_str());
    }
    if let Some(var_226) = &input.cookies {
        let inner_writer = scope.start_el("Cookies");
        crate::xml_ser::serialize_structure_crate_model_cookie_names(var_226, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_cache_policy_query_strings_config(
    input: &crate::model::CachePolicyQueryStringsConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_227) = &input.query_string_behavior {
        let mut inner_writer = scope.start_el("QueryStringBehavior").finish();
        inner_writer.data(var_227.as_str());
    }
    if let Some(var_228) = &input.query_strings {
        let inner_writer = scope.start_el("QueryStrings");
        crate::xml_ser::serialize_structure_crate_model_query_string_names(var_228, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_continuous_deployment_single_weight_config(
    input: &crate::model::ContinuousDeploymentSingleWeightConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_229) = &input.weight {
        let mut inner_writer = scope.start_el("Weight").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_229).encode());
    }
    if let Some(var_230) = &input.session_stickiness_config {
        let inner_writer = scope.start_el("SessionStickinessConfig");
        crate::xml_ser::serialize_structure_crate_model_session_stickiness_config(
            var_230,
            inner_writer,
        )?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_continuous_deployment_single_header_config(
    input: &crate::model::ContinuousDeploymentSingleHeaderConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_231) = &input.header {
        let mut inner_writer = scope.start_el("Header").finish();
        inner_writer.data(var_231.as_str());
    }
    if let Some(var_232) = &input.value {
        let mut inner_writer = scope.start_el("Value").finish();
        inner_writer.data(var_232.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_origin(
    input: &crate::model::Origin,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_233) = &input.id {
        let mut inner_writer = scope.start_el("Id").finish();
        inner_writer.data(var_233.as_str());
    }
    if let Some(var_234) = &input.domain_name {
        let mut inner_writer = scope.start_el("DomainName").finish();
        inner_writer.data(var_234.as_str());
    }
    if let Some(var_235) = &input.origin_path {
        let mut inner_writer = scope.start_el("OriginPath").finish();
        inner_writer.data(var_235.as_str());
    }
    if let Some(var_236) = &input.custom_headers {
        let inner_writer = scope.start_el("CustomHeaders");
        crate::xml_ser::serialize_structure_crate_model_custom_headers(var_236, inner_writer)?
    }
    if let Some(var_237) = &input.s3_origin_config {
        let inner_writer = scope.start_el("S3OriginConfig");
        crate::xml_ser::serialize_structure_crate_model_s3_origin_config(var_237, inner_writer)?
    }
    if let Some(var_238) = &input.custom_origin_config {
        let inner_writer = scope.start_el("CustomOriginConfig");
        crate::xml_ser::serialize_structure_crate_model_custom_origin_config(var_238, inner_writer)?
    }
    if let Some(var_239) = &input.connection_attempts {
        let mut inner_writer = scope.start_el("ConnectionAttempts").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_239).encode());
    }
    if let Some(var_240) = &input.connection_timeout {
        let mut inner_writer = scope.start_el("ConnectionTimeout").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_240).encode());
    }
    if let Some(var_241) = &input.origin_shield {
        let inner_writer = scope.start_el("OriginShield");
        crate::xml_ser::serialize_structure_crate_model_origin_shield(var_241, inner_writer)?
    }
    if let Some(var_242) = &input.origin_access_control_id {
        let mut inner_writer = scope.start_el("OriginAccessControlId").finish();
        inner_writer.data(var_242.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_origin_group(
    input: &crate::model::OriginGroup,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_243) = &input.id {
        let mut inner_writer = scope.start_el("Id").finish();
        inner_writer.data(var_243.as_str());
    }
    if let Some(var_244) = &input.failover_criteria {
        let inner_writer = scope.start_el("FailoverCriteria");
        crate::xml_ser::serialize_structure_crate_model_origin_group_failover_criteria(
            var_244,
            inner_writer,
        )?
    }
    if let Some(var_245) = &input.members {
        let inner_writer = scope.start_el("Members");
        crate::xml_ser::serialize_structure_crate_model_origin_group_members(var_245, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_trusted_key_groups(
    input: &crate::model::TrustedKeyGroups,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_246) = &input.enabled {
        let mut inner_writer = scope.start_el("Enabled").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_246).encode());
    }
    if let Some(var_247) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_247).encode());
    }
    if let Some(var_248) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_249 in var_248 {
            {
                let mut inner_writer = inner_writer.start_el("KeyGroup").finish();
                inner_writer.data(list_item_249.as_str());
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_allowed_methods(
    input: &crate::model::AllowedMethods,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_250) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_250).encode());
    }
    if let Some(var_251) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_252 in var_251 {
            {
                let mut inner_writer = inner_writer.start_el("Method").finish();
                inner_writer.data(list_item_252.as_str());
            }
        }
    }
    if let Some(var_253) = &input.cached_methods {
        let inner_writer = scope.start_el("CachedMethods");
        crate::xml_ser::serialize_structure_crate_model_cached_methods(var_253, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_lambda_function_associations(
    input: &crate::model::LambdaFunctionAssociations,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_254) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_254).encode());
    }
    if let Some(var_255) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_256 in var_255 {
            {
                let inner_writer = inner_writer.start_el("LambdaFunctionAssociation");
                crate::xml_ser::serialize_structure_crate_model_lambda_function_association(
                    list_item_256,
                    inner_writer,
                )?
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_function_associations(
    input: &crate::model::FunctionAssociations,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_257) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_257).encode());
    }
    if let Some(var_258) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_259 in var_258 {
            {
                let inner_writer = inner_writer.start_el("FunctionAssociation");
                crate::xml_ser::serialize_structure_crate_model_function_association(
                    list_item_259,
                    inner_writer,
                )?
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_forwarded_values(
    input: &crate::model::ForwardedValues,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_260) = &input.query_string {
        let mut inner_writer = scope.start_el("QueryString").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_260).encode());
    }
    if let Some(var_261) = &input.cookies {
        let inner_writer = scope.start_el("Cookies");
        crate::xml_ser::serialize_structure_crate_model_cookie_preference(var_261, inner_writer)?
    }
    if let Some(var_262) = &input.headers {
        let inner_writer = scope.start_el("Headers");
        crate::xml_ser::serialize_structure_crate_model_headers(var_262, inner_writer)?
    }
    if let Some(var_263) = &input.query_string_cache_keys {
        let inner_writer = scope.start_el("QueryStringCacheKeys");
        crate::xml_ser::serialize_structure_crate_model_query_string_cache_keys(
            var_263,
            inner_writer,
        )?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_cache_behavior(
    input: &crate::model::CacheBehavior,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_264) = &input.path_pattern {
        let mut inner_writer = scope.start_el("PathPattern").finish();
        inner_writer.data(var_264.as_str());
    }
    if let Some(var_265) = &input.target_origin_id {
        let mut inner_writer = scope.start_el("TargetOriginId").finish();
        inner_writer.data(var_265.as_str());
    }
    if let Some(var_266) = &input.trusted_signers {
        let inner_writer = scope.start_el("TrustedSigners");
        crate::xml_ser::serialize_structure_crate_model_trusted_signers(var_266, inner_writer)?
    }
    if let Some(var_267) = &input.trusted_key_groups {
        let inner_writer = scope.start_el("TrustedKeyGroups");
        crate::xml_ser::serialize_structure_crate_model_trusted_key_groups(var_267, inner_writer)?
    }
    if let Some(var_268) = &input.viewer_protocol_policy {
        let mut inner_writer = scope.start_el("ViewerProtocolPolicy").finish();
        inner_writer.data(var_268.as_str());
    }
    if let Some(var_269) = &input.allowed_methods {
        let inner_writer = scope.start_el("AllowedMethods");
        crate::xml_ser::serialize_structure_crate_model_allowed_methods(var_269, inner_writer)?
    }
    if let Some(var_270) = &input.smooth_streaming {
        let mut inner_writer = scope.start_el("SmoothStreaming").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_270).encode());
    }
    if let Some(var_271) = &input.compress {
        let mut inner_writer = scope.start_el("Compress").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_271).encode());
    }
    if let Some(var_272) = &input.lambda_function_associations {
        let inner_writer = scope.start_el("LambdaFunctionAssociations");
        crate::xml_ser::serialize_structure_crate_model_lambda_function_associations(
            var_272,
            inner_writer,
        )?
    }
    if let Some(var_273) = &input.function_associations {
        let inner_writer = scope.start_el("FunctionAssociations");
        crate::xml_ser::serialize_structure_crate_model_function_associations(
            var_273,
            inner_writer,
        )?
    }
    if let Some(var_274) = &input.field_level_encryption_id {
        let mut inner_writer = scope.start_el("FieldLevelEncryptionId").finish();
        inner_writer.data(var_274.as_str());
    }
    if let Some(var_275) = &input.realtime_log_config_arn {
        let mut inner_writer = scope.start_el("RealtimeLogConfigArn").finish();
        inner_writer.data(var_275.as_str());
    }
    if let Some(var_276) = &input.cache_policy_id {
        let mut inner_writer = scope.start_el("CachePolicyId").finish();
        inner_writer.data(var_276.as_str());
    }
    if let Some(var_277) = &input.origin_request_policy_id {
        let mut inner_writer = scope.start_el("OriginRequestPolicyId").finish();
        inner_writer.data(var_277.as_str());
    }
    if let Some(var_278) = &input.response_headers_policy_id {
        let mut inner_writer = scope.start_el("ResponseHeadersPolicyId").finish();
        inner_writer.data(var_278.as_str());
    }
    if let Some(var_279) = &input.forwarded_values {
        let inner_writer = scope.start_el("ForwardedValues");
        crate::xml_ser::serialize_structure_crate_model_forwarded_values(var_279, inner_writer)?
    }
    if let Some(var_280) = &input.min_ttl {
        let mut inner_writer = scope.start_el("MinTTL").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_280).encode());
    }
    if let Some(var_281) = &input.default_ttl {
        let mut inner_writer = scope.start_el("DefaultTTL").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_281).encode());
    }
    if let Some(var_282) = &input.max_ttl {
        let mut inner_writer = scope.start_el("MaxTTL").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_282).encode());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_custom_error_response(
    input: &crate::model::CustomErrorResponse,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_283) = &input.error_code {
        let mut inner_writer = scope.start_el("ErrorCode").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_283).encode());
    }
    if let Some(var_284) = &input.response_page_path {
        let mut inner_writer = scope.start_el("ResponsePagePath").finish();
        inner_writer.data(var_284.as_str());
    }
    if let Some(var_285) = &input.response_code {
        let mut inner_writer = scope.start_el("ResponseCode").finish();
        inner_writer.data(var_285.as_str());
    }
    if let Some(var_286) = &input.error_caching_min_ttl {
        let mut inner_writer = scope.start_el("ErrorCachingMinTTL").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_286).encode());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_geo_restriction(
    input: &crate::model::GeoRestriction,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_287) = &input.restriction_type {
        let mut inner_writer = scope.start_el("RestrictionType").finish();
        inner_writer.data(var_287.as_str());
    }
    if let Some(var_288) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_288).encode());
    }
    if let Some(var_289) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_290 in var_289 {
            {
                let mut inner_writer = inner_writer.start_el("Location").finish();
                inner_writer.data(list_item_290.as_str());
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_query_arg_profiles(
    input: &crate::model::QueryArgProfiles,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_291) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_291).encode());
    }
    if let Some(var_292) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_293 in var_292 {
            {
                let inner_writer = inner_writer.start_el("QueryArgProfile");
                crate::xml_ser::serialize_structure_crate_model_query_arg_profile(
                    list_item_293,
                    inner_writer,
                )?
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_content_type_profiles(
    input: &crate::model::ContentTypeProfiles,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_294) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_294).encode());
    }
    if let Some(var_295) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_296 in var_295 {
            {
                let inner_writer = inner_writer.start_el("ContentTypeProfile");
                crate::xml_ser::serialize_structure_crate_model_content_type_profile(
                    list_item_296,
                    inner_writer,
                )?
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_encryption_entity(
    input: &crate::model::EncryptionEntity,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_297) = &input.public_key_id {
        let mut inner_writer = scope.start_el("PublicKeyId").finish();
        inner_writer.data(var_297.as_str());
    }
    if let Some(var_298) = &input.provider_id {
        let mut inner_writer = scope.start_el("ProviderId").finish();
        inner_writer.data(var_298.as_str());
    }
    if let Some(var_299) = &input.field_patterns {
        let inner_writer = scope.start_el("FieldPatterns");
        crate::xml_ser::serialize_structure_crate_model_field_patterns(var_299, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_headers(
    input: &crate::model::Headers,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_300) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_300).encode());
    }
    if let Some(var_301) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_302 in var_301 {
            {
                let mut inner_writer = inner_writer.start_el("Name").finish();
                inner_writer.data(list_item_302.as_str());
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_cookie_names(
    input: &crate::model::CookieNames,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_303) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_303).encode());
    }
    if let Some(var_304) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_305 in var_304 {
            {
                let mut inner_writer = inner_writer.start_el("Name").finish();
                inner_writer.data(list_item_305.as_str());
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_query_string_names(
    input: &crate::model::QueryStringNames,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_306) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_306).encode());
    }
    if let Some(var_307) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_308 in var_307 {
            {
                let mut inner_writer = inner_writer.start_el("Name").finish();
                inner_writer.data(list_item_308.as_str());
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_response_headers_policy_access_control_allow_origins(
    input: &crate::model::ResponseHeadersPolicyAccessControlAllowOrigins,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_309) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_309).encode());
    }
    if let Some(var_310) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_311 in var_310 {
            {
                let mut inner_writer = inner_writer.start_el("Origin").finish();
                inner_writer.data(list_item_311.as_str());
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_response_headers_policy_access_control_allow_headers(
    input: &crate::model::ResponseHeadersPolicyAccessControlAllowHeaders,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_312) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_312).encode());
    }
    if let Some(var_313) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_314 in var_313 {
            {
                let mut inner_writer = inner_writer.start_el("Header").finish();
                inner_writer.data(list_item_314.as_str());
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_response_headers_policy_access_control_allow_methods(
    input: &crate::model::ResponseHeadersPolicyAccessControlAllowMethods,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_315) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_315).encode());
    }
    if let Some(var_316) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_317 in var_316 {
            {
                let mut inner_writer = inner_writer.start_el("Method").finish();
                inner_writer.data(list_item_317.as_str());
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_response_headers_policy_access_control_expose_headers(
    input: &crate::model::ResponseHeadersPolicyAccessControlExposeHeaders,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_318) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_318).encode());
    }
    if let Some(var_319) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_320 in var_319 {
            {
                let mut inner_writer = inner_writer.start_el("Header").finish();
                inner_writer.data(list_item_320.as_str());
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_response_headers_policy_xss_protection(
    input: &crate::model::ResponseHeadersPolicyXssProtection,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_321) = &input.r#override {
        let mut inner_writer = scope.start_el("Override").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_321).encode());
    }
    if let Some(var_322) = &input.protection {
        let mut inner_writer = scope.start_el("Protection").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_322).encode());
    }
    if let Some(var_323) = &input.mode_block {
        let mut inner_writer = scope.start_el("ModeBlock").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_323).encode());
    }
    if let Some(var_324) = &input.report_uri {
        let mut inner_writer = scope.start_el("ReportUri").finish();
        inner_writer.data(var_324.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_response_headers_policy_frame_options(
    input: &crate::model::ResponseHeadersPolicyFrameOptions,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_325) = &input.r#override {
        let mut inner_writer = scope.start_el("Override").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_325).encode());
    }
    if let Some(var_326) = &input.frame_option {
        let mut inner_writer = scope.start_el("FrameOption").finish();
        inner_writer.data(var_326.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_response_headers_policy_referrer_policy(
    input: &crate::model::ResponseHeadersPolicyReferrerPolicy,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_327) = &input.r#override {
        let mut inner_writer = scope.start_el("Override").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_327).encode());
    }
    if let Some(var_328) = &input.referrer_policy {
        let mut inner_writer = scope.start_el("ReferrerPolicy").finish();
        inner_writer.data(var_328.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_response_headers_policy_content_security_policy(
    input: &crate::model::ResponseHeadersPolicyContentSecurityPolicy,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_329) = &input.r#override {
        let mut inner_writer = scope.start_el("Override").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_329).encode());
    }
    if let Some(var_330) = &input.content_security_policy {
        let mut inner_writer = scope.start_el("ContentSecurityPolicy").finish();
        inner_writer.data(var_330.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_response_headers_policy_content_type_options(
    input: &crate::model::ResponseHeadersPolicyContentTypeOptions,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_331) = &input.r#override {
        let mut inner_writer = scope.start_el("Override").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_331).encode());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_response_headers_policy_strict_transport_security(
    input: &crate::model::ResponseHeadersPolicyStrictTransportSecurity,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_332) = &input.r#override {
        let mut inner_writer = scope.start_el("Override").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_332).encode());
    }
    if let Some(var_333) = &input.include_subdomains {
        let mut inner_writer = scope.start_el("IncludeSubdomains").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_333).encode());
    }
    if let Some(var_334) = &input.preload {
        let mut inner_writer = scope.start_el("Preload").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_334).encode());
    }
    if let Some(var_335) = &input.access_control_max_age_sec {
        let mut inner_writer = scope.start_el("AccessControlMaxAgeSec").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_335).encode());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_response_headers_policy_custom_header(
    input: &crate::model::ResponseHeadersPolicyCustomHeader,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_336) = &input.header {
        let mut inner_writer = scope.start_el("Header").finish();
        inner_writer.data(var_336.as_str());
    }
    if let Some(var_337) = &input.value {
        let mut inner_writer = scope.start_el("Value").finish();
        inner_writer.data(var_337.as_str());
    }
    if let Some(var_338) = &input.r#override {
        let mut inner_writer = scope.start_el("Override").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_338).encode());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_response_headers_policy_remove_header(
    input: &crate::model::ResponseHeadersPolicyRemoveHeader,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_339) = &input.header {
        let mut inner_writer = scope.start_el("Header").finish();
        inner_writer.data(var_339.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_session_stickiness_config(
    input: &crate::model::SessionStickinessConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_340) = &input.idle_ttl {
        let mut inner_writer = scope.start_el("IdleTTL").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_340).encode());
    }
    if let Some(var_341) = &input.maximum_ttl {
        let mut inner_writer = scope.start_el("MaximumTTL").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_341).encode());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_custom_headers(
    input: &crate::model::CustomHeaders,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_342) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_342).encode());
    }
    if let Some(var_343) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_344 in var_343 {
            {
                let inner_writer = inner_writer.start_el("OriginCustomHeader");
                crate::xml_ser::serialize_structure_crate_model_origin_custom_header(
                    list_item_344,
                    inner_writer,
                )?
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_s3_origin_config(
    input: &crate::model::S3OriginConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_345) = &input.origin_access_identity {
        let mut inner_writer = scope.start_el("OriginAccessIdentity").finish();
        inner_writer.data(var_345.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_custom_origin_config(
    input: &crate::model::CustomOriginConfig,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_346) = &input.http_port {
        let mut inner_writer = scope.start_el("HTTPPort").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_346).encode());
    }
    if let Some(var_347) = &input.https_port {
        let mut inner_writer = scope.start_el("HTTPSPort").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_347).encode());
    }
    if let Some(var_348) = &input.origin_protocol_policy {
        let mut inner_writer = scope.start_el("OriginProtocolPolicy").finish();
        inner_writer.data(var_348.as_str());
    }
    if let Some(var_349) = &input.origin_ssl_protocols {
        let inner_writer = scope.start_el("OriginSslProtocols");
        crate::xml_ser::serialize_structure_crate_model_origin_ssl_protocols(var_349, inner_writer)?
    }
    if let Some(var_350) = &input.origin_read_timeout {
        let mut inner_writer = scope.start_el("OriginReadTimeout").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_350).encode());
    }
    if let Some(var_351) = &input.origin_keepalive_timeout {
        let mut inner_writer = scope.start_el("OriginKeepaliveTimeout").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_351).encode());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_origin_shield(
    input: &crate::model::OriginShield,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_352) = &input.enabled {
        let mut inner_writer = scope.start_el("Enabled").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_352).encode());
    }
    if let Some(var_353) = &input.origin_shield_region {
        let mut inner_writer = scope.start_el("OriginShieldRegion").finish();
        inner_writer.data(var_353.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_origin_group_failover_criteria(
    input: &crate::model::OriginGroupFailoverCriteria,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_354) = &input.status_codes {
        let inner_writer = scope.start_el("StatusCodes");
        crate::xml_ser::serialize_structure_crate_model_status_codes(var_354, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_origin_group_members(
    input: &crate::model::OriginGroupMembers,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_355) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_355).encode());
    }
    if let Some(var_356) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_357 in var_356 {
            {
                let inner_writer = inner_writer.start_el("OriginGroupMember");
                crate::xml_ser::serialize_structure_crate_model_origin_group_member(
                    list_item_357,
                    inner_writer,
                )?
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_cached_methods(
    input: &crate::model::CachedMethods,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_358) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_358).encode());
    }
    if let Some(var_359) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_360 in var_359 {
            {
                let mut inner_writer = inner_writer.start_el("Method").finish();
                inner_writer.data(list_item_360.as_str());
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_lambda_function_association(
    input: &crate::model::LambdaFunctionAssociation,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_361) = &input.lambda_function_arn {
        let mut inner_writer = scope.start_el("LambdaFunctionARN").finish();
        inner_writer.data(var_361.as_str());
    }
    if let Some(var_362) = &input.event_type {
        let mut inner_writer = scope.start_el("EventType").finish();
        inner_writer.data(var_362.as_str());
    }
    if let Some(var_363) = &input.include_body {
        let mut inner_writer = scope.start_el("IncludeBody").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_363).encode());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_function_association(
    input: &crate::model::FunctionAssociation,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_364) = &input.function_arn {
        let mut inner_writer = scope.start_el("FunctionARN").finish();
        inner_writer.data(var_364.as_str());
    }
    if let Some(var_365) = &input.event_type {
        let mut inner_writer = scope.start_el("EventType").finish();
        inner_writer.data(var_365.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_cookie_preference(
    input: &crate::model::CookiePreference,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_366) = &input.forward {
        let mut inner_writer = scope.start_el("Forward").finish();
        inner_writer.data(var_366.as_str());
    }
    if let Some(var_367) = &input.whitelisted_names {
        let inner_writer = scope.start_el("WhitelistedNames");
        crate::xml_ser::serialize_structure_crate_model_cookie_names(var_367, inner_writer)?
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_query_string_cache_keys(
    input: &crate::model::QueryStringCacheKeys,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_368) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_368).encode());
    }
    if let Some(var_369) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_370 in var_369 {
            {
                let mut inner_writer = inner_writer.start_el("Name").finish();
                inner_writer.data(list_item_370.as_str());
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_query_arg_profile(
    input: &crate::model::QueryArgProfile,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_371) = &input.query_arg {
        let mut inner_writer = scope.start_el("QueryArg").finish();
        inner_writer.data(var_371.as_str());
    }
    if let Some(var_372) = &input.profile_id {
        let mut inner_writer = scope.start_el("ProfileId").finish();
        inner_writer.data(var_372.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_content_type_profile(
    input: &crate::model::ContentTypeProfile,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_373) = &input.format {
        let mut inner_writer = scope.start_el("Format").finish();
        inner_writer.data(var_373.as_str());
    }
    if let Some(var_374) = &input.profile_id {
        let mut inner_writer = scope.start_el("ProfileId").finish();
        inner_writer.data(var_374.as_str());
    }
    if let Some(var_375) = &input.content_type {
        let mut inner_writer = scope.start_el("ContentType").finish();
        inner_writer.data(var_375.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_field_patterns(
    input: &crate::model::FieldPatterns,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_376) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_376).encode());
    }
    if let Some(var_377) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_378 in var_377 {
            {
                let mut inner_writer = inner_writer.start_el("FieldPattern").finish();
                inner_writer.data(list_item_378.as_str());
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_origin_custom_header(
    input: &crate::model::OriginCustomHeader,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_379) = &input.header_name {
        let mut inner_writer = scope.start_el("HeaderName").finish();
        inner_writer.data(var_379.as_str());
    }
    if let Some(var_380) = &input.header_value {
        let mut inner_writer = scope.start_el("HeaderValue").finish();
        inner_writer.data(var_380.as_str());
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_origin_ssl_protocols(
    input: &crate::model::OriginSslProtocols,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_381) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_381).encode());
    }
    if let Some(var_382) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_383 in var_382 {
            {
                let mut inner_writer = inner_writer.start_el("SslProtocol").finish();
                inner_writer.data(list_item_383.as_str());
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_status_codes(
    input: &crate::model::StatusCodes,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_384) = &input.quantity {
        let mut inner_writer = scope.start_el("Quantity").finish();
        inner_writer.data(aws_smithy_types::primitive::Encoder::from(*var_384).encode());
    }
    if let Some(var_385) = &input.items {
        let mut inner_writer = scope.start_el("Items").finish();
        for list_item_386 in var_385 {
            {
                let mut inner_writer = inner_writer.start_el("StatusCode").finish();
                inner_writer
                    .data(aws_smithy_types::primitive::Encoder::from(*list_item_386).encode());
            }
        }
    }
    scope.finish();
    Ok(())
}

pub fn serialize_structure_crate_model_origin_group_member(
    input: &crate::model::OriginGroupMember,
    writer: aws_smithy_xml::encode::ElWriter,
) -> Result<(), aws_smithy_http::operation::error::SerializationError> {
    #[allow(unused_mut)]
    let mut scope = writer.finish();
    if let Some(var_387) = &input.origin_id {
        let mut inner_writer = scope.start_el("OriginId").finish();
        inner_writer.data(var_387.as_str());
    }
    scope.finish();
    Ok(())
}