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: _assume_role_input.rs
    path of file: ./repos/aws-sdk-rust/sdk/sts/src/operation/assume_role
    
    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.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct AssumeRoleInput {
    /// <p>The Amazon Resource Name (ARN) of the role to assume.</p>
    pub role_arn: ::std::option::Option<::std::string::String>,
    /// <p>An identifier for the assumed role session.</p>
    /// <p>Use the role session name to uniquely identify a session when the same role is assumed by different principals or for different reasons. In cross-account scenarios, the 
    
    pub fn build(self) -> ::std::result::Result<crate::operation::assume_role::AssumeRoleInput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::assume_role::AssumeRoleInput {
            role_arn: self.role_arn,
            role_session_name: self.role_session_name,
            policy_arns: self.policy_arns,
            policy: self.policy,
            duration_seconds: self.duration_seconds,
            tags: self.tags,
            transitive_tag_keys: self.transitive_tag_keys,
            external_id: self.external_id,
            serial_number: self.serial_number,
            token_code: self.token_code,
            source_identity: self.source_identity,
            provided_contexts: self.provided_contexts,
        })
    }