import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Provides a resource to manage waf cc rule
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@volcengine/pulumi";
 *
 * const foo = new volcengine.waf.CcRule("foo", {
 *     accurateGroup: {
 *         accurateRules: [
 *             {
 *                 httpObj: "request.uri",
 *                 objType: 1,
 *                 opretar: 2,
 *                 property: 0,
 *                 valueString: "tf",
 *             },
 *             {
 *                 httpObj: "request.schema",
 *                 objType: 0,
 *                 opretar: 2,
 *                 property: 0,
 *                 valueString: "tf-2",
 *             },
 *         ],
 *         logic: 2,
 *     },
 *     ccType: 1,
 *     countTime: 102,
 *     cronConfs: [
 *         {
 *             crontab: "* 0 * * 1,2,3,4,5,6,0",
 *             pathThreshold: 123,
 *             singleThreshold: 234,
 *         },
 *         {
 *             crontab: "* 3-8 * * 1,2,3,4,5,6,0",
 *             pathThreshold: 345,
 *             singleThreshold: 456,
 *         },
 *     ],
 *     cronEnable: 1,
 *     effectTime: 200,
 *     enable: 1,
 *     exemptionTime: 0,
 *     field: "HEADER:User-Agemnt",
 *     host: "www.tf-test.com",
 *     pathThreshold: 101,
 *     rulePriority: 2,
 *     singleThreshold: 100,
 *     url: "/",
 * });
 * ```
 *
 * ## Import
 *
 * WafCcRule can be imported using the id, e.g.
 *
 * ```sh
 * $ pulumi import volcengine:waf/ccRule:CcRule default resource_id:Host
 * ```
 */
export declare class CcRule extends pulumi.CustomResource {
    /**
     * Get an existing CcRule 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?: CcRuleState, opts?: pulumi.CustomResourceOptions): CcRule;
    /**
     * Returns true if the given object is an instance of CcRule.  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 CcRule;
    /**
     * Advanced conditions.
     */
    readonly accurateGroup: pulumi.Output<outputs.waf.CcRuleAccurateGroup | undefined>;
    /**
     * Whether to enable advanced conditions.
     */
    readonly advancedEnable: pulumi.Output<boolean | undefined>;
    /**
     * The actions performed on subsequent requests after meeting the statistical conditions.
     */
    readonly ccType: pulumi.Output<number>;
    /**
     * The statistical period of the strategy.
     */
    readonly countTime: pulumi.Output<number>;
    /**
     * Details of the periodic loop configuration.
     */
    readonly cronConfs: pulumi.Output<outputs.waf.CcRuleCronConf[] | undefined>;
    /**
     * Whether to set the cycle to take effect.
     */
    readonly cronEnable: pulumi.Output<number | undefined>;
    /**
     * Limit the duration, that is, the effective duration of the action.
     */
    readonly effectTime: pulumi.Output<number>;
    /**
     * Whether to enable the rules.
     */
    readonly enable: pulumi.Output<number>;
    /**
     * The total number of enabled rules within the rule group.
     */
    readonly enableCount: pulumi.Output<number>;
    /**
     * Strategy exemption time.
     */
    readonly exemptionTime: pulumi.Output<number | undefined>;
    /**
     * statistical object.
     */
    readonly field: pulumi.Output<string>;
    /**
     * Website domain names that require the setting of protection rules.
     */
    readonly host: pulumi.Output<string>;
    /**
     * The creation time of the rule group.
     */
    readonly insertTime: pulumi.Output<string>;
    /**
     * The name of cc rule.
     */
    readonly name: pulumi.Output<string>;
    /**
     * The threshold of the total number of times the request path is accessed.
     */
    readonly pathThreshold: pulumi.Output<number>;
    /**
     * The Name of the affiliated project resource.
     */
    readonly projectName: pulumi.Output<string | undefined>;
    /**
     * Details of the rule group.
     */
    readonly ruleGroups: pulumi.Output<outputs.waf.CcRuleRuleGroup[]>;
    /**
     * Rule execution priority.
     */
    readonly rulePriority: pulumi.Output<number>;
    /**
     * The threshold of the number of times each statistical object accesses the request path.
     */
    readonly singleThreshold: pulumi.Output<number>;
    /**
     * The total number of rules within the rule group.
     */
    readonly totalCount: pulumi.Output<number>;
    /**
     * The website request path that needs protection.
     */
    readonly url: pulumi.Output<string>;
    /**
     * Create a CcRule 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: CcRuleArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering CcRule resources.
 */
export interface CcRuleState {
    /**
     * Advanced conditions.
     */
    accurateGroup?: pulumi.Input<inputs.waf.CcRuleAccurateGroup>;
    /**
     * Whether to enable advanced conditions.
     */
    advancedEnable?: pulumi.Input<boolean>;
    /**
     * The actions performed on subsequent requests after meeting the statistical conditions.
     */
    ccType?: pulumi.Input<number>;
    /**
     * The statistical period of the strategy.
     */
    countTime?: pulumi.Input<number>;
    /**
     * Details of the periodic loop configuration.
     */
    cronConfs?: pulumi.Input<pulumi.Input<inputs.waf.CcRuleCronConf>[]>;
    /**
     * Whether to set the cycle to take effect.
     */
    cronEnable?: pulumi.Input<number>;
    /**
     * Limit the duration, that is, the effective duration of the action.
     */
    effectTime?: pulumi.Input<number>;
    /**
     * Whether to enable the rules.
     */
    enable?: pulumi.Input<number>;
    /**
     * The total number of enabled rules within the rule group.
     */
    enableCount?: pulumi.Input<number>;
    /**
     * Strategy exemption time.
     */
    exemptionTime?: pulumi.Input<number>;
    /**
     * statistical object.
     */
    field?: pulumi.Input<string>;
    /**
     * Website domain names that require the setting of protection rules.
     */
    host?: pulumi.Input<string>;
    /**
     * The creation time of the rule group.
     */
    insertTime?: pulumi.Input<string>;
    /**
     * The name of cc rule.
     */
    name?: pulumi.Input<string>;
    /**
     * The threshold of the total number of times the request path is accessed.
     */
    pathThreshold?: pulumi.Input<number>;
    /**
     * The Name of the affiliated project resource.
     */
    projectName?: pulumi.Input<string>;
    /**
     * Details of the rule group.
     */
    ruleGroups?: pulumi.Input<pulumi.Input<inputs.waf.CcRuleRuleGroup>[]>;
    /**
     * Rule execution priority.
     */
    rulePriority?: pulumi.Input<number>;
    /**
     * The threshold of the number of times each statistical object accesses the request path.
     */
    singleThreshold?: pulumi.Input<number>;
    /**
     * The total number of rules within the rule group.
     */
    totalCount?: pulumi.Input<number>;
    /**
     * The website request path that needs protection.
     */
    url?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a CcRule resource.
 */
export interface CcRuleArgs {
    /**
     * Advanced conditions.
     */
    accurateGroup?: pulumi.Input<inputs.waf.CcRuleAccurateGroup>;
    /**
     * Whether to enable advanced conditions.
     */
    advancedEnable?: pulumi.Input<boolean>;
    /**
     * The actions performed on subsequent requests after meeting the statistical conditions.
     */
    ccType: pulumi.Input<number>;
    /**
     * The statistical period of the strategy.
     */
    countTime: pulumi.Input<number>;
    /**
     * Details of the periodic loop configuration.
     */
    cronConfs?: pulumi.Input<pulumi.Input<inputs.waf.CcRuleCronConf>[]>;
    /**
     * Whether to set the cycle to take effect.
     */
    cronEnable?: pulumi.Input<number>;
    /**
     * Limit the duration, that is, the effective duration of the action.
     */
    effectTime: pulumi.Input<number>;
    /**
     * Whether to enable the rules.
     */
    enable: pulumi.Input<number>;
    /**
     * Strategy exemption time.
     */
    exemptionTime?: pulumi.Input<number>;
    /**
     * statistical object.
     */
    field: pulumi.Input<string>;
    /**
     * Website domain names that require the setting of protection rules.
     */
    host: pulumi.Input<string>;
    /**
     * The name of cc rule.
     */
    name?: pulumi.Input<string>;
    /**
     * The threshold of the total number of times the request path is accessed.
     */
    pathThreshold: pulumi.Input<number>;
    /**
     * The Name of the affiliated project resource.
     */
    projectName?: pulumi.Input<string>;
    /**
     * Rule execution priority.
     */
    rulePriority: pulumi.Input<number>;
    /**
     * The threshold of the number of times each statistical object accesses the request path.
     */
    singleThreshold: pulumi.Input<number>;
    /**
     * The website request path that needs protection.
     */
    url: pulumi.Input<string>;
}
