import * as core from "@terrascript/core";
export interface FirewallRuleArgs extends core.ResourceArgs {
    /**
     * (Required) The action that DNS Firewall should take on a DNS query when it matches one of the domain
     * s in the rule's domain list. Valid values: `ALLOW`, `BLOCK`, `ALERT`.
     */
    action: string | core.StringOut;
    /**
     * (Required if `block_response` is `OVERRIDE`) The DNS record's type. This determines the format of th
     * e record value that you provided in BlockOverrideDomain. Value values: `CNAME`.
     */
    blockOverrideDnsType?: string | core.StringOut;
    /**
     * (Required if `block_response` is `OVERRIDE`) The custom DNS record to send back in response to the q
     * uery.
     */
    blockOverrideDomain?: string | core.StringOut;
    /**
     * (Required if `block_response` is `OVERRIDE`) The recommended amount of time, in seconds, for the DNS
     * resolver or web browser to cache the provided override record. Minimum value of 0. Maximum value of
     * 604800.
     */
    blockOverrideTtl?: number | core.NumberOut;
    /**
     * (Required if `action` is `BLOCK`) The way that you want DNS Firewall to block the request. Valid val
     * ues: `NODATA`, `NXDOMAIN`, `OVERRIDE`.
     */
    blockResponse?: string | core.StringOut;
    /**
     * (Required) The ID of the domain list that you want to use in the rule.
     */
    firewallDomainListId: string | core.StringOut;
    /**
     * (Required) The unique identifier of the firewall rule group where you want to create the rule.
     */
    firewallRuleGroupId: string | core.StringOut;
    /**
     * (Required) A name that lets you identify the rule, to manage and use it.
     */
    name: string | core.StringOut;
    /**
     * (Required) The setting that determines the processing order of the rule in the rule group. DNS Firew
     * all processes the rules in a rule group by order of priority, starting from the lowest setting.
     */
    priority: number | core.NumberOut;
}
export declare class FirewallRule extends core.Resource<FirewallRuleArgs> {
    /**
     * (Required) The action that DNS Firewall should take on a DNS query when it matches one of the domain
     * s in the rule's domain list. Valid values: `ALLOW`, `BLOCK`, `ALERT`.
     */
    action: string | core.StringOut;
    /**
     * (Required if `block_response` is `OVERRIDE`) The DNS record's type. This determines the format of th
     * e record value that you provided in BlockOverrideDomain. Value values: `CNAME`.
     */
    blockOverrideDnsType?: string | core.StringOut;
    /**
     * (Required if `block_response` is `OVERRIDE`) The custom DNS record to send back in response to the q
     * uery.
     */
    blockOverrideDomain?: string | core.StringOut;
    /**
     * (Required if `block_response` is `OVERRIDE`) The recommended amount of time, in seconds, for the DNS
     * resolver or web browser to cache the provided override record. Minimum value of 0. Maximum value of
     * 604800.
     */
    blockOverrideTtl?: number | core.NumberOut;
    /**
     * (Required if `action` is `BLOCK`) The way that you want DNS Firewall to block the request. Valid val
     * ues: `NODATA`, `NXDOMAIN`, `OVERRIDE`.
     */
    blockResponse?: string | core.StringOut;
    /**
     * (Required) The ID of the domain list that you want to use in the rule.
     */
    firewallDomainListId: string | core.StringOut;
    /**
     * (Required) The unique identifier of the firewall rule group where you want to create the rule.
     */
    firewallRuleGroupId: string | core.StringOut;
    /**
     * The ID of the rule.
     */
    id: string | core.StringOut;
    /**
     * (Required) A name that lets you identify the rule, to manage and use it.
     */
    name: string | core.StringOut;
    /**
     * (Required) The setting that determines the processing order of the rule in the rule group. DNS Firew
     * all processes the rules in a rule group by order of priority, starting from the lowest setting.
     */
    priority: number | core.NumberOut;
    constructor(name: string, args?: FirewallRuleArgs);
    getNamespace(): string;
}
//# sourceMappingURL=firewall_rule.d.ts.map