import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * This resource provides the User resource in Oracle Cloud Infrastructure Identity service. * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/identity/latest/User * * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/identity * * Creates a new user in your tenancy. For conceptual information about users, your tenancy, and other * IAM Service components, see [Overview of the IAM Service](https://docs.cloud.oracle.com/iaas/Content/Identity/Concepts/overview.htm). * * You must specify your tenancy's OCID as the compartment ID in the request object (remember that the * tenancy is simply the root compartment). Notice that IAM resources (users, groups, compartments, and * some policies) reside within the tenancy itself, unlike cloud resources such as compute instances, * which typically reside within compartments inside the tenancy. For information about OCIDs, see * [Resource Identifiers](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). * * You must also specify a *name* for the user, which must be unique across all users in your tenancy * and cannot be changed. Allowed characters: No spaces. Only letters, numerals, hyphens, periods, * underscores, +, and @. If you specify a name that's already in use, you'll get a 409 error. * This name will be the user's login to the Console. You might want to pick a * name that your company's own identity system (e.g., Active Directory, LDAP, etc.) already uses. * If you delete a user and then create a new user with the same name, they'll be considered different * users because they have different OCIDs. * * You must also specify a *description* for the user (although it can be an empty string). * It does not have to be unique, and you can change it anytime with * [UpdateUser](https://docs.cloud.oracle.com/iaas/api/#/en/identity/20160918/User/UpdateUser). You can use the field to provide the user's * full name, a description, a nickname, or other information to generally identify the user. * A new user has no permissions until you place the user in one or more groups (see * [AddUserToGroup](https://docs.cloud.oracle.com/iaas/api/#/en/identity/20160918/UserGroupMembership/AddUserToGroup)). If the user needs to * access the Console, you need to provide the user a password (see * [CreateOrResetUIPassword](https://docs.cloud.oracle.com/iaas/api/#/en/identity/20160918/UIPassword/CreateOrResetUIPassword)). * If the user needs to access the Oracle Cloud Infrastructure REST API, you need to upload a * public API signing key for that user (see * [Required Keys and OCIDs](https://docs.cloud.oracle.com/iaas/Content/API/Concepts/apisigningkey.htm) and also * [UploadApiKey](https://docs.cloud.oracle.com/iaas/api/#/en/identity/20160918/ApiKey/UploadApiKey)). * * **Important:** Make sure to inform the new user which compartment(s) they have access to. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as oci from "@pulumi/oci"; * * const testUser = new oci.identity.User("test_user", { * compartmentId: tenancyOcid, * description: userDescription, * name: userName, * definedTags: { * "Operations.CostCenter": "42", * }, * email: userEmail, * freeformTags: { * Department: "Finance", * }, * }); * ``` * * ## Import * * Users can be imported using the `id`, e.g. * * ```sh * $ pulumi import oci:Identity/user:User test_user "id" * ``` */ export declare class User extends pulumi.CustomResource { /** * Get an existing User resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: UserState, opts?: pulumi.CustomResourceOptions): User; /** * Returns true if the given object is an instance of User. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is User; /** * Properties indicating how the user is allowed to authenticate. */ readonly capabilities: pulumi.Output; /** * The OCID of the tenancy containing the user. */ readonly compartmentId: pulumi.Output; /** * DB username of the DB credential. Has to be unique across the tenancy. */ readonly dbUserName: pulumi.Output; /** * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}` */ readonly definedTags: pulumi.Output<{ [key: string]: string; }>; /** * (Updatable) The description you assign to the user during creation. Does not have to be unique, and it's changeable. */ readonly description: pulumi.Output; /** * (Updatable) The email you assign to the user. Has to be unique across the tenancy. */ readonly email: pulumi.Output; /** * Whether the email address has been validated. */ readonly emailVerified: pulumi.Output; /** * Identifier of the user in the identity provider */ readonly externalIdentifier: pulumi.Output; /** * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` */ readonly freeformTags: pulumi.Output<{ [key: string]: string; }>; /** * The OCID of the `IdentityProvider` this user belongs to. */ readonly identityProviderId: pulumi.Output; /** * Returned only if the user's `lifecycleState` is INACTIVE. A 16-bit value showing the reason why the user is inactive: * * bit 0: SUSPENDED (reserved for future use) * * bit 1: DISABLED (reserved for future use) * * bit 2: BLOCKED (the user has exceeded the maximum number of failed login attempts for the Console) */ readonly inactiveState: pulumi.Output; /** * The date and time of when the user most recently logged in the format defined by RFC3339 (ex. `2016-08-25T21:10:29.600Z`). If there is no login history, this field is null. */ readonly lastSuccessfulLoginTime: pulumi.Output; /** * The name you assign to the user during creation. This is the user's login for the Console. The name must be unique across all users in the tenancy and cannot be changed. * * ** IMPORTANT ** * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values */ readonly name: pulumi.Output; /** * The date and time of when the user most recently logged in the format defined by RFC3339 (ex. `2016-08-25T21:10:29.600Z`). If there is no login history, this field is null. */ readonly previousSuccessfulLoginTime: pulumi.Output; /** * The user's current state. */ readonly state: pulumi.Output; /** * Date and time the user was created, in the format defined by RFC3339. Example: `2016-08-25T21:10:29.600Z` */ readonly timeCreated: pulumi.Output; /** * Create a User resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: UserArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering User resources. */ export interface UserState { /** * Properties indicating how the user is allowed to authenticate. */ capabilities?: pulumi.Input[] | undefined>; /** * The OCID of the tenancy containing the user. */ compartmentId?: pulumi.Input; /** * DB username of the DB credential. Has to be unique across the tenancy. */ dbUserName?: pulumi.Input; /** * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}` */ definedTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * (Updatable) The description you assign to the user during creation. Does not have to be unique, and it's changeable. */ description?: pulumi.Input; /** * (Updatable) The email you assign to the user. Has to be unique across the tenancy. */ email?: pulumi.Input; /** * Whether the email address has been validated. */ emailVerified?: pulumi.Input; /** * Identifier of the user in the identity provider */ externalIdentifier?: pulumi.Input; /** * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` */ freeformTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * The OCID of the `IdentityProvider` this user belongs to. */ identityProviderId?: pulumi.Input; /** * Returned only if the user's `lifecycleState` is INACTIVE. A 16-bit value showing the reason why the user is inactive: * * bit 0: SUSPENDED (reserved for future use) * * bit 1: DISABLED (reserved for future use) * * bit 2: BLOCKED (the user has exceeded the maximum number of failed login attempts for the Console) */ inactiveState?: pulumi.Input; /** * The date and time of when the user most recently logged in the format defined by RFC3339 (ex. `2016-08-25T21:10:29.600Z`). If there is no login history, this field is null. */ lastSuccessfulLoginTime?: pulumi.Input; /** * The name you assign to the user during creation. This is the user's login for the Console. The name must be unique across all users in the tenancy and cannot be changed. * * ** IMPORTANT ** * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values */ name?: pulumi.Input; /** * The date and time of when the user most recently logged in the format defined by RFC3339 (ex. `2016-08-25T21:10:29.600Z`). If there is no login history, this field is null. */ previousSuccessfulLoginTime?: pulumi.Input; /** * The user's current state. */ state?: pulumi.Input; /** * Date and time the user was created, in the format defined by RFC3339. Example: `2016-08-25T21:10:29.600Z` */ timeCreated?: pulumi.Input; } /** * The set of arguments for constructing a User resource. */ export interface UserArgs { /** * The OCID of the tenancy containing the user. */ compartmentId?: pulumi.Input; /** * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}` */ definedTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * (Updatable) The description you assign to the user during creation. Does not have to be unique, and it's changeable. */ description: pulumi.Input; /** * (Updatable) The email you assign to the user. Has to be unique across the tenancy. */ email?: pulumi.Input; /** * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` */ freeformTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * The name you assign to the user during creation. This is the user's login for the Console. The name must be unique across all users in the tenancy and cannot be changed. * * ** IMPORTANT ** * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values */ name?: pulumi.Input; } //# sourceMappingURL=user.d.ts.map