import * as pulumi from "@pulumi/pulumi";
import * as outputs from "./types/output";
/**
 * Gets basic information for multiple Azure Active Directory service principals.
 *
 * ## 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: `Application.Read.All` or `Directory.Read.All`
 *
 * When authenticated with a user principal, this data source does not require any additional roles.
 *
 * ## Example Usage
 *
 * *Look up by application display names*
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azuread from "@pulumi/azuread";
 *
 * const example = azuread.getServicePrincipals({
 *     displayNames: [
 *         "example-app",
 *         "another-app",
 *     ],
 * });
 * ```
 *
 * *Look up by application IDs (client IDs)*
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azuread from "@pulumi/azuread";
 *
 * const example = azuread.getServicePrincipals({
 *     clientIds: [
 *         "11111111-0000-0000-0000-000000000000",
 *         "22222222-0000-0000-0000-000000000000",
 *         "33333333-0000-0000-0000-000000000000",
 *     ],
 * });
 * ```
 *
 * *Look up by service principal object IDs*
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azuread from "@pulumi/azuread";
 *
 * const example = azuread.getServicePrincipals({
 *     objectIds: [
 *         "00000000-0000-0000-0000-000000000000",
 *         "00000000-0000-0000-0000-111111111111",
 *         "00000000-0000-0000-0000-222222222222",
 *     ],
 * });
 * ```
 */
export declare function getServicePrincipals(args?: GetServicePrincipalsArgs, opts?: pulumi.InvokeOptions): Promise<GetServicePrincipalsResult>;
/**
 * A collection of arguments for invoking getServicePrincipals.
 */
export interface GetServicePrincipalsArgs {
    /**
     * A list of client IDs of the applications associated with the service principals.
     */
    clientIds?: string[];
    /**
     * A list of display names of the applications associated with the service principals.
     */
    displayNames?: string[];
    /**
     * Ignore missing service principals and return all service principals that are found. The data source will still fail if no service principals are found. Defaults to false.
     */
    ignoreMissing?: boolean;
    /**
     * The object IDs of the service principals.
     */
    objectIds?: string[];
    /**
     * When `true`, the data source will return all service principals. Cannot be used with `ignoreMissing`. Defaults to false.
     *
     * > Either `returnAll`, or one of `clientIds`, `displayNames` or `objectIds` must be specified. These _may_ be specified as an empty list, in which case no results will be returned.
     */
    returnAll?: boolean;
}
/**
 * A collection of values returned by getServicePrincipals.
 */
export interface GetServicePrincipalsResult {
    /**
     * The client ID of the application associated with this service principal.
     */
    readonly clientIds: string[];
    /**
     * A list of display names of the applications associated with the service principals.
     */
    readonly displayNames: string[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    readonly ignoreMissing?: boolean;
    /**
     * The object IDs of the service principals.
     */
    readonly objectIds: string[];
    readonly returnAll?: boolean;
    /**
     * A list of service principals. Each `servicePrincipal` object provides the attributes documented below.
     */
    readonly servicePrincipals: outputs.GetServicePrincipalsServicePrincipal[];
}
/**
 * Gets basic information for multiple Azure Active Directory service principals.
 *
 * ## 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: `Application.Read.All` or `Directory.Read.All`
 *
 * When authenticated with a user principal, this data source does not require any additional roles.
 *
 * ## Example Usage
 *
 * *Look up by application display names*
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azuread from "@pulumi/azuread";
 *
 * const example = azuread.getServicePrincipals({
 *     displayNames: [
 *         "example-app",
 *         "another-app",
 *     ],
 * });
 * ```
 *
 * *Look up by application IDs (client IDs)*
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azuread from "@pulumi/azuread";
 *
 * const example = azuread.getServicePrincipals({
 *     clientIds: [
 *         "11111111-0000-0000-0000-000000000000",
 *         "22222222-0000-0000-0000-000000000000",
 *         "33333333-0000-0000-0000-000000000000",
 *     ],
 * });
 * ```
 *
 * *Look up by service principal object IDs*
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azuread from "@pulumi/azuread";
 *
 * const example = azuread.getServicePrincipals({
 *     objectIds: [
 *         "00000000-0000-0000-0000-000000000000",
 *         "00000000-0000-0000-0000-111111111111",
 *         "00000000-0000-0000-0000-222222222222",
 *     ],
 * });
 * ```
 */
export declare function getServicePrincipalsOutput(args?: GetServicePrincipalsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetServicePrincipalsResult>;
/**
 * A collection of arguments for invoking getServicePrincipals.
 */
export interface GetServicePrincipalsOutputArgs {
    /**
     * A list of client IDs of the applications associated with the service principals.
     */
    clientIds?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A list of display names of the applications associated with the service principals.
     */
    displayNames?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Ignore missing service principals and return all service principals that are found. The data source will still fail if no service principals are found. Defaults to false.
     */
    ignoreMissing?: pulumi.Input<boolean>;
    /**
     * The object IDs of the service principals.
     */
    objectIds?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * When `true`, the data source will return all service principals. Cannot be used with `ignoreMissing`. Defaults to false.
     *
     * > Either `returnAll`, or one of `clientIds`, `displayNames` or `objectIds` must be specified. These _may_ be specified as an empty list, in which case no results will be returned.
     */
    returnAll?: pulumi.Input<boolean>;
}
