import * as pulumi from "@pulumi/pulumi";
import { output as outputs } from "../types";
/**
 * Use this data source to get the available ELB Flavors.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as huaweicloud from "@pulumi/huaweicloud";
 *
 * const flavors = pulumi.output(huaweicloud.DedicatedElb.getFlavors({
 *     bandwidth: 50,
 *     cps: 2000,
 *     maxConnections: 200000,
 *     type: "L7",
 * }));
 * ```
 */
export declare function getFlavors(args?: GetFlavorsArgs, opts?: pulumi.InvokeOptions): Promise<GetFlavorsResult>;
/**
 * A collection of arguments for invoking getFlavors.
 */
export interface GetFlavorsArgs {
    /**
     * Specifies the bandwidth size(Mbit/s) in the flavor.
     */
    bandwidth?: number;
    /**
     * Specifies the category.
     */
    category?: number;
    /**
     * Specifies the cps in the flavor.
     */
    cps?: number;
    /**
     * Specifies the flavor ID.
     */
    flavorId?: string;
    /**
     * Specifies whether the flavor is available.
     * + **true**: indicates the flavor is unavailable.
     * + **false**: indicates the flavor is available.
     */
    flavorSoldOut?: string;
    /**
     * Specifies whether return all maximum elastic specifications. Value options: **true**,
     * **false**.
     * + If it is set to **true**, all maximum elastic specifications defined by l4ElasticMax and l7ElasticMax are returned.
     * + If it is set to **false**, only the largest elastic specifications will be returned.
     * + For Layer 4 load balancers, the specification with the highest cps value is returned. If the cps values are the same,
     * the specification with the highest bandwidth value is returned.
     * + For Layer 7 load balancers, the specification with highest httpsCps value is returned. If the httpsCps values are
     * the same, the specification with highest qps value is returned.
     */
    listAll?: string;
    /**
     * Specifies the maximum connections in the flavor.
     */
    maxConnections?: number;
    /**
     * Specifies the flavor name.
     */
    name?: string;
    /**
     * Specifies the public border group.
     */
    publicBorderGroup?: string;
    /**
     * Specifies the qps in the L7 flavor.
     */
    qps?: number;
    /**
     * The region in which to obtain the flavors. If omitted, the provider-level region will be
     * used.
     */
    region?: string;
    /**
     * Specifies whether the flavor is available to all users. Value options:
     * + **true**: indicates that the flavor is available to all users.
     * + **false**: indicates that the flavor is available only to a specific user.
     */
    shared?: string;
    /**
     * Specifies the flavor type. Values options:
     * + **L4**: indicates Layer-4 flavor.
     * + **L7**: indicates Layer-7 flavor.
     * + **L4_elastic**: indicates minimum Layer-4 flavor for elastic scaling.
     * + **L7_elastic**: indicates minimum Layer-7 flavor for elastic scaling.
     * + **L4_elastic_max**: indicates maximum Layer-4 flavor for elastic scaling.
     * + **L7_elastic_max**: indicates maximum Layer-7 flavor for elastic scaling
     */
    type?: string;
}
/**
 * A collection of values returned by getFlavors.
 */
export interface GetFlavorsResult {
    /**
     * Indicates the bandwidth size(Mbit/s) of the flavor.
     */
    readonly bandwidth?: number;
    /**
     * Indicates the category.
     */
    readonly category?: number;
    /**
     * Indicates the cps of the flavor.
     */
    readonly cps?: number;
    readonly flavorId?: string;
    /**
     * Indicates whether the flavor is available.
     */
    readonly flavorSoldOut?: string;
    /**
     * Indicates the list of flavors.
     * The flavors structure is documented below.
     */
    readonly flavors: outputs.DedicatedElb.GetFlavorsFlavor[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * Indicates the list of flavor IDs.
     */
    readonly ids: string[];
    readonly listAll?: string;
    /**
     * Indicates the maximum connections of the flavor.
     */
    readonly maxConnections?: number;
    /**
     * Indicates the name of the flavor.
     */
    readonly name?: string;
    /**
     * Indicates the public border group.
     */
    readonly publicBorderGroup?: string;
    /**
     * Indicates the qps of the L7 flavor.
     */
    readonly qps?: number;
    readonly region: string;
    /**
     * Indicates  whether the flavor is available to all users.
     */
    readonly shared?: string;
    /**
     * Indicates the type of the flavor.
     */
    readonly type?: string;
}
export declare function getFlavorsOutput(args?: GetFlavorsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<GetFlavorsResult>;
/**
 * A collection of arguments for invoking getFlavors.
 */
export interface GetFlavorsOutputArgs {
    /**
     * Specifies the bandwidth size(Mbit/s) in the flavor.
     */
    bandwidth?: pulumi.Input<number>;
    /**
     * Specifies the category.
     */
    category?: pulumi.Input<number>;
    /**
     * Specifies the cps in the flavor.
     */
    cps?: pulumi.Input<number>;
    /**
     * Specifies the flavor ID.
     */
    flavorId?: pulumi.Input<string>;
    /**
     * Specifies whether the flavor is available.
     * + **true**: indicates the flavor is unavailable.
     * + **false**: indicates the flavor is available.
     */
    flavorSoldOut?: pulumi.Input<string>;
    /**
     * Specifies whether return all maximum elastic specifications. Value options: **true**,
     * **false**.
     * + If it is set to **true**, all maximum elastic specifications defined by l4ElasticMax and l7ElasticMax are returned.
     * + If it is set to **false**, only the largest elastic specifications will be returned.
     * + For Layer 4 load balancers, the specification with the highest cps value is returned. If the cps values are the same,
     * the specification with the highest bandwidth value is returned.
     * + For Layer 7 load balancers, the specification with highest httpsCps value is returned. If the httpsCps values are
     * the same, the specification with highest qps value is returned.
     */
    listAll?: pulumi.Input<string>;
    /**
     * Specifies the maximum connections in the flavor.
     */
    maxConnections?: pulumi.Input<number>;
    /**
     * Specifies the flavor name.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies the public border group.
     */
    publicBorderGroup?: pulumi.Input<string>;
    /**
     * Specifies the qps in the L7 flavor.
     */
    qps?: pulumi.Input<number>;
    /**
     * The region in which to obtain the flavors. If omitted, the provider-level region will be
     * used.
     */
    region?: pulumi.Input<string>;
    /**
     * Specifies whether the flavor is available to all users. Value options:
     * + **true**: indicates that the flavor is available to all users.
     * + **false**: indicates that the flavor is available only to a specific user.
     */
    shared?: pulumi.Input<string>;
    /**
     * Specifies the flavor type. Values options:
     * + **L4**: indicates Layer-4 flavor.
     * + **L7**: indicates Layer-7 flavor.
     * + **L4_elastic**: indicates minimum Layer-4 flavor for elastic scaling.
     * + **L7_elastic**: indicates minimum Layer-7 flavor for elastic scaling.
     * + **L4_elastic_max**: indicates maximum Layer-4 flavor for elastic scaling.
     * + **L7_elastic_max**: indicates maximum Layer-7 flavor for elastic scaling
     */
    type?: pulumi.Input<string>;
}
