import * as pulumi from "@pulumi/pulumi";
/**
 * Manages an ELB L7 Rule resource within HuaweiCloud.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as pulumi from "@huaweicloudos/pulumi";
 *
 * const loadbalancer1 = new huaweicloud.elb.Loadbalancer("loadbalancer1", {vipSubnetId: _var.subnet_id});
 * const listener1 = new huaweicloud.elb.Listener("listener1", {
 *     protocol: "HTTP",
 *     protocolPort: 8080,
 *     loadbalancerId: loadbalancer1.id,
 * });
 * const pool1 = new huaweicloud.elb.Pool("pool1", {
 *     protocol: "HTTP",
 *     lbMethod: "ROUND_ROBIN",
 *     loadbalancerId: loadbalancer1.id,
 * });
 * const l7policy1 = new huaweicloud.elb.L7policy("l7policy1", {
 *     action: "REDIRECT_TO_POOL",
 *     description: "test l7 policy",
 *     position: 1,
 *     listenerId: listener1.id,
 *     redirectPoolId: pool1.id,
 * });
 * const l7rule1 = new huaweicloud.elb.L7rule("l7rule1", {
 *     l7policyId: l7policy1.id,
 *     type: "PATH",
 *     compareType: "EQUAL_TO",
 *     value: "/api",
 * });
 * ```
 *
 * ## Import
 *
 * Load Balancer L7 Rule can be imported using the L7 Policy ID and L7 Rule ID separated by a slash, e.g.bash
 *
 * ```sh
 *  $ pulumi import huaweicloud:Elb/l7rule:L7rule l7rule_1 e0bd694a-abbe-450e-b329-0931fd1cc5eb/4086b0c9-b18c-4d1c-b6b8-4c56c3ad2a9e
 * ```
 */
export declare class L7rule extends pulumi.CustomResource {
    /**
     * Get an existing L7rule 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?: L7ruleState, opts?: pulumi.CustomResourceOptions): L7rule;
    /**
     * Returns true if the given object is an instance of L7rule.  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 L7rule;
    readonly adminStateUp: pulumi.Output<boolean | undefined>;
    /**
     * The comparison type for the L7 rule - can either be STARTS_WITH, EQUAL_TO or REGEX
     */
    readonly compareType: pulumi.Output<string>;
    /**
     * The key to use for the comparison. For example, the name of the cookie to
     * evaluate. Valid when `type` is set to COOKIE or HEADER. Changing this creates a new L7 Rule.
     */
    readonly key: pulumi.Output<string | undefined>;
    /**
     * The ID of the L7 Policy to query. Changing this creates a new L7 Rule.
     */
    readonly l7policyId: pulumi.Output<string>;
    /**
     * The ID of the Listener owning this resource.
     */
    readonly listenerId: pulumi.Output<string>;
    /**
     * The region in which to create the L7 Rule resource. If omitted, the
     * provider-level region will be used. Changing this creates a new L7 Rule.
     */
    readonly region: pulumi.Output<string>;
    /**
     * @deprecated tenant_id is deprecated
     */
    readonly tenantId: pulumi.Output<string>;
    /**
     * The L7 Rule type - can either be HOST_NAME or PATH. Changing this creates a new
     * L7 Rule.
     */
    readonly type: pulumi.Output<string>;
    /**
     * The value to use for the comparison. For example, the file type to compare.
     */
    readonly value: pulumi.Output<string>;
    /**
     * Create a L7rule 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: L7ruleArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering L7rule resources.
 */
export interface L7ruleState {
    adminStateUp?: pulumi.Input<boolean>;
    /**
     * The comparison type for the L7 rule - can either be STARTS_WITH, EQUAL_TO or REGEX
     */
    compareType?: pulumi.Input<string>;
    /**
     * The key to use for the comparison. For example, the name of the cookie to
     * evaluate. Valid when `type` is set to COOKIE or HEADER. Changing this creates a new L7 Rule.
     */
    key?: pulumi.Input<string>;
    /**
     * The ID of the L7 Policy to query. Changing this creates a new L7 Rule.
     */
    l7policyId?: pulumi.Input<string>;
    /**
     * The ID of the Listener owning this resource.
     */
    listenerId?: pulumi.Input<string>;
    /**
     * The region in which to create the L7 Rule resource. If omitted, the
     * provider-level region will be used. Changing this creates a new L7 Rule.
     */
    region?: pulumi.Input<string>;
    /**
     * @deprecated tenant_id is deprecated
     */
    tenantId?: pulumi.Input<string>;
    /**
     * The L7 Rule type - can either be HOST_NAME or PATH. Changing this creates a new
     * L7 Rule.
     */
    type?: pulumi.Input<string>;
    /**
     * The value to use for the comparison. For example, the file type to compare.
     */
    value?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a L7rule resource.
 */
export interface L7ruleArgs {
    adminStateUp?: pulumi.Input<boolean>;
    /**
     * The comparison type for the L7 rule - can either be STARTS_WITH, EQUAL_TO or REGEX
     */
    compareType: pulumi.Input<string>;
    /**
     * The key to use for the comparison. For example, the name of the cookie to
     * evaluate. Valid when `type` is set to COOKIE or HEADER. Changing this creates a new L7 Rule.
     */
    key?: pulumi.Input<string>;
    /**
     * The ID of the L7 Policy to query. Changing this creates a new L7 Rule.
     */
    l7policyId: pulumi.Input<string>;
    /**
     * The region in which to create the L7 Rule resource. If omitted, the
     * provider-level region will be used. Changing this creates a new L7 Rule.
     */
    region?: pulumi.Input<string>;
    /**
     * @deprecated tenant_id is deprecated
     */
    tenantId?: pulumi.Input<string>;
    /**
     * The L7 Rule type - can either be HOST_NAME or PATH. Changing this creates a new
     * L7 Rule.
     */
    type: pulumi.Input<string>;
    /**
     * The value to use for the comparison. For example, the file type to compare.
     */
    value: pulumi.Input<string>;
}
