import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Use this data source to query detailed information of rds postgresql instance price differences
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@pulumi/volcengine";
 *
 * const example = volcengine.rds_postgresql.getInstancePriceDifferences({
 *     chargeInfo: {
 *         chargeType: "PostPaid",
 *         number: 1,
 *     },
 *     instanceId: "postgres-72715e0d9f58",
 *     modifyType: "Usually",
 *     nodeInfos: [
 *         {
 *             nodeId: "postgres-72715e0d9f58",
 *             nodeSpec: "rds.postgres.2c4g",
 *             nodeType: "Primary",
 *             zoneId: "cn-beijing-a",
 *         },
 *         {
 *             nodeId: "postgres-72715e0d9f58-iyys",
 *             nodeSpec: "rds.postgres.2c4g",
 *             nodeType: "Secondary",
 *             zoneId: "cn-beijing-a",
 *         },
 *     ],
 *     storageSpace: 100,
 *     storageType: "LocalSSD",
 * });
 * ```
 */
/** @deprecated volcengine.rds_postgresql.InstancePriceDifferences has been deprecated in favor of volcengine.rds_postgresql.getInstancePriceDifferences */
export declare function instancePriceDifferences(args: InstancePriceDifferencesArgs, opts?: pulumi.InvokeOptions): Promise<InstancePriceDifferencesResult>;
/**
 * A collection of arguments for invoking InstancePriceDifferences.
 */
export interface InstancePriceDifferencesArgs {
    /**
     * Charge info of the instance.
     */
    chargeInfo: inputs.rds_postgresql.InstancePriceDifferencesChargeInfo;
    /**
     * Instance ID.
     */
    instanceId: string;
    /**
     * Spec change type. Usually or Temporary. Default value: Usually. This parameter can only take the value Temporary when the billing type of the instance is a yearly/monthly subscription instance.
     */
    modifyType?: string;
    /**
     * Instance spec nodes. Primary=1, Secondary=1, ReadOnly=0~10.
     */
    nodeInfos: inputs.rds_postgresql.InstancePriceDifferencesNodeInfo[];
    /**
     * File name where to save data source results.
     */
    outputFile?: string;
    /**
     * Rollback time for Temporary change, UTC format yyyy-MM-ddTHH:mm:ss.sssZ. This parameter is required when the modifyType is set to Temporary.
     */
    rollbackTime?: string;
    /**
     * The storage space of the instance. Value range: [20, 3000], unit: GB, step 10GB.
     */
    storageSpace: number;
    /**
     * The type of the storage. Valid values: LocalSSD.
     */
    storageType: string;
}
/**
 * A collection of values returned by InstancePriceDifferences.
 */
export interface InstancePriceDifferencesResult {
    readonly chargeInfo: outputs.rds_postgresql.InstancePriceDifferencesChargeInfo;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    readonly instanceId: string;
    /**
     * The collection of query.
     */
    readonly instancesPrices: outputs.rds_postgresql.InstancePriceDifferencesInstancesPrice[];
    readonly modifyType?: string;
    readonly nodeInfos: outputs.rds_postgresql.InstancePriceDifferencesNodeInfo[];
    readonly outputFile?: string;
    readonly rollbackTime?: string;
    readonly storageSpace: number;
    readonly storageType: string;
    /**
     * The total count of query.
     */
    readonly totalCount: number;
}
/**
 * Use this data source to query detailed information of rds postgresql instance price differences
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@pulumi/volcengine";
 *
 * const example = volcengine.rds_postgresql.getInstancePriceDifferences({
 *     chargeInfo: {
 *         chargeType: "PostPaid",
 *         number: 1,
 *     },
 *     instanceId: "postgres-72715e0d9f58",
 *     modifyType: "Usually",
 *     nodeInfos: [
 *         {
 *             nodeId: "postgres-72715e0d9f58",
 *             nodeSpec: "rds.postgres.2c4g",
 *             nodeType: "Primary",
 *             zoneId: "cn-beijing-a",
 *         },
 *         {
 *             nodeId: "postgres-72715e0d9f58-iyys",
 *             nodeSpec: "rds.postgres.2c4g",
 *             nodeType: "Secondary",
 *             zoneId: "cn-beijing-a",
 *         },
 *     ],
 *     storageSpace: 100,
 *     storageType: "LocalSSD",
 * });
 * ```
 */
/** @deprecated volcengine.rds_postgresql.InstancePriceDifferences has been deprecated in favor of volcengine.rds_postgresql.getInstancePriceDifferences */
export declare function instancePriceDifferencesOutput(args: InstancePriceDifferencesOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<InstancePriceDifferencesResult>;
/**
 * A collection of arguments for invoking InstancePriceDifferences.
 */
export interface InstancePriceDifferencesOutputArgs {
    /**
     * Charge info of the instance.
     */
    chargeInfo: pulumi.Input<inputs.rds_postgresql.InstancePriceDifferencesChargeInfoArgs>;
    /**
     * Instance ID.
     */
    instanceId: pulumi.Input<string>;
    /**
     * Spec change type. Usually or Temporary. Default value: Usually. This parameter can only take the value Temporary when the billing type of the instance is a yearly/monthly subscription instance.
     */
    modifyType?: pulumi.Input<string>;
    /**
     * Instance spec nodes. Primary=1, Secondary=1, ReadOnly=0~10.
     */
    nodeInfos: pulumi.Input<pulumi.Input<inputs.rds_postgresql.InstancePriceDifferencesNodeInfoArgs>[]>;
    /**
     * File name where to save data source results.
     */
    outputFile?: pulumi.Input<string>;
    /**
     * Rollback time for Temporary change, UTC format yyyy-MM-ddTHH:mm:ss.sssZ. This parameter is required when the modifyType is set to Temporary.
     */
    rollbackTime?: pulumi.Input<string>;
    /**
     * The storage space of the instance. Value range: [20, 3000], unit: GB, step 10GB.
     */
    storageSpace: pulumi.Input<number>;
    /**
     * The type of the storage. Valid values: LocalSSD.
     */
    storageType: pulumi.Input<string>;
}
