aws-sdk-elasticache 1.110.0

AWS SDK for Amazon ElastiCache
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub fn ser_create_serverless_cache_input_input_input(
    input: &crate::operation::create_serverless_cache::CreateServerlessCacheInput,
) -> ::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, "CreateServerlessCache", "2015-02-02");
    #[allow(unused_mut)]
    let mut scope_1 = writer.prefix("ServerlessCacheName");
    if let Some(var_2) = &input.serverless_cache_name {
        scope_1.string(var_2);
    }
    #[allow(unused_mut)]
    let mut scope_3 = writer.prefix("Description");
    if let Some(var_4) = &input.description {
        scope_3.string(var_4);
    }
    #[allow(unused_mut)]
    let mut scope_5 = writer.prefix("Engine");
    if let Some(var_6) = &input.engine {
        scope_5.string(var_6);
    }
    #[allow(unused_mut)]
    let mut scope_7 = writer.prefix("MajorEngineVersion");
    if let Some(var_8) = &input.major_engine_version {
        scope_7.string(var_8);
    }
    #[allow(unused_mut)]
    let mut scope_9 = writer.prefix("CacheUsageLimits");
    if let Some(var_10) = &input.cache_usage_limits {
        crate::protocol_serde::shape_cache_usage_limits::ser_cache_usage_limits(scope_9, var_10)?;
    }
    #[allow(unused_mut)]
    let mut scope_11 = writer.prefix("KmsKeyId");
    if let Some(var_12) = &input.kms_key_id {
        scope_11.string(var_12);
    }
    #[allow(unused_mut)]
    let mut scope_13 = writer.prefix("SecurityGroupIds");
    if let Some(var_14) = &input.security_group_ids {
        let mut list_16 = scope_13.start_list(false, Some("SecurityGroupId"));
        for item_15 in var_14 {
            #[allow(unused_mut)]
            let mut entry_17 = list_16.entry();
            entry_17.string(item_15);
        }
        list_16.finish();
    }
    #[allow(unused_mut)]
    let mut scope_18 = writer.prefix("SnapshotArnsToRestore");
    if let Some(var_19) = &input.snapshot_arns_to_restore {
        let mut list_21 = scope_18.start_list(false, Some("SnapshotArn"));
        for item_20 in var_19 {
            #[allow(unused_mut)]
            let mut entry_22 = list_21.entry();
            entry_22.string(item_20);
        }
        list_21.finish();
    }
    #[allow(unused_mut)]
    let mut scope_23 = writer.prefix("Tags");
    if let Some(var_24) = &input.tags {
        let mut list_26 = scope_23.start_list(false, Some("Tag"));
        for item_25 in var_24 {
            #[allow(unused_mut)]
            let mut entry_27 = list_26.entry();
            crate::protocol_serde::shape_tag::ser_tag(entry_27, item_25)?;
        }
        list_26.finish();
    }
    #[allow(unused_mut)]
    let mut scope_28 = writer.prefix("UserGroupId");
    if let Some(var_29) = &input.user_group_id {
        scope_28.string(var_29);
    }
    #[allow(unused_mut)]
    let mut scope_30 = writer.prefix("SubnetIds");
    if let Some(var_31) = &input.subnet_ids {
        let mut list_33 = scope_30.start_list(false, Some("SubnetId"));
        for item_32 in var_31 {
            #[allow(unused_mut)]
            let mut entry_34 = list_33.entry();
            entry_34.string(item_32);
        }
        list_33.finish();
    }
    #[allow(unused_mut)]
    let mut scope_35 = writer.prefix("SnapshotRetentionLimit");
    if let Some(var_36) = &input.snapshot_retention_limit {
        scope_35.number(
            #[allow(clippy::useless_conversion)]
            ::aws_smithy_types::Number::NegInt((*var_36).into()),
        );
    }
    #[allow(unused_mut)]
    let mut scope_37 = writer.prefix("DailySnapshotTime");
    if let Some(var_38) = &input.daily_snapshot_time {
        scope_37.string(var_38);
    }
    #[allow(unused_mut)]
    let mut scope_39 = writer.prefix("NetworkType");
    if let Some(var_40) = &input.network_type {
        scope_39.string(var_40.as_str());
    }
    writer.finish();
    Ok(::aws_smithy_types::body::SdkBody::from(out))
}