# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import copy
import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities
from . import outputs

__all__ = [
    'GetDomainsUserResult',
    'AwaitableGetDomainsUserResult',
    'get_domains_user',
    'get_domains_user_output',
]

@pulumi.output_type
class GetDomainsUserResult:
    """
    A collection of values returned by getDomainsUser.
    """
    def __init__(__self__, active=None, addresses=None, attribute_sets=None, attributes=None, authorization=None, compartment_ocid=None, delete_in_progress=None, description=None, display_name=None, domain_ocid=None, emails=None, entitlements=None, external_id=None, groups=None, id=None, idcs_created_bies=None, idcs_endpoint=None, idcs_last_modified_bies=None, idcs_last_upgraded_in_release=None, idcs_prevented_operations=None, ims=None, locale=None, metas=None, names=None, nick_name=None, ocid=None, password=None, phone_numbers=None, photos=None, preferred_language=None, profile_url=None, resource_type_schema_version=None, roles=None, schemas=None, tags=None, tenancy_ocid=None, timezone=None, title=None, urnietfparamsscimschemasextensionenterprise20users=None, urnietfparamsscimschemasoracleidcsextension_oci_tags=None, urnietfparamsscimschemasoracleidcsextensionadaptive_users=None, urnietfparamsscimschemasoracleidcsextensioncapabilities_users=None, urnietfparamsscimschemasoracleidcsextensiondb_credentials_users=None, urnietfparamsscimschemasoracleidcsextensiondb_user_users=None, urnietfparamsscimschemasoracleidcsextensionkerberos_user_users=None, urnietfparamsscimschemasoracleidcsextensionmfa_users=None, urnietfparamsscimschemasoracleidcsextensionpassword_state_users=None, urnietfparamsscimschemasoracleidcsextensionpasswordless_users=None, urnietfparamsscimschemasoracleidcsextensionposix_users=None, urnietfparamsscimschemasoracleidcsextensionsecurity_questions_users=None, urnietfparamsscimschemasoracleidcsextensionself_change_users=None, urnietfparamsscimschemasoracleidcsextensionself_registration_users=None, urnietfparamsscimschemasoracleidcsextensionsff_users=None, urnietfparamsscimschemasoracleidcsextensionsocial_account_users=None, urnietfparamsscimschemasoracleidcsextensionterms_of_use_users=None, urnietfparamsscimschemasoracleidcsextensionuser_credentials_users=None, urnietfparamsscimschemasoracleidcsextensionuser_state_users=None, urnietfparamsscimschemasoracleidcsextensionuser_users=None, user_id=None, user_name=None, user_type=None, x509certificates=None):
        if active and not isinstance(active, bool):
            raise TypeError("Expected argument 'active' to be a bool")
        pulumi.set(__self__, "active", active)
        if addresses and not isinstance(addresses, list):
            raise TypeError("Expected argument 'addresses' to be a list")
        pulumi.set(__self__, "addresses", addresses)
        if attribute_sets and not isinstance(attribute_sets, list):
            raise TypeError("Expected argument 'attribute_sets' to be a list")
        pulumi.set(__self__, "attribute_sets", attribute_sets)
        if attributes and not isinstance(attributes, str):
            raise TypeError("Expected argument 'attributes' to be a str")
        pulumi.set(__self__, "attributes", attributes)
        if authorization and not isinstance(authorization, str):
            raise TypeError("Expected argument 'authorization' to be a str")
        pulumi.set(__self__, "authorization", authorization)
        if compartment_ocid and not isinstance(compartment_ocid, str):
            raise TypeError("Expected argument 'compartment_ocid' to be a str")
        pulumi.set(__self__, "compartment_ocid", compartment_ocid)
        if delete_in_progress and not isinstance(delete_in_progress, bool):
            raise TypeError("Expected argument 'delete_in_progress' to be a bool")
        pulumi.set(__self__, "delete_in_progress", delete_in_progress)
        if description and not isinstance(description, str):
            raise TypeError("Expected argument 'description' to be a str")
        pulumi.set(__self__, "description", description)
        if display_name and not isinstance(display_name, str):
            raise TypeError("Expected argument 'display_name' to be a str")
        pulumi.set(__self__, "display_name", display_name)
        if domain_ocid and not isinstance(domain_ocid, str):
            raise TypeError("Expected argument 'domain_ocid' to be a str")
        pulumi.set(__self__, "domain_ocid", domain_ocid)
        if emails and not isinstance(emails, list):
            raise TypeError("Expected argument 'emails' to be a list")
        pulumi.set(__self__, "emails", emails)
        if entitlements and not isinstance(entitlements, list):
            raise TypeError("Expected argument 'entitlements' to be a list")
        pulumi.set(__self__, "entitlements", entitlements)
        if external_id and not isinstance(external_id, str):
            raise TypeError("Expected argument 'external_id' to be a str")
        pulumi.set(__self__, "external_id", external_id)
        if groups and not isinstance(groups, list):
            raise TypeError("Expected argument 'groups' to be a list")
        pulumi.set(__self__, "groups", groups)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if idcs_created_bies and not isinstance(idcs_created_bies, list):
            raise TypeError("Expected argument 'idcs_created_bies' to be a list")
        pulumi.set(__self__, "idcs_created_bies", idcs_created_bies)
        if idcs_endpoint and not isinstance(idcs_endpoint, str):
            raise TypeError("Expected argument 'idcs_endpoint' to be a str")
        pulumi.set(__self__, "idcs_endpoint", idcs_endpoint)
        if idcs_last_modified_bies and not isinstance(idcs_last_modified_bies, list):
            raise TypeError("Expected argument 'idcs_last_modified_bies' to be a list")
        pulumi.set(__self__, "idcs_last_modified_bies", idcs_last_modified_bies)
        if idcs_last_upgraded_in_release and not isinstance(idcs_last_upgraded_in_release, str):
            raise TypeError("Expected argument 'idcs_last_upgraded_in_release' to be a str")
        pulumi.set(__self__, "idcs_last_upgraded_in_release", idcs_last_upgraded_in_release)
        if idcs_prevented_operations and not isinstance(idcs_prevented_operations, list):
            raise TypeError("Expected argument 'idcs_prevented_operations' to be a list")
        pulumi.set(__self__, "idcs_prevented_operations", idcs_prevented_operations)
        if ims and not isinstance(ims, list):
            raise TypeError("Expected argument 'ims' to be a list")
        pulumi.set(__self__, "ims", ims)
        if locale and not isinstance(locale, str):
            raise TypeError("Expected argument 'locale' to be a str")
        pulumi.set(__self__, "locale", locale)
        if metas and not isinstance(metas, list):
            raise TypeError("Expected argument 'metas' to be a list")
        pulumi.set(__self__, "metas", metas)
        if names and not isinstance(names, list):
            raise TypeError("Expected argument 'names' to be a list")
        pulumi.set(__self__, "names", names)
        if nick_name and not isinstance(nick_name, str):
            raise TypeError("Expected argument 'nick_name' to be a str")
        pulumi.set(__self__, "nick_name", nick_name)
        if ocid and not isinstance(ocid, str):
            raise TypeError("Expected argument 'ocid' to be a str")
        pulumi.set(__self__, "ocid", ocid)
        if password and not isinstance(password, str):
            raise TypeError("Expected argument 'password' to be a str")
        pulumi.set(__self__, "password", password)
        if phone_numbers and not isinstance(phone_numbers, list):
            raise TypeError("Expected argument 'phone_numbers' to be a list")
        pulumi.set(__self__, "phone_numbers", phone_numbers)
        if photos and not isinstance(photos, list):
            raise TypeError("Expected argument 'photos' to be a list")
        pulumi.set(__self__, "photos", photos)
        if preferred_language and not isinstance(preferred_language, str):
            raise TypeError("Expected argument 'preferred_language' to be a str")
        pulumi.set(__self__, "preferred_language", preferred_language)
        if profile_url and not isinstance(profile_url, str):
            raise TypeError("Expected argument 'profile_url' to be a str")
        pulumi.set(__self__, "profile_url", profile_url)
        if resource_type_schema_version and not isinstance(resource_type_schema_version, str):
            raise TypeError("Expected argument 'resource_type_schema_version' to be a str")
        pulumi.set(__self__, "resource_type_schema_version", resource_type_schema_version)
        if roles and not isinstance(roles, list):
            raise TypeError("Expected argument 'roles' to be a list")
        pulumi.set(__self__, "roles", roles)
        if schemas and not isinstance(schemas, list):
            raise TypeError("Expected argument 'schemas' to be a list")
        pulumi.set(__self__, "schemas", schemas)
        if tags and not isinstance(tags, list):
            raise TypeError("Expected argument 'tags' to be a list")
        pulumi.set(__self__, "tags", tags)
        if tenancy_ocid and not isinstance(tenancy_ocid, str):
            raise TypeError("Expected argument 'tenancy_ocid' to be a str")
        pulumi.set(__self__, "tenancy_ocid", tenancy_ocid)
        if timezone and not isinstance(timezone, str):
            raise TypeError("Expected argument 'timezone' to be a str")
        pulumi.set(__self__, "timezone", timezone)
        if title and not isinstance(title, str):
            raise TypeError("Expected argument 'title' to be a str")
        pulumi.set(__self__, "title", title)
        if urnietfparamsscimschemasextensionenterprise20users and not isinstance(urnietfparamsscimschemasextensionenterprise20users, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasextensionenterprise20users' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasextensionenterprise20users", urnietfparamsscimschemasextensionenterprise20users)
        if urnietfparamsscimschemasoracleidcsextension_oci_tags and not isinstance(urnietfparamsscimschemasoracleidcsextension_oci_tags, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasoracleidcsextension_oci_tags' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasoracleidcsextension_oci_tags", urnietfparamsscimschemasoracleidcsextension_oci_tags)
        if urnietfparamsscimschemasoracleidcsextensionadaptive_users and not isinstance(urnietfparamsscimschemasoracleidcsextensionadaptive_users, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasoracleidcsextensionadaptive_users' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasoracleidcsextensionadaptive_users", urnietfparamsscimschemasoracleidcsextensionadaptive_users)
        if urnietfparamsscimschemasoracleidcsextensioncapabilities_users and not isinstance(urnietfparamsscimschemasoracleidcsextensioncapabilities_users, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasoracleidcsextensioncapabilities_users' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasoracleidcsextensioncapabilities_users", urnietfparamsscimschemasoracleidcsextensioncapabilities_users)
        if urnietfparamsscimschemasoracleidcsextensiondb_credentials_users and not isinstance(urnietfparamsscimschemasoracleidcsextensiondb_credentials_users, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasoracleidcsextensiondb_credentials_users' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasoracleidcsextensiondb_credentials_users", urnietfparamsscimschemasoracleidcsextensiondb_credentials_users)
        if urnietfparamsscimschemasoracleidcsextensiondb_user_users and not isinstance(urnietfparamsscimschemasoracleidcsextensiondb_user_users, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasoracleidcsextensiondb_user_users' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasoracleidcsextensiondb_user_users", urnietfparamsscimschemasoracleidcsextensiondb_user_users)
        if urnietfparamsscimschemasoracleidcsextensionkerberos_user_users and not isinstance(urnietfparamsscimschemasoracleidcsextensionkerberos_user_users, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasoracleidcsextensionkerberos_user_users' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasoracleidcsextensionkerberos_user_users", urnietfparamsscimschemasoracleidcsextensionkerberos_user_users)
        if urnietfparamsscimschemasoracleidcsextensionmfa_users and not isinstance(urnietfparamsscimschemasoracleidcsextensionmfa_users, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasoracleidcsextensionmfa_users' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasoracleidcsextensionmfa_users", urnietfparamsscimschemasoracleidcsextensionmfa_users)
        if urnietfparamsscimschemasoracleidcsextensionpassword_state_users and not isinstance(urnietfparamsscimschemasoracleidcsextensionpassword_state_users, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasoracleidcsextensionpassword_state_users' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasoracleidcsextensionpassword_state_users", urnietfparamsscimschemasoracleidcsextensionpassword_state_users)
        if urnietfparamsscimschemasoracleidcsextensionpasswordless_users and not isinstance(urnietfparamsscimschemasoracleidcsextensionpasswordless_users, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasoracleidcsextensionpasswordless_users' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasoracleidcsextensionpasswordless_users", urnietfparamsscimschemasoracleidcsextensionpasswordless_users)
        if urnietfparamsscimschemasoracleidcsextensionposix_users and not isinstance(urnietfparamsscimschemasoracleidcsextensionposix_users, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasoracleidcsextensionposix_users' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasoracleidcsextensionposix_users", urnietfparamsscimschemasoracleidcsextensionposix_users)
        if urnietfparamsscimschemasoracleidcsextensionsecurity_questions_users and not isinstance(urnietfparamsscimschemasoracleidcsextensionsecurity_questions_users, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasoracleidcsextensionsecurity_questions_users' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasoracleidcsextensionsecurity_questions_users", urnietfparamsscimschemasoracleidcsextensionsecurity_questions_users)
        if urnietfparamsscimschemasoracleidcsextensionself_change_users and not isinstance(urnietfparamsscimschemasoracleidcsextensionself_change_users, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasoracleidcsextensionself_change_users' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasoracleidcsextensionself_change_users", urnietfparamsscimschemasoracleidcsextensionself_change_users)
        if urnietfparamsscimschemasoracleidcsextensionself_registration_users and not isinstance(urnietfparamsscimschemasoracleidcsextensionself_registration_users, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasoracleidcsextensionself_registration_users' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasoracleidcsextensionself_registration_users", urnietfparamsscimschemasoracleidcsextensionself_registration_users)
        if urnietfparamsscimschemasoracleidcsextensionsff_users and not isinstance(urnietfparamsscimschemasoracleidcsextensionsff_users, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasoracleidcsextensionsff_users' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasoracleidcsextensionsff_users", urnietfparamsscimschemasoracleidcsextensionsff_users)
        if urnietfparamsscimschemasoracleidcsextensionsocial_account_users and not isinstance(urnietfparamsscimschemasoracleidcsextensionsocial_account_users, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasoracleidcsextensionsocial_account_users' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasoracleidcsextensionsocial_account_users", urnietfparamsscimschemasoracleidcsextensionsocial_account_users)
        if urnietfparamsscimschemasoracleidcsextensionterms_of_use_users and not isinstance(urnietfparamsscimschemasoracleidcsextensionterms_of_use_users, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasoracleidcsextensionterms_of_use_users' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasoracleidcsextensionterms_of_use_users", urnietfparamsscimschemasoracleidcsextensionterms_of_use_users)
        if urnietfparamsscimschemasoracleidcsextensionuser_credentials_users and not isinstance(urnietfparamsscimschemasoracleidcsextensionuser_credentials_users, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasoracleidcsextensionuser_credentials_users' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasoracleidcsextensionuser_credentials_users", urnietfparamsscimschemasoracleidcsextensionuser_credentials_users)
        if urnietfparamsscimschemasoracleidcsextensionuser_state_users and not isinstance(urnietfparamsscimschemasoracleidcsextensionuser_state_users, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasoracleidcsextensionuser_state_users' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasoracleidcsextensionuser_state_users", urnietfparamsscimschemasoracleidcsextensionuser_state_users)
        if urnietfparamsscimschemasoracleidcsextensionuser_users and not isinstance(urnietfparamsscimschemasoracleidcsextensionuser_users, list):
            raise TypeError("Expected argument 'urnietfparamsscimschemasoracleidcsextensionuser_users' to be a list")
        pulumi.set(__self__, "urnietfparamsscimschemasoracleidcsextensionuser_users", urnietfparamsscimschemasoracleidcsextensionuser_users)
        if user_id and not isinstance(user_id, str):
            raise TypeError("Expected argument 'user_id' to be a str")
        pulumi.set(__self__, "user_id", user_id)
        if user_name and not isinstance(user_name, str):
            raise TypeError("Expected argument 'user_name' to be a str")
        pulumi.set(__self__, "user_name", user_name)
        if user_type and not isinstance(user_type, str):
            raise TypeError("Expected argument 'user_type' to be a str")
        pulumi.set(__self__, "user_type", user_type)
        if x509certificates and not isinstance(x509certificates, list):
            raise TypeError("Expected argument 'x509certificates' to be a list")
        pulumi.set(__self__, "x509certificates", x509certificates)

    @property
    @pulumi.getter
    def active(self) -> bool:
        """
        Status of the account
        """
        return pulumi.get(self, "active")

    @property
    @pulumi.getter
    def addresses(self) -> Sequence['outputs.GetDomainsUserAddressResult']:
        """
        A physical mailing address for this User, as described in (address Element). Canonical Type Values of work, home, and other. The value attribute is a complex type with the following sub-attributes.
        """
        return pulumi.get(self, "addresses")

    @property
    @pulumi.getter(name="attributeSets")
    def attribute_sets(self) -> Optional[Sequence[str]]:
        return pulumi.get(self, "attribute_sets")

    @property
    @pulumi.getter
    def attributes(self) -> Optional[str]:
        return pulumi.get(self, "attributes")

    @property
    @pulumi.getter
    def authorization(self) -> Optional[str]:
        return pulumi.get(self, "authorization")

    @property
    @pulumi.getter(name="compartmentOcid")
    def compartment_ocid(self) -> str:
        """
        Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives.
        """
        return pulumi.get(self, "compartment_ocid")

    @property
    @pulumi.getter(name="deleteInProgress")
    def delete_in_progress(self) -> bool:
        """
        A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long.
        """
        return pulumi.get(self, "delete_in_progress")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        Description of the user
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        The displayName of the User's manager. OPTIONAL and READ-ONLY.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter(name="domainOcid")
    def domain_ocid(self) -> str:
        """
        Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives.
        """
        return pulumi.get(self, "domain_ocid")

    @property
    @pulumi.getter
    def emails(self) -> Sequence['outputs.GetDomainsUserEmailResult']:
        """
        A complex attribute representing emails
        """
        return pulumi.get(self, "emails")

    @property
    @pulumi.getter
    def entitlements(self) -> Sequence['outputs.GetDomainsUserEntitlementResult']:
        """
        A list of entitlements for the User that represent a thing the User has.
        """
        return pulumi.get(self, "entitlements")

    @property
    @pulumi.getter(name="externalId")
    def external_id(self) -> str:
        """
        An identifier for the Resource as defined by the Service Consumer. READ-ONLY.
        """
        return pulumi.get(self, "external_id")

    @property
    @pulumi.getter
    def groups(self) -> Sequence['outputs.GetDomainsUserGroupResult']:
        """
        A list of groups that the user belongs to, either thorough direct membership, nested groups, or dynamically calculated
        """
        return pulumi.get(self, "groups")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="idcsCreatedBies")
    def idcs_created_bies(self) -> Sequence['outputs.GetDomainsUserIdcsCreatedByResult']:
        """
        The User or App who created the Resource
        """
        return pulumi.get(self, "idcs_created_bies")

    @property
    @pulumi.getter(name="idcsEndpoint")
    def idcs_endpoint(self) -> str:
        return pulumi.get(self, "idcs_endpoint")

    @property
    @pulumi.getter(name="idcsLastModifiedBies")
    def idcs_last_modified_bies(self) -> Sequence['outputs.GetDomainsUserIdcsLastModifiedByResult']:
        """
        The User or App who modified the Resource
        """
        return pulumi.get(self, "idcs_last_modified_bies")

    @property
    @pulumi.getter(name="idcsLastUpgradedInRelease")
    def idcs_last_upgraded_in_release(self) -> str:
        """
        The release number when the resource was upgraded.
        """
        return pulumi.get(self, "idcs_last_upgraded_in_release")

    @property
    @pulumi.getter(name="idcsPreventedOperations")
    def idcs_prevented_operations(self) -> Sequence[str]:
        """
        Each value of this attribute specifies an operation that only an internal client may perform on this particular resource.
        """
        return pulumi.get(self, "idcs_prevented_operations")

    @property
    @pulumi.getter
    def ims(self) -> Sequence['outputs.GetDomainsUserImResult']:
        """
        User's instant messaging addresses
        """
        return pulumi.get(self, "ims")

    @property
    @pulumi.getter
    def locale(self) -> str:
        """
        Used to indicate the User's default location for purposes of localizing items such as currency, date and time format, numerical representations, and so on.
        """
        return pulumi.get(self, "locale")

    @property
    @pulumi.getter
    def metas(self) -> Sequence['outputs.GetDomainsUserMetaResult']:
        """
        A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL.
        """
        return pulumi.get(self, "metas")

    @property
    @pulumi.getter
    def names(self) -> Sequence['outputs.GetDomainsUserNameResult']:
        """
        Name of the account assigned to the User.
        """
        return pulumi.get(self, "names")

    @property
    @pulumi.getter(name="nickName")
    def nick_name(self) -> str:
        """
        Nick name
        """
        return pulumi.get(self, "nick_name")

    @property
    @pulumi.getter
    def ocid(self) -> str:
        """
        Ocid of the User's Support Account.
        """
        return pulumi.get(self, "ocid")

    @property
    @pulumi.getter
    def password(self) -> str:
        """
        Password attribute. Max length for password is controlled via Password Policy.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter(name="phoneNumbers")
    def phone_numbers(self) -> Sequence['outputs.GetDomainsUserPhoneNumberResult']:
        """
        Phone numbers
        """
        return pulumi.get(self, "phone_numbers")

    @property
    @pulumi.getter
    def photos(self) -> Sequence['outputs.GetDomainsUserPhotoResult']:
        """
        URLs of photos for the User
        """
        return pulumi.get(self, "photos")

    @property
    @pulumi.getter(name="preferredLanguage")
    def preferred_language(self) -> str:
        """
        User's preferred written or spoken language used for localized user interfaces
        """
        return pulumi.get(self, "preferred_language")

    @property
    @pulumi.getter(name="profileUrl")
    def profile_url(self) -> str:
        """
        A fully-qualified URL to a page representing the User's online profile
        """
        return pulumi.get(self, "profile_url")

    @property
    @pulumi.getter(name="resourceTypeSchemaVersion")
    def resource_type_schema_version(self) -> Optional[str]:
        return pulumi.get(self, "resource_type_schema_version")

    @property
    @pulumi.getter
    def roles(self) -> Sequence['outputs.GetDomainsUserRoleResult']:
        """
        A list of roles for the User that collectively represent who the User is; e.g., 'Student', 'Faculty'.
        """
        return pulumi.get(self, "roles")

    @property
    @pulumi.getter
    def schemas(self) -> Sequence[str]:
        """
        REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \\"enterprise\\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior.
        """
        return pulumi.get(self, "schemas")

    @property
    @pulumi.getter
    def tags(self) -> Sequence['outputs.GetDomainsUserTagResult']:
        """
        A list of tags on this resource.
        """
        return pulumi.get(self, "tags")

    @property
    @pulumi.getter(name="tenancyOcid")
    def tenancy_ocid(self) -> str:
        """
        Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives.
        """
        return pulumi.get(self, "tenancy_ocid")

    @property
    @pulumi.getter
    def timezone(self) -> str:
        """
        User's timezone
        """
        return pulumi.get(self, "timezone")

    @property
    @pulumi.getter
    def title(self) -> str:
        """
        Title
        """
        return pulumi.get(self, "title")

    @property
    @pulumi.getter
    def urnietfparamsscimschemasextensionenterprise20users(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasextensionenterprise20userResult']:
        """
        Enterprise User
        """
        return pulumi.get(self, "urnietfparamsscimschemasextensionenterprise20users")

    @property
    @pulumi.getter(name="urnietfparamsscimschemasoracleidcsextensionOciTags")
    def urnietfparamsscimschemasoracleidcsextension_oci_tags(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasoracleidcsextensionOciTagResult']:
        """
        Oracle Cloud Infrastructure Tags.
        """
        return pulumi.get(self, "urnietfparamsscimschemasoracleidcsextension_oci_tags")

    @property
    @pulumi.getter(name="urnietfparamsscimschemasoracleidcsextensionadaptiveUsers")
    def urnietfparamsscimschemasoracleidcsextensionadaptive_users(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasoracleidcsextensionadaptiveUserResult']:
        """
        This extension defines attributes to manage user's risk score.
        """
        return pulumi.get(self, "urnietfparamsscimschemasoracleidcsextensionadaptive_users")

    @property
    @pulumi.getter(name="urnietfparamsscimschemasoracleidcsextensioncapabilitiesUsers")
    def urnietfparamsscimschemasoracleidcsextensioncapabilities_users(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasoracleidcsextensioncapabilitiesUserResult']:
        """
        User's Capabilities
        """
        return pulumi.get(self, "urnietfparamsscimschemasoracleidcsextensioncapabilities_users")

    @property
    @pulumi.getter(name="urnietfparamsscimschemasoracleidcsextensiondbCredentialsUsers")
    def urnietfparamsscimschemasoracleidcsextensiondb_credentials_users(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasoracleidcsextensiondbCredentialsUserResult']:
        """
        Db Credentials User extension
        """
        return pulumi.get(self, "urnietfparamsscimschemasoracleidcsextensiondb_credentials_users")

    @property
    @pulumi.getter(name="urnietfparamsscimschemasoracleidcsextensiondbUserUsers")
    def urnietfparamsscimschemasoracleidcsextensiondb_user_users(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasoracleidcsextensiondbUserUserResult']:
        """
        DB User extension
        """
        return pulumi.get(self, "urnietfparamsscimschemasoracleidcsextensiondb_user_users")

    @property
    @pulumi.getter(name="urnietfparamsscimschemasoracleidcsextensionkerberosUserUsers")
    def urnietfparamsscimschemasoracleidcsextensionkerberos_user_users(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasoracleidcsextensionkerberosUserUserResult']:
        """
        Kerberos User extension
        """
        return pulumi.get(self, "urnietfparamsscimschemasoracleidcsextensionkerberos_user_users")

    @property
    @pulumi.getter(name="urnietfparamsscimschemasoracleidcsextensionmfaUsers")
    def urnietfparamsscimschemasoracleidcsextensionmfa_users(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasoracleidcsextensionmfaUserResult']:
        """
        This extension defines attributes used to manage Multi-Factor Authentication within a service provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use MFA.
        """
        return pulumi.get(self, "urnietfparamsscimschemasoracleidcsextensionmfa_users")

    @property
    @pulumi.getter(name="urnietfparamsscimschemasoracleidcsextensionpasswordStateUsers")
    def urnietfparamsscimschemasoracleidcsextensionpassword_state_users(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasoracleidcsextensionpasswordStateUserResult']:
        """
        This extension defines attributes used to manage account passwords within a Service Provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use passwords.
        """
        return pulumi.get(self, "urnietfparamsscimschemasoracleidcsextensionpassword_state_users")

    @property
    @pulumi.getter(name="urnietfparamsscimschemasoracleidcsextensionpasswordlessUsers")
    def urnietfparamsscimschemasoracleidcsextensionpasswordless_users(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasoracleidcsextensionpasswordlessUserResult']:
        """
        This extension defines attributes used to manage Passwordless-Factor Authentication within a service provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use MFA.
        """
        return pulumi.get(self, "urnietfparamsscimschemasoracleidcsextensionpasswordless_users")

    @property
    @pulumi.getter(name="urnietfparamsscimschemasoracleidcsextensionposixUsers")
    def urnietfparamsscimschemasoracleidcsextensionposix_users(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasoracleidcsextensionposixUserResult']:
        """
        POSIX User extension
        """
        return pulumi.get(self, "urnietfparamsscimschemasoracleidcsextensionposix_users")

    @property
    @pulumi.getter(name="urnietfparamsscimschemasoracleidcsextensionsecurityQuestionsUsers")
    def urnietfparamsscimschemasoracleidcsextensionsecurity_questions_users(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasoracleidcsextensionsecurityQuestionsUserResult']:
        """
        This extension defines attributes used to store Security Questions of User.
        """
        return pulumi.get(self, "urnietfparamsscimschemasoracleidcsextensionsecurity_questions_users")

    @property
    @pulumi.getter(name="urnietfparamsscimschemasoracleidcsextensionselfChangeUsers")
    def urnietfparamsscimschemasoracleidcsextensionself_change_users(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasoracleidcsextensionselfChangeUserResult']:
        """
        Controls whether a user can update themselves or not via User related APIs
        """
        return pulumi.get(self, "urnietfparamsscimschemasoracleidcsextensionself_change_users")

    @property
    @pulumi.getter(name="urnietfparamsscimschemasoracleidcsextensionselfRegistrationUsers")
    def urnietfparamsscimschemasoracleidcsextensionself_registration_users(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasoracleidcsextensionselfRegistrationUserResult']:
        """
        This extension defines attributes used to manage self registration profile linked to the user.
        """
        return pulumi.get(self, "urnietfparamsscimschemasoracleidcsextensionself_registration_users")

    @property
    @pulumi.getter(name="urnietfparamsscimschemasoracleidcsextensionsffUsers")
    def urnietfparamsscimschemasoracleidcsextensionsff_users(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasoracleidcsextensionsffUserResult']:
        """
        SFF Auth Keys User extension
        """
        return pulumi.get(self, "urnietfparamsscimschemasoracleidcsextensionsff_users")

    @property
    @pulumi.getter(name="urnietfparamsscimschemasoracleidcsextensionsocialAccountUsers")
    def urnietfparamsscimschemasoracleidcsextensionsocial_account_users(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasoracleidcsextensionsocialAccountUserResult']:
        """
        Social User extension
        """
        return pulumi.get(self, "urnietfparamsscimschemasoracleidcsextensionsocial_account_users")

    @property
    @pulumi.getter(name="urnietfparamsscimschemasoracleidcsextensiontermsOfUseUsers")
    def urnietfparamsscimschemasoracleidcsextensionterms_of_use_users(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasoracleidcsextensiontermsOfUseUserResult']:
        """
        Terms Of Use extension
        """
        return pulumi.get(self, "urnietfparamsscimschemasoracleidcsextensionterms_of_use_users")

    @property
    @pulumi.getter(name="urnietfparamsscimschemasoracleidcsextensionuserCredentialsUsers")
    def urnietfparamsscimschemasoracleidcsextensionuser_credentials_users(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasoracleidcsextensionuserCredentialsUserResult']:
        """
        User's credentials
        """
        return pulumi.get(self, "urnietfparamsscimschemasoracleidcsextensionuser_credentials_users")

    @property
    @pulumi.getter(name="urnietfparamsscimschemasoracleidcsextensionuserStateUsers")
    def urnietfparamsscimschemasoracleidcsextensionuser_state_users(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasoracleidcsextensionuserStateUserResult']:
        """
        This extension defines attributes used to manage account passwords within a service provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use passwords.
        """
        return pulumi.get(self, "urnietfparamsscimschemasoracleidcsextensionuser_state_users")

    @property
    @pulumi.getter(name="urnietfparamsscimschemasoracleidcsextensionuserUsers")
    def urnietfparamsscimschemasoracleidcsextensionuser_users(self) -> Sequence['outputs.GetDomainsUserUrnietfparamsscimschemasoracleidcsextensionuserUserResult']:
        """
        Oracle Cloud Infrastructure IAM User
        """
        return pulumi.get(self, "urnietfparamsscimschemasoracleidcsextensionuser_users")

    @property
    @pulumi.getter(name="userId")
    def user_id(self) -> str:
        """
        User Support User Id
        """
        return pulumi.get(self, "user_id")

    @property
    @pulumi.getter(name="userName")
    def user_name(self) -> str:
        """
        User name
        """
        return pulumi.get(self, "user_name")

    @property
    @pulumi.getter(name="userType")
    def user_type(self) -> str:
        """
        Used to identify the organization-to-user relationship
        """
        return pulumi.get(self, "user_type")

    @property
    @pulumi.getter
    def x509certificates(self) -> Sequence['outputs.GetDomainsUserX509certificateResult']:
        """
        A list of certificates issued to the User.
        """
        return pulumi.get(self, "x509certificates")


class AwaitableGetDomainsUserResult(GetDomainsUserResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetDomainsUserResult(
            active=self.active,
            addresses=self.addresses,
            attribute_sets=self.attribute_sets,
            attributes=self.attributes,
            authorization=self.authorization,
            compartment_ocid=self.compartment_ocid,
            delete_in_progress=self.delete_in_progress,
            description=self.description,
            display_name=self.display_name,
            domain_ocid=self.domain_ocid,
            emails=self.emails,
            entitlements=self.entitlements,
            external_id=self.external_id,
            groups=self.groups,
            id=self.id,
            idcs_created_bies=self.idcs_created_bies,
            idcs_endpoint=self.idcs_endpoint,
            idcs_last_modified_bies=self.idcs_last_modified_bies,
            idcs_last_upgraded_in_release=self.idcs_last_upgraded_in_release,
            idcs_prevented_operations=self.idcs_prevented_operations,
            ims=self.ims,
            locale=self.locale,
            metas=self.metas,
            names=self.names,
            nick_name=self.nick_name,
            ocid=self.ocid,
            password=self.password,
            phone_numbers=self.phone_numbers,
            photos=self.photos,
            preferred_language=self.preferred_language,
            profile_url=self.profile_url,
            resource_type_schema_version=self.resource_type_schema_version,
            roles=self.roles,
            schemas=self.schemas,
            tags=self.tags,
            tenancy_ocid=self.tenancy_ocid,
            timezone=self.timezone,
            title=self.title,
            urnietfparamsscimschemasextensionenterprise20users=self.urnietfparamsscimschemasextensionenterprise20users,
            urnietfparamsscimschemasoracleidcsextension_oci_tags=self.urnietfparamsscimschemasoracleidcsextension_oci_tags,
            urnietfparamsscimschemasoracleidcsextensionadaptive_users=self.urnietfparamsscimschemasoracleidcsextensionadaptive_users,
            urnietfparamsscimschemasoracleidcsextensioncapabilities_users=self.urnietfparamsscimschemasoracleidcsextensioncapabilities_users,
            urnietfparamsscimschemasoracleidcsextensiondb_credentials_users=self.urnietfparamsscimschemasoracleidcsextensiondb_credentials_users,
            urnietfparamsscimschemasoracleidcsextensiondb_user_users=self.urnietfparamsscimschemasoracleidcsextensiondb_user_users,
            urnietfparamsscimschemasoracleidcsextensionkerberos_user_users=self.urnietfparamsscimschemasoracleidcsextensionkerberos_user_users,
            urnietfparamsscimschemasoracleidcsextensionmfa_users=self.urnietfparamsscimschemasoracleidcsextensionmfa_users,
            urnietfparamsscimschemasoracleidcsextensionpassword_state_users=self.urnietfparamsscimschemasoracleidcsextensionpassword_state_users,
            urnietfparamsscimschemasoracleidcsextensionpasswordless_users=self.urnietfparamsscimschemasoracleidcsextensionpasswordless_users,
            urnietfparamsscimschemasoracleidcsextensionposix_users=self.urnietfparamsscimschemasoracleidcsextensionposix_users,
            urnietfparamsscimschemasoracleidcsextensionsecurity_questions_users=self.urnietfparamsscimschemasoracleidcsextensionsecurity_questions_users,
            urnietfparamsscimschemasoracleidcsextensionself_change_users=self.urnietfparamsscimschemasoracleidcsextensionself_change_users,
            urnietfparamsscimschemasoracleidcsextensionself_registration_users=self.urnietfparamsscimschemasoracleidcsextensionself_registration_users,
            urnietfparamsscimschemasoracleidcsextensionsff_users=self.urnietfparamsscimschemasoracleidcsextensionsff_users,
            urnietfparamsscimschemasoracleidcsextensionsocial_account_users=self.urnietfparamsscimschemasoracleidcsextensionsocial_account_users,
            urnietfparamsscimschemasoracleidcsextensionterms_of_use_users=self.urnietfparamsscimschemasoracleidcsextensionterms_of_use_users,
            urnietfparamsscimschemasoracleidcsextensionuser_credentials_users=self.urnietfparamsscimschemasoracleidcsextensionuser_credentials_users,
            urnietfparamsscimschemasoracleidcsextensionuser_state_users=self.urnietfparamsscimschemasoracleidcsextensionuser_state_users,
            urnietfparamsscimschemasoracleidcsextensionuser_users=self.urnietfparamsscimschemasoracleidcsextensionuser_users,
            user_id=self.user_id,
            user_name=self.user_name,
            user_type=self.user_type,
            x509certificates=self.x509certificates)


def get_domains_user(attribute_sets: Optional[Sequence[str]] = None,
                     attributes: Optional[str] = None,
                     authorization: Optional[str] = None,
                     idcs_endpoint: Optional[str] = None,
                     resource_type_schema_version: Optional[str] = None,
                     user_id: Optional[str] = None,
                     opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetDomainsUserResult:
    """
    This data source provides details about a specific User resource in Oracle Cloud Infrastructure Identity Domains service.

    Get a User

    ## Example Usage

    ```python
    import pulumi
    import pulumi_oci as oci

    test_user = oci.Identity.get_domains_user(idcs_endpoint=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
        user_id=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
        attribute_sets=[],
        attributes="",
        authorization=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
        resource_type_schema_version=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
    ```


    :param Sequence[str] attribute_sets: A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive.
    :param str attributes: A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always.
    :param str authorization: The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested.
    :param str idcs_endpoint: The basic endpoint for the identity domain
    :param str resource_type_schema_version: An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned.
    :param str user_id: ID of the resource
    """
    __args__ = dict()
    __args__['attributeSets'] = attribute_sets
    __args__['attributes'] = attributes
    __args__['authorization'] = authorization
    __args__['idcsEndpoint'] = idcs_endpoint
    __args__['resourceTypeSchemaVersion'] = resource_type_schema_version
    __args__['userId'] = user_id
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('oci:Identity/getDomainsUser:getDomainsUser', __args__, opts=opts, typ=GetDomainsUserResult).value

    return AwaitableGetDomainsUserResult(
        active=__ret__.active,
        addresses=__ret__.addresses,
        attribute_sets=__ret__.attribute_sets,
        attributes=__ret__.attributes,
        authorization=__ret__.authorization,
        compartment_ocid=__ret__.compartment_ocid,
        delete_in_progress=__ret__.delete_in_progress,
        description=__ret__.description,
        display_name=__ret__.display_name,
        domain_ocid=__ret__.domain_ocid,
        emails=__ret__.emails,
        entitlements=__ret__.entitlements,
        external_id=__ret__.external_id,
        groups=__ret__.groups,
        id=__ret__.id,
        idcs_created_bies=__ret__.idcs_created_bies,
        idcs_endpoint=__ret__.idcs_endpoint,
        idcs_last_modified_bies=__ret__.idcs_last_modified_bies,
        idcs_last_upgraded_in_release=__ret__.idcs_last_upgraded_in_release,
        idcs_prevented_operations=__ret__.idcs_prevented_operations,
        ims=__ret__.ims,
        locale=__ret__.locale,
        metas=__ret__.metas,
        names=__ret__.names,
        nick_name=__ret__.nick_name,
        ocid=__ret__.ocid,
        password=__ret__.password,
        phone_numbers=__ret__.phone_numbers,
        photos=__ret__.photos,
        preferred_language=__ret__.preferred_language,
        profile_url=__ret__.profile_url,
        resource_type_schema_version=__ret__.resource_type_schema_version,
        roles=__ret__.roles,
        schemas=__ret__.schemas,
        tags=__ret__.tags,
        tenancy_ocid=__ret__.tenancy_ocid,
        timezone=__ret__.timezone,
        title=__ret__.title,
        urnietfparamsscimschemasextensionenterprise20users=__ret__.urnietfparamsscimschemasextensionenterprise20users,
        urnietfparamsscimschemasoracleidcsextension_oci_tags=__ret__.urnietfparamsscimschemasoracleidcsextension_oci_tags,
        urnietfparamsscimschemasoracleidcsextensionadaptive_users=__ret__.urnietfparamsscimschemasoracleidcsextensionadaptive_users,
        urnietfparamsscimschemasoracleidcsextensioncapabilities_users=__ret__.urnietfparamsscimschemasoracleidcsextensioncapabilities_users,
        urnietfparamsscimschemasoracleidcsextensiondb_credentials_users=__ret__.urnietfparamsscimschemasoracleidcsextensiondb_credentials_users,
        urnietfparamsscimschemasoracleidcsextensiondb_user_users=__ret__.urnietfparamsscimschemasoracleidcsextensiondb_user_users,
        urnietfparamsscimschemasoracleidcsextensionkerberos_user_users=__ret__.urnietfparamsscimschemasoracleidcsextensionkerberos_user_users,
        urnietfparamsscimschemasoracleidcsextensionmfa_users=__ret__.urnietfparamsscimschemasoracleidcsextensionmfa_users,
        urnietfparamsscimschemasoracleidcsextensionpassword_state_users=__ret__.urnietfparamsscimschemasoracleidcsextensionpassword_state_users,
        urnietfparamsscimschemasoracleidcsextensionpasswordless_users=__ret__.urnietfparamsscimschemasoracleidcsextensionpasswordless_users,
        urnietfparamsscimschemasoracleidcsextensionposix_users=__ret__.urnietfparamsscimschemasoracleidcsextensionposix_users,
        urnietfparamsscimschemasoracleidcsextensionsecurity_questions_users=__ret__.urnietfparamsscimschemasoracleidcsextensionsecurity_questions_users,
        urnietfparamsscimschemasoracleidcsextensionself_change_users=__ret__.urnietfparamsscimschemasoracleidcsextensionself_change_users,
        urnietfparamsscimschemasoracleidcsextensionself_registration_users=__ret__.urnietfparamsscimschemasoracleidcsextensionself_registration_users,
        urnietfparamsscimschemasoracleidcsextensionsff_users=__ret__.urnietfparamsscimschemasoracleidcsextensionsff_users,
        urnietfparamsscimschemasoracleidcsextensionsocial_account_users=__ret__.urnietfparamsscimschemasoracleidcsextensionsocial_account_users,
        urnietfparamsscimschemasoracleidcsextensionterms_of_use_users=__ret__.urnietfparamsscimschemasoracleidcsextensionterms_of_use_users,
        urnietfparamsscimschemasoracleidcsextensionuser_credentials_users=__ret__.urnietfparamsscimschemasoracleidcsextensionuser_credentials_users,
        urnietfparamsscimschemasoracleidcsextensionuser_state_users=__ret__.urnietfparamsscimschemasoracleidcsextensionuser_state_users,
        urnietfparamsscimschemasoracleidcsextensionuser_users=__ret__.urnietfparamsscimschemasoracleidcsextensionuser_users,
        user_id=__ret__.user_id,
        user_name=__ret__.user_name,
        user_type=__ret__.user_type,
        x509certificates=__ret__.x509certificates)


@_utilities.lift_output_func(get_domains_user)
def get_domains_user_output(attribute_sets: Optional[pulumi.Input[Optional[Sequence[str]]]] = None,
                            attributes: Optional[pulumi.Input[Optional[str]]] = None,
                            authorization: Optional[pulumi.Input[Optional[str]]] = None,
                            idcs_endpoint: Optional[pulumi.Input[str]] = None,
                            resource_type_schema_version: Optional[pulumi.Input[Optional[str]]] = None,
                            user_id: Optional[pulumi.Input[str]] = None,
                            opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetDomainsUserResult]:
    """
    This data source provides details about a specific User resource in Oracle Cloud Infrastructure Identity Domains service.

    Get a User

    ## Example Usage

    ```python
    import pulumi
    import pulumi_oci as oci

    test_user = oci.Identity.get_domains_user(idcs_endpoint=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
        user_id=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
        attribute_sets=[],
        attributes="",
        authorization=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
        resource_type_schema_version=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
    ```


    :param Sequence[str] attribute_sets: A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive.
    :param str attributes: A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always.
    :param str authorization: The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested.
    :param str idcs_endpoint: The basic endpoint for the identity domain
    :param str resource_type_schema_version: An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned.
    :param str user_id: ID of the resource
    """
    ...
