import * as pulumi from "@pulumi/pulumi";
import { output as outputs } from "../types";
/**
 * Use this data source to get the list of available flavor details within HuaweiCloud.
 *
 * ## Example Usage
 * ### Query the list of kafka flavors for cluster type
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as huaweicloud from "@pulumi/huaweicloud";
 *
 * const test = pulumi.output(huaweicloud.Dms.getFlavors({
 *     type: "cluster",
 * }));
 * ```
 * ### Query the kafka flavor details of the specified ID
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as huaweicloud from "@pulumi/huaweicloud";
 *
 * const test = pulumi.output(huaweicloud.Dms.getFlavors({
 *     flavorId: "c6.2u4g.cluster",
 * }));
 * ```
 * ### Query list of kafka flavors that available in the availability zone list
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as huaweicloud from "@pulumi/huaweicloud";
 *
 * const config = new pulumi.Config();
 * const az1 = config.requireObject("az1");
 * const az2 = config.requireObject("az2");
 * const test = huaweicloud.Dms.getFlavors({
 *     availabilityZones: [
 *         az1,
 *         az2,
 *     ],
 * });
 * ```
 */
export declare function getFlavors(args?: GetFlavorsArgs, opts?: pulumi.InvokeOptions): Promise<GetFlavorsResult>;
/**
 * A collection of arguments for invoking getFlavors.
 */
export interface GetFlavorsArgs {
    /**
     * Specifies the type of CPU architecture, e.g. **X86**.
     */
    archType?: string;
    /**
     * Specifies the list of availability zones with available resources.
     */
    availabilityZones?: string[];
    /**
     * Specifies the flavor billing mode.
     * The valid values are **prePaid** and **postPaid**.
     */
    chargingMode?: string;
    /**
     * Specifies the DMS flavor ID, e.g. **c6.2u4g.cluster**.
     */
    flavorId?: string;
    /**
     * Specifies the region in which to obtain the dms kafka flavors.
     * If omitted, the provider-level region will be used.
     */
    region?: string;
    /**
     * Specifies the disk IO encoding.
     * + **dms.physical.storage.high.v2**: Type of the disk that uses high I/O.
     * + **dms.physical.storage.ultra.v2**: Type of the disk that uses ultra-high I/O.
     */
    storageSpecCode?: string;
    /**
     * Specifies flavor type. The valid values are **single**, **cluster** and **cluster.small**.
     */
    type?: string;
}
/**
 * A collection of values returned by getFlavors.
 */
export interface GetFlavorsResult {
    readonly archType?: string;
    /**
     * The list of availability zones with available resources.
     */
    readonly availabilityZones?: string[];
    readonly chargingMode?: string;
    readonly flavorId?: string;
    /**
     * The list of flavor details.
     * The object structure is documented below.
     */
    readonly flavors: outputs.Dms.GetFlavorsFlavor[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    readonly region: string;
    /**
     * The disk IO encoding.
     */
    readonly storageSpecCode?: string;
    /**
     * The disk type.
     */
    readonly type?: string;
    /**
     * The supported flavor versions.
     */
    readonly versions: 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 type of CPU architecture, e.g. **X86**.
     */
    archType?: pulumi.Input<string>;
    /**
     * Specifies the list of availability zones with available resources.
     */
    availabilityZones?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Specifies the flavor billing mode.
     * The valid values are **prePaid** and **postPaid**.
     */
    chargingMode?: pulumi.Input<string>;
    /**
     * Specifies the DMS flavor ID, e.g. **c6.2u4g.cluster**.
     */
    flavorId?: pulumi.Input<string>;
    /**
     * Specifies the region in which to obtain the dms kafka flavors.
     * If omitted, the provider-level region will be used.
     */
    region?: pulumi.Input<string>;
    /**
     * Specifies the disk IO encoding.
     * + **dms.physical.storage.high.v2**: Type of the disk that uses high I/O.
     * + **dms.physical.storage.ultra.v2**: Type of the disk that uses ultra-high I/O.
     */
    storageSpecCode?: pulumi.Input<string>;
    /**
     * Specifies flavor type. The valid values are **single**, **cluster** and **cluster.small**.
     */
    type?: pulumi.Input<string>;
}
