aws-sdk-quicksight 1.133.0

AWS SDK for Amazon QuickSight
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>A registered user of Quick Sight.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct User {
    /// <p>The Amazon Resource Name (ARN) for the user.</p>
    pub arn: ::std::option::Option<::std::string::String>,
    /// <p>The user's user name. This value is required if you are registering a user that will be managed in Quick Sight. In the output, the value for <code>UserName</code> is <code>N/A</code> when the value for <code>IdentityType</code> is <code>IAM</code> and the corresponding IAM user is deleted.</p>
    pub user_name: ::std::option::Option<::std::string::String>,
    /// <p>The user's email address.</p>
    pub email: ::std::option::Option<::std::string::String>,
    /// <p>The Quick Sight role for the user. The user role can be one of the following:.</p>
    /// <ul>
    /// <li>
    /// <p><code>READER</code>: A user who has read-only access to dashboards.</p></li>
    /// <li>
    /// <p><code>AUTHOR</code>: A user who can create data sources, datasets, analyses, and dashboards.</p></li>
    /// <li>
    /// <p><code>ADMIN</code>: A user who is an author, who can also manage Amazon Quick Sight settings.</p></li>
    /// <li>
    /// <p><code>READER_PRO</code>: Reader Pro adds Generative BI capabilities to the Reader role. Reader Pros have access to Amazon Q in Quick Sight, can build stories with Amazon Q, and can generate executive summaries from dashboards.</p></li>
    /// <li>
    /// <p><code>AUTHOR_PRO</code>: Author Pro adds Generative BI capabilities to the Author role. Author Pros can author dashboards with natural language with Amazon Q, build stories with Amazon Q, create Topics for Q&amp;A, and generate executive summaries from dashboards.</p></li>
    /// <li>
    /// <p><code>ADMIN_PRO</code>: Admin Pros are Author Pros who can also manage Quick Sight administrative settings. Admin Pro users are billed at Author Pro pricing.</p></li>
    /// <li>
    /// <p><code>RESTRICTED_READER</code>: This role isn't currently available for use.</p></li>
    /// <li>
    /// <p><code>RESTRICTED_AUTHOR</code>: This role isn't currently available for use.</p></li>
    /// </ul>
    pub role: ::std::option::Option<crate::types::UserRole>,
    /// <p>The type of identity authentication used by the user.</p>
    pub identity_type: ::std::option::Option<crate::types::IdentityType>,
    /// <p>The active status of user. When you create an Quick Sight user that's not an IAM user or an Active Directory user, that user is inactive until they sign in and provide a password.</p>
    pub active: bool,
    /// <p>The principal ID of the user.</p>
    pub principal_id: ::std::option::Option<::std::string::String>,
    /// <p>The custom permissions profile associated with this user.</p>
    pub custom_permissions_name: ::std::option::Option<::std::string::String>,
    /// <p>The type of supported external login provider that provides identity to let the user federate into Quick Sight with an associated IAM role. The type can be one of the following.</p>
    /// <ul>
    /// <li>
    /// <p><code>COGNITO</code>: Amazon Cognito. The provider URL is cognito-identity.amazonaws.com.</p></li>
    /// <li>
    /// <p><code>CUSTOM_OIDC</code>: Custom OpenID Connect (OIDC) provider.</p></li>
    /// </ul>
    pub external_login_federation_provider_type: ::std::option::Option<::std::string::String>,
    /// <p>The URL of the external login provider.</p>
    pub external_login_federation_provider_url: ::std::option::Option<::std::string::String>,
    /// <p>The identity ID for the user in the external login provider.</p>
    pub external_login_id: ::std::option::Option<::std::string::String>,
}
impl User {
    /// <p>The Amazon Resource Name (ARN) for the user.</p>
    pub fn arn(&self) -> ::std::option::Option<&str> {
        self.arn.as_deref()
    }
    /// <p>The user's user name. This value is required if you are registering a user that will be managed in Quick Sight. In the output, the value for <code>UserName</code> is <code>N/A</code> when the value for <code>IdentityType</code> is <code>IAM</code> and the corresponding IAM user is deleted.</p>
    pub fn user_name(&self) -> ::std::option::Option<&str> {
        self.user_name.as_deref()
    }
    /// <p>The user's email address.</p>
    pub fn email(&self) -> ::std::option::Option<&str> {
        self.email.as_deref()
    }
    /// <p>The Quick Sight role for the user. The user role can be one of the following:.</p>
    /// <ul>
    /// <li>
    /// <p><code>READER</code>: A user who has read-only access to dashboards.</p></li>
    /// <li>
    /// <p><code>AUTHOR</code>: A user who can create data sources, datasets, analyses, and dashboards.</p></li>
    /// <li>
    /// <p><code>ADMIN</code>: A user who is an author, who can also manage Amazon Quick Sight settings.</p></li>
    /// <li>
    /// <p><code>READER_PRO</code>: Reader Pro adds Generative BI capabilities to the Reader role. Reader Pros have access to Amazon Q in Quick Sight, can build stories with Amazon Q, and can generate executive summaries from dashboards.</p></li>
    /// <li>
    /// <p><code>AUTHOR_PRO</code>: Author Pro adds Generative BI capabilities to the Author role. Author Pros can author dashboards with natural language with Amazon Q, build stories with Amazon Q, create Topics for Q&amp;A, and generate executive summaries from dashboards.</p></li>
    /// <li>
    /// <p><code>ADMIN_PRO</code>: Admin Pros are Author Pros who can also manage Quick Sight administrative settings. Admin Pro users are billed at Author Pro pricing.</p></li>
    /// <li>
    /// <p><code>RESTRICTED_READER</code>: This role isn't currently available for use.</p></li>
    /// <li>
    /// <p><code>RESTRICTED_AUTHOR</code>: This role isn't currently available for use.</p></li>
    /// </ul>
    pub fn role(&self) -> ::std::option::Option<&crate::types::UserRole> {
        self.role.as_ref()
    }
    /// <p>The type of identity authentication used by the user.</p>
    pub fn identity_type(&self) -> ::std::option::Option<&crate::types::IdentityType> {
        self.identity_type.as_ref()
    }
    /// <p>The active status of user. When you create an Quick Sight user that's not an IAM user or an Active Directory user, that user is inactive until they sign in and provide a password.</p>
    pub fn active(&self) -> bool {
        self.active
    }
    /// <p>The principal ID of the user.</p>
    pub fn principal_id(&self) -> ::std::option::Option<&str> {
        self.principal_id.as_deref()
    }
    /// <p>The custom permissions profile associated with this user.</p>
    pub fn custom_permissions_name(&self) -> ::std::option::Option<&str> {
        self.custom_permissions_name.as_deref()
    }
    /// <p>The type of supported external login provider that provides identity to let the user federate into Quick Sight with an associated IAM role. The type can be one of the following.</p>
    /// <ul>
    /// <li>
    /// <p><code>COGNITO</code>: Amazon Cognito. The provider URL is cognito-identity.amazonaws.com.</p></li>
    /// <li>
    /// <p><code>CUSTOM_OIDC</code>: Custom OpenID Connect (OIDC) provider.</p></li>
    /// </ul>
    pub fn external_login_federation_provider_type(&self) -> ::std::option::Option<&str> {
        self.external_login_federation_provider_type.as_deref()
    }
    /// <p>The URL of the external login provider.</p>
    pub fn external_login_federation_provider_url(&self) -> ::std::option::Option<&str> {
        self.external_login_federation_provider_url.as_deref()
    }
    /// <p>The identity ID for the user in the external login provider.</p>
    pub fn external_login_id(&self) -> ::std::option::Option<&str> {
        self.external_login_id.as_deref()
    }
}
impl User {
    /// Creates a new builder-style object to manufacture [`User`](crate::types::User).
    pub fn builder() -> crate::types::builders::UserBuilder {
        crate::types::builders::UserBuilder::default()
    }
}

/// A builder for [`User`](crate::types::User).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct UserBuilder {
    pub(crate) arn: ::std::option::Option<::std::string::String>,
    pub(crate) user_name: ::std::option::Option<::std::string::String>,
    pub(crate) email: ::std::option::Option<::std::string::String>,
    pub(crate) role: ::std::option::Option<crate::types::UserRole>,
    pub(crate) identity_type: ::std::option::Option<crate::types::IdentityType>,
    pub(crate) active: ::std::option::Option<bool>,
    pub(crate) principal_id: ::std::option::Option<::std::string::String>,
    pub(crate) custom_permissions_name: ::std::option::Option<::std::string::String>,
    pub(crate) external_login_federation_provider_type: ::std::option::Option<::std::string::String>,
    pub(crate) external_login_federation_provider_url: ::std::option::Option<::std::string::String>,
    pub(crate) external_login_id: ::std::option::Option<::std::string::String>,
}
impl UserBuilder {
    /// <p>The Amazon Resource Name (ARN) for the user.</p>
    pub fn arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.arn = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The Amazon Resource Name (ARN) for the user.</p>
    pub fn set_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.arn = input;
        self
    }
    /// <p>The Amazon Resource Name (ARN) for the user.</p>
    pub fn get_arn(&self) -> &::std::option::Option<::std::string::String> {
        &self.arn
    }
    /// <p>The user's user name. This value is required if you are registering a user that will be managed in Quick Sight. In the output, the value for <code>UserName</code> is <code>N/A</code> when the value for <code>IdentityType</code> is <code>IAM</code> and the corresponding IAM user is deleted.</p>
    pub fn user_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.user_name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The user's user name. This value is required if you are registering a user that will be managed in Quick Sight. In the output, the value for <code>UserName</code> is <code>N/A</code> when the value for <code>IdentityType</code> is <code>IAM</code> and the corresponding IAM user is deleted.</p>
    pub fn set_user_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.user_name = input;
        self
    }
    /// <p>The user's user name. This value is required if you are registering a user that will be managed in Quick Sight. In the output, the value for <code>UserName</code> is <code>N/A</code> when the value for <code>IdentityType</code> is <code>IAM</code> and the corresponding IAM user is deleted.</p>
    pub fn get_user_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.user_name
    }
    /// <p>The user's email address.</p>
    pub fn email(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.email = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The user's email address.</p>
    pub fn set_email(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.email = input;
        self
    }
    /// <p>The user's email address.</p>
    pub fn get_email(&self) -> &::std::option::Option<::std::string::String> {
        &self.email
    }
    /// <p>The Quick Sight role for the user. The user role can be one of the following:.</p>
    /// <ul>
    /// <li>
    /// <p><code>READER</code>: A user who has read-only access to dashboards.</p></li>
    /// <li>
    /// <p><code>AUTHOR</code>: A user who can create data sources, datasets, analyses, and dashboards.</p></li>
    /// <li>
    /// <p><code>ADMIN</code>: A user who is an author, who can also manage Amazon Quick Sight settings.</p></li>
    /// <li>
    /// <p><code>READER_PRO</code>: Reader Pro adds Generative BI capabilities to the Reader role. Reader Pros have access to Amazon Q in Quick Sight, can build stories with Amazon Q, and can generate executive summaries from dashboards.</p></li>
    /// <li>
    /// <p><code>AUTHOR_PRO</code>: Author Pro adds Generative BI capabilities to the Author role. Author Pros can author dashboards with natural language with Amazon Q, build stories with Amazon Q, create Topics for Q&amp;A, and generate executive summaries from dashboards.</p></li>
    /// <li>
    /// <p><code>ADMIN_PRO</code>: Admin Pros are Author Pros who can also manage Quick Sight administrative settings. Admin Pro users are billed at Author Pro pricing.</p></li>
    /// <li>
    /// <p><code>RESTRICTED_READER</code>: This role isn't currently available for use.</p></li>
    /// <li>
    /// <p><code>RESTRICTED_AUTHOR</code>: This role isn't currently available for use.</p></li>
    /// </ul>
    pub fn role(mut self, input: crate::types::UserRole) -> Self {
        self.role = ::std::option::Option::Some(input);
        self
    }
    /// <p>The Quick Sight role for the user. The user role can be one of the following:.</p>
    /// <ul>
    /// <li>
    /// <p><code>READER</code>: A user who has read-only access to dashboards.</p></li>
    /// <li>
    /// <p><code>AUTHOR</code>: A user who can create data sources, datasets, analyses, and dashboards.</p></li>
    /// <li>
    /// <p><code>ADMIN</code>: A user who is an author, who can also manage Amazon Quick Sight settings.</p></li>
    /// <li>
    /// <p><code>READER_PRO</code>: Reader Pro adds Generative BI capabilities to the Reader role. Reader Pros have access to Amazon Q in Quick Sight, can build stories with Amazon Q, and can generate executive summaries from dashboards.</p></li>
    /// <li>
    /// <p><code>AUTHOR_PRO</code>: Author Pro adds Generative BI capabilities to the Author role. Author Pros can author dashboards with natural language with Amazon Q, build stories with Amazon Q, create Topics for Q&amp;A, and generate executive summaries from dashboards.</p></li>
    /// <li>
    /// <p><code>ADMIN_PRO</code>: Admin Pros are Author Pros who can also manage Quick Sight administrative settings. Admin Pro users are billed at Author Pro pricing.</p></li>
    /// <li>
    /// <p><code>RESTRICTED_READER</code>: This role isn't currently available for use.</p></li>
    /// <li>
    /// <p><code>RESTRICTED_AUTHOR</code>: This role isn't currently available for use.</p></li>
    /// </ul>
    pub fn set_role(mut self, input: ::std::option::Option<crate::types::UserRole>) -> Self {
        self.role = input;
        self
    }
    /// <p>The Quick Sight role for the user. The user role can be one of the following:.</p>
    /// <ul>
    /// <li>
    /// <p><code>READER</code>: A user who has read-only access to dashboards.</p></li>
    /// <li>
    /// <p><code>AUTHOR</code>: A user who can create data sources, datasets, analyses, and dashboards.</p></li>
    /// <li>
    /// <p><code>ADMIN</code>: A user who is an author, who can also manage Amazon Quick Sight settings.</p></li>
    /// <li>
    /// <p><code>READER_PRO</code>: Reader Pro adds Generative BI capabilities to the Reader role. Reader Pros have access to Amazon Q in Quick Sight, can build stories with Amazon Q, and can generate executive summaries from dashboards.</p></li>
    /// <li>
    /// <p><code>AUTHOR_PRO</code>: Author Pro adds Generative BI capabilities to the Author role. Author Pros can author dashboards with natural language with Amazon Q, build stories with Amazon Q, create Topics for Q&amp;A, and generate executive summaries from dashboards.</p></li>
    /// <li>
    /// <p><code>ADMIN_PRO</code>: Admin Pros are Author Pros who can also manage Quick Sight administrative settings. Admin Pro users are billed at Author Pro pricing.</p></li>
    /// <li>
    /// <p><code>RESTRICTED_READER</code>: This role isn't currently available for use.</p></li>
    /// <li>
    /// <p><code>RESTRICTED_AUTHOR</code>: This role isn't currently available for use.</p></li>
    /// </ul>
    pub fn get_role(&self) -> &::std::option::Option<crate::types::UserRole> {
        &self.role
    }
    /// <p>The type of identity authentication used by the user.</p>
    pub fn identity_type(mut self, input: crate::types::IdentityType) -> Self {
        self.identity_type = ::std::option::Option::Some(input);
        self
    }
    /// <p>The type of identity authentication used by the user.</p>
    pub fn set_identity_type(mut self, input: ::std::option::Option<crate::types::IdentityType>) -> Self {
        self.identity_type = input;
        self
    }
    /// <p>The type of identity authentication used by the user.</p>
    pub fn get_identity_type(&self) -> &::std::option::Option<crate::types::IdentityType> {
        &self.identity_type
    }
    /// <p>The active status of user. When you create an Quick Sight user that's not an IAM user or an Active Directory user, that user is inactive until they sign in and provide a password.</p>
    pub fn active(mut self, input: bool) -> Self {
        self.active = ::std::option::Option::Some(input);
        self
    }
    /// <p>The active status of user. When you create an Quick Sight user that's not an IAM user or an Active Directory user, that user is inactive until they sign in and provide a password.</p>
    pub fn set_active(mut self, input: ::std::option::Option<bool>) -> Self {
        self.active = input;
        self
    }
    /// <p>The active status of user. When you create an Quick Sight user that's not an IAM user or an Active Directory user, that user is inactive until they sign in and provide a password.</p>
    pub fn get_active(&self) -> &::std::option::Option<bool> {
        &self.active
    }
    /// <p>The principal ID of the user.</p>
    pub fn principal_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.principal_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The principal ID of the user.</p>
    pub fn set_principal_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.principal_id = input;
        self
    }
    /// <p>The principal ID of the user.</p>
    pub fn get_principal_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.principal_id
    }
    /// <p>The custom permissions profile associated with this user.</p>
    pub fn custom_permissions_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.custom_permissions_name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The custom permissions profile associated with this user.</p>
    pub fn set_custom_permissions_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.custom_permissions_name = input;
        self
    }
    /// <p>The custom permissions profile associated with this user.</p>
    pub fn get_custom_permissions_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.custom_permissions_name
    }
    /// <p>The type of supported external login provider that provides identity to let the user federate into Quick Sight with an associated IAM role. The type can be one of the following.</p>
    /// <ul>
    /// <li>
    /// <p><code>COGNITO</code>: Amazon Cognito. The provider URL is cognito-identity.amazonaws.com.</p></li>
    /// <li>
    /// <p><code>CUSTOM_OIDC</code>: Custom OpenID Connect (OIDC) provider.</p></li>
    /// </ul>
    pub fn external_login_federation_provider_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.external_login_federation_provider_type = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The type of supported external login provider that provides identity to let the user federate into Quick Sight with an associated IAM role. The type can be one of the following.</p>
    /// <ul>
    /// <li>
    /// <p><code>COGNITO</code>: Amazon Cognito. The provider URL is cognito-identity.amazonaws.com.</p></li>
    /// <li>
    /// <p><code>CUSTOM_OIDC</code>: Custom OpenID Connect (OIDC) provider.</p></li>
    /// </ul>
    pub fn set_external_login_federation_provider_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.external_login_federation_provider_type = input;
        self
    }
    /// <p>The type of supported external login provider that provides identity to let the user federate into Quick Sight with an associated IAM role. The type can be one of the following.</p>
    /// <ul>
    /// <li>
    /// <p><code>COGNITO</code>: Amazon Cognito. The provider URL is cognito-identity.amazonaws.com.</p></li>
    /// <li>
    /// <p><code>CUSTOM_OIDC</code>: Custom OpenID Connect (OIDC) provider.</p></li>
    /// </ul>
    pub fn get_external_login_federation_provider_type(&self) -> &::std::option::Option<::std::string::String> {
        &self.external_login_federation_provider_type
    }
    /// <p>The URL of the external login provider.</p>
    pub fn external_login_federation_provider_url(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.external_login_federation_provider_url = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The URL of the external login provider.</p>
    pub fn set_external_login_federation_provider_url(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.external_login_federation_provider_url = input;
        self
    }
    /// <p>The URL of the external login provider.</p>
    pub fn get_external_login_federation_provider_url(&self) -> &::std::option::Option<::std::string::String> {
        &self.external_login_federation_provider_url
    }
    /// <p>The identity ID for the user in the external login provider.</p>
    pub fn external_login_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.external_login_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The identity ID for the user in the external login provider.</p>
    pub fn set_external_login_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.external_login_id = input;
        self
    }
    /// <p>The identity ID for the user in the external login provider.</p>
    pub fn get_external_login_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.external_login_id
    }
    /// Consumes the builder and constructs a [`User`](crate::types::User).
    pub fn build(self) -> crate::types::User {
        crate::types::User {
            arn: self.arn,
            user_name: self.user_name,
            email: self.email,
            role: self.role,
            identity_type: self.identity_type,
            active: self.active.unwrap_or_default(),
            principal_id: self.principal_id,
            custom_permissions_name: self.custom_permissions_name,
            external_login_federation_provider_type: self.external_login_federation_provider_type,
            external_login_federation_provider_url: self.external_login_federation_provider_url,
            external_login_id: self.external_login_id,
        }
    }
}