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 "@volcengine/pulumi";
 *
 * const foo = new volcengine.rds.Instance("foo", {
 *     chargeType: "PostPaid",
 *     dbEngine: "MySQL",
 *     dbEngineVersion: "MySQL_Community_5_7",
 *     instanceName: "tf-test",
 *     instanceSpecName: "rds.mysql.1c2g",
 *     instanceType: "HA",
 *     region: "cn-north-4",
 *     storageSpaceGb: 100,
 *     storageType: "LocalSSD",
 *     subnetId: "subnet-1g0d4fkh1nabk8ibuxx1jtvss",
 *     vpcId: "vpc-3cj17x7u9bzeo6c6rrtzfpaeb",
 *     zone: "cn-langfang-b",
 * });
 * ```
 *
 * ## Import
 *
 * RDS Instance can be imported using the id, e.g.
 *
 * ```sh
 * $ pulumi import volcengine:rds/instance:Instance default mysql-42b38c769c4b
 * ```
 */
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. Default: false. Value:
     * true: yes.
     * false: no. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    readonly autoRenew: pulumi.Output<boolean | undefined>;
    /**
     * Billing type. Value:
     * PostPaid: Postpaid (pay-as-you-go).
     * Prepaid: Prepaid (yearly and monthly).
     */
    readonly chargeType: pulumi.Output<string>;
    /**
     * The connection info ot the RDS instance.
     */
    readonly connectionInfo: pulumi.Output<outputs.rds.InstanceConnectionInfo>;
    /**
     * Database type. Value:
     * MySQL (default).
     */
    readonly dbEngine: pulumi.Output<string | undefined>;
    /**
     * Instance type. Value:
     * MySQL_Community_5_7
     * MySQL_8_0.
     */
    readonly dbEngineVersion: pulumi.Output<string>;
    /**
     * Set the name of the instance. The naming rules are as follows:
     *
     * Cannot start with a number, a dash (-).
     * It can only contain Chinese characters, letters, numbers, underscores (_) and underscores (-).
     * The length needs to be within 1~128 characters.
     */
    readonly instanceName: pulumi.Output<string | undefined>;
    /**
     * Instance specification name, you can specify the specification name of the instance to be created. Value:
     * rds.mysql.1c2g
     * rds.mysql.2c4g
     * rds.mysql.4c8g
     * rds.mysql.4c16g
     * rds.mysql.8c32g
     * rds.mysql.16c64g
     * rds.mysql.16c128g
     * rds.mysql.32c128g
     * rds.mysql.32c256g.
     */
    readonly instanceSpecName: pulumi.Output<string>;
    /**
     * Instance type. Value:
     * HA: High availability version.
     */
    readonly instanceType: pulumi.Output<string>;
    /**
     * The purchase cycle in the prepaid scenario. Value:
     * Month: monthly subscription.
     * Year: yearly subscription. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    readonly prepaidPeriod: pulumi.Output<string | undefined>;
    /**
     * Select the project to which the instance belongs. If this parameter is left blank, the new instance will not be added to any project. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    readonly projectName: pulumi.Output<string | undefined>;
    /**
     * The region of the RDS instance.
     */
    readonly region: pulumi.Output<string | undefined>;
    /**
     * The storage space(GB) of the RDS instance.
     */
    readonly storageSpaceGb: pulumi.Output<number>;
    /**
     * Instance storage type. Value:
     * LocalSSD: Local SSD disk.
     */
    readonly storageType: pulumi.Output<string>;
    /**
     * Subnet ID. The subnet must belong to the selected Availability Zone.
     */
    readonly subnetId: pulumi.Output<string>;
    /**
     * Fill in the high-privileged user account name. The naming rules are as follows:
     * Unique name.
     * Start with a letter and end with a letter or number.
     * Consists of lowercase letters, numbers, or underscores (_).
     * The length is 2~32 characters.
     * [Keywords](https://www.volcengine.com/docs/6313/66162) are not allowed for account names.
     */
    readonly superAccountName: pulumi.Output<string | undefined>;
    /**
     * Set a high-privilege account password. The rules are as follows:
     * Only uppercase and lowercase letters, numbers and the following special characters _#!@$%^*()+=-.
     * The length needs to be within 8~32 characters.
     * Contains at least 3 of uppercase letters, lowercase letters, numbers or special characters.
     */
    readonly superAccountPassword: pulumi.Output<string | undefined>;
    /**
     * supper_account_password is deprecated, use superAccountPassword instead Set a high-privilege account password. The rules are as follows:
     * Only uppercase and lowercase letters, numbers and the following special characters _#!@$%^*()+=-.
     * The length needs to be within 8~32 characters.
     * Contains at least 3 of uppercase letters, lowercase letters, numbers or special characters.
     *
     * @deprecated supper_account_password is deprecated, use superAccountPassword instead
     */
    readonly supperAccountPassword: pulumi.Output<string | undefined>;
    /**
     * The purchase time of RDS instance. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    readonly usedTime: pulumi.Output<number | undefined>;
    /**
     * The vpc ID of the RDS instance.
     */
    readonly vpcId: pulumi.Output<string>;
    /**
     * The available zone of the RDS instance.
     */
    readonly zone: pulumi.Output<string>;
    /**
     * 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. Default: false. Value:
     * true: yes.
     * false: no. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    autoRenew?: pulumi.Input<boolean>;
    /**
     * Billing type. Value:
     * PostPaid: Postpaid (pay-as-you-go).
     * Prepaid: Prepaid (yearly and monthly).
     */
    chargeType?: pulumi.Input<string>;
    /**
     * The connection info ot the RDS instance.
     */
    connectionInfo?: pulumi.Input<inputs.rds.InstanceConnectionInfo>;
    /**
     * Database type. Value:
     * MySQL (default).
     */
    dbEngine?: pulumi.Input<string>;
    /**
     * Instance type. Value:
     * MySQL_Community_5_7
     * MySQL_8_0.
     */
    dbEngineVersion?: pulumi.Input<string>;
    /**
     * Set the name of the instance. The naming rules are as follows:
     *
     * Cannot start with a number, a dash (-).
     * It can only contain Chinese characters, letters, numbers, underscores (_) and underscores (-).
     * The length needs to be within 1~128 characters.
     */
    instanceName?: pulumi.Input<string>;
    /**
     * Instance specification name, you can specify the specification name of the instance to be created. Value:
     * rds.mysql.1c2g
     * rds.mysql.2c4g
     * rds.mysql.4c8g
     * rds.mysql.4c16g
     * rds.mysql.8c32g
     * rds.mysql.16c64g
     * rds.mysql.16c128g
     * rds.mysql.32c128g
     * rds.mysql.32c256g.
     */
    instanceSpecName?: pulumi.Input<string>;
    /**
     * Instance type. Value:
     * HA: High availability version.
     */
    instanceType?: pulumi.Input<string>;
    /**
     * The purchase cycle in the prepaid scenario. Value:
     * Month: monthly subscription.
     * Year: yearly subscription. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    prepaidPeriod?: pulumi.Input<string>;
    /**
     * Select the project to which the instance belongs. If this parameter is left blank, the new instance will not be added to any project. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    projectName?: pulumi.Input<string>;
    /**
     * The region of the RDS instance.
     */
    region?: pulumi.Input<string>;
    /**
     * The storage space(GB) of the RDS instance.
     */
    storageSpaceGb?: pulumi.Input<number>;
    /**
     * Instance storage type. Value:
     * LocalSSD: Local SSD disk.
     */
    storageType?: pulumi.Input<string>;
    /**
     * Subnet ID. The subnet must belong to the selected Availability Zone.
     */
    subnetId?: pulumi.Input<string>;
    /**
     * Fill in the high-privileged user account name. The naming rules are as follows:
     * Unique name.
     * Start with a letter and end with a letter or number.
     * Consists of lowercase letters, numbers, or underscores (_).
     * The length is 2~32 characters.
     * [Keywords](https://www.volcengine.com/docs/6313/66162) are not allowed for account names.
     */
    superAccountName?: pulumi.Input<string>;
    /**
     * Set a high-privilege account password. The rules are as follows:
     * Only uppercase and lowercase letters, numbers and the following special characters _#!@$%^*()+=-.
     * The length needs to be within 8~32 characters.
     * Contains at least 3 of uppercase letters, lowercase letters, numbers or special characters.
     */
    superAccountPassword?: pulumi.Input<string>;
    /**
     * supper_account_password is deprecated, use superAccountPassword instead Set a high-privilege account password. The rules are as follows:
     * Only uppercase and lowercase letters, numbers and the following special characters _#!@$%^*()+=-.
     * The length needs to be within 8~32 characters.
     * Contains at least 3 of uppercase letters, lowercase letters, numbers or special characters.
     *
     * @deprecated supper_account_password is deprecated, use superAccountPassword instead
     */
    supperAccountPassword?: pulumi.Input<string>;
    /**
     * The purchase time of RDS instance. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    usedTime?: pulumi.Input<number>;
    /**
     * The vpc ID of the RDS instance.
     */
    vpcId?: pulumi.Input<string>;
    /**
     * The available zone of the RDS instance.
     */
    zone?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a Instance resource.
 */
export interface InstanceArgs {
    /**
     * Whether to automatically renew. Default: false. Value:
     * true: yes.
     * false: no. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    autoRenew?: pulumi.Input<boolean>;
    /**
     * Billing type. Value:
     * PostPaid: Postpaid (pay-as-you-go).
     * Prepaid: Prepaid (yearly and monthly).
     */
    chargeType: pulumi.Input<string>;
    /**
     * Database type. Value:
     * MySQL (default).
     */
    dbEngine?: pulumi.Input<string>;
    /**
     * Instance type. Value:
     * MySQL_Community_5_7
     * MySQL_8_0.
     */
    dbEngineVersion: pulumi.Input<string>;
    /**
     * Set the name of the instance. The naming rules are as follows:
     *
     * Cannot start with a number, a dash (-).
     * It can only contain Chinese characters, letters, numbers, underscores (_) and underscores (-).
     * The length needs to be within 1~128 characters.
     */
    instanceName?: pulumi.Input<string>;
    /**
     * Instance specification name, you can specify the specification name of the instance to be created. Value:
     * rds.mysql.1c2g
     * rds.mysql.2c4g
     * rds.mysql.4c8g
     * rds.mysql.4c16g
     * rds.mysql.8c32g
     * rds.mysql.16c64g
     * rds.mysql.16c128g
     * rds.mysql.32c128g
     * rds.mysql.32c256g.
     */
    instanceSpecName: pulumi.Input<string>;
    /**
     * Instance type. Value:
     * HA: High availability version.
     */
    instanceType: pulumi.Input<string>;
    /**
     * The purchase cycle in the prepaid scenario. Value:
     * Month: monthly subscription.
     * Year: yearly subscription. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    prepaidPeriod?: pulumi.Input<string>;
    /**
     * Select the project to which the instance belongs. If this parameter is left blank, the new instance will not be added to any project. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    projectName?: pulumi.Input<string>;
    /**
     * The region of the RDS instance.
     */
    region?: pulumi.Input<string>;
    /**
     * The storage space(GB) of the RDS instance.
     */
    storageSpaceGb: pulumi.Input<number>;
    /**
     * Instance storage type. Value:
     * LocalSSD: Local SSD disk.
     */
    storageType: pulumi.Input<string>;
    /**
     * Subnet ID. The subnet must belong to the selected Availability Zone.
     */
    subnetId: pulumi.Input<string>;
    /**
     * Fill in the high-privileged user account name. The naming rules are as follows:
     * Unique name.
     * Start with a letter and end with a letter or number.
     * Consists of lowercase letters, numbers, or underscores (_).
     * The length is 2~32 characters.
     * [Keywords](https://www.volcengine.com/docs/6313/66162) are not allowed for account names.
     */
    superAccountName?: pulumi.Input<string>;
    /**
     * Set a high-privilege account password. The rules are as follows:
     * Only uppercase and lowercase letters, numbers and the following special characters _#!@$%^*()+=-.
     * The length needs to be within 8~32 characters.
     * Contains at least 3 of uppercase letters, lowercase letters, numbers or special characters.
     */
    superAccountPassword?: pulumi.Input<string>;
    /**
     * supper_account_password is deprecated, use superAccountPassword instead Set a high-privilege account password. The rules are as follows:
     * Only uppercase and lowercase letters, numbers and the following special characters _#!@$%^*()+=-.
     * The length needs to be within 8~32 characters.
     * Contains at least 3 of uppercase letters, lowercase letters, numbers or special characters.
     *
     * @deprecated supper_account_password is deprecated, use superAccountPassword instead
     */
    supperAccountPassword?: pulumi.Input<string>;
    /**
     * The purchase time of RDS instance. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    usedTime?: pulumi.Input<number>;
    /**
     * The vpc ID of the RDS instance.
     */
    vpcId: pulumi.Input<string>;
    /**
     * The available zone of the RDS instance.
     */
    zone: pulumi.Input<string>;
}
