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: _update_user_input.rs
    path of file: ./repos/aws-sdk-rust/sdk/quicksight/src/operation/update_user
    
    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 UpdateUserInput {
    /// <p>The Amazon QuickSight user name that you want to update.</p>
    pub user_name: ::std::option::Option<::std::string::String>,
    /// <p>The ID for the Amazon Web Services account that the user is in. Currently, you use the ID for the Amazon Web Services account that contains your Amazon QuickSight account.</p>
    pub aws_account_id: ::std::option::Option<::std::string::String>,
    /
    
    pub fn build(self) -> ::std::result::Result<crate::operation::update_user::UpdateUserInput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::update_user::UpdateUserInput {
            user_name: self.user_name,
            aws_account_id: self.aws_account_id,
            namespace: self.namespace,
            email: self.email,
            role: self.role,
            custom_permissions_name: self.custom_permissions_name,
            unapply_custom_permissions: self.unapply_custom_permissions,
            external_login_federation_provider_type: self.external_login_federation_provider_type,
            custom_federation_provider_url: self.custom_federation_provider_url,
            external_login_id: self.external_login_id,
        })
    }