aws-sdk-docdb 1.105.0

AWS SDK for Amazon DocumentDB with MongoDB compatibility
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub fn ser_create_db_cluster_input_input_input(
    input: &crate::operation::create_db_cluster::CreateDbClusterInput,
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
    let mut out = String::new();
    #[allow(unused_mut)]
    let mut writer = ::aws_smithy_query::QueryWriter::new(&mut out, "CreateDBCluster", "2014-10-31");
    #[allow(unused_mut)]
    let mut scope_1 = writer.prefix("AvailabilityZones");
    if let Some(var_2) = &input.availability_zones {
        let mut list_4 = scope_1.start_list(false, Some("AvailabilityZone"));
        for item_3 in var_2 {
            #[allow(unused_mut)]
            let mut entry_5 = list_4.entry();
            entry_5.string(item_3);
        }
        list_4.finish();
    }
    #[allow(unused_mut)]
    let mut scope_6 = writer.prefix("BackupRetentionPeriod");
    if let Some(var_7) = &input.backup_retention_period {
        scope_6.number(
            #[allow(clippy::useless_conversion)]
            ::aws_smithy_types::Number::NegInt((*var_7).into()),
        );
    }
    #[allow(unused_mut)]
    let mut scope_8 = writer.prefix("DBClusterIdentifier");
    if let Some(var_9) = &input.db_cluster_identifier {
        scope_8.string(var_9);
    }
    #[allow(unused_mut)]
    let mut scope_10 = writer.prefix("DBClusterParameterGroupName");
    if let Some(var_11) = &input.db_cluster_parameter_group_name {
        scope_10.string(var_11);
    }
    #[allow(unused_mut)]
    let mut scope_12 = writer.prefix("VpcSecurityGroupIds");
    if let Some(var_13) = &input.vpc_security_group_ids {
        let mut list_15 = scope_12.start_list(false, Some("VpcSecurityGroupId"));
        for item_14 in var_13 {
            #[allow(unused_mut)]
            let mut entry_16 = list_15.entry();
            entry_16.string(item_14);
        }
        list_15.finish();
    }
    #[allow(unused_mut)]
    let mut scope_17 = writer.prefix("DBSubnetGroupName");
    if let Some(var_18) = &input.db_subnet_group_name {
        scope_17.string(var_18);
    }
    #[allow(unused_mut)]
    let mut scope_19 = writer.prefix("Engine");
    if let Some(var_20) = &input.engine {
        scope_19.string(var_20);
    }
    #[allow(unused_mut)]
    let mut scope_21 = writer.prefix("EngineVersion");
    if let Some(var_22) = &input.engine_version {
        scope_21.string(var_22);
    }
    #[allow(unused_mut)]
    let mut scope_23 = writer.prefix("Port");
    if let Some(var_24) = &input.port {
        scope_23.number(
            #[allow(clippy::useless_conversion)]
            ::aws_smithy_types::Number::NegInt((*var_24).into()),
        );
    }
    #[allow(unused_mut)]
    let mut scope_25 = writer.prefix("MasterUsername");
    if let Some(var_26) = &input.master_username {
        scope_25.string(var_26);
    }
    #[allow(unused_mut)]
    let mut scope_27 = writer.prefix("MasterUserPassword");
    if let Some(var_28) = &input.master_user_password {
        scope_27.string(var_28);
    }
    #[allow(unused_mut)]
    let mut scope_29 = writer.prefix("PreferredBackupWindow");
    if let Some(var_30) = &input.preferred_backup_window {
        scope_29.string(var_30);
    }
    #[allow(unused_mut)]
    let mut scope_31 = writer.prefix("PreferredMaintenanceWindow");
    if let Some(var_32) = &input.preferred_maintenance_window {
        scope_31.string(var_32);
    }
    #[allow(unused_mut)]
    let mut scope_33 = writer.prefix("Tags");
    if let Some(var_34) = &input.tags {
        let mut list_36 = scope_33.start_list(false, Some("Tag"));
        for item_35 in var_34 {
            #[allow(unused_mut)]
            let mut entry_37 = list_36.entry();
            crate::protocol_serde::shape_tag::ser_tag(entry_37, item_35)?;
        }
        list_36.finish();
    }
    #[allow(unused_mut)]
    let mut scope_38 = writer.prefix("StorageEncrypted");
    if let Some(var_39) = &input.storage_encrypted {
        scope_38.boolean(*var_39);
    }
    #[allow(unused_mut)]
    let mut scope_40 = writer.prefix("KmsKeyId");
    if let Some(var_41) = &input.kms_key_id {
        scope_40.string(var_41);
    }
    #[allow(unused_mut)]
    let mut scope_42 = writer.prefix("PreSignedUrl");
    if let Some(var_43) = &input.pre_signed_url {
        scope_42.string(var_43);
    }
    #[allow(unused_mut)]
    let mut scope_44 = writer.prefix("EnableCloudwatchLogsExports");
    if let Some(var_45) = &input.enable_cloudwatch_logs_exports {
        let mut list_47 = scope_44.start_list(false, None);
        for item_46 in var_45 {
            #[allow(unused_mut)]
            let mut entry_48 = list_47.entry();
            entry_48.string(item_46);
        }
        list_47.finish();
    }
    #[allow(unused_mut)]
    let mut scope_49 = writer.prefix("DeletionProtection");
    if let Some(var_50) = &input.deletion_protection {
        scope_49.boolean(*var_50);
    }
    #[allow(unused_mut)]
    let mut scope_51 = writer.prefix("GlobalClusterIdentifier");
    if let Some(var_52) = &input.global_cluster_identifier {
        scope_51.string(var_52);
    }
    #[allow(unused_mut)]
    let mut scope_53 = writer.prefix("StorageType");
    if let Some(var_54) = &input.storage_type {
        scope_53.string(var_54);
    }
    #[allow(unused_mut)]
    let mut scope_55 = writer.prefix("ServerlessV2ScalingConfiguration");
    if let Some(var_56) = &input.serverless_v2_scaling_configuration {
        crate::protocol_serde::shape_serverless_v2_scaling_configuration::ser_serverless_v2_scaling_configuration(scope_55, var_56)?;
    }
    #[allow(unused_mut)]
    let mut scope_57 = writer.prefix("ManageMasterUserPassword");
    if let Some(var_58) = &input.manage_master_user_password {
        scope_57.boolean(*var_58);
    }
    #[allow(unused_mut)]
    let mut scope_59 = writer.prefix("MasterUserSecretKmsKeyId");
    if let Some(var_60) = &input.master_user_secret_kms_key_id {
        scope_59.string(var_60);
    }
    #[allow(unused_mut)]
    let mut scope_61 = writer.prefix("NetworkType");
    if let Some(var_62) = &input.network_type {
        scope_61.string(var_62);
    }
    writer.finish();
    Ok(::aws_smithy_types::body::SdkBody::from(out))
}