You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: _elastic_channel_configuration.rs
    path of file: ./repos/aws-sdk-rust/sdk/chimesdkmessaging/src/types
    
    the code of the file until where you have to start completion: // Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>The attributes required to configure and create an elastic channel. An elastic channel can support a maximum of 1-million members.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct ElasticChannelConfiguration {
    /// <p>The maximum number of SubChannels that you want to allow in the elastic channel.</p>
    pub maximum_sub_channels: i32,
    /// <p>The maximum number of members allowed in a SubChannel.</p>
    pub target_memberships_per_sub_channel: i32,
    /// <p>The minimum allowed percentage of TargetMembershipsPerSubChannel users. Ceil of the calculated value is used in balancing members among SubChannels of the elastic channel.</p>
    pub minimum_membership_percentage: i32,
}
impl ElasticChannelConfiguration {
    /// <p>The maximum number of SubChannels that you want to allow in the elastic channel.</p>
    pub fn maximum_sub_channels(&self) -> i32 {
        self.maximum_sub_channels
    }
    /// <p>The maximum number of members allowed in a SubChannel.</p>
    pub fn target_memberships_per_sub_channel(&self) -> i32 {
        self.target_memberships_p
    
    pub fn build(self) -> ::std::result::Result<crate::types::ElasticChannelConfiguration, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::types::ElasticChannelConfiguration {
            maximum_sub_channels: self.maximum_sub_channels.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "maximum_sub_channels",
                    "maximum_sub_channels was not specified but it is required when building ElasticChannelConfiguration",
                )
            })?,
            target_memberships_per_sub_channel: self.target_memberships_per_sub_channel.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "target_memberships_per_sub_channel",
                    "target_memberships_per_sub_channel was not specified but it is required when building ElasticChannelConfiguration",
                )
            })?,
            minimum_membership_percentage: self.minimum_membership_percentage.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "minimum_membership_percentage",
                    "minimum_membership_percentage was not specified but it is required when building ElasticChannelConfiguration",
                )
            })?,
        })
    }