import * as pulumi from "@pulumi/pulumi";
/**
 * Use this data source to access information about a Policy Definition, both custom and built in. Retrieves Policy Definitions from your current subscription by default.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 *
 * const example = azure.policy.getPolicyDefintion({
 *     displayName: "Allowed resource types",
 * });
 * export const id = example.then(example => example.id);
 * ```
 */
export declare function getPolicyDefintion(args?: GetPolicyDefintionArgs, opts?: pulumi.InvokeOptions): Promise<GetPolicyDefintionResult>;
/**
 * A collection of arguments for invoking getPolicyDefintion.
 */
export interface GetPolicyDefintionArgs {
    /**
     * Specifies the display name of the Policy Definition. Conflicts with `name`.
     *
     * > **Note:** Looking up policies by `displayName` is not recommended by the Azure Policy team as the property is not unique nor immutable. As such errors may occur when there are multiple policy definitions with same display name or the display name is changed. To avoid these types of errors you may wish to use the `name` property instead.
     */
    displayName?: string;
    /**
     * Only retrieve Policy Definitions from this Management Group.
     */
    managementGroupName?: string;
    /**
     * Specifies the name of the Policy Definition. Conflicts with `displayName`.
     */
    name?: string;
}
/**
 * A collection of values returned by getPolicyDefintion.
 */
export interface GetPolicyDefintionResult {
    /**
     * The Description of the Policy.
     */
    readonly description: string;
    readonly displayName: string;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    readonly managementGroupName?: string;
    /**
     * Any Metadata defined in the Policy.
     */
    readonly metadata: string;
    /**
     * The Mode of the Policy.
     */
    readonly mode: string;
    readonly name: string;
    /**
     * Any Parameters defined in the Policy.
     */
    readonly parameters: string;
    /**
     * The Rule as defined (in JSON) in the Policy.
     */
    readonly policyRule: string;
    /**
     * The Type of the Policy. Possible values are `BuiltIn`, `Custom` and `NotSpecified`.
     */
    readonly policyType: string;
    /**
     * A list of role definition id extracted from `policyRule` required for remediation.
     */
    readonly roleDefinitionIds: string[];
    /**
     * The Type of Policy.
     */
    readonly type: string;
}
/**
 * Use this data source to access information about a Policy Definition, both custom and built in. Retrieves Policy Definitions from your current subscription by default.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 *
 * const example = azure.policy.getPolicyDefintion({
 *     displayName: "Allowed resource types",
 * });
 * export const id = example.then(example => example.id);
 * ```
 */
export declare function getPolicyDefintionOutput(args?: GetPolicyDefintionOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetPolicyDefintionResult>;
/**
 * A collection of arguments for invoking getPolicyDefintion.
 */
export interface GetPolicyDefintionOutputArgs {
    /**
     * Specifies the display name of the Policy Definition. Conflicts with `name`.
     *
     * > **Note:** Looking up policies by `displayName` is not recommended by the Azure Policy team as the property is not unique nor immutable. As such errors may occur when there are multiple policy definitions with same display name or the display name is changed. To avoid these types of errors you may wish to use the `name` property instead.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * Only retrieve Policy Definitions from this Management Group.
     */
    managementGroupName?: pulumi.Input<string | undefined>;
    /**
     * Specifies the name of the Policy Definition. Conflicts with `displayName`.
     */
    name?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=getPolicyDefintion.d.ts.map