import * as pulumi from "@pulumi/pulumi";
import * as outputs from "../types/output";
/**
 * This data source provides details about a specific Protection Rule resource in Oracle Cloud Infrastructure Web Application Acceleration and Security service.
 *
 * Gets the details of a protection rule in the Web Application Firewall configuration for a WAAS policy.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testProtectionRule = oci.waas.getProtectionRule({
 *     protectionRuleKey: protectionRuleProtectionRuleKey,
 *     waasPolicyId: testWaasPolicy.id,
 * });
 * ```
 */
export declare function getProtectionRule(args: GetProtectionRuleArgs, opts?: pulumi.InvokeOptions): Promise<GetProtectionRuleResult>;
/**
 * A collection of arguments for invoking getProtectionRule.
 */
export interface GetProtectionRuleArgs {
    /**
     * The protection rule key.
     */
    protectionRuleKey: string;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the WAAS policy.
     */
    waasPolicyId: string;
}
/**
 * A collection of values returned by getProtectionRule.
 */
export interface GetProtectionRuleResult {
    /**
     * The action to take when the traffic is detected as malicious. If unspecified, defaults to `OFF`.
     */
    readonly action: string;
    /**
     * The description of the protection rule.
     */
    readonly description: string;
    /**
     * An array of The target property of a request that would allow it to bypass the protection rule. For example, when `target` is `REQUEST_COOKIE_NAMES`, the list may include names of cookies to exclude from the protection rule. When the target is `ARGS`, the list may include strings of URL query parameters and values from form-urlencoded XML, JSON, AMP, or POST payloads to exclude from the protection rule. `Exclusions` properties must not contain whitespace, comma or |. **Note:** If protection rules have been enabled that utilize the `maxArgumentCount` or `maxTotalNameLengthOfArguments` properties, and the `target` property has been set to `ARGS`, it is important that the `exclusions` properties be defined to honor those protection rule settings in a consistent manner.
     */
    readonly exclusions: outputs.Waas.GetProtectionRuleExclusion[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * The unique key of the protection rule.
     */
    readonly key: string;
    /**
     * The list of labels for the protection rule.
     */
    readonly labels: string[];
    /**
     * The list of the ModSecurity rule IDs that apply to this protection rule. For more information about ModSecurity's open source WAF rules, see [Mod Security's documentation](https://www.modsecurity.org/CRS/Documentation/index.html).
     */
    readonly modSecurityRuleIds: string[];
    /**
     * The name of the protection rule.
     */
    readonly name: string;
    readonly protectionRuleKey: string;
    readonly waasPolicyId: string;
}
/**
 * This data source provides details about a specific Protection Rule resource in Oracle Cloud Infrastructure Web Application Acceleration and Security service.
 *
 * Gets the details of a protection rule in the Web Application Firewall configuration for a WAAS policy.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testProtectionRule = oci.waas.getProtectionRule({
 *     protectionRuleKey: protectionRuleProtectionRuleKey,
 *     waasPolicyId: testWaasPolicy.id,
 * });
 * ```
 */
export declare function getProtectionRuleOutput(args: GetProtectionRuleOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetProtectionRuleResult>;
/**
 * A collection of arguments for invoking getProtectionRule.
 */
export interface GetProtectionRuleOutputArgs {
    /**
     * The protection rule key.
     */
    protectionRuleKey: pulumi.Input<string>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the WAAS policy.
     */
    waasPolicyId: pulumi.Input<string>;
}
//# sourceMappingURL=getProtectionRule.d.ts.map