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: _slack_user_identity.rs
    path of file: ./repos/aws-sdk-rust/sdk/chatbot/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.

/// Identifes a User level permission for a channel configuration.
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct SlackUserIdentity {
    /// The ARN of the IAM role that defines the permissions for AWS Chatbot. This is a user-defined role that AWS Chatbot will assume. This is not the service-linked role. For more information, see IAM Policies for AWS Chatbot.
    pub iam_role_arn: ::std::string::String,
    /// The ARN of the SlackChannelConfiguration associated with the user identity.
    pub chat_configuration_arn: ::std::string::String,
    /// The ID of the Slack workspace authorized with AWS Chatbot.
    pub slack_team_id: ::std::string::String,
    /// The ID of the user in Slack.
    pub slack_user_id: ::std::string::String,
    /// The AWS user identity ARN used to associate a Slack User Identity with an IAM Role.
    pub aws_user_identity: ::std::option::Option<::std::string::String>,
}
impl SlackUserIdentity {
    /// The ARN of the IAM role that defines the permissions for AWS Chatbot. This is a u
    
    pub fn build(self) -> ::std::result::Result<crate::types::SlackUserIdentity, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::types::SlackUserIdentity {
            iam_role_arn: self.iam_role_arn.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "iam_role_arn",
                    "iam_role_arn was not specified but it is required when building SlackUserIdentity",
                )
            })?,
            chat_configuration_arn: self.chat_configuration_arn.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "chat_configuration_arn",
                    "chat_configuration_arn was not specified but it is required when building SlackUserIdentity",
                )
            })?,
            slack_team_id: self.slack_team_id.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "slack_team_id",
                    "slack_team_id was not specified but it is required when building SlackUserIdentity",
                )
            })?,
            slack_user_id: self.slack_user_id.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "slack_user_id",
                    "slack_user_id was not specified but it is required when building SlackUserIdentity",
                )
            })?,
            aws_user_identity: self.aws_user_identity,
        })
    }