import * as pulumi from "@pulumi/pulumi";
/**
 * Manages an Azure Management Group Policy Remediation.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 *
 * const exampleGroup = new azure.management.Group("example", {displayName: "Example Management Group"});
 * const example = azure.policy.getPolicyDefintion({
 *     displayName: "Allowed locations",
 * });
 * const exampleGroupPolicyAssignment = new azure.management.GroupPolicyAssignment("example", {
 *     name: "exampleAssignment",
 *     managementGroupId: exampleGroup.id,
 *     policyDefinitionId: example.then(example => example.id),
 *     parameters: JSON.stringify({
 *         listOfAllowedLocations: {
 *             value: ["East US"],
 *         },
 *     }),
 * });
 * const exampleGroupPolicyRemediation = new azure.management.GroupPolicyRemediation("example", {
 *     name: "example",
 *     managementGroupId: exampleGroup.id,
 *     policyAssignmentId: exampleGroupPolicyAssignment.id,
 * });
 * ```
 *
 * ## API Providers
 *
 * <!-- This section is generated, changes will be overwritten -->
 * This resource uses the following Azure API Providers:
 *
 * * `Microsoft.Management` - 2021-10-01
 *
 * ## Import
 *
 * Policy Remediations can be imported using the `resource id`, e.g.
 *
 * ```sh
 * $ pulumi import azure:management/groupPolicyRemediation:GroupPolicyRemediation example /providers/Microsoft.Management/managementGroups/my-mgmt-group-id/providers/Microsoft.PolicyInsights/remediations/remediation1
 * ```
 */
export declare class GroupPolicyRemediation extends pulumi.CustomResource {
    /**
     * Get an existing GroupPolicyRemediation 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 state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: GroupPolicyRemediationState, opts?: pulumi.CustomResourceOptions): GroupPolicyRemediation;
    /**
     * Returns true if the given object is an instance of GroupPolicyRemediation.  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 GroupPolicyRemediation;
    /**
     * The percentage failure threshold. Possible values range between `0.0` and `1.0`. The remediation will fail if the percentage of failed remediation operations (i.e. failed deployments) exceeds this threshold.
     */
    readonly failurePercentage: pulumi.Output<number | undefined>;
    /**
     * A list of the resource locations that will be remediated.
     */
    readonly locationFilters: pulumi.Output<string[] | undefined>;
    /**
     * The Management Group ID at which the Policy Remediation should be applied. Changing this forces a new resource to be created.
     */
    readonly managementGroupId: pulumi.Output<string>;
    /**
     * The name of the Policy Remediation. Changing this forces a new resource to be created.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Determines how many resources to remediate at any given time. Can be used to increase or reduce the pace of the remediation. If not provided, the default parallel deployments value is used.
     */
    readonly parallelDeployments: pulumi.Output<number | undefined>;
    /**
     * The ID of the Policy Assignment that should be remediated.
     */
    readonly policyAssignmentId: pulumi.Output<string>;
    /**
     * The unique ID for the policy definition reference within the policy set definition that should be remediated. Required when the policy assignment being remediated assigns a policy set definition.
     */
    readonly policyDefinitionReferenceId: pulumi.Output<string | undefined>;
    /**
     * Determines the max number of resources that can be remediated by the remediation job. If not provided, the default resource count is used.
     */
    readonly resourceCount: pulumi.Output<number | undefined>;
    /**
     * Create a GroupPolicyRemediation 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: GroupPolicyRemediationArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering GroupPolicyRemediation resources.
 */
export interface GroupPolicyRemediationState {
    /**
     * The percentage failure threshold. Possible values range between `0.0` and `1.0`. The remediation will fail if the percentage of failed remediation operations (i.e. failed deployments) exceeds this threshold.
     */
    failurePercentage?: pulumi.Input<number | undefined>;
    /**
     * A list of the resource locations that will be remediated.
     */
    locationFilters?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The Management Group ID at which the Policy Remediation should be applied. Changing this forces a new resource to be created.
     */
    managementGroupId?: pulumi.Input<string | undefined>;
    /**
     * The name of the Policy Remediation. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Determines how many resources to remediate at any given time. Can be used to increase or reduce the pace of the remediation. If not provided, the default parallel deployments value is used.
     */
    parallelDeployments?: pulumi.Input<number | undefined>;
    /**
     * The ID of the Policy Assignment that should be remediated.
     */
    policyAssignmentId?: pulumi.Input<string | undefined>;
    /**
     * The unique ID for the policy definition reference within the policy set definition that should be remediated. Required when the policy assignment being remediated assigns a policy set definition.
     */
    policyDefinitionReferenceId?: pulumi.Input<string | undefined>;
    /**
     * Determines the max number of resources that can be remediated by the remediation job. If not provided, the default resource count is used.
     */
    resourceCount?: pulumi.Input<number | undefined>;
}
/**
 * The set of arguments for constructing a GroupPolicyRemediation resource.
 */
export interface GroupPolicyRemediationArgs {
    /**
     * The percentage failure threshold. Possible values range between `0.0` and `1.0`. The remediation will fail if the percentage of failed remediation operations (i.e. failed deployments) exceeds this threshold.
     */
    failurePercentage?: pulumi.Input<number | undefined>;
    /**
     * A list of the resource locations that will be remediated.
     */
    locationFilters?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The Management Group ID at which the Policy Remediation should be applied. Changing this forces a new resource to be created.
     */
    managementGroupId: pulumi.Input<string>;
    /**
     * The name of the Policy Remediation. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Determines how many resources to remediate at any given time. Can be used to increase or reduce the pace of the remediation. If not provided, the default parallel deployments value is used.
     */
    parallelDeployments?: pulumi.Input<number | undefined>;
    /**
     * The ID of the Policy Assignment that should be remediated.
     */
    policyAssignmentId: pulumi.Input<string>;
    /**
     * The unique ID for the policy definition reference within the policy set definition that should be remediated. Required when the policy assignment being remediated assigns a policy set definition.
     */
    policyDefinitionReferenceId?: pulumi.Input<string | undefined>;
    /**
     * Determines the max number of resources that can be remediated by the remediation job. If not provided, the default resource count is used.
     */
    resourceCount?: pulumi.Input<number | undefined>;
}
//# sourceMappingURL=groupPolicyRemediation.d.ts.map