aws-sdk-ec2 1.221.0

AWS SDK for Amazon Elastic Compute Cloud
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub fn ser_create_network_interface_input_input_input(
    input: &crate::operation::create_network_interface::CreateNetworkInterfaceInput,
) -> ::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, "CreateNetworkInterface", "2016-11-15");
    #[allow(unused_mut)]
    let mut scope_1 = writer.prefix("Ipv4Prefix");
    if let Some(var_2) = &input.ipv4_prefixes {
        if !var_2.is_empty() {
            let mut list_4 = scope_1.start_list(true, Some("item"));
            for item_3 in var_2 {
                #[allow(unused_mut)]
                let mut entry_5 = list_4.entry();
                crate::protocol_serde::shape_ipv4_prefix_specification_request::ser_ipv4_prefix_specification_request(entry_5, item_3)?;
            }
            list_4.finish();
        }
    }
    #[allow(unused_mut)]
    let mut scope_6 = writer.prefix("Ipv4PrefixCount");
    if let Some(var_7) = &input.ipv4_prefix_count {
        scope_6.number(
            #[allow(clippy::useless_conversion)]
            ::aws_smithy_types::Number::NegInt((*var_7).into()),
        );
    }
    #[allow(unused_mut)]
    let mut scope_8 = writer.prefix("Ipv6Prefix");
    if let Some(var_9) = &input.ipv6_prefixes {
        if !var_9.is_empty() {
            let mut list_11 = scope_8.start_list(true, Some("item"));
            for item_10 in var_9 {
                #[allow(unused_mut)]
                let mut entry_12 = list_11.entry();
                crate::protocol_serde::shape_ipv6_prefix_specification_request::ser_ipv6_prefix_specification_request(entry_12, item_10)?;
            }
            list_11.finish();
        }
    }
    #[allow(unused_mut)]
    let mut scope_13 = writer.prefix("Ipv6PrefixCount");
    if let Some(var_14) = &input.ipv6_prefix_count {
        scope_13.number(
            #[allow(clippy::useless_conversion)]
            ::aws_smithy_types::Number::NegInt((*var_14).into()),
        );
    }
    #[allow(unused_mut)]
    let mut scope_15 = writer.prefix("InterfaceType");
    if let Some(var_16) = &input.interface_type {
        scope_15.string(var_16.as_str());
    }
    #[allow(unused_mut)]
    let mut scope_17 = writer.prefix("TagSpecification");
    if let Some(var_18) = &input.tag_specifications {
        if !var_18.is_empty() {
            let mut list_20 = scope_17.start_list(true, Some("item"));
            for item_19 in var_18 {
                #[allow(unused_mut)]
                let mut entry_21 = list_20.entry();
                crate::protocol_serde::shape_tag_specification::ser_tag_specification(entry_21, item_19)?;
            }
            list_20.finish();
        }
    }
    #[allow(unused_mut)]
    let mut scope_22 = writer.prefix("ClientToken");
    if let Some(var_23) = &input.client_token {
        scope_22.string(var_23);
    }
    #[allow(unused_mut)]
    let mut scope_24 = writer.prefix("EnablePrimaryIpv6");
    if let Some(var_25) = &input.enable_primary_ipv6 {
        scope_24.boolean(*var_25);
    }
    #[allow(unused_mut)]
    let mut scope_26 = writer.prefix("ConnectionTrackingSpecification");
    if let Some(var_27) = &input.connection_tracking_specification {
        crate::protocol_serde::shape_connection_tracking_specification_request::ser_connection_tracking_specification_request(scope_26, var_27)?;
    }
    #[allow(unused_mut)]
    let mut scope_28 = writer.prefix("Operator");
    if let Some(var_29) = &input.operator {
        crate::protocol_serde::shape_operator_request::ser_operator_request(scope_28, var_29)?;
    }
    #[allow(unused_mut)]
    let mut scope_30 = writer.prefix("SubnetId");
    if let Some(var_31) = &input.subnet_id {
        scope_30.string(var_31);
    }
    #[allow(unused_mut)]
    let mut scope_32 = writer.prefix("Description");
    if let Some(var_33) = &input.description {
        scope_32.string(var_33);
    }
    #[allow(unused_mut)]
    let mut scope_34 = writer.prefix("PrivateIpAddress");
    if let Some(var_35) = &input.private_ip_address {
        scope_34.string(var_35);
    }
    #[allow(unused_mut)]
    let mut scope_36 = writer.prefix("SecurityGroupId");
    if let Some(var_37) = &input.groups {
        if !var_37.is_empty() {
            let mut list_39 = scope_36.start_list(true, Some("SecurityGroupId"));
            for item_38 in var_37 {
                #[allow(unused_mut)]
                let mut entry_40 = list_39.entry();
                entry_40.string(item_38);
            }
            list_39.finish();
        }
    }
    #[allow(unused_mut)]
    let mut scope_41 = writer.prefix("PrivateIpAddresses");
    if let Some(var_42) = &input.private_ip_addresses {
        if !var_42.is_empty() {
            let mut list_44 = scope_41.start_list(true, Some("item"));
            for item_43 in var_42 {
                #[allow(unused_mut)]
                let mut entry_45 = list_44.entry();
                crate::protocol_serde::shape_private_ip_address_specification::ser_private_ip_address_specification(entry_45, item_43)?;
            }
            list_44.finish();
        }
    }
    #[allow(unused_mut)]
    let mut scope_46 = writer.prefix("SecondaryPrivateIpAddressCount");
    if let Some(var_47) = &input.secondary_private_ip_address_count {
        scope_46.number(
            #[allow(clippy::useless_conversion)]
            ::aws_smithy_types::Number::NegInt((*var_47).into()),
        );
    }
    #[allow(unused_mut)]
    let mut scope_48 = writer.prefix("Ipv6Addresses");
    if let Some(var_49) = &input.ipv6_addresses {
        if !var_49.is_empty() {
            let mut list_51 = scope_48.start_list(true, Some("item"));
            for item_50 in var_49 {
                #[allow(unused_mut)]
                let mut entry_52 = list_51.entry();
                crate::protocol_serde::shape_instance_ipv6_address::ser_instance_ipv6_address(entry_52, item_50)?;
            }
            list_51.finish();
        }
    }
    #[allow(unused_mut)]
    let mut scope_53 = writer.prefix("Ipv6AddressCount");
    if let Some(var_54) = &input.ipv6_address_count {
        scope_53.number(
            #[allow(clippy::useless_conversion)]
            ::aws_smithy_types::Number::NegInt((*var_54).into()),
        );
    }
    #[allow(unused_mut)]
    let mut scope_55 = writer.prefix("DryRun");
    if let Some(var_56) = &input.dry_run {
        scope_55.boolean(*var_56);
    }
    writer.finish();
    Ok(::aws_smithy_types::body::SdkBody::from(out))
}