import * as pulumi from "@pulumi/pulumi";
import * as outputs from "../types/output";
/**
 * This data source provides details about a specific Web App Firewall Policy resource in Oracle Cloud Infrastructure Waf service.
 *
 * Gets a WebAppFirewallPolicy with the given OCID.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testWebAppFirewallPolicy = oci.waf.getWebAppFirewallPolicy({
 *     webAppFirewallPolicyId: testWebAppFirewallPolicyOciWafWebAppFirewallPolicy.id,
 * });
 * ```
 */
export declare function getWebAppFirewallPolicy(args: GetWebAppFirewallPolicyArgs, opts?: pulumi.InvokeOptions): Promise<GetWebAppFirewallPolicyResult>;
/**
 * A collection of arguments for invoking getWebAppFirewallPolicy.
 */
export interface GetWebAppFirewallPolicyArgs {
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the WebAppFirewallPolicy.
     */
    webAppFirewallPolicyId: string;
}
/**
 * A collection of values returned by getWebAppFirewallPolicy.
 */
export interface GetWebAppFirewallPolicyResult {
    /**
     * Predefined actions for use in multiple different rules. Not all actions are supported in every module. Some actions terminate further execution of modules and rules in a module and some do not. Actions names must be unique within this array.
     */
    readonly actions: outputs.Waf.GetWebAppFirewallPolicyAction[];
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
     */
    readonly compartmentId: string;
    /**
     * Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    readonly definedTags: {
        [key: string]: string;
    };
    /**
     * WebAppFirewallPolicy display name, can be renamed.
     */
    readonly displayName: string;
    /**
     * Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    readonly freeformTags: {
        [key: string]: string;
    };
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the WebAppFirewallPolicy.
     */
    readonly id: string;
    /**
     * A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in FAILED state.
     */
    readonly lifecycleDetails: string;
    /**
     * Module that allows inspection of HTTP request properties and to return a defined HTTP response. In this module, rules with the name 'Default Action' are not allowed, since this name is reserved for default action logs.
     */
    readonly requestAccessControls: outputs.Waf.GetWebAppFirewallPolicyRequestAccessControl[];
    /**
     * Module that allows to enable OCI-managed protection capabilities for incoming HTTP requests.
     */
    readonly requestProtections: outputs.Waf.GetWebAppFirewallPolicyRequestProtection[];
    /**
     * Module that allows inspection of HTTP connection properties and to limit requests frequency for a given key.
     */
    readonly requestRateLimitings: outputs.Waf.GetWebAppFirewallPolicyRequestRateLimiting[];
    /**
     * Module that allows inspection of HTTP response properties and to return a defined HTTP response.
     */
    readonly responseAccessControls: outputs.Waf.GetWebAppFirewallPolicyResponseAccessControl[];
    /**
     * Module that allows to enable OCI-managed protection capabilities for HTTP responses.
     */
    readonly responseProtections: outputs.Waf.GetWebAppFirewallPolicyResponseProtection[];
    /**
     * The current state of the WebAppFirewallPolicy.
     */
    readonly state: string;
    /**
     * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    readonly systemTags: {
        [key: string]: string;
    };
    /**
     * The time the WebAppFirewallPolicy was created. An RFC3339 formatted datetime string.
     */
    readonly timeCreated: string;
    /**
     * The time the WebAppFirewallPolicy was updated. An RFC3339 formatted datetime string.
     */
    readonly timeUpdated: string;
    readonly webAppFirewallPolicyId: string;
}
/**
 * This data source provides details about a specific Web App Firewall Policy resource in Oracle Cloud Infrastructure Waf service.
 *
 * Gets a WebAppFirewallPolicy with the given OCID.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testWebAppFirewallPolicy = oci.waf.getWebAppFirewallPolicy({
 *     webAppFirewallPolicyId: testWebAppFirewallPolicyOciWafWebAppFirewallPolicy.id,
 * });
 * ```
 */
export declare function getWebAppFirewallPolicyOutput(args: GetWebAppFirewallPolicyOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetWebAppFirewallPolicyResult>;
/**
 * A collection of arguments for invoking getWebAppFirewallPolicy.
 */
export interface GetWebAppFirewallPolicyOutputArgs {
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the WebAppFirewallPolicy.
     */
    webAppFirewallPolicyId: pulumi.Input<string>;
}
//# sourceMappingURL=getWebAppFirewallPolicy.d.ts.map