import * as pulumi from "@pulumi/pulumi";
/**
 * Manages an Azure Resource Group Policy Remediation.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 *
 * const example = new azure.core.ResourceGroup("example", {
 *     name: "example-resources",
 *     location: "West Europe",
 * });
 * const exampleDefinition = new azure.policy.Definition("example", {
 *     name: "my-policy-definition",
 *     policyType: "Custom",
 *     mode: "All",
 *     displayName: "my-policy-definition",
 *     policyRule: `    {
 *     "if": {
 *       "not": {
 *         "field": "location",
 *         "in": "[parameters('allowedLocations')]"
 *       }
 *     },
 *     "then": {
 *       "effect": "audit"
 *     }
 *   }
 * `,
 *     parameters: `    {
 *     \\"allowedLocations\\": {
 *       \\"type\\": \\"Array\\",
 *       \\"metadata\\": {
 *         \\"description\\": \\"The list of allowed locations for resources.\\",
 *         \\"displayName\\": \\"Allowed locations\\",
 *         \\"strongType\\": \\"location\\"
 *       }
 *     }
 *   }
 * `,
 * });
 * const exampleResourceGroupPolicyAssignment = new azure.core.ResourceGroupPolicyAssignment("example", {
 *     name: "example",
 *     resourceGroupId: example.id,
 *     policyDefinitionId: exampleDefinition.id,
 * });
 * const exampleResourceGroupPolicyRemediation = new azure.core.ResourceGroupPolicyRemediation("example", {
 *     name: "example-policy-remediation",
 *     resourceGroupId: example.id,
 *     policyAssignmentId: exampleResourceGroupPolicyAssignment.id,
 *     locationFilters: ["West Europe"],
 * });
 * ```
 *
 * ## API Providers
 *
 * <!-- This section is generated, changes will be overwritten -->
 * This resource uses the following Azure API Providers:
 *
 * * `Microsoft.PolicyInsights` - 2021-10-01
 *
 * ## Import
 *
 * Policy Remediations can be imported using the `resource id`, e.g.
 *
 * ```sh
 * $ pulumi import azure:core/resourceGroupPolicyRemediation:ResourceGroupPolicyRemediation example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.PolicyInsights/remediations/remediation1
 * ```
 */
export declare class ResourceGroupPolicyRemediation extends pulumi.CustomResource {
    /**
     * Get an existing ResourceGroupPolicyRemediation 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?: ResourceGroupPolicyRemediationState, opts?: pulumi.CustomResourceOptions): ResourceGroupPolicyRemediation;
    /**
     * Returns true if the given object is an instance of ResourceGroupPolicyRemediation.  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 ResourceGroupPolicyRemediation;
    /**
     * A number between 0.0 to 1.0 representing the percentage failure threshold. 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 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>;
    /**
     * The way that resources to remediate are discovered. Possible values are `ExistingNonCompliant`, `ReEvaluateCompliance`. Defaults to `ExistingNonCompliant`.
     */
    readonly resourceDiscoveryMode: pulumi.Output<string | undefined>;
    /**
     * The Resource Group ID at which the Policy Remediation should be applied. Changing this forces a new resource to be created.
     */
    readonly resourceGroupId: pulumi.Output<string>;
    /**
     * Create a ResourceGroupPolicyRemediation 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: ResourceGroupPolicyRemediationArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering ResourceGroupPolicyRemediation resources.
 */
export interface ResourceGroupPolicyRemediationState {
    /**
     * A number between 0.0 to 1.0 representing the percentage failure threshold. 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 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 way that resources to remediate are discovered. Possible values are `ExistingNonCompliant`, `ReEvaluateCompliance`. Defaults to `ExistingNonCompliant`.
     */
    resourceDiscoveryMode?: pulumi.Input<string | undefined>;
    /**
     * The Resource Group ID at which the Policy Remediation should be applied. Changing this forces a new resource to be created.
     */
    resourceGroupId?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a ResourceGroupPolicyRemediation resource.
 */
export interface ResourceGroupPolicyRemediationArgs {
    /**
     * A number between 0.0 to 1.0 representing the percentage failure threshold. 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 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>;
    /**
     * The way that resources to remediate are discovered. Possible values are `ExistingNonCompliant`, `ReEvaluateCompliance`. Defaults to `ExistingNonCompliant`.
     */
    resourceDiscoveryMode?: pulumi.Input<string | undefined>;
    /**
     * The Resource Group ID at which the Policy Remediation should be applied. Changing this forces a new resource to be created.
     */
    resourceGroupId: pulumi.Input<string>;
}
//# sourceMappingURL=resourceGroupPolicyRemediation.d.ts.map