import * as pulumi from "@pulumi/pulumi";
import * as outputs from "../types/output";
/**
 * Use this data source to query detailed information of ecs available resources
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@pulumi/volcengine";
 *
 * const foo = volcengine.ecs.getAvailableResources({
 *     destinationResource: "InstanceType",
 * });
 * ```
 */
export declare function getAvailableResources(args: GetAvailableResourcesArgs, opts?: pulumi.InvokeOptions): Promise<GetAvailableResourcesResult>;
/**
 * A collection of arguments for invoking getAvailableResources.
 */
export interface GetAvailableResourcesArgs {
    /**
     * The type of resource to query. Valid values: `InstanceType`, `DedicatedHost`.
     */
    destinationResource: string;
    /**
     * The charge type of instance. Valid values: `PostPaid`, `PrePaid`, `ReservedInstance`. Default is `PostPaid`.
     */
    instanceChargeType?: string;
    /**
     * The id of instance type.
     */
    instanceTypeId?: string;
    /**
     * File name where to save data source results.
     */
    outputFile?: string;
    /**
     * The spot strategy of PostPaid instance. Valid values: `NoSpot`, `SpotAsPriceGo`. Default is `NoSpot`.
     */
    spotStrategy?: string;
    /**
     * The id of available zone.
     */
    zoneId?: string;
}
/**
 * A collection of values returned by getAvailableResources.
 */
export interface GetAvailableResourcesResult {
    /**
     * The collection of query.
     */
    readonly availableZones: outputs.ecs.GetAvailableResourcesAvailableZone[];
    readonly destinationResource: string;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    readonly instanceChargeType?: string;
    readonly instanceTypeId?: string;
    readonly outputFile?: string;
    readonly spotStrategy?: string;
    /**
     * The total count of query.
     */
    readonly totalCount: number;
    /**
     * The id of the available zone.
     */
    readonly zoneId?: string;
}
/**
 * Use this data source to query detailed information of ecs available resources
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@pulumi/volcengine";
 *
 * const foo = volcengine.ecs.getAvailableResources({
 *     destinationResource: "InstanceType",
 * });
 * ```
 */
export declare function getAvailableResourcesOutput(args: GetAvailableResourcesOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<GetAvailableResourcesResult>;
/**
 * A collection of arguments for invoking getAvailableResources.
 */
export interface GetAvailableResourcesOutputArgs {
    /**
     * The type of resource to query. Valid values: `InstanceType`, `DedicatedHost`.
     */
    destinationResource: pulumi.Input<string>;
    /**
     * The charge type of instance. Valid values: `PostPaid`, `PrePaid`, `ReservedInstance`. Default is `PostPaid`.
     */
    instanceChargeType?: pulumi.Input<string>;
    /**
     * The id of instance type.
     */
    instanceTypeId?: pulumi.Input<string>;
    /**
     * File name where to save data source results.
     */
    outputFile?: pulumi.Input<string>;
    /**
     * The spot strategy of PostPaid instance. Valid values: `NoSpot`, `SpotAsPriceGo`. Default is `NoSpot`.
     */
    spotStrategy?: pulumi.Input<string>;
    /**
     * The id of available zone.
     */
    zoneId?: pulumi.Input<string>;
}
