import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
 * Manages a user.
 *
 * > **Deprecation:** the inline `acl` block is deprecated. Manage user ACLs via the dedicated
 * `proxmoxve.Acl` resource instead. The `acl` block is no longer auto-populated from a
 * cluster-wide fetch on refresh or import; existing configurations using `acl` blocks continue
 * to work, but new code should use `proxmoxve.Acl`.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
 *
 * const operationsAutomation = new proxmoxve.UserLegacy("operations_automation", {
 *     comment: "Managed by Pulumi",
 *     password: "a-strong-password",
 *     userId: "operations-automation@pve",
 * });
 * const operationsMonitoring = new proxmoxve.RoleLegacy("operations_monitoring", {
 *     roleId: "operations-monitoring",
 *     privileges: ["VM.GuestAgent.Audit"],
 * });
 * const operationsAutomationVms = new proxmoxve.Acl("operations_automation_vms", {
 *     userId: operationsAutomation.userId,
 *     path: "/vms/1234",
 *     roleId: operationsMonitoring.roleId,
 *     propagate: true,
 * });
 * ```
 *
 * ## Import
 *
 * Instances can be imported using the `userId`, e.g.,
 *
 * ```sh
 * $ pulumi import proxmoxve:index/userLegacy:UserLegacy operations_automation operations-automation@pve
 * ```
 */
export declare class UserLegacy extends pulumi.CustomResource {
    /**
     * Get an existing UserLegacy 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<pulumi.ID>, state?: UserLegacyState, opts?: pulumi.CustomResourceOptions): UserLegacy;
    /**
     * Returns true if the given object is an instance of UserLegacy.  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 UserLegacy;
    /**
     * The access control list (multiple blocks supported). Use
     * `proxmoxve.Acl` instead.
     *
     * @deprecated Manage ACLs via the dedicated `proxmoxve.Acl` resource instead. The inline `acl` block is no longer auto-populated from the cluster on refresh or import; existing users with `acl` blocks continue to work, but new code should use `proxmoxve.Acl`.
     */
    readonly acls: pulumi.Output<outputs.UserLegacyAcl[] | undefined>;
    /**
     * The user comment.
     */
    readonly comment: pulumi.Output<string | undefined>;
    /**
     * The user's email address.
     */
    readonly email: pulumi.Output<string | undefined>;
    /**
     * Whether the user account is enabled.
     */
    readonly enabled: pulumi.Output<boolean | undefined>;
    /**
     * The user account's expiration date (RFC 3339).
     */
    readonly expirationDate: pulumi.Output<string | undefined>;
    /**
     * The user's first name.
     */
    readonly firstName: pulumi.Output<string | undefined>;
    /**
     * The user's groups.
     */
    readonly groups: pulumi.Output<string[] | undefined>;
    /**
     * The user's keys.
     */
    readonly keys: pulumi.Output<string | undefined>;
    /**
     * The user's last name.
     */
    readonly lastName: pulumi.Output<string | undefined>;
    /**
     * The user's password. Required for PVE or PAM realms.
     */
    readonly password: pulumi.Output<string | undefined>;
    /**
     * The user identifier.
     */
    readonly userId: pulumi.Output<string>;
    /**
     * Create a UserLegacy 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: UserLegacyArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering UserLegacy resources.
 */
export interface UserLegacyState {
    /**
     * The access control list (multiple blocks supported). Use
     * `proxmoxve.Acl` instead.
     *
     * @deprecated Manage ACLs via the dedicated `proxmoxve.Acl` resource instead. The inline `acl` block is no longer auto-populated from the cluster on refresh or import; existing users with `acl` blocks continue to work, but new code should use `proxmoxve.Acl`.
     */
    acls?: pulumi.Input<pulumi.Input<inputs.UserLegacyAcl>[] | undefined>;
    /**
     * The user comment.
     */
    comment?: pulumi.Input<string | undefined>;
    /**
     * The user's email address.
     */
    email?: pulumi.Input<string | undefined>;
    /**
     * Whether the user account is enabled.
     */
    enabled?: pulumi.Input<boolean | undefined>;
    /**
     * The user account's expiration date (RFC 3339).
     */
    expirationDate?: pulumi.Input<string | undefined>;
    /**
     * The user's first name.
     */
    firstName?: pulumi.Input<string | undefined>;
    /**
     * The user's groups.
     */
    groups?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The user's keys.
     */
    keys?: pulumi.Input<string | undefined>;
    /**
     * The user's last name.
     */
    lastName?: pulumi.Input<string | undefined>;
    /**
     * The user's password. Required for PVE or PAM realms.
     */
    password?: pulumi.Input<string | undefined>;
    /**
     * The user identifier.
     */
    userId?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a UserLegacy resource.
 */
export interface UserLegacyArgs {
    /**
     * The access control list (multiple blocks supported). Use
     * `proxmoxve.Acl` instead.
     *
     * @deprecated Manage ACLs via the dedicated `proxmoxve.Acl` resource instead. The inline `acl` block is no longer auto-populated from the cluster on refresh or import; existing users with `acl` blocks continue to work, but new code should use `proxmoxve.Acl`.
     */
    acls?: pulumi.Input<pulumi.Input<inputs.UserLegacyAcl>[] | undefined>;
    /**
     * The user comment.
     */
    comment?: pulumi.Input<string | undefined>;
    /**
     * The user's email address.
     */
    email?: pulumi.Input<string | undefined>;
    /**
     * Whether the user account is enabled.
     */
    enabled?: pulumi.Input<boolean | undefined>;
    /**
     * The user account's expiration date (RFC 3339).
     */
    expirationDate?: pulumi.Input<string | undefined>;
    /**
     * The user's first name.
     */
    firstName?: pulumi.Input<string | undefined>;
    /**
     * The user's groups.
     */
    groups?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The user's keys.
     */
    keys?: pulumi.Input<string | undefined>;
    /**
     * The user's last name.
     */
    lastName?: pulumi.Input<string | undefined>;
    /**
     * The user's password. Required for PVE or PAM realms.
     */
    password?: pulumi.Input<string | undefined>;
    /**
     * The user identifier.
     */
    userId: pulumi.Input<string>;
}
//# sourceMappingURL=userLegacy.d.ts.map