import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
 * Manages a Alert Policy within Opsgenie.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as opsgenie from "@pulumi/opsgenie";
 *
 * const test = new opsgenie.Team("test", {
 *     name: "example team",
 *     description: "This team deals with all the things",
 * });
 * const testAlertPolicy = new opsgenie.AlertPolicy("test", {
 *     filters: [{}],
 *     name: "example policy",
 *     teamId: test.id,
 *     policyDescription: "This is sample policy",
 *     message: "{{message}}",
 *     timeRestrictions: [{
 *         type: "weekday-and-time-of-day",
 *         restrictionList: [
 *             {
 *                 endDay: "monday",
 *                 endHour: 7,
 *                 endMin: 0,
 *                 startDay: "sunday",
 *                 startHour: 21,
 *                 startMin: 0,
 *             },
 *             {
 *                 endDay: "tuesday",
 *                 endHour: 7,
 *                 endMin: 0,
 *                 startDay: "monday",
 *                 startHour: 22,
 *                 startMin: 0,
 *             },
 *         ],
 *     }],
 * });
 * ```
 *
 * ## Import
 *
 * Alert policies can be imported using the `team_id/policy_id`, e.g.
 *
 * `$ terraform import opsgenie_notification_policy.test team_id/policy_id`
 *
 * You can import global polices using only policy identifier
 *
 * `$ terraform import opsgenie_alert_policy.test policyId`
 */
export declare class AlertPolicy extends pulumi.CustomResource {
    /**
     * Get an existing AlertPolicy 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?: AlertPolicyState, opts?: pulumi.CustomResourceOptions): AlertPolicy;
    /**
     * Returns true if the given object is an instance of AlertPolicy.  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 AlertPolicy;
    /**
     * Actions to add to the alerts original actions value as a list of strings. If `ignoreOriginalActions` field is set to `true`, this will replace the original actions.
     */
    readonly actions: pulumi.Output<string[] | undefined>;
    /**
     * Description of the alert. You can use `{{description}}` to refer to the original alert description. Default: `{{description}}`
     */
    readonly alertDescription: pulumi.Output<string | undefined>;
    /**
     * Alias of the alert. You can use `{{alias}}` to refer to the original alias. Default: `{{alias}}`
     */
    readonly alias: pulumi.Output<string | undefined>;
    /**
     * It will trigger other modify policies if set to `true`. Default: `false`
     */
    readonly continuePolicy: pulumi.Output<boolean | undefined>;
    /**
     * If policy should be enabled. Default: `true`
     */
    readonly enabled: pulumi.Output<boolean | undefined>;
    /**
     * Entity field of the alert. You can use `{{entity}}` to refer to the original entity. Default: `{{entity}}`
     */
    readonly entity: pulumi.Output<string | undefined>;
    /**
     * A alert filter which will be applied. This filter can be empty: `filter {}` - this means `match-all`. This is a block, structure is documented below.
     */
    readonly filters: pulumi.Output<outputs.AlertPolicyFilter[] | undefined>;
    /**
     * If set to `true`, policy will ignore the original actions of the alert. Default: `false`
     */
    readonly ignoreOriginalActions: pulumi.Output<boolean | undefined>;
    /**
     * If set to `true`, policy will ignore the original details of the alert. Default: `false`
     */
    readonly ignoreOriginalDetails: pulumi.Output<boolean | undefined>;
    /**
     * If set to `true`, policy will ignore the original responders of the alert. Default: `false`
     */
    readonly ignoreOriginalResponders: pulumi.Output<boolean | undefined>;
    /**
     * If set to `true`, policy will ignore the original tags of the alert. Default: `false`
     */
    readonly ignoreOriginalTags: pulumi.Output<boolean | undefined>;
    /**
     * Message of the alerts
     */
    readonly message: pulumi.Output<string>;
    /**
     * Name of the alert policy
     */
    readonly name: pulumi.Output<string>;
    /**
     * Description of the policy. This can be max 512 characters.
     */
    readonly policyDescription: pulumi.Output<string | undefined>;
    /**
     * Priority of the alert. Should be one of `P1`, `P2`, `P3`, `P4`, or `P5`
     */
    readonly priority: pulumi.Output<string | undefined>;
    /**
     * Responders to add to the alerts original responders value as a list of teams, users or the reserved word none or all. If `ignoreOriginalResponders` field is set to `true`, this will replace the original responders. The possible values for responders are: `user`, `team`, `escalation`, `schedule`. This is a block, structure is documented below.
     */
    readonly responders: pulumi.Output<outputs.AlertPolicyResponder[] | undefined>;
    /**
     * Source field of the alert. You can use `{{source}}` to refer to the original source. Default: `{{source}}`
     */
    readonly source: pulumi.Output<string | undefined>;
    /**
     * Tags to add to the alerts original tags value as a list of strings. If `ignoreOriginalResponders` field is set to `true`, this will replace the original responders.
     */
    readonly tags: pulumi.Output<string[] | undefined>;
    /**
     * Id of team that this policy belongs to.
     */
    readonly teamId: pulumi.Output<string | undefined>;
    /**
     * Time restrictions specified in this field must be met for this policy to work. This is a block, structure is documented below.
     */
    readonly timeRestrictions: pulumi.Output<outputs.AlertPolicyTimeRestriction[] | undefined>;
    /**
     * Create a AlertPolicy 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: AlertPolicyArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering AlertPolicy resources.
 */
export interface AlertPolicyState {
    /**
     * Actions to add to the alerts original actions value as a list of strings. If `ignoreOriginalActions` field is set to `true`, this will replace the original actions.
     */
    actions?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Description of the alert. You can use `{{description}}` to refer to the original alert description. Default: `{{description}}`
     */
    alertDescription?: pulumi.Input<string | undefined>;
    /**
     * Alias of the alert. You can use `{{alias}}` to refer to the original alias. Default: `{{alias}}`
     */
    alias?: pulumi.Input<string | undefined>;
    /**
     * It will trigger other modify policies if set to `true`. Default: `false`
     */
    continuePolicy?: pulumi.Input<boolean | undefined>;
    /**
     * If policy should be enabled. Default: `true`
     */
    enabled?: pulumi.Input<boolean | undefined>;
    /**
     * Entity field of the alert. You can use `{{entity}}` to refer to the original entity. Default: `{{entity}}`
     */
    entity?: pulumi.Input<string | undefined>;
    /**
     * A alert filter which will be applied. This filter can be empty: `filter {}` - this means `match-all`. This is a block, structure is documented below.
     */
    filters?: pulumi.Input<pulumi.Input<inputs.AlertPolicyFilter>[] | undefined>;
    /**
     * If set to `true`, policy will ignore the original actions of the alert. Default: `false`
     */
    ignoreOriginalActions?: pulumi.Input<boolean | undefined>;
    /**
     * If set to `true`, policy will ignore the original details of the alert. Default: `false`
     */
    ignoreOriginalDetails?: pulumi.Input<boolean | undefined>;
    /**
     * If set to `true`, policy will ignore the original responders of the alert. Default: `false`
     */
    ignoreOriginalResponders?: pulumi.Input<boolean | undefined>;
    /**
     * If set to `true`, policy will ignore the original tags of the alert. Default: `false`
     */
    ignoreOriginalTags?: pulumi.Input<boolean | undefined>;
    /**
     * Message of the alerts
     */
    message?: pulumi.Input<string | undefined>;
    /**
     * Name of the alert policy
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Description of the policy. This can be max 512 characters.
     */
    policyDescription?: pulumi.Input<string | undefined>;
    /**
     * Priority of the alert. Should be one of `P1`, `P2`, `P3`, `P4`, or `P5`
     */
    priority?: pulumi.Input<string | undefined>;
    /**
     * Responders to add to the alerts original responders value as a list of teams, users or the reserved word none or all. If `ignoreOriginalResponders` field is set to `true`, this will replace the original responders. The possible values for responders are: `user`, `team`, `escalation`, `schedule`. This is a block, structure is documented below.
     */
    responders?: pulumi.Input<pulumi.Input<inputs.AlertPolicyResponder>[] | undefined>;
    /**
     * Source field of the alert. You can use `{{source}}` to refer to the original source. Default: `{{source}}`
     */
    source?: pulumi.Input<string | undefined>;
    /**
     * Tags to add to the alerts original tags value as a list of strings. If `ignoreOriginalResponders` field is set to `true`, this will replace the original responders.
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Id of team that this policy belongs to.
     */
    teamId?: pulumi.Input<string | undefined>;
    /**
     * Time restrictions specified in this field must be met for this policy to work. This is a block, structure is documented below.
     */
    timeRestrictions?: pulumi.Input<pulumi.Input<inputs.AlertPolicyTimeRestriction>[] | undefined>;
}
/**
 * The set of arguments for constructing a AlertPolicy resource.
 */
export interface AlertPolicyArgs {
    /**
     * Actions to add to the alerts original actions value as a list of strings. If `ignoreOriginalActions` field is set to `true`, this will replace the original actions.
     */
    actions?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Description of the alert. You can use `{{description}}` to refer to the original alert description. Default: `{{description}}`
     */
    alertDescription?: pulumi.Input<string | undefined>;
    /**
     * Alias of the alert. You can use `{{alias}}` to refer to the original alias. Default: `{{alias}}`
     */
    alias?: pulumi.Input<string | undefined>;
    /**
     * It will trigger other modify policies if set to `true`. Default: `false`
     */
    continuePolicy?: pulumi.Input<boolean | undefined>;
    /**
     * If policy should be enabled. Default: `true`
     */
    enabled?: pulumi.Input<boolean | undefined>;
    /**
     * Entity field of the alert. You can use `{{entity}}` to refer to the original entity. Default: `{{entity}}`
     */
    entity?: pulumi.Input<string | undefined>;
    /**
     * A alert filter which will be applied. This filter can be empty: `filter {}` - this means `match-all`. This is a block, structure is documented below.
     */
    filters?: pulumi.Input<pulumi.Input<inputs.AlertPolicyFilter>[] | undefined>;
    /**
     * If set to `true`, policy will ignore the original actions of the alert. Default: `false`
     */
    ignoreOriginalActions?: pulumi.Input<boolean | undefined>;
    /**
     * If set to `true`, policy will ignore the original details of the alert. Default: `false`
     */
    ignoreOriginalDetails?: pulumi.Input<boolean | undefined>;
    /**
     * If set to `true`, policy will ignore the original responders of the alert. Default: `false`
     */
    ignoreOriginalResponders?: pulumi.Input<boolean | undefined>;
    /**
     * If set to `true`, policy will ignore the original tags of the alert. Default: `false`
     */
    ignoreOriginalTags?: pulumi.Input<boolean | undefined>;
    /**
     * Message of the alerts
     */
    message: pulumi.Input<string>;
    /**
     * Name of the alert policy
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Description of the policy. This can be max 512 characters.
     */
    policyDescription?: pulumi.Input<string | undefined>;
    /**
     * Priority of the alert. Should be one of `P1`, `P2`, `P3`, `P4`, or `P5`
     */
    priority?: pulumi.Input<string | undefined>;
    /**
     * Responders to add to the alerts original responders value as a list of teams, users or the reserved word none or all. If `ignoreOriginalResponders` field is set to `true`, this will replace the original responders. The possible values for responders are: `user`, `team`, `escalation`, `schedule`. This is a block, structure is documented below.
     */
    responders?: pulumi.Input<pulumi.Input<inputs.AlertPolicyResponder>[] | undefined>;
    /**
     * Source field of the alert. You can use `{{source}}` to refer to the original source. Default: `{{source}}`
     */
    source?: pulumi.Input<string | undefined>;
    /**
     * Tags to add to the alerts original tags value as a list of strings. If `ignoreOriginalResponders` field is set to `true`, this will replace the original responders.
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Id of team that this policy belongs to.
     */
    teamId?: pulumi.Input<string | undefined>;
    /**
     * Time restrictions specified in this field must be met for this policy to work. This is a block, structure is documented below.
     */
    timeRestrictions?: pulumi.Input<pulumi.Input<inputs.AlertPolicyTimeRestriction>[] | undefined>;
}
//# sourceMappingURL=alertPolicy.d.ts.map