import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@pulumi/volcengine";
 * import * as volcengine from "@volcengine/pulumi";
 *
 * const fooZones = volcengine.ecs.getZones({});
 * const fooVpc = new volcengine.vpc.Vpc("fooVpc", {
 *     vpcName: "acc-test-vpc",
 *     cidrBlock: "172.16.0.0/16",
 * });
 * const fooSubnet = new volcengine.vpc.Subnet("fooSubnet", {
 *     subnetName: "acc-test-subnet",
 *     cidrBlock: "172.16.0.0/24",
 *     zoneId: fooZones.then(fooZones => fooZones.zones?.[2]?.id),
 *     vpcId: fooVpc.id,
 * });
 * const fooInstance = new volcengine.vedb_mysql.Instance("fooInstance", {
 *     chargeType: "PostPaid",
 *     storageChargeType: "PostPaid",
 *     dbEngineVersion: "MySQL_8_0",
 *     dbMinorVersion: "3.0",
 *     nodeNumber: 2,
 *     nodeSpec: "vedb.mysql.x4.large",
 *     subnetId: fooSubnet.id,
 *     instanceName: "tf-test",
 *     projectName: "default",
 *     tags: [{
 *         key: "tftest",
 *         value: "tftest",
 *     }],
 * });
 * ```
 *
 * ## Import
 *
 * VedbMysqlInstance can be imported using the id, e.g.
 *
 * ```sh
 * $ pulumi import volcengine:vedb_mysql/instance:Instance default resource_id
 * ```
 */
export declare class Instance extends pulumi.CustomResource {
    /**
     * Get an existing Instance resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: InstanceState, opts?: pulumi.CustomResourceOptions): Instance;
    /**
     * Returns true if the given object is an instance of Instance.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is Instance;
    /**
     * Whether to automatically renew under the prepaid scenario. Values:
     * true: Automatically renew.
     * false: Do not automatically renew.
     * Description:
     * When the value of ChargeType (billing type) is PrePaid (monthly/yearly package), this parameter is required.
     */
    readonly autoRenew: pulumi.Output<boolean>;
    /**
     * Calculate the billing type. When calculating the billing type during instance creation, the possible values are as follows:
     * PostPaid: Pay-as-you-go (postpaid).
     * PrePaid: Monthly or yearly subscription (prepaid).
     */
    readonly chargeType: pulumi.Output<string>;
    /**
     * Database engine version, with a fixed value of MySQL_8_0.
     */
    readonly dbEngineVersion: pulumi.Output<string>;
    /**
     * veDB MySQL minor version. For detailed instructions on version numbers, please refer to Version Number Management.
     * 3.0 (default): veDB MySQL stable version, 100% compatible with MySQL 8.0.
     * 3.1: Natively supports HTAP application scenarios and accelerates complex queries.
     * 3.2: Natively supports HTAP application scenarios and accelerates complex queries. In addition, it has built-in cold data archiving capabilities. It can archive data with low-frequency access to object storage TOS to reduce storage costs.
     */
    readonly dbMinorVersion: pulumi.Output<string | undefined>;
    /**
     * Time zone. Support UTC -12:00 ~ +13:00. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    readonly dbTimeZone: pulumi.Output<string>;
    /**
     * Instance name. Naming rules:
     * It cannot start with a number or a hyphen (-).
     * It can only contain Chinese characters, letters, numbers, underscores (_), and hyphens (-).
     * The length must be within 1 to 128 characters.
     * Description
     * If the instance name is not filled in, the instance ID will be used as the instance name.
     * When creating instances in batches, if an instance name is passed in, a serial number will be automatically added after the instance name.
     */
    readonly instanceName: pulumi.Output<string>;
    /**
     * Whether table names are case-sensitive. The default value is 1. Value range:
     * 0: Table names are case-sensitive. The backend stores them according to the actual table name.
     * 1: (default) Table names are not case-sensitive. The backend stores them by converting table names to lowercase letters.
     * Description:
     * This rule cannot be modified after creating an instance. Please set it reasonably according to business requirements.
     */
    readonly lowerCaseTableNames: pulumi.Output<string>;
    /**
     * Number of instance nodes. The value range is from 2 to 16.
     */
    readonly nodeNumber: pulumi.Output<number>;
    /**
     * Node specification code of an instance.
     */
    readonly nodeSpec: pulumi.Output<string>;
    /**
     * Purchase duration in prepaid scenarios.
     * Description:
     * When the value of ChargeType (computing billing type) is PrePaid (monthly/yearly package), this parameter is required.
     */
    readonly period: pulumi.Output<number>;
    /**
     * Purchase cycle in prepaid scenarios.
     * Month: Monthly package.
     * Year: Annual package.
     * Description:
     * When the value of ChargeType (computing billing type) is PrePaid (monthly or annual package), this parameter is required.
     */
    readonly periodUnit: pulumi.Output<string>;
    /**
     * Specify the private network port number for the connection terminal created by default for the instance. The default value is 3306, and the value range is 1000 to 65534.
     * Note:
     * This configuration item is only effective for the primary node terminal, default terminal, and HTAP cluster terminal. That is, after the instance is created successfully, for the newly created custom terminal, the port number is still 3306 by default.
     * After the instance is created successfully, you can also modify the port number at any time. Currently, only modification through the console is supported.
     */
    readonly port: pulumi.Output<number>;
    /**
     * Storage size in prepaid scenarios.
     * Description: When the value of StorageChargeType (storage billing type) is PrePaid (monthly/yearly prepaid), this parameter is required.
     */
    readonly prePaidStorageInGb: pulumi.Output<number>;
    /**
     * Project name of the instance. When this parameter is left blank, the newly created instance is added to the default project by default.
     */
    readonly projectName: pulumi.Output<string>;
    /**
     * Storage billing type. When this parameter is not passed, the storage billing type defaults to be the same as the computing billing type. The values are as follows:
     * PostPaid: Pay-as-you-go (postpaid).
     * PrePaid: Monthly or yearly subscription (prepaid).
     * Note
     * When the computing billing type is PostPaid, the storage billing type can only be PostPaid.
     * When the computing billing type is PrePaid, the storage billing type can be PrePaid or PostPaid.
     */
    readonly storageChargeType: pulumi.Output<string>;
    /**
     * Subnet ID of the veDB Mysql instance.
     */
    readonly subnetId: pulumi.Output<string>;
    /**
     * Tags.
     */
    readonly tags: pulumi.Output<outputs.vedb_mysql.InstanceTag[] | undefined>;
    /**
     * Create a Instance resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: InstanceArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Instance resources.
 */
export interface InstanceState {
    /**
     * Whether to automatically renew under the prepaid scenario. Values:
     * true: Automatically renew.
     * false: Do not automatically renew.
     * Description:
     * When the value of ChargeType (billing type) is PrePaid (monthly/yearly package), this parameter is required.
     */
    autoRenew?: pulumi.Input<boolean>;
    /**
     * Calculate the billing type. When calculating the billing type during instance creation, the possible values are as follows:
     * PostPaid: Pay-as-you-go (postpaid).
     * PrePaid: Monthly or yearly subscription (prepaid).
     */
    chargeType?: pulumi.Input<string>;
    /**
     * Database engine version, with a fixed value of MySQL_8_0.
     */
    dbEngineVersion?: pulumi.Input<string>;
    /**
     * veDB MySQL minor version. For detailed instructions on version numbers, please refer to Version Number Management.
     * 3.0 (default): veDB MySQL stable version, 100% compatible with MySQL 8.0.
     * 3.1: Natively supports HTAP application scenarios and accelerates complex queries.
     * 3.2: Natively supports HTAP application scenarios and accelerates complex queries. In addition, it has built-in cold data archiving capabilities. It can archive data with low-frequency access to object storage TOS to reduce storage costs.
     */
    dbMinorVersion?: pulumi.Input<string>;
    /**
     * Time zone. Support UTC -12:00 ~ +13:00. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    dbTimeZone?: pulumi.Input<string>;
    /**
     * Instance name. Naming rules:
     * It cannot start with a number or a hyphen (-).
     * It can only contain Chinese characters, letters, numbers, underscores (_), and hyphens (-).
     * The length must be within 1 to 128 characters.
     * Description
     * If the instance name is not filled in, the instance ID will be used as the instance name.
     * When creating instances in batches, if an instance name is passed in, a serial number will be automatically added after the instance name.
     */
    instanceName?: pulumi.Input<string>;
    /**
     * Whether table names are case-sensitive. The default value is 1. Value range:
     * 0: Table names are case-sensitive. The backend stores them according to the actual table name.
     * 1: (default) Table names are not case-sensitive. The backend stores them by converting table names to lowercase letters.
     * Description:
     * This rule cannot be modified after creating an instance. Please set it reasonably according to business requirements.
     */
    lowerCaseTableNames?: pulumi.Input<string>;
    /**
     * Number of instance nodes. The value range is from 2 to 16.
     */
    nodeNumber?: pulumi.Input<number>;
    /**
     * Node specification code of an instance.
     */
    nodeSpec?: pulumi.Input<string>;
    /**
     * Purchase duration in prepaid scenarios.
     * Description:
     * When the value of ChargeType (computing billing type) is PrePaid (monthly/yearly package), this parameter is required.
     */
    period?: pulumi.Input<number>;
    /**
     * Purchase cycle in prepaid scenarios.
     * Month: Monthly package.
     * Year: Annual package.
     * Description:
     * When the value of ChargeType (computing billing type) is PrePaid (monthly or annual package), this parameter is required.
     */
    periodUnit?: pulumi.Input<string>;
    /**
     * Specify the private network port number for the connection terminal created by default for the instance. The default value is 3306, and the value range is 1000 to 65534.
     * Note:
     * This configuration item is only effective for the primary node terminal, default terminal, and HTAP cluster terminal. That is, after the instance is created successfully, for the newly created custom terminal, the port number is still 3306 by default.
     * After the instance is created successfully, you can also modify the port number at any time. Currently, only modification through the console is supported.
     */
    port?: pulumi.Input<number>;
    /**
     * Storage size in prepaid scenarios.
     * Description: When the value of StorageChargeType (storage billing type) is PrePaid (monthly/yearly prepaid), this parameter is required.
     */
    prePaidStorageInGb?: pulumi.Input<number>;
    /**
     * Project name of the instance. When this parameter is left blank, the newly created instance is added to the default project by default.
     */
    projectName?: pulumi.Input<string>;
    /**
     * Storage billing type. When this parameter is not passed, the storage billing type defaults to be the same as the computing billing type. The values are as follows:
     * PostPaid: Pay-as-you-go (postpaid).
     * PrePaid: Monthly or yearly subscription (prepaid).
     * Note
     * When the computing billing type is PostPaid, the storage billing type can only be PostPaid.
     * When the computing billing type is PrePaid, the storage billing type can be PrePaid or PostPaid.
     */
    storageChargeType?: pulumi.Input<string>;
    /**
     * Subnet ID of the veDB Mysql instance.
     */
    subnetId?: pulumi.Input<string>;
    /**
     * Tags.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.vedb_mysql.InstanceTag>[]>;
}
/**
 * The set of arguments for constructing a Instance resource.
 */
export interface InstanceArgs {
    /**
     * Whether to automatically renew under the prepaid scenario. Values:
     * true: Automatically renew.
     * false: Do not automatically renew.
     * Description:
     * When the value of ChargeType (billing type) is PrePaid (monthly/yearly package), this parameter is required.
     */
    autoRenew?: pulumi.Input<boolean>;
    /**
     * Calculate the billing type. When calculating the billing type during instance creation, the possible values are as follows:
     * PostPaid: Pay-as-you-go (postpaid).
     * PrePaid: Monthly or yearly subscription (prepaid).
     */
    chargeType: pulumi.Input<string>;
    /**
     * Database engine version, with a fixed value of MySQL_8_0.
     */
    dbEngineVersion: pulumi.Input<string>;
    /**
     * veDB MySQL minor version. For detailed instructions on version numbers, please refer to Version Number Management.
     * 3.0 (default): veDB MySQL stable version, 100% compatible with MySQL 8.0.
     * 3.1: Natively supports HTAP application scenarios and accelerates complex queries.
     * 3.2: Natively supports HTAP application scenarios and accelerates complex queries. In addition, it has built-in cold data archiving capabilities. It can archive data with low-frequency access to object storage TOS to reduce storage costs.
     */
    dbMinorVersion?: pulumi.Input<string>;
    /**
     * Time zone. Support UTC -12:00 ~ +13:00. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    dbTimeZone?: pulumi.Input<string>;
    /**
     * Instance name. Naming rules:
     * It cannot start with a number or a hyphen (-).
     * It can only contain Chinese characters, letters, numbers, underscores (_), and hyphens (-).
     * The length must be within 1 to 128 characters.
     * Description
     * If the instance name is not filled in, the instance ID will be used as the instance name.
     * When creating instances in batches, if an instance name is passed in, a serial number will be automatically added after the instance name.
     */
    instanceName?: pulumi.Input<string>;
    /**
     * Whether table names are case-sensitive. The default value is 1. Value range:
     * 0: Table names are case-sensitive. The backend stores them according to the actual table name.
     * 1: (default) Table names are not case-sensitive. The backend stores them by converting table names to lowercase letters.
     * Description:
     * This rule cannot be modified after creating an instance. Please set it reasonably according to business requirements.
     */
    lowerCaseTableNames?: pulumi.Input<string>;
    /**
     * Number of instance nodes. The value range is from 2 to 16.
     */
    nodeNumber: pulumi.Input<number>;
    /**
     * Node specification code of an instance.
     */
    nodeSpec: pulumi.Input<string>;
    /**
     * Purchase duration in prepaid scenarios.
     * Description:
     * When the value of ChargeType (computing billing type) is PrePaid (monthly/yearly package), this parameter is required.
     */
    period?: pulumi.Input<number>;
    /**
     * Purchase cycle in prepaid scenarios.
     * Month: Monthly package.
     * Year: Annual package.
     * Description:
     * When the value of ChargeType (computing billing type) is PrePaid (monthly or annual package), this parameter is required.
     */
    periodUnit?: pulumi.Input<string>;
    /**
     * Specify the private network port number for the connection terminal created by default for the instance. The default value is 3306, and the value range is 1000 to 65534.
     * Note:
     * This configuration item is only effective for the primary node terminal, default terminal, and HTAP cluster terminal. That is, after the instance is created successfully, for the newly created custom terminal, the port number is still 3306 by default.
     * After the instance is created successfully, you can also modify the port number at any time. Currently, only modification through the console is supported.
     */
    port?: pulumi.Input<number>;
    /**
     * Storage size in prepaid scenarios.
     * Description: When the value of StorageChargeType (storage billing type) is PrePaid (monthly/yearly prepaid), this parameter is required.
     */
    prePaidStorageInGb?: pulumi.Input<number>;
    /**
     * Project name of the instance. When this parameter is left blank, the newly created instance is added to the default project by default.
     */
    projectName?: pulumi.Input<string>;
    /**
     * Storage billing type. When this parameter is not passed, the storage billing type defaults to be the same as the computing billing type. The values are as follows:
     * PostPaid: Pay-as-you-go (postpaid).
     * PrePaid: Monthly or yearly subscription (prepaid).
     * Note
     * When the computing billing type is PostPaid, the storage billing type can only be PostPaid.
     * When the computing billing type is PrePaid, the storage billing type can be PrePaid or PostPaid.
     */
    storageChargeType?: pulumi.Input<string>;
    /**
     * Subnet ID of the veDB Mysql instance.
     */
    subnetId: pulumi.Input<string>;
    /**
     * Tags.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.vedb_mysql.InstanceTag>[]>;
}
