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: _pool_information.rs
    path of file: ./repos/aws-sdk-rust/sdk/pinpointsmsvoicev2/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 information for a pool in an Amazon Web Services account.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct PoolInformation {
    /// <p>The Amazon Resource Name (ARN) for the pool.</p>
    pub pool_arn: ::std::string::String,
    /// <p>The unique identifier for the pool.</p>
    pub pool_id: ::std::string::String,
    /// <p>The current status of the pool.</p>
    pub status: crate::types::PoolStatus,
    /// <p>The type of message. Valid values are TRANSACTIONAL for messages that are critical or time-sensitive and PROMOTIONAL for messages that aren't critical or time-sensitive.</p>
    pub message_type: crate::types::MessageType,
    /// <p>When set to true you can receive incoming text messages from your end recipients using the TwoWayChannelArn.</p>
    pub two_way_enabled: bool,
    /// <p>The Amazon Resource Name (ARN) of the two way channel.</p>
    pub two_way_channel_arn: ::std::option::Option<::std::string::String>,
    /// <p>An optional IAM Role Arn for a service to assume, to be able to post inbound SMS messages.</p>
    pub two_way_channel_role: ::std::option::Option<::std::string::String>,
    /// <p>When set to false, an end recipient sends a message that begins with HELP or STOP to one of your dedicated numbers, Amazon Pinpoint automatically replies with a customizable message and adds the end recipient to the OptOutList. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests. For more information see <a href="https://docs.aws.amazon.com/pinpoint/latest/userguide/settings-sms-managing.html#settings-account-sms-self-managed-opt-out">Self-managed opt-outs</
    
    pub fn build(self) -> ::std::result::Result<crate::types::PoolInformation, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::types::PoolInformation {
            pool_arn: self.pool_arn.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "pool_arn",
                    "pool_arn was not specified but it is required when building PoolInformation",
                )
            })?,
            pool_id: self.pool_id.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "pool_id",
                    "pool_id was not specified but it is required when building PoolInformation",
                )
            })?,
            status: self.status.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "status",
                    "status was not specified but it is required when building PoolInformation",
                )
            })?,
            message_type: self.message_type.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "message_type",
                    "message_type was not specified but it is required when building PoolInformation",
                )
            })?,
            two_way_enabled: self.two_way_enabled.unwrap_or_default(),
            two_way_channel_arn: self.two_way_channel_arn,
            two_way_channel_role: self.two_way_channel_role,
            self_managed_opt_outs_enabled: self.self_managed_opt_outs_enabled.unwrap_or_default(),
            opt_out_list_name: self.opt_out_list_name.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "opt_out_list_name",
                    "opt_out_list_name was not specified but it is required when building PoolInformation",
                )
            })?,
            shared_routes_enabled: self.shared_routes_enabled.unwrap_or_default(),
            deletion_protection_enabled: self.deletion_protection_enabled.unwrap_or_default(),
            created_timestamp: self.created_timestamp.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "created_timestamp",
                    "created_timestamp was not specified but it is required when building PoolInformation",
                )
            })?,
        })
    }