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.Elb.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 the description of the ELB pool.
     */
    description?: string;
    /**
     * Specifies the enterprise project ID.
     */
    enterpriseProjectId?: string;
    /**
     * Specifies the health monitor ID of the ELB pool.
     */
    healthmonitorId?: string;
    /**
     * Specifies the method of the ELB pool. Must be one of ROUND_ROBIN, LEAST_CONNECTIONS,
     * or SOURCE_IP.
     */
    lbMethod?: string;
    /**
     * Specifies the loadbalancer ID of the ELB pool.
     */
    loadbalancerId?: string;
    /**
     * Specifies the private IP address bound to the backend server.
     */
    memberAddress?: string;
    /**
     * Specifies the ID of the cloud server that serves as a backend server.
     */
    memberDeviceId?: string;
    /**
     * Specifies the name of the ELB pool.
     */
    name?: string;
    /**
     * Specifies the ID of the ELB pool.
     */
    poolId?: string;
    /**
     * Specifies the protocol of the ELB pool. This can either be TCP, UDP or HTTP.
     */
    protocol?: string;
    /**
     * Specifies the region in which to query the data source.
     * If omitted, the provider-level region will be used.
     */
    region?: string;
}
/**
 * A collection of values returned by getPools.
 */
export interface GetPoolsResult {
    /**
     * The description of pool.
     */
    readonly description?: string;
    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 load balancing algorithm to distribute traffic to the pool's members.
     */
    readonly lbMethod?: string;
    readonly loadbalancerId?: string;
    readonly memberAddress?: string;
    readonly memberDeviceId?: string;
    /**
     * The pool name.
     */
    readonly name?: string;
    readonly poolId?: string;
    /**
     * The pool list. For details, see data structure of the pool field.
     * The object structure is documented below.
     */
    readonly pools: outputs.Elb.GetPoolsPool[];
    /**
     * The protocol of pool.
     */
    readonly protocol?: string;
    readonly region: string;
}
export declare function getPoolsOutput(args?: GetPoolsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<GetPoolsResult>;
/**
 * A collection of arguments for invoking getPools.
 */
export interface GetPoolsOutputArgs {
    /**
     * Specifies the description of the ELB pool.
     */
    description?: pulumi.Input<string>;
    /**
     * Specifies the enterprise project ID.
     */
    enterpriseProjectId?: pulumi.Input<string>;
    /**
     * Specifies the health monitor ID of the ELB pool.
     */
    healthmonitorId?: pulumi.Input<string>;
    /**
     * Specifies the method of the ELB pool. Must be one of ROUND_ROBIN, LEAST_CONNECTIONS,
     * or SOURCE_IP.
     */
    lbMethod?: 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 the ID of the cloud server that serves as a backend server.
     */
    memberDeviceId?: pulumi.Input<string>;
    /**
     * Specifies the name of the ELB pool.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies the ID of the ELB pool.
     */
    poolId?: pulumi.Input<string>;
    /**
     * Specifies the protocol of the ELB pool. This can either be TCP, UDP or HTTP.
     */
    protocol?: pulumi.Input<string>;
    /**
     * Specifies the region in which to query the data source.
     * If omitted, the provider-level region will be used.
     */
    region?: pulumi.Input<string>;
}
