import * as pulumi from "@pulumi/pulumi"; /** * Manages a Management Group Policy Exemption. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const exampleGroup = new azure.management.Group("example", {displayName: "Example MgmtGroup"}); * const example = azure.policy.getPolicySetDefinition({ * displayName: "Audit machines with insecure password security settings", * }); * const exampleGroupPolicyAssignment = new azure.management.GroupPolicyAssignment("example", { * name: "assignment1", * managementGroupId: exampleGroup.id, * policyDefinitionId: example.then(example => example.id), * location: "westus", * identity: { * type: "SystemAssigned", * }, * }); * const exampleGroupPolicyExemption = new azure.management.GroupPolicyExemption("example", { * name: "exemption1", * managementGroupId: exampleGroup.id, * policyAssignmentId: exampleGroupPolicyAssignment.id, * exemptionCategory: "Mitigated", * }); * ``` * * ## Import * * Policy Exemptions can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:management/groupPolicyExemption:GroupPolicyExemption exemption1 /providers/Microsoft.Management/managementGroups/group1/providers/Microsoft.Authorization/policyExemptions/exemption1 * ``` */ export declare class GroupPolicyExemption extends pulumi.CustomResource { /** * Get an existing GroupPolicyExemption 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, state?: GroupPolicyExemptionState, opts?: pulumi.CustomResourceOptions): GroupPolicyExemption; /** * Returns true if the given object is an instance of GroupPolicyExemption. 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 GroupPolicyExemption; /** * A description to use for this Policy Exemption. */ readonly description: pulumi.Output; /** * A friendly display name to use for this Policy Exemption. */ readonly displayName: pulumi.Output; /** * The category of this policy exemption. Possible values are `Waiver` and `Mitigated`. */ readonly exemptionCategory: pulumi.Output; /** * The expiration date and time in UTC ISO 8601 format of this policy exemption. */ readonly expiresOn: pulumi.Output; /** * The Management Group ID where the Policy Exemption should be applied. Changing this forces a new resource to be created. */ readonly managementGroupId: pulumi.Output; /** * The metadata for this policy exemption. This is a JSON string representing additional metadata that should be stored with the policy exemption. */ readonly metadata: pulumi.Output; /** * The name of the Policy Exemption. Changing this forces a new resource to be created. */ readonly name: pulumi.Output; /** * The ID of the Policy Assignment to be exempted at the specified Scope. */ readonly policyAssignmentId: pulumi.Output; /** * The policy definition reference ID list when the associated policy assignment is an assignment of a policy set definition. */ readonly policyDefinitionReferenceIds: pulumi.Output; /** * Create a GroupPolicyExemption 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: GroupPolicyExemptionArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering GroupPolicyExemption resources. */ export interface GroupPolicyExemptionState { /** * A description to use for this Policy Exemption. */ description?: pulumi.Input; /** * A friendly display name to use for this Policy Exemption. */ displayName?: pulumi.Input; /** * The category of this policy exemption. Possible values are `Waiver` and `Mitigated`. */ exemptionCategory?: pulumi.Input; /** * The expiration date and time in UTC ISO 8601 format of this policy exemption. */ expiresOn?: pulumi.Input; /** * The Management Group ID where the Policy Exemption should be applied. Changing this forces a new resource to be created. */ managementGroupId?: pulumi.Input; /** * The metadata for this policy exemption. This is a JSON string representing additional metadata that should be stored with the policy exemption. */ metadata?: pulumi.Input; /** * The name of the Policy Exemption. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * The ID of the Policy Assignment to be exempted at the specified Scope. */ policyAssignmentId?: pulumi.Input; /** * The policy definition reference ID list when the associated policy assignment is an assignment of a policy set definition. */ policyDefinitionReferenceIds?: pulumi.Input[]>; } /** * The set of arguments for constructing a GroupPolicyExemption resource. */ export interface GroupPolicyExemptionArgs { /** * A description to use for this Policy Exemption. */ description?: pulumi.Input; /** * A friendly display name to use for this Policy Exemption. */ displayName?: pulumi.Input; /** * The category of this policy exemption. Possible values are `Waiver` and `Mitigated`. */ exemptionCategory: pulumi.Input; /** * The expiration date and time in UTC ISO 8601 format of this policy exemption. */ expiresOn?: pulumi.Input; /** * The Management Group ID where the Policy Exemption should be applied. Changing this forces a new resource to be created. */ managementGroupId: pulumi.Input; /** * The metadata for this policy exemption. This is a JSON string representing additional metadata that should be stored with the policy exemption. */ metadata?: pulumi.Input; /** * The name of the Policy Exemption. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * The ID of the Policy Assignment to be exempted at the specified Scope. */ policyAssignmentId: pulumi.Input; /** * The policy definition reference ID list when the associated policy assignment is an assignment of a policy set definition. */ policyDefinitionReferenceIds?: pulumi.Input[]>; }