import * as pulumi from "@pulumi/pulumi";
import { output as outputs } from "../types";
/**
 * Use this data source to get the list of ELB load balancers.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as huaweicloud from "@pulumi/huaweicloud";
 *
 * const config = new pulumi.Config();
 * const loadbalancerName = config.requireObject("loadbalancerName");
 * const test = huaweicloud.DedicatedElb.getLoadbalancers({
 *     name: loadbalancerName,
 * });
 * ```
 */
export declare function getLoadbalancers(args?: GetLoadbalancersArgs, opts?: pulumi.InvokeOptions): Promise<GetLoadbalancersResult>;
/**
 * A collection of arguments for invoking getLoadbalancers.
 */
export interface GetLoadbalancersArgs {
    /**
     * Specifies the list of AZ where the load balancer is created.
     */
    availabilityZone?: string;
    /**
     * Specifies the provides resource billing information.
     */
    billingInfo?: string;
    /**
     * Specifies whether the deletion protection is enabled. Value options:
     * **true**, **false**.
     */
    deletionProtectionEnable?: string;
    /**
     * Specifies the description of the ELB load balancer.
     */
    description?: string;
    /**
     * Specifies the enterprise project ID.
     */
    enterpriseProjectId?: string;
    /**
     * Specifies the global EIPs bound to the load balancer. It can be queried by different
     * conditions:
     * + If `globalEipId` is used as the query condition, the format is **global_eip_id=xxx**
     * + If `globalEipAddress` is used as the query condition, the format is **global_eip_address=xxx**
     * + If `ipVersion` is used as the query condition, the format is **ip_version=xxx**
     */
    globalEips?: string[];
    /**
     * Specifies the private IPv4 address bound to the load balancer.
     */
    ipv4Address?: string;
    /**
     * Specifies the ID of the port bound to the private IPv4 address of the load balancer.
     */
    ipv4PortId?: string;
    /**
     * Specifies the ID of the IPv4 subnet where the load balancer resides.
     */
    ipv4SubnetId?: string;
    /**
     * Specifies the IPv6 address bound to the load balancer.
     */
    ipv6Address?: string;
    /**
     * Specifies the ID of the port bound to the IPv6 address of the load balancer.
     */
    ipv6NetworkId?: string;
    /**
     * Specifies the ID of the port bound to the IPv6 address of the load balancer.
     */
    ipv6VipPortId?: string;
    /**
     * Specifies the ID of a flavor at Layer 4.
     */
    l4FlavorId?: string;
    /**
     * Specifies the ID of a flavor at Layer 7.
     */
    l7FlavorId?: string;
    /**
     * Specifies the ID of the ELB load balancer.
     */
    loadbalancerId?: string;
    /**
     * Specifies the ID of the log group that is associated with the load balancer.
     */
    logGroupId?: string;
    /**
     * Specifies the ID of the log topic that is associated with the load balancer.
     */
    logTopicId?: string;
    /**
     * Specifies the private IP address of the cloud server that is associated with the
     * load balancer as a backend server.
     */
    memberAddress?: string;
    /**
     * Specifies the ID of the cloud server that is associated with the load balancer
     * as a backend server.
     */
    memberDeviceId?: string;
    /**
     * Specifies the name of the ELB load balancer.
     */
    name?: string;
    /**
     * Specifies the operating status of the load balancer. Value options:
     * + **ONLINE**: indicates that the load balancer is running normally.
     * + **FROZEN**: indicates that the load balancer is frozen.
     */
    operatingStatus?: string;
    /**
     * Specifies the protection status. Value options:
     * + **nonProtection**: The load balancer is not protected.
     * + **consoleProtection**: Modification Protection is enabled on the console.
     */
    protectionStatus?: string;
    /**
     * Specifies the provisioning status of the load balancer. Value options:
     * + **ACTIVE**: The load balancer is successfully provisioned.
     * + **PENDING_DELETE**: The load balancer is being deleted.
     */
    provisioningStatus?: string;
    /**
     * Specifies the EIPs bound to the load balancer. It can be queried by different conditions:
     * + If `publicipId` is used as the query condition, the format is **publicip_id=xxx**
     * + If `publicipAddress` is used as the query condition, the format is **publicip_address=xxx**
     * + If `ipVersion` is used as the query condition, the format is **ip_version=xxx**
     */
    publicips?: string[];
    /**
     * Specifies the region in which to query the data source.
     * If omitted, the provider-level region will be used.
     */
    region?: string;
    /**
     * Specifies whether the load balancer is a dedicated load balancer, Value options:
     * **dedicated**, **share**.
     */
    type?: string;
    /**
     * Specifies the ID of the VPC where the load balancer resides.
     */
    vpcId?: string;
}
/**
 * A collection of values returned by getLoadbalancers.
 */
export interface GetLoadbalancersResult {
    /**
     * The list of AZs where the load balancer is created.
     */
    readonly availabilityZone?: string;
    /**
     * The provides resource billing information.
     */
    readonly billingInfo?: string;
    /**
     * Whether the deletion protection is enabled.
     */
    readonly deletionProtectionEnable?: string;
    /**
     * The description of load balancer.
     */
    readonly description?: string;
    /**
     * The enterprise project ID.
     */
    readonly enterpriseProjectId?: string;
    /**
     * The EIPs bound to the load balancer.
     * The globalEips structure is documented below.
     */
    readonly globalEips?: string[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * The private IPv4 address bound to the load balancer.
     */
    readonly ipv4Address?: string;
    /**
     * The ID of the port bound to the private IPv4 address of the load balancer.
     */
    readonly ipv4PortId?: string;
    /**
     * The  ID of the IPv4 subnet where the load balancer resides.
     */
    readonly ipv4SubnetId?: string;
    /**
     * The IPv6 address bound to the load balancer.
     */
    readonly ipv6Address?: string;
    /**
     * The ID of the IPv6 subnet where the load balancer resides.
     */
    readonly ipv6NetworkId?: string;
    /**
     * The ID of the port bound to the IPv6 address of the load balancer.
     */
    readonly ipv6VipPortId?: string;
    /**
     * The ID of a flavor at Layer 4.
     */
    readonly l4FlavorId?: string;
    /**
     * The ID of a flavor at Layer 7.
     */
    readonly l7FlavorId?: string;
    readonly loadbalancerId?: string;
    /**
     * The List of load balancers.
     * The loadbalancers structure is documented below.
     */
    readonly loadbalancers: outputs.DedicatedElb.GetLoadbalancersLoadbalancer[];
    /**
     * The ID of the log group that is associated with the load balancer.
     */
    readonly logGroupId?: string;
    /**
     * The ID of the log topic that is associated with the load balancer.
     */
    readonly logTopicId?: string;
    readonly memberAddress?: string;
    readonly memberDeviceId?: string;
    /**
     * The load balancer name.
     */
    readonly name?: string;
    /**
     * The operating status of the load balancer.
     */
    readonly operatingStatus?: string;
    /**
     * The protection status for update.
     */
    readonly protectionStatus?: string;
    /**
     * The provisioning status of the load balancer.
     */
    readonly provisioningStatus?: string;
    /**
     * The EIPs bound to the load balancer.
     * The publicips structure is documented below.
     */
    readonly publicips?: string[];
    readonly region: string;
    /**
     * Whether the load balancer is a dedicated load balancer.
     */
    readonly type?: string;
    /**
     * The ID of the VPC where the load balancer resides.
     */
    readonly vpcId?: string;
}
export declare function getLoadbalancersOutput(args?: GetLoadbalancersOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<GetLoadbalancersResult>;
/**
 * A collection of arguments for invoking getLoadbalancers.
 */
export interface GetLoadbalancersOutputArgs {
    /**
     * Specifies the list of AZ where the load balancer is created.
     */
    availabilityZone?: pulumi.Input<string>;
    /**
     * Specifies the provides resource billing information.
     */
    billingInfo?: pulumi.Input<string>;
    /**
     * Specifies whether the deletion protection is enabled. Value options:
     * **true**, **false**.
     */
    deletionProtectionEnable?: pulumi.Input<string>;
    /**
     * Specifies the description of the ELB load balancer.
     */
    description?: pulumi.Input<string>;
    /**
     * Specifies the enterprise project ID.
     */
    enterpriseProjectId?: pulumi.Input<string>;
    /**
     * Specifies the global EIPs bound to the load balancer. It can be queried by different
     * conditions:
     * + If `globalEipId` is used as the query condition, the format is **global_eip_id=xxx**
     * + If `globalEipAddress` is used as the query condition, the format is **global_eip_address=xxx**
     * + If `ipVersion` is used as the query condition, the format is **ip_version=xxx**
     */
    globalEips?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Specifies the private IPv4 address bound to the load balancer.
     */
    ipv4Address?: pulumi.Input<string>;
    /**
     * Specifies the ID of the port bound to the private IPv4 address of the load balancer.
     */
    ipv4PortId?: pulumi.Input<string>;
    /**
     * Specifies the ID of the IPv4 subnet where the load balancer resides.
     */
    ipv4SubnetId?: pulumi.Input<string>;
    /**
     * Specifies the IPv6 address bound to the load balancer.
     */
    ipv6Address?: pulumi.Input<string>;
    /**
     * Specifies the ID of the port bound to the IPv6 address of the load balancer.
     */
    ipv6NetworkId?: pulumi.Input<string>;
    /**
     * Specifies the ID of the port bound to the IPv6 address of the load balancer.
     */
    ipv6VipPortId?: pulumi.Input<string>;
    /**
     * Specifies the ID of a flavor at Layer 4.
     */
    l4FlavorId?: pulumi.Input<string>;
    /**
     * Specifies the ID of a flavor at Layer 7.
     */
    l7FlavorId?: pulumi.Input<string>;
    /**
     * Specifies the ID of the ELB load balancer.
     */
    loadbalancerId?: pulumi.Input<string>;
    /**
     * Specifies the ID of the log group that is associated with the load balancer.
     */
    logGroupId?: pulumi.Input<string>;
    /**
     * Specifies the ID of the log topic that is associated with the load balancer.
     */
    logTopicId?: pulumi.Input<string>;
    /**
     * Specifies the private IP address of the cloud server that is associated with the
     * load balancer as a backend server.
     */
    memberAddress?: pulumi.Input<string>;
    /**
     * Specifies the ID of the cloud server that is associated with the load balancer
     * as a backend server.
     */
    memberDeviceId?: pulumi.Input<string>;
    /**
     * Specifies the name of the ELB load balancer.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies the operating status of the load balancer. Value options:
     * + **ONLINE**: indicates that the load balancer is running normally.
     * + **FROZEN**: indicates that the load balancer is frozen.
     */
    operatingStatus?: pulumi.Input<string>;
    /**
     * Specifies the protection status. Value options:
     * + **nonProtection**: The load balancer is not protected.
     * + **consoleProtection**: Modification Protection is enabled on the console.
     */
    protectionStatus?: pulumi.Input<string>;
    /**
     * Specifies the provisioning status of the load balancer. Value options:
     * + **ACTIVE**: The load balancer is successfully provisioned.
     * + **PENDING_DELETE**: The load balancer is being deleted.
     */
    provisioningStatus?: pulumi.Input<string>;
    /**
     * Specifies the EIPs bound to the load balancer. It can be queried by different conditions:
     * + If `publicipId` is used as the query condition, the format is **publicip_id=xxx**
     * + If `publicipAddress` is used as the query condition, the format is **publicip_address=xxx**
     * + If `ipVersion` is used as the query condition, the format is **ip_version=xxx**
     */
    publicips?: pulumi.Input<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>;
    /**
     * Specifies whether the load balancer is a dedicated load balancer, Value options:
     * **dedicated**, **share**.
     */
    type?: pulumi.Input<string>;
    /**
     * Specifies the ID of the VPC where the load balancer resides.
     */
    vpcId?: pulumi.Input<string>;
}
