import * as pulumi from "@pulumi/pulumi";
import * as outputs from "./types/output";
/**
 * Gets basic information for multiple Azure Active Directory users.
 *
 * ## API Permissions
 *
 * The following API permissions are required in order to use this data source.
 *
 * When authenticated with a service principal, this data source requires one of the following application roles: `User.ReadBasic.All`, `User.Read.All` or `Directory.Read.All`
 *
 * When authenticated with a user principal, this data source does not require any additional roles.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azuread from "@pulumi/azuread";
 *
 * const users = azuread.getUsers({
 *     userPrincipalNames: [
 *         "kat@example.com",
 *         "byte@example.com",
 *     ],
 * });
 * ```
 */
export declare function getUsers(args?: GetUsersArgs, opts?: pulumi.InvokeOptions): Promise<GetUsersResult>;
/**
 * A collection of arguments for invoking getUsers.
 */
export interface GetUsersArgs {
    /**
     * The employee identifiers assigned to the users by the organisation.
     */
    employeeIds?: string[];
    /**
     * Ignore missing users and return users that were found. The data source will still fail if no users are found. Cannot be specified with `returnAll`. Defaults to `false`.
     */
    ignoreMissing?: boolean;
    /**
     * The email aliases of the users.
     */
    mailNicknames?: string[];
    /**
     * The SMTP email addresses of the users.
     */
    mails?: string[];
    /**
     * The object IDs of the users.
     */
    objectIds?: string[];
    /**
     * When `true`, the data source will return all users. Cannot be used with `ignoreMissing`. Defaults to `false`.
     */
    returnAll?: boolean;
    /**
     * The user principal names (UPNs) of the users.
     *
     * > Either `returnAll`, or one of `userPrincipalNames`, `objectIds`, `mailNicknames`, `mails`, or `employeeIds` must be specified. These _may_ be specified as an empty list, in which case no results will be returned.
     */
    userPrincipalNames?: string[];
}
/**
 * A collection of values returned by getUsers.
 */
export interface GetUsersResult {
    /**
     * The employee identifiers assigned to the users by the organisation.
     */
    readonly employeeIds: string[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    readonly ignoreMissing?: boolean;
    /**
     * The email aliases of the users.
     */
    readonly mailNicknames: string[];
    /**
     * The SMTP email addresses of the users.
     */
    readonly mails: string[];
    /**
     * The object IDs of the users.
     */
    readonly objectIds: string[];
    readonly returnAll?: boolean;
    /**
     * The user principal names (UPNs) of the users.
     */
    readonly userPrincipalNames: string[];
    /**
     * A list of users. Each `user` object provides the attributes documented below.
     */
    readonly users: outputs.GetUsersUser[];
}
/**
 * Gets basic information for multiple Azure Active Directory users.
 *
 * ## API Permissions
 *
 * The following API permissions are required in order to use this data source.
 *
 * When authenticated with a service principal, this data source requires one of the following application roles: `User.ReadBasic.All`, `User.Read.All` or `Directory.Read.All`
 *
 * When authenticated with a user principal, this data source does not require any additional roles.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azuread from "@pulumi/azuread";
 *
 * const users = azuread.getUsers({
 *     userPrincipalNames: [
 *         "kat@example.com",
 *         "byte@example.com",
 *     ],
 * });
 * ```
 */
export declare function getUsersOutput(args?: GetUsersOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetUsersResult>;
/**
 * A collection of arguments for invoking getUsers.
 */
export interface GetUsersOutputArgs {
    /**
     * The employee identifiers assigned to the users by the organisation.
     */
    employeeIds?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Ignore missing users and return users that were found. The data source will still fail if no users are found. Cannot be specified with `returnAll`. Defaults to `false`.
     */
    ignoreMissing?: pulumi.Input<boolean>;
    /**
     * The email aliases of the users.
     */
    mailNicknames?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The SMTP email addresses of the users.
     */
    mails?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The object IDs of the users.
     */
    objectIds?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * When `true`, the data source will return all users. Cannot be used with `ignoreMissing`. Defaults to `false`.
     */
    returnAll?: pulumi.Input<boolean>;
    /**
     * The user principal names (UPNs) of the users.
     *
     * > Either `returnAll`, or one of `userPrincipalNames`, `objectIds`, `mailNicknames`, `mails`, or `employeeIds` must be specified. These _may_ be specified as an empty list, in which case no results will be returned.
     */
    userPrincipalNames?: pulumi.Input<pulumi.Input<string>[]>;
}
