import * as pulumi from "@pulumi/pulumi";
import { output as outputs } from "../types";
/**
 * Use this data source to get the list of ELB pools.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as huaweicloud from "@pulumi/huaweicloud";
 *
 * const config = new pulumi.Config();
 * const poolName = config.requireObject("poolName");
 * const test = huaweicloud.DedicatedElb.getPools({
 *     name: poolName,
 * });
 * ```
 */
export declare function getPools(args?: GetPoolsArgs, opts?: pulumi.InvokeOptions): Promise<GetPoolsResult>;
/**
 * A collection of arguments for invoking getPools.
 */
export interface GetPoolsArgs {
    /**
     * Specifies whether forward to same port for a backend server group is enabled.
     * Value options:
     * + **false**: Disable this option.
     * + **true**: Enable this option.
     */
    anyPortEnable?: string;
    /**
     * Specifies whether delayed logout is enabled. Value options:
     * + **false**: Disable this option.
     * + **true**: Enable this option.
     */
    connectionDrain?: string;
    /**
     * Specifies the description of the ELB pool.
     */
    description?: string;
    /**
     * Specifies the ID of the enterprise project.
     */
    enterpriseProjectId?: string;
    /**
     * Specifies the health monitor ID of the ELB pool.
     */
    healthmonitorId?: string;
    /**
     * Specifies the IP address version supported by the backend server group.
     */
    ipVersion?: string;
    /**
     * Specifies the method of the ELB pool. Value options: **ROUND_ROBIN**,
     * **LEAST_CONNECTIONS**, **SOURCE_IP** or **QUIC_CID**.
     */
    lbMethod?: string;
    /**
     * Specifies the listener ID of the ELB pool.
     */
    listenerId?: string;
    /**
     * Specifies the loadbalancer ID of the ELB pool.
     */
    loadbalancerId?: string;
    /**
     * Specifies the private IP address bound to the backend server.
     */
    memberAddress?: string;
    /**
     * Specifies whether deletion protection is enabled. Value options:
     * + **false**: Disable this option.
     * + **true**: Enable this option.
     */
    memberDeletionProtectionEnable?: string;
    /**
     * Specifies the ID of the cloud server that serves as a backend server.
     */
    memberDeviceId?: string;
    /**
     * Specifies the backend server ID.
     */
    memberInstanceId?: string;
    /**
     * Specifies the name of the ELB pool.
     */
    name?: string;
    /**
     * Specifies whether pool health is enabled. Value options:
     * + **minimum_healthy_member_count=0**
     * + **minimum_healthy_member_count=1**
     */
    poolHealth?: string;
    /**
     * Specifies the ID of the ELB pool.
     */
    poolId?: string;
    /**
     * Specifies the protection status for update.
     * Value options: **nonProtection**, **consoleProtection**.
     */
    protectionStatus?: string;
    /**
     * Specifies the protocol of the ELB pool. Value options: **TCP**, **UDP**, **HTTP**,
     * **HTTPS**, **QUIC**, **GRPC** or **TLS**.
     */
    protocol?: string;
    /**
     * Specifies the public border group.
     */
    publicBorderGroup?: string;
    /**
     * Specifies the QUIC connection ID len.
     */
    quicCidLen?: number;
    /**
     * Specifies the QUIC connection ID offset.
     */
    quicCidOffset?: number;
    /**
     * Specifies the region in which to query the data source.
     * If omitted, the provider-level region will be used.
     */
    region?: string;
    /**
     * Specifies the type of the backend server group. Value options: **instance**, **ip**.
     */
    type?: string;
    /**
     * Specifies the ID of the VPC where the backend server group works.
     */
    vpcId?: string;
}
/**
 * A collection of values returned by getPools.
 */
export interface GetPoolsResult {
    /**
     * Whether forward to same port for a backend server group is enabled
     */
    readonly anyPortEnable?: string;
    readonly connectionDrain?: string;
    /**
     * The description of pool.
     */
    readonly description?: string;
    /**
     * The ID of the enterprise project.
     */
    readonly enterpriseProjectId?: string;
    /**
     * The health monitor ID of the LB pool.
     */
    readonly healthmonitorId?: string;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * The IP version of the LB pool.
     */
    readonly ipVersion?: string;
    /**
     * The load balancing algorithm to distribute traffic to the pool's members.
     */
    readonly lbMethod?: string;
    readonly listenerId?: string;
    readonly loadbalancerId?: string;
    readonly memberAddress?: string;
    /**
     * Whether deletion protection is enabled
     */
    readonly memberDeletionProtectionEnable?: string;
    readonly memberDeviceId?: string;
    readonly memberInstanceId?: string;
    /**
     * The pool name.
     */
    readonly name?: string;
    readonly poolHealth?: string;
    readonly poolId?: string;
    /**
     * Pool list. For details, see data structure of the pool field.
     * The object structure is documented below.
     */
    readonly pools: outputs.DedicatedElb.GetPoolsPool[];
    /**
     * The protection status for update.
     */
    readonly protectionStatus?: string;
    /**
     * The protocol of pool.
     */
    readonly protocol?: string;
    /**
     * The public border group.
     */
    readonly publicBorderGroup?: string;
    readonly quicCidLen?: number;
    readonly quicCidOffset?: number;
    readonly region: string;
    /**
     * The type of persistence mode.
     */
    readonly type?: string;
    /**
     * The ID of the VPC where the backend server group works.
     */
    readonly vpcId?: string;
}
export declare function getPoolsOutput(args?: GetPoolsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<GetPoolsResult>;
/**
 * A collection of arguments for invoking getPools.
 */
export interface GetPoolsOutputArgs {
    /**
     * Specifies whether forward to same port for a backend server group is enabled.
     * Value options:
     * + **false**: Disable this option.
     * + **true**: Enable this option.
     */
    anyPortEnable?: pulumi.Input<string>;
    /**
     * Specifies whether delayed logout is enabled. Value options:
     * + **false**: Disable this option.
     * + **true**: Enable this option.
     */
    connectionDrain?: pulumi.Input<string>;
    /**
     * Specifies the description of the ELB pool.
     */
    description?: pulumi.Input<string>;
    /**
     * Specifies the ID of the enterprise project.
     */
    enterpriseProjectId?: pulumi.Input<string>;
    /**
     * Specifies the health monitor ID of the ELB pool.
     */
    healthmonitorId?: pulumi.Input<string>;
    /**
     * Specifies the IP address version supported by the backend server group.
     */
    ipVersion?: pulumi.Input<string>;
    /**
     * Specifies the method of the ELB pool. Value options: **ROUND_ROBIN**,
     * **LEAST_CONNECTIONS**, **SOURCE_IP** or **QUIC_CID**.
     */
    lbMethod?: pulumi.Input<string>;
    /**
     * Specifies the listener ID of the ELB pool.
     */
    listenerId?: pulumi.Input<string>;
    /**
     * Specifies the loadbalancer ID of the ELB pool.
     */
    loadbalancerId?: pulumi.Input<string>;
    /**
     * Specifies the private IP address bound to the backend server.
     */
    memberAddress?: pulumi.Input<string>;
    /**
     * Specifies whether deletion protection is enabled. Value options:
     * + **false**: Disable this option.
     * + **true**: Enable this option.
     */
    memberDeletionProtectionEnable?: pulumi.Input<string>;
    /**
     * Specifies the ID of the cloud server that serves as a backend server.
     */
    memberDeviceId?: pulumi.Input<string>;
    /**
     * Specifies the backend server ID.
     */
    memberInstanceId?: pulumi.Input<string>;
    /**
     * Specifies the name of the ELB pool.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies whether pool health is enabled. Value options:
     * + **minimum_healthy_member_count=0**
     * + **minimum_healthy_member_count=1**
     */
    poolHealth?: pulumi.Input<string>;
    /**
     * Specifies the ID of the ELB pool.
     */
    poolId?: pulumi.Input<string>;
    /**
     * Specifies the protection status for update.
     * Value options: **nonProtection**, **consoleProtection**.
     */
    protectionStatus?: pulumi.Input<string>;
    /**
     * Specifies the protocol of the ELB pool. Value options: **TCP**, **UDP**, **HTTP**,
     * **HTTPS**, **QUIC**, **GRPC** or **TLS**.
     */
    protocol?: pulumi.Input<string>;
    /**
     * Specifies the public border group.
     */
    publicBorderGroup?: pulumi.Input<string>;
    /**
     * Specifies the QUIC connection ID len.
     */
    quicCidLen?: pulumi.Input<number>;
    /**
     * Specifies the QUIC connection ID offset.
     */
    quicCidOffset?: pulumi.Input<number>;
    /**
     * Specifies the region in which to query the data source.
     * If omitted, the provider-level region will be used.
     */
    region?: pulumi.Input<string>;
    /**
     * Specifies the type of the backend server group. Value options: **instance**, **ip**.
     */
    type?: pulumi.Input<string>;
    /**
     * Specifies the ID of the VPC where the backend server group works.
     */
    vpcId?: pulumi.Input<string>;
}
