import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * User details.
 *
 * Uses Azure REST API version 2022-09-01-preview. In version 2.x of the Azure Native provider, it used API version 2022-08-01.
 *
 * Other available API versions: 2021-04-01-preview, 2021-08-01, 2021-12-01-preview, 2022-04-01-preview, 2022-08-01, 2023-03-01-preview, 2023-05-01-preview, 2023-09-01-preview, 2024-05-01, 2024-06-01-preview, 2024-10-01-preview. These can be accessed by generating a local SDK package using the CLI command `pulumi package add azure-native apimanagement [ApiVersion]`. See the [version guide](../../../version-guide/#accessing-any-api-version-via-local-packages) for details.
 */
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 opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, 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;
    /**
     * The Azure API version of the resource.
     */
    readonly azureApiVersion: pulumi.Output<string>;
    /**
     * Email address.
     */
    readonly email: pulumi.Output<string | undefined>;
    /**
     * First name.
     */
    readonly firstName: pulumi.Output<string | undefined>;
    /**
     * Collection of groups user is part of.
     */
    readonly groups: pulumi.Output<outputs.apimanagement.GroupContractPropertiesResponse[]>;
    /**
     * Collection of user identities.
     */
    readonly identities: pulumi.Output<outputs.apimanagement.UserIdentityContractResponse[] | undefined>;
    /**
     * Last name.
     */
    readonly lastName: pulumi.Output<string | undefined>;
    /**
     * The name of the resource
     */
    readonly name: pulumi.Output<string>;
    /**
     * Optional note about a user set by the administrator.
     */
    readonly note: pulumi.Output<string | undefined>;
    /**
     * Date of user registration. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
     */
    readonly registrationDate: pulumi.Output<string | undefined>;
    /**
     * Account state. Specifies whether the user is active or not. Blocked users are unable to sign into the developer portal or call any APIs of subscribed products. Default state is Active.
     */
    readonly state: pulumi.Output<string | undefined>;
    /**
     * The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
     */
    readonly type: pulumi.Output<string>;
    /**
     * 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);
}
/**
 * The set of arguments for constructing a User resource.
 */
export interface UserArgs {
    /**
     * Determines the type of application which send the create user request. Default is legacy portal.
     */
    appType?: pulumi.Input<string | enums.apimanagement.AppType>;
    /**
     * Determines the type of confirmation e-mail that will be sent to the newly created user.
     */
    confirmation?: pulumi.Input<string | enums.apimanagement.Confirmation>;
    /**
     * Email address. Must not be empty and must be unique within the service instance.
     */
    email: pulumi.Input<string>;
    /**
     * First name.
     */
    firstName: pulumi.Input<string>;
    /**
     * Collection of user identities.
     */
    identities?: pulumi.Input<pulumi.Input<inputs.apimanagement.UserIdentityContractArgs>[]>;
    /**
     * Last name.
     */
    lastName: pulumi.Input<string>;
    /**
     * Optional note about a user set by the administrator.
     */
    note?: pulumi.Input<string>;
    /**
     * Send an Email notification to the User.
     */
    notify?: pulumi.Input<boolean>;
    /**
     * User Password. If no value is provided, a default password is generated.
     */
    password?: pulumi.Input<string>;
    /**
     * The name of the resource group. The name is case insensitive.
     */
    resourceGroupName: pulumi.Input<string>;
    /**
     * The name of the API Management service.
     */
    serviceName: pulumi.Input<string>;
    /**
     * Account state. Specifies whether the user is active or not. Blocked users are unable to sign into the developer portal or call any APIs of subscribed products. Default state is Active.
     */
    state?: pulumi.Input<string | enums.apimanagement.UserState>;
    /**
     * User identifier. Must be unique in the current API Management service instance.
     */
    userId?: pulumi.Input<string>;
}
