aws-sdk-connect 1.154.0

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

/// <p>Contains information about a user account for an Amazon Connect instance.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct User {
    /// <p>The identifier of the user account.</p>
    pub id: ::std::option::Option<::std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the user account.</p>
    pub arn: ::std::option::Option<::std::string::String>,
    /// <p>The user name assigned to the user account.</p>
    pub username: ::std::option::Option<::std::string::String>,
    /// <p>Information about the user identity.</p>
    pub identity_info: ::std::option::Option<crate::types::UserIdentityInfo>,
    /// <p>Information about the phone configuration for the user.</p>
    pub phone_config: ::std::option::Option<crate::types::UserPhoneConfig>,
    /// <p>The identifier of the user account in the directory used for identity management.</p>
    pub directory_user_id: ::std::option::Option<::std::string::String>,
    /// <p>The identifiers of the security profiles for the user.</p>
    pub security_profile_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
    /// <p>The identifier of the routing profile for the user.</p>
    pub routing_profile_id: ::std::option::Option<::std::string::String>,
    /// <p>The identifier of the hierarchy group for the user.</p>
    pub hierarchy_group_id: ::std::option::Option<::std::string::String>,
    /// <p>The tags.</p>
    pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
    /// <p>The timestamp when this resource was last modified.</p>
    pub last_modified_time: ::std::option::Option<::aws_smithy_types::DateTime>,
    /// <p>The Amazon Web Services Region where this resource was last modified.</p>
    pub last_modified_region: ::std::option::Option<::std::string::String>,
}
impl User {
    /// <p>The identifier of the user account.</p>
    pub fn id(&self) -> ::std::option::Option<&str> {
        self.id.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the user account.</p>
    pub fn arn(&self) -> ::std::option::Option<&str> {
        self.arn.as_deref()
    }
    /// <p>The user name assigned to the user account.</p>
    pub fn username(&self) -> ::std::option::Option<&str> {
        self.username.as_deref()
    }
    /// <p>Information about the user identity.</p>
    pub fn identity_info(&self) -> ::std::option::Option<&crate::types::UserIdentityInfo> {
        self.identity_info.as_ref()
    }
    /// <p>Information about the phone configuration for the user.</p>
    pub fn phone_config(&self) -> ::std::option::Option<&crate::types::UserPhoneConfig> {
        self.phone_config.as_ref()
    }
    /// <p>The identifier of the user account in the directory used for identity management.</p>
    pub fn directory_user_id(&self) -> ::std::option::Option<&str> {
        self.directory_user_id.as_deref()
    }
    /// <p>The identifiers of the security profiles for the user.</p>
    ///
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.security_profile_ids.is_none()`.
    pub fn security_profile_ids(&self) -> &[::std::string::String] {
        self.security_profile_ids.as_deref().unwrap_or_default()
    }
    /// <p>The identifier of the routing profile for the user.</p>
    pub fn routing_profile_id(&self) -> ::std::option::Option<&str> {
        self.routing_profile_id.as_deref()
    }
    /// <p>The identifier of the hierarchy group for the user.</p>
    pub fn hierarchy_group_id(&self) -> ::std::option::Option<&str> {
        self.hierarchy_group_id.as_deref()
    }
    /// <p>The tags.</p>
    pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
        self.tags.as_ref()
    }
    /// <p>The timestamp when this resource was last modified.</p>
    pub fn last_modified_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
        self.last_modified_time.as_ref()
    }
    /// <p>The Amazon Web Services Region where this resource was last modified.</p>
    pub fn last_modified_region(&self) -> ::std::option::Option<&str> {
        self.last_modified_region.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) id: ::std::option::Option<::std::string::String>,
    pub(crate) arn: ::std::option::Option<::std::string::String>,
    pub(crate) username: ::std::option::Option<::std::string::String>,
    pub(crate) identity_info: ::std::option::Option<crate::types::UserIdentityInfo>,
    pub(crate) phone_config: ::std::option::Option<crate::types::UserPhoneConfig>,
    pub(crate) directory_user_id: ::std::option::Option<::std::string::String>,
    pub(crate) security_profile_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
    pub(crate) routing_profile_id: ::std::option::Option<::std::string::String>,
    pub(crate) hierarchy_group_id: ::std::option::Option<::std::string::String>,
    pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
    pub(crate) last_modified_time: ::std::option::Option<::aws_smithy_types::DateTime>,
    pub(crate) last_modified_region: ::std::option::Option<::std::string::String>,
}
impl UserBuilder {
    /// <p>The identifier of the user account.</p>
    pub fn id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The identifier of the user account.</p>
    pub fn set_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.id = input;
        self
    }
    /// <p>The identifier of the user account.</p>
    pub fn get_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.id
    }
    /// <p>The Amazon Resource Name (ARN) of the user account.</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) of the user account.</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) of the user account.</p>
    pub fn get_arn(&self) -> &::std::option::Option<::std::string::String> {
        &self.arn
    }
    /// <p>The user name assigned to the user account.</p>
    pub fn username(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.username = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The user name assigned to the user account.</p>
    pub fn set_username(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.username = input;
        self
    }
    /// <p>The user name assigned to the user account.</p>
    pub fn get_username(&self) -> &::std::option::Option<::std::string::String> {
        &self.username
    }
    /// <p>Information about the user identity.</p>
    pub fn identity_info(mut self, input: crate::types::UserIdentityInfo) -> Self {
        self.identity_info = ::std::option::Option::Some(input);
        self
    }
    /// <p>Information about the user identity.</p>
    pub fn set_identity_info(mut self, input: ::std::option::Option<crate::types::UserIdentityInfo>) -> Self {
        self.identity_info = input;
        self
    }
    /// <p>Information about the user identity.</p>
    pub fn get_identity_info(&self) -> &::std::option::Option<crate::types::UserIdentityInfo> {
        &self.identity_info
    }
    /// <p>Information about the phone configuration for the user.</p>
    pub fn phone_config(mut self, input: crate::types::UserPhoneConfig) -> Self {
        self.phone_config = ::std::option::Option::Some(input);
        self
    }
    /// <p>Information about the phone configuration for the user.</p>
    pub fn set_phone_config(mut self, input: ::std::option::Option<crate::types::UserPhoneConfig>) -> Self {
        self.phone_config = input;
        self
    }
    /// <p>Information about the phone configuration for the user.</p>
    pub fn get_phone_config(&self) -> &::std::option::Option<crate::types::UserPhoneConfig> {
        &self.phone_config
    }
    /// <p>The identifier of the user account in the directory used for identity management.</p>
    pub fn directory_user_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.directory_user_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The identifier of the user account in the directory used for identity management.</p>
    pub fn set_directory_user_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.directory_user_id = input;
        self
    }
    /// <p>The identifier of the user account in the directory used for identity management.</p>
    pub fn get_directory_user_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.directory_user_id
    }
    /// Appends an item to `security_profile_ids`.
    ///
    /// To override the contents of this collection use [`set_security_profile_ids`](Self::set_security_profile_ids).
    ///
    /// <p>The identifiers of the security profiles for the user.</p>
    pub fn security_profile_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        let mut v = self.security_profile_ids.unwrap_or_default();
        v.push(input.into());
        self.security_profile_ids = ::std::option::Option::Some(v);
        self
    }
    /// <p>The identifiers of the security profiles for the user.</p>
    pub fn set_security_profile_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
        self.security_profile_ids = input;
        self
    }
    /// <p>The identifiers of the security profiles for the user.</p>
    pub fn get_security_profile_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
        &self.security_profile_ids
    }
    /// <p>The identifier of the routing profile for the user.</p>
    pub fn routing_profile_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.routing_profile_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The identifier of the routing profile for the user.</p>
    pub fn set_routing_profile_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.routing_profile_id = input;
        self
    }
    /// <p>The identifier of the routing profile for the user.</p>
    pub fn get_routing_profile_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.routing_profile_id
    }
    /// <p>The identifier of the hierarchy group for the user.</p>
    pub fn hierarchy_group_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.hierarchy_group_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The identifier of the hierarchy group for the user.</p>
    pub fn set_hierarchy_group_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.hierarchy_group_id = input;
        self
    }
    /// <p>The identifier of the hierarchy group for the user.</p>
    pub fn get_hierarchy_group_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.hierarchy_group_id
    }
    /// Adds a key-value pair to `tags`.
    ///
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
    ///
    /// <p>The tags.</p>
    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
        let mut hash_map = self.tags.unwrap_or_default();
        hash_map.insert(k.into(), v.into());
        self.tags = ::std::option::Option::Some(hash_map);
        self
    }
    /// <p>The tags.</p>
    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
        self.tags = input;
        self
    }
    /// <p>The tags.</p>
    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
        &self.tags
    }
    /// <p>The timestamp when this resource was last modified.</p>
    pub fn last_modified_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        self.last_modified_time = ::std::option::Option::Some(input);
        self
    }
    /// <p>The timestamp when this resource was last modified.</p>
    pub fn set_last_modified_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        self.last_modified_time = input;
        self
    }
    /// <p>The timestamp when this resource was last modified.</p>
    pub fn get_last_modified_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        &self.last_modified_time
    }
    /// <p>The Amazon Web Services Region where this resource was last modified.</p>
    pub fn last_modified_region(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.last_modified_region = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The Amazon Web Services Region where this resource was last modified.</p>
    pub fn set_last_modified_region(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.last_modified_region = input;
        self
    }
    /// <p>The Amazon Web Services Region where this resource was last modified.</p>
    pub fn get_last_modified_region(&self) -> &::std::option::Option<::std::string::String> {
        &self.last_modified_region
    }
    /// Consumes the builder and constructs a [`User`](crate::types::User).
    pub fn build(self) -> crate::types::User {
        crate::types::User {
            id: self.id,
            arn: self.arn,
            username: self.username,
            identity_info: self.identity_info,
            phone_config: self.phone_config,
            directory_user_id: self.directory_user_id,
            security_profile_ids: self.security_profile_ids,
            routing_profile_id: self.routing_profile_id,
            hierarchy_group_id: self.hierarchy_group_id,
            tags: self.tags,
            last_modified_time: self.last_modified_time,
            last_modified_region: self.last_modified_region,
        }
    }
}