import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This data source provides the list of Users in Oracle Cloud Infrastructure Identity service.
 *
 * Lists the users in your tenancy. You must specify your tenancy's OCID as the value for the
 * compartment ID (remember that the tenancy is simply the root compartment).
 * See [Where to Get the Tenancy's OCID and User's OCID](https://docs.cloud.oracle.com/iaas/Content/API/Concepts/apisigningkey.htm#five).
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testUsers = oci.identity.getUsers({
 *     compartmentId: tenancyOcid,
 *     externalIdentifier: userExternalIdentifier,
 *     identityProviderId: testIdentityProvider.id,
 *     name: userName,
 *     state: userState,
 * });
 * ```
 */
export declare function getUsers(args: GetUsersArgs, opts?: pulumi.InvokeOptions): Promise<GetUsersResult>;
/**
 * A collection of arguments for invoking getUsers.
 */
export interface GetUsersArgs {
    /**
     * The OCID of the compartment (remember that the tenancy is simply the root compartment).
     */
    compartmentId: string;
    /**
     * The id of a user in the identity provider.
     */
    externalIdentifier?: string;
    filters?: inputs.Identity.GetUsersFilter[];
    /**
     * The id of the identity provider.
     */
    identityProviderId?: string;
    /**
     * A filter to only return resources that match the given name exactly.
     */
    name?: string;
    /**
     * A filter to only return resources that match the given lifecycle state.  The state value is case-insensitive.
     */
    state?: string;
}
/**
 * A collection of values returned by getUsers.
 */
export interface GetUsersResult {
    /**
     * The OCID of the tenancy containing the user.
     */
    readonly compartmentId: string;
    /**
     * Identifier of the user in the identity provider
     */
    readonly externalIdentifier?: string;
    readonly filters?: outputs.Identity.GetUsersFilter[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * The OCID of the `IdentityProvider` this user belongs to.
     */
    readonly identityProviderId?: string;
    /**
     * 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.
     */
    readonly name?: string;
    /**
     * The user's current state.
     */
    readonly state?: string;
    /**
     * The list of users.
     */
    readonly users: outputs.Identity.GetUsersUser[];
}
/**
 * This data source provides the list of Users in Oracle Cloud Infrastructure Identity service.
 *
 * Lists the users in your tenancy. You must specify your tenancy's OCID as the value for the
 * compartment ID (remember that the tenancy is simply the root compartment).
 * See [Where to Get the Tenancy's OCID and User's OCID](https://docs.cloud.oracle.com/iaas/Content/API/Concepts/apisigningkey.htm#five).
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testUsers = oci.identity.getUsers({
 *     compartmentId: tenancyOcid,
 *     externalIdentifier: userExternalIdentifier,
 *     identityProviderId: testIdentityProvider.id,
 *     name: userName,
 *     state: userState,
 * });
 * ```
 */
export declare function getUsersOutput(args: GetUsersOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetUsersResult>;
/**
 * A collection of arguments for invoking getUsers.
 */
export interface GetUsersOutputArgs {
    /**
     * The OCID of the compartment (remember that the tenancy is simply the root compartment).
     */
    compartmentId: pulumi.Input<string>;
    /**
     * The id of a user in the identity provider.
     */
    externalIdentifier?: pulumi.Input<string | undefined>;
    filters?: pulumi.Input<pulumi.Input<inputs.Identity.GetUsersFilterArgs>[] | undefined>;
    /**
     * The id of the identity provider.
     */
    identityProviderId?: pulumi.Input<string | undefined>;
    /**
     * A filter to only return resources that match the given name exactly.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * A filter to only return resources that match the given lifecycle state.  The state value is case-insensitive.
     */
    state?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=getUsers.d.ts.map