import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
* > `cloudflare.FirewallRule` is in a deprecation phase until June 15th, 2025.
* During this time period, this resource is still
* fully supported but you are strongly advised to move to the
* `cloudflare.Ruleset` resource. Full details can be found in the
* developer documentation.
*
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as cloudflare from "@pulumi/cloudflare";
*
* const exampleFirewallRule = new cloudflare.FirewallRule("example_firewall_rule", {
* zoneId: "023e105f4ecef8ad9ca31a8372d0c353",
* action: {
* mode: "challenge",
* response: {
* body: "This request has been rate-limited.",
* contentType: "text/xml",
* },
* timeout: 86400,
* },
* filter: {
* description: "Restrict access from these browsers on this address range.",
* expression: "(http.request.uri.path ~ \".*wp-login.php\" or http.request.uri.path ~ \".*xmlrpc.php\") and ip.addr ne 172.16.22.155",
* paused: false,
* ref: "FIL-100",
* },
* });
* ```
*
* ## Import
*
* ```sh
* $ pulumi import cloudflare:index/firewallRule:FirewallRule example '/'
* ```
*/
export declare class FirewallRule extends pulumi.CustomResource {
/**
* Get an existing FirewallRule 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?: FirewallRuleState, opts?: pulumi.CustomResourceOptions): FirewallRule;
/**
* Returns true if the given object is an instance of FirewallRule. 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 FirewallRule;
/**
* The action to perform when the threshold of matched traffic within the configured period is exceeded.
*/
readonly action: pulumi.Output;
/**
* An informative summary of the firewall rule.
*/
readonly description: pulumi.Output;
readonly filter: pulumi.Output;
/**
* When true, indicates that the firewall rule is currently paused.
*/
readonly paused: pulumi.Output;
/**
* The priority of the rule. Optional value used to define the processing order. A lower number indicates a higher priority. If not provided, rules with a defined priority will be processed before rules without a priority.
*/
readonly priority: pulumi.Output;
readonly products: pulumi.Output;
/**
* A short reference tag. Allows you to select related firewall rules.
*/
readonly ref: pulumi.Output;
/**
* Defines an identifier.
*/
readonly zoneId: pulumi.Output;
/**
* Create a FirewallRule 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: FirewallRuleArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering FirewallRule resources.
*/
export interface FirewallRuleState {
/**
* The action to perform when the threshold of matched traffic within the configured period is exceeded.
*/
action?: pulumi.Input;
/**
* An informative summary of the firewall rule.
*/
description?: pulumi.Input;
filter?: pulumi.Input;
/**
* When true, indicates that the firewall rule is currently paused.
*/
paused?: pulumi.Input;
/**
* The priority of the rule. Optional value used to define the processing order. A lower number indicates a higher priority. If not provided, rules with a defined priority will be processed before rules without a priority.
*/
priority?: pulumi.Input;
products?: pulumi.Input[]>;
/**
* A short reference tag. Allows you to select related firewall rules.
*/
ref?: pulumi.Input;
/**
* Defines an identifier.
*/
zoneId?: pulumi.Input;
}
/**
* The set of arguments for constructing a FirewallRule resource.
*/
export interface FirewallRuleArgs {
/**
* The action to perform when the threshold of matched traffic within the configured period is exceeded.
*/
action: pulumi.Input;
filter: pulumi.Input;
/**
* Defines an identifier.
*/
zoneId: pulumi.Input;
}