import * as pulumi from "@pulumi/pulumi";
import { input as inputs, output as outputs } from "../types";
/**
 * Manage RDS instance resource within HuaweiCloud.
 *
 * ## Example Usage
 * ### create a single db instance
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as pulumi from "@huaweicloudos/pulumi";
 *
 * const config = new pulumi.Config();
 * const vpcId = config.requireObject("vpcId");
 * const subnetId = config.requireObject("subnetId");
 * const secgroupId = config.requireObject("secgroupId");
 * const availabilityZone = config.requireObject("availabilityZone");
 * const postgreSQLPassword = config.requireObject("postgreSQLPassword");
 * const instance = new huaweicloud.rds.Instance("instance", {
 *     flavor: "rds.pg.n1.large.2",
 *     vpcId: vpcId,
 *     subnetId: subnetId,
 *     securityGroupId: secgroupId,
 *     availabilityZones: [availabilityZone],
 *     db: {
 *         type: "PostgreSQL",
 *         version: "12",
 *         password: postgreSQLPassword,
 *     },
 *     volume: {
 *         type: "ULTRAHIGH",
 *         size: 100,
 *     },
 *     backupStrategy: {
 *         startTime: "08:00-09:00",
 *         keepDays: 1,
 *     },
 * });
 * ```
 * ### create a primary/standby db instance
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as pulumi from "@huaweicloudos/pulumi";
 *
 * const config = new pulumi.Config();
 * const vpcId = config.requireObject("vpcId");
 * const subnetId = config.requireObject("subnetId");
 * const secgroupId = config.requireObject("secgroupId");
 * const availabilityZone1 = config.requireObject("availabilityZone1");
 * const availabilityZone2 = config.requireObject("availabilityZone2");
 * const postgreSQLPassword = config.requireObject("postgreSQLPassword");
 * const instance = new huaweicloud.rds.Instance("instance", {
 *     flavor: "rds.pg.n1.large.2.ha",
 *     haReplicationMode: "async",
 *     vpcId: vpcId,
 *     subnetId: subnetId,
 *     securityGroupId: secgroupId,
 *     availabilityZones: [
 *         availabilityZone1,
 *         availabilityZone2,
 *     ],
 *     db: {
 *         type: "PostgreSQL",
 *         version: "12",
 *         password: postgreSQLPassword,
 *     },
 *     volume: {
 *         type: "ULTRAHIGH",
 *         size: 100,
 *     },
 *     backupStrategy: {
 *         startTime: "08:00-09:00",
 *         keepDays: 1,
 *     },
 * });
 * ```
 * ### create a single db instance with encrypted volume
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as pulumi from "@huaweicloudos/pulumi";
 *
 * const config = new pulumi.Config();
 * const vpcId = config.requireObject("vpcId");
 * const subnetId = config.requireObject("subnetId");
 * const secgroupId = config.requireObject("secgroupId");
 * const availabilityZone = config.requireObject("availabilityZone");
 * const kmsId = config.requireObject("kmsId");
 * const postgreSQLPassword = config.requireObject("postgreSQLPassword");
 * const instance = new huaweicloud.rds.Instance("instance", {
 *     flavor: "rds.pg.n1.large.2",
 *     vpcId: vpcId,
 *     subnetId: subnetId,
 *     securityGroupId: secgroupId,
 *     availabilityZones: [availabilityZone],
 *     db: {
 *         type: "PostgreSQL",
 *         version: "12",
 *         password: postgreSQLPassword,
 *     },
 *     volume: {
 *         type: "ULTRAHIGH",
 *         size: 100,
 *         diskEncryptionId: kmsId,
 *     },
 *     backupStrategy: {
 *         startTime: "08:00-09:00",
 *         keepDays: 1,
 *     },
 * });
 * ```
 * ### create db instance with customized parameters
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as pulumi from "@huaweicloudos/pulumi";
 *
 * const config = new pulumi.Config();
 * const vpcId = config.requireObject("vpcId");
 * const subnetId = config.requireObject("subnetId");
 * const secgroupId = config.requireObject("secgroupId");
 * const availabilityZone = config.requireObject("availabilityZone");
 * const postgreSQLPassword = config.requireObject("postgreSQLPassword");
 * const instance = new huaweicloud.rds.Instance("instance", {
 *     flavor: "rds.pg.n1.large.2",
 *     vpcId: vpcId,
 *     subnetId: subnetId,
 *     securityGroupId: secgroupId,
 *     availabilityZones: [availabilityZone],
 *     db: {
 *         type: "PostgreSQL",
 *         version: "12",
 *         password: postgreSQLPassword,
 *     },
 *     volume: {
 *         type: "ULTRAHIGH",
 *         size: 100,
 *     },
 *     backupStrategy: {
 *         startTime: "08:00-09:00",
 *         keepDays: 1,
 *     },
 *     parameters: [
 *         {
 *             name: "div_precision_increment",
 *             value: "12",
 *         },
 *         {
 *             name: "connect_timeout",
 *             value: "13",
 *         },
 *     ],
 * });
 * ```
 *
 * ## Import
 *
 * RDS instance can be imported using the `id`, e.g. bash
 *
 * ```sh
 *  $ pulumi import huaweicloud:Rds/instance:Instance instance_1 <id>
 * ```
 *
 *  Note that the imported state may not be identical to your resource definition, due to some attributes missing from the API response, security or some other reason. The missing attributes include`db`, `restore`,`param_group_id`, `power_action`, `availability_zone`, `read_write_permissions`, `rotate_day`, `secret_id`, `secret_name`, `secret_version`, `dss_pool_id`, `lower_case_table_names`, `slow_log_show_original_status`, `charging_mode`, `period_unit`, `period`, `auto_renew`, `auto_pay`. It is generally recommended running `terraform plan` after importing a RDS instance. You can then decide if changes should be applied to the instance, or the resource definition should be updated to align with the instance. Also, you can ignore changes as below. hcl resource "huaweicloud_rds_instance" "instance_1" {
 *
 *  ...
 *
 *  lifecycle {
 *
 *  ignore_changes = [
 *
 *  "db", "restore", "param_group_id", "power_action", "availability_zone", "read_write_permissions", "rotate_day",
 *
 *  "secret_id", "secret_name", "secret_version", "dss_pool_id", "lower_case_table_names", "slow_log_show_original_status",
 *
 *  "charging_mode", "period_unit", "period", "auto_renew", "auto_pay",
 *
 *  ]
 *
 *  } }
 */
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;
    /**
     * @deprecated Deprecated
     */
    readonly autoPay: pulumi.Output<string | undefined>;
    /**
     * Specifies whether auto-renew is enabled. Valid values are "true" and "false".
     */
    readonly autoRenew: pulumi.Output<string | undefined>;
    /**
     * Specifies the list of AZ name. Changing this parameter will create a
     * new resource.
     */
    readonly availabilityZones: pulumi.Output<string[]>;
    /**
     * Specifies the advanced backup policy. Structure is documented below.
     */
    readonly backupStrategy: pulumi.Output<outputs.Rds.InstanceBackupStrategy>;
    /**
     * Specify the binlog retention period in hours. This parameter applies only to
     * MySQL Server databases. Value range: `0` to `168` (7x24).
     */
    readonly binlogRetentionHours: pulumi.Output<number | undefined>;
    /**
     * Specifies the charging mode of the RDS DB instance. Valid values are **prePaid**
     * and **postPaid**, defaults to **postPaid**.
     */
    readonly chargingMode: pulumi.Output<string>;
    /**
     * Specifies the Character Set, only available to Microsoft SQL Server DB instances.
     */
    readonly collation: pulumi.Output<string>;
    /**
     * Indicates the creation time.
     */
    readonly created: pulumi.Output<string>;
    /**
     * Specifies the database information. Structure is documented below. Changing this
     * parameter will create a new resource.
     */
    readonly db: pulumi.Output<outputs.Rds.InstanceDb>;
    /**
     * Specifies the description of the instance. The value consists of 0 to 64
     * characters, including letters, digits, periods (.), underscores (_), and hyphens (-).
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * Specifies the exclusive storage ID for Dec users. It is different for each az
     * configuration. When creating an instance for Dec users, it is needed to be specified for all nodes of the instance
     * and separated by commas if database instance type is not standalone or read-only.
     */
    readonly dssPoolId: pulumi.Output<string | undefined>;
    /**
     * Specifies the enterprise project id of the RDS instance.
     */
    readonly enterpriseProjectId: pulumi.Output<string>;
    /**
     * Specifies an intranet floating IP address of RDS DB instance.
     */
    readonly fixedIp: pulumi.Output<string>;
    /**
     * Specifies the specification code.
     */
    readonly flavor: pulumi.Output<string>;
    /**
     * Specifies the replication mode for the standby DB instance.
     * + For MySQL, the value is **async** or **semisync**.
     * + For PostgreSQL, the value is **async** or **sync**.
     * + For Microsoft SQL Server, the value is **sync**.
     * + For MariaDB, the value is **async** or **semisync**.
     */
    readonly haReplicationMode: pulumi.Output<string>;
    /**
     * Specifies the case-sensitive state of the database table name,
     * the default value is "1". Changing this parameter will create a new resource.
     * + 0: Table names are stored as fixed and table names are case-sensitive.
     * + 1: Table names will be stored in lower case and table names are not case-sensitive.
     */
    readonly lowerCaseTableNames: pulumi.Output<string | undefined>;
    /**
     * Specifies the time at which the maintenance time window starts, for example, **22:00**.
     */
    readonly maintainBegin: pulumi.Output<string>;
    /**
     * Specifies the time at which the maintenance time window ends, for example, **01:00**.
     */
    readonly maintainEnd: pulumi.Output<string>;
    /**
     * Specifies whether to enable minor version auto upgrade.
     */
    readonly minorVersionAutoUpgradeEnabled: pulumi.Output<boolean>;
    /**
     * Specify the host information for MSDTC.
     * The msdtcHosts structure is documented below.
     */
    readonly msdtcHosts: pulumi.Output<outputs.Rds.InstanceMsdtcHost[]>;
    /**
     * Specifies the parameter name. Some of them needs the instance to be restarted
     * to take effect.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Indicates the instance nodes information. Structure is documented below.
     */
    readonly nodes: pulumi.Output<outputs.Rds.InstanceNode[]>;
    /**
     * Specifies the parameter group ID.
     */
    readonly paramGroupId: pulumi.Output<string | undefined>;
    /**
     * Specify an array of one or more parameters to be set to the RDS instance after
     * launched. You can check on console to see which parameters supported. Structure is documented below.
     */
    readonly parameters: pulumi.Output<outputs.Rds.InstanceParameter[]>;
    /**
     * Specifies the backup cycle. Automatic backups will be performed on the specified days of
     * the week, except when disabling the automatic backup policy. The value range is a comma-separated number, where each
     * number represents a day of the week. For example, a value of 1,2,3,4 would set the backup cycle to Monday, Tuesday,
     * Wednesday, and Thursday. The default value is 1,2,3,4,5,6,7.
     */
    readonly period: pulumi.Output<number | undefined>;
    /**
     * Specifies the charging period unit of the RDS DB instance. Valid values are **month**
     * and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**.
     */
    readonly periodUnit: pulumi.Output<string | undefined>;
    /**
     * Specifies the power action to be done for the instance.
     * Value options: **ON**, **OFF** and **REBOOT**.
     */
    readonly powerAction: pulumi.Output<string | undefined>;
    /**
     * Specifies the prefix of the private domain name. The value contains
     * `8` to `64` characters. Only uppercase letters, lowercase letters, and digits are allowed.
     */
    readonly privateDnsNamePrefix: pulumi.Output<string>;
    /**
     * Indicates the private domain name list of the DB instance.
     */
    readonly privateDnsNames: pulumi.Output<string[]>;
    /**
     * Indicates the private IP address list. It is a blank string until an ECS is created.
     */
    readonly privateIps: pulumi.Output<string[]>;
    /**
     * Indicates the public IP address list.
     */
    readonly publicIps: pulumi.Output<string[]>;
    /**
     * Specifies the read write permissions of the instance. Valid values:
     * + **readwrite**: read write permissions.
     * + **readonly**: readonly permissions.
     */
    readonly readWritePermissions: pulumi.Output<string | undefined>;
    /**
     * The region in which to create the rds instance resource. If omitted, the
     * provider-level region will be used. Changing this creates a new rds instance resource.
     */
    readonly region: pulumi.Output<string>;
    /**
     * Specifies the restoration information. It only supported restore to postpaid
     * instance. Structure is documented below. Changing this parameter will create a new resource.
     */
    readonly restore: pulumi.Output<outputs.Rds.InstanceRestore | undefined>;
    /**
     * Specifies the rotation days of TDE rotation.
     */
    readonly rotateDay: pulumi.Output<number | undefined>;
    /**
     * Specifies whether to enable seconds level monitoring.
     */
    readonly secondsLevelMonitoringEnabled: pulumi.Output<boolean>;
    /**
     * Specifies the seconds level monitoring interval. Valid values:
     * `1`, `5`. It is mandatory when `secondsLevelMonitoringEnabled` is **true**.
     */
    readonly secondsLevelMonitoringInterval: pulumi.Output<number>;
    /**
     * Specifies the key ID of TDE rotation.
     */
    readonly secretId: pulumi.Output<string | undefined>;
    /**
     * Specifies the key name of TDE rotation.
     */
    readonly secretName: pulumi.Output<string | undefined>;
    /**
     * Specifies the key version of TDE rotation.
     */
    readonly secretVersion: pulumi.Output<string | undefined>;
    /**
     * Specifies the security group which the RDS DB instance belongs to.
     */
    readonly securityGroupId: pulumi.Output<string>;
    /**
     * Specifies the slow log show original status of the instance.
     * Only **MySQL** and **PostgreSQL** are supported. Value options: **on**, **off**.
     */
    readonly slowLogShowOriginalStatus: pulumi.Output<string | undefined>;
    /**
     * Specifies whether to enable the SSL for MySQL database.
     */
    readonly sslEnable: pulumi.Output<boolean>;
    /**
     * Indicates the node status.
     */
    readonly status: pulumi.Output<string>;
    /**
     * Specifies the network id of a subnet. Changing this parameter will create a
     * new resource.
     */
    readonly subnetId: pulumi.Output<string>;
    /**
     * Specifies the database switchover policy.
     * + **reliability**: reliability first.
     * + **availability**: availability first.
     */
    readonly switchStrategy: pulumi.Output<string>;
    /**
     * A mapping of tags to assign to the RDS instance. Each tag is represented by one key-value
     * pair.
     */
    readonly tags: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * Specifies whether enable TDE for the instance.
     */
    readonly tdeEnabled: pulumi.Output<boolean>;
    /**
     * Specifies the UTC time zone. For MySQL and PostgreSQL Chinese mainland site
     * and international site use UTC by default. The value ranges from UTC-12:00 to UTC+12:00 at the full hour. For
     * Microsoft SQL Server international site use UTC by default and Chinese mainland site use China Standard Time. The time
     * zone is expressed as a character string, refer to
     * [HuaweiCloud Document](https://support.huaweicloud.com/intl/en-us/api-rds/rds_01_0002.html#rds_01_0002__table613473883617).
     */
    readonly timeZone: pulumi.Output<string>;
    /**
     * Specifies the volume information. Structure is documented below.
     */
    readonly volume: pulumi.Output<outputs.Rds.InstanceVolume>;
    /**
     * Specifies the VPC ID. Changing this parameter will create a new resource.
     */
    readonly vpcId: 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 {
    /**
     * @deprecated Deprecated
     */
    autoPay?: pulumi.Input<string>;
    /**
     * Specifies whether auto-renew is enabled. Valid values are "true" and "false".
     */
    autoRenew?: pulumi.Input<string>;
    /**
     * Specifies the list of AZ name. Changing this parameter will create a
     * new resource.
     */
    availabilityZones?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Specifies the advanced backup policy. Structure is documented below.
     */
    backupStrategy?: pulumi.Input<inputs.Rds.InstanceBackupStrategy>;
    /**
     * Specify the binlog retention period in hours. This parameter applies only to
     * MySQL Server databases. Value range: `0` to `168` (7x24).
     */
    binlogRetentionHours?: pulumi.Input<number>;
    /**
     * Specifies the charging mode of the RDS DB instance. Valid values are **prePaid**
     * and **postPaid**, defaults to **postPaid**.
     */
    chargingMode?: pulumi.Input<string>;
    /**
     * Specifies the Character Set, only available to Microsoft SQL Server DB instances.
     */
    collation?: pulumi.Input<string>;
    /**
     * Indicates the creation time.
     */
    created?: pulumi.Input<string>;
    /**
     * Specifies the database information. Structure is documented below. Changing this
     * parameter will create a new resource.
     */
    db?: pulumi.Input<inputs.Rds.InstanceDb>;
    /**
     * Specifies the description of the instance. The value consists of 0 to 64
     * characters, including letters, digits, periods (.), underscores (_), and hyphens (-).
     */
    description?: pulumi.Input<string>;
    /**
     * Specifies the exclusive storage ID for Dec users. It is different for each az
     * configuration. When creating an instance for Dec users, it is needed to be specified for all nodes of the instance
     * and separated by commas if database instance type is not standalone or read-only.
     */
    dssPoolId?: pulumi.Input<string>;
    /**
     * Specifies the enterprise project id of the RDS instance.
     */
    enterpriseProjectId?: pulumi.Input<string>;
    /**
     * Specifies an intranet floating IP address of RDS DB instance.
     */
    fixedIp?: pulumi.Input<string>;
    /**
     * Specifies the specification code.
     */
    flavor?: pulumi.Input<string>;
    /**
     * Specifies the replication mode for the standby DB instance.
     * + For MySQL, the value is **async** or **semisync**.
     * + For PostgreSQL, the value is **async** or **sync**.
     * + For Microsoft SQL Server, the value is **sync**.
     * + For MariaDB, the value is **async** or **semisync**.
     */
    haReplicationMode?: pulumi.Input<string>;
    /**
     * Specifies the case-sensitive state of the database table name,
     * the default value is "1". Changing this parameter will create a new resource.
     * + 0: Table names are stored as fixed and table names are case-sensitive.
     * + 1: Table names will be stored in lower case and table names are not case-sensitive.
     */
    lowerCaseTableNames?: pulumi.Input<string>;
    /**
     * Specifies the time at which the maintenance time window starts, for example, **22:00**.
     */
    maintainBegin?: pulumi.Input<string>;
    /**
     * Specifies the time at which the maintenance time window ends, for example, **01:00**.
     */
    maintainEnd?: pulumi.Input<string>;
    /**
     * Specifies whether to enable minor version auto upgrade.
     */
    minorVersionAutoUpgradeEnabled?: pulumi.Input<boolean>;
    /**
     * Specify the host information for MSDTC.
     * The msdtcHosts structure is documented below.
     */
    msdtcHosts?: pulumi.Input<pulumi.Input<inputs.Rds.InstanceMsdtcHost>[]>;
    /**
     * Specifies the parameter name. Some of them needs the instance to be restarted
     * to take effect.
     */
    name?: pulumi.Input<string>;
    /**
     * Indicates the instance nodes information. Structure is documented below.
     */
    nodes?: pulumi.Input<pulumi.Input<inputs.Rds.InstanceNode>[]>;
    /**
     * Specifies the parameter group ID.
     */
    paramGroupId?: pulumi.Input<string>;
    /**
     * Specify an array of one or more parameters to be set to the RDS instance after
     * launched. You can check on console to see which parameters supported. Structure is documented below.
     */
    parameters?: pulumi.Input<pulumi.Input<inputs.Rds.InstanceParameter>[]>;
    /**
     * Specifies the backup cycle. Automatic backups will be performed on the specified days of
     * the week, except when disabling the automatic backup policy. The value range is a comma-separated number, where each
     * number represents a day of the week. For example, a value of 1,2,3,4 would set the backup cycle to Monday, Tuesday,
     * Wednesday, and Thursday. The default value is 1,2,3,4,5,6,7.
     */
    period?: pulumi.Input<number>;
    /**
     * Specifies the charging period unit of the RDS DB instance. Valid values are **month**
     * and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**.
     */
    periodUnit?: pulumi.Input<string>;
    /**
     * Specifies the power action to be done for the instance.
     * Value options: **ON**, **OFF** and **REBOOT**.
     */
    powerAction?: pulumi.Input<string>;
    /**
     * Specifies the prefix of the private domain name. The value contains
     * `8` to `64` characters. Only uppercase letters, lowercase letters, and digits are allowed.
     */
    privateDnsNamePrefix?: pulumi.Input<string>;
    /**
     * Indicates the private domain name list of the DB instance.
     */
    privateDnsNames?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Indicates the private IP address list. It is a blank string until an ECS is created.
     */
    privateIps?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Indicates the public IP address list.
     */
    publicIps?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Specifies the read write permissions of the instance. Valid values:
     * + **readwrite**: read write permissions.
     * + **readonly**: readonly permissions.
     */
    readWritePermissions?: pulumi.Input<string>;
    /**
     * The region in which to create the rds instance resource. If omitted, the
     * provider-level region will be used. Changing this creates a new rds instance resource.
     */
    region?: pulumi.Input<string>;
    /**
     * Specifies the restoration information. It only supported restore to postpaid
     * instance. Structure is documented below. Changing this parameter will create a new resource.
     */
    restore?: pulumi.Input<inputs.Rds.InstanceRestore>;
    /**
     * Specifies the rotation days of TDE rotation.
     */
    rotateDay?: pulumi.Input<number>;
    /**
     * Specifies whether to enable seconds level monitoring.
     */
    secondsLevelMonitoringEnabled?: pulumi.Input<boolean>;
    /**
     * Specifies the seconds level monitoring interval. Valid values:
     * `1`, `5`. It is mandatory when `secondsLevelMonitoringEnabled` is **true**.
     */
    secondsLevelMonitoringInterval?: pulumi.Input<number>;
    /**
     * Specifies the key ID of TDE rotation.
     */
    secretId?: pulumi.Input<string>;
    /**
     * Specifies the key name of TDE rotation.
     */
    secretName?: pulumi.Input<string>;
    /**
     * Specifies the key version of TDE rotation.
     */
    secretVersion?: pulumi.Input<string>;
    /**
     * Specifies the security group which the RDS DB instance belongs to.
     */
    securityGroupId?: pulumi.Input<string>;
    /**
     * Specifies the slow log show original status of the instance.
     * Only **MySQL** and **PostgreSQL** are supported. Value options: **on**, **off**.
     */
    slowLogShowOriginalStatus?: pulumi.Input<string>;
    /**
     * Specifies whether to enable the SSL for MySQL database.
     */
    sslEnable?: pulumi.Input<boolean>;
    /**
     * Indicates the node status.
     */
    status?: pulumi.Input<string>;
    /**
     * Specifies the network id of a subnet. Changing this parameter will create a
     * new resource.
     */
    subnetId?: pulumi.Input<string>;
    /**
     * Specifies the database switchover policy.
     * + **reliability**: reliability first.
     * + **availability**: availability first.
     */
    switchStrategy?: pulumi.Input<string>;
    /**
     * A mapping of tags to assign to the RDS instance. Each tag is represented by one key-value
     * pair.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * Specifies whether enable TDE for the instance.
     */
    tdeEnabled?: pulumi.Input<boolean>;
    /**
     * Specifies the UTC time zone. For MySQL and PostgreSQL Chinese mainland site
     * and international site use UTC by default. The value ranges from UTC-12:00 to UTC+12:00 at the full hour. For
     * Microsoft SQL Server international site use UTC by default and Chinese mainland site use China Standard Time. The time
     * zone is expressed as a character string, refer to
     * [HuaweiCloud Document](https://support.huaweicloud.com/intl/en-us/api-rds/rds_01_0002.html#rds_01_0002__table613473883617).
     */
    timeZone?: pulumi.Input<string>;
    /**
     * Specifies the volume information. Structure is documented below.
     */
    volume?: pulumi.Input<inputs.Rds.InstanceVolume>;
    /**
     * Specifies the VPC ID. Changing this parameter will create a new resource.
     */
    vpcId?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a Instance resource.
 */
export interface InstanceArgs {
    /**
     * @deprecated Deprecated
     */
    autoPay?: pulumi.Input<string>;
    /**
     * Specifies whether auto-renew is enabled. Valid values are "true" and "false".
     */
    autoRenew?: pulumi.Input<string>;
    /**
     * Specifies the list of AZ name. Changing this parameter will create a
     * new resource.
     */
    availabilityZones: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Specifies the advanced backup policy. Structure is documented below.
     */
    backupStrategy?: pulumi.Input<inputs.Rds.InstanceBackupStrategy>;
    /**
     * Specify the binlog retention period in hours. This parameter applies only to
     * MySQL Server databases. Value range: `0` to `168` (7x24).
     */
    binlogRetentionHours?: pulumi.Input<number>;
    /**
     * Specifies the charging mode of the RDS DB instance. Valid values are **prePaid**
     * and **postPaid**, defaults to **postPaid**.
     */
    chargingMode?: pulumi.Input<string>;
    /**
     * Specifies the Character Set, only available to Microsoft SQL Server DB instances.
     */
    collation?: pulumi.Input<string>;
    /**
     * Specifies the database information. Structure is documented below. Changing this
     * parameter will create a new resource.
     */
    db: pulumi.Input<inputs.Rds.InstanceDb>;
    /**
     * Specifies the description of the instance. The value consists of 0 to 64
     * characters, including letters, digits, periods (.), underscores (_), and hyphens (-).
     */
    description?: pulumi.Input<string>;
    /**
     * Specifies the exclusive storage ID for Dec users. It is different for each az
     * configuration. When creating an instance for Dec users, it is needed to be specified for all nodes of the instance
     * and separated by commas if database instance type is not standalone or read-only.
     */
    dssPoolId?: pulumi.Input<string>;
    /**
     * Specifies the enterprise project id of the RDS instance.
     */
    enterpriseProjectId?: pulumi.Input<string>;
    /**
     * Specifies an intranet floating IP address of RDS DB instance.
     */
    fixedIp?: pulumi.Input<string>;
    /**
     * Specifies the specification code.
     */
    flavor: pulumi.Input<string>;
    /**
     * Specifies the replication mode for the standby DB instance.
     * + For MySQL, the value is **async** or **semisync**.
     * + For PostgreSQL, the value is **async** or **sync**.
     * + For Microsoft SQL Server, the value is **sync**.
     * + For MariaDB, the value is **async** or **semisync**.
     */
    haReplicationMode?: pulumi.Input<string>;
    /**
     * Specifies the case-sensitive state of the database table name,
     * the default value is "1". Changing this parameter will create a new resource.
     * + 0: Table names are stored as fixed and table names are case-sensitive.
     * + 1: Table names will be stored in lower case and table names are not case-sensitive.
     */
    lowerCaseTableNames?: pulumi.Input<string>;
    /**
     * Specifies the time at which the maintenance time window starts, for example, **22:00**.
     */
    maintainBegin?: pulumi.Input<string>;
    /**
     * Specifies the time at which the maintenance time window ends, for example, **01:00**.
     */
    maintainEnd?: pulumi.Input<string>;
    /**
     * Specifies whether to enable minor version auto upgrade.
     */
    minorVersionAutoUpgradeEnabled?: pulumi.Input<boolean>;
    /**
     * Specify the host information for MSDTC.
     * The msdtcHosts structure is documented below.
     */
    msdtcHosts?: pulumi.Input<pulumi.Input<inputs.Rds.InstanceMsdtcHost>[]>;
    /**
     * Specifies the parameter name. Some of them needs the instance to be restarted
     * to take effect.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies the parameter group ID.
     */
    paramGroupId?: pulumi.Input<string>;
    /**
     * Specify an array of one or more parameters to be set to the RDS instance after
     * launched. You can check on console to see which parameters supported. Structure is documented below.
     */
    parameters?: pulumi.Input<pulumi.Input<inputs.Rds.InstanceParameter>[]>;
    /**
     * Specifies the backup cycle. Automatic backups will be performed on the specified days of
     * the week, except when disabling the automatic backup policy. The value range is a comma-separated number, where each
     * number represents a day of the week. For example, a value of 1,2,3,4 would set the backup cycle to Monday, Tuesday,
     * Wednesday, and Thursday. The default value is 1,2,3,4,5,6,7.
     */
    period?: pulumi.Input<number>;
    /**
     * Specifies the charging period unit of the RDS DB instance. Valid values are **month**
     * and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**.
     */
    periodUnit?: pulumi.Input<string>;
    /**
     * Specifies the power action to be done for the instance.
     * Value options: **ON**, **OFF** and **REBOOT**.
     */
    powerAction?: pulumi.Input<string>;
    /**
     * Specifies the prefix of the private domain name. The value contains
     * `8` to `64` characters. Only uppercase letters, lowercase letters, and digits are allowed.
     */
    privateDnsNamePrefix?: pulumi.Input<string>;
    /**
     * Specifies the read write permissions of the instance. Valid values:
     * + **readwrite**: read write permissions.
     * + **readonly**: readonly permissions.
     */
    readWritePermissions?: pulumi.Input<string>;
    /**
     * The region in which to create the rds instance resource. If omitted, the
     * provider-level region will be used. Changing this creates a new rds instance resource.
     */
    region?: pulumi.Input<string>;
    /**
     * Specifies the restoration information. It only supported restore to postpaid
     * instance. Structure is documented below. Changing this parameter will create a new resource.
     */
    restore?: pulumi.Input<inputs.Rds.InstanceRestore>;
    /**
     * Specifies the rotation days of TDE rotation.
     */
    rotateDay?: pulumi.Input<number>;
    /**
     * Specifies whether to enable seconds level monitoring.
     */
    secondsLevelMonitoringEnabled?: pulumi.Input<boolean>;
    /**
     * Specifies the seconds level monitoring interval. Valid values:
     * `1`, `5`. It is mandatory when `secondsLevelMonitoringEnabled` is **true**.
     */
    secondsLevelMonitoringInterval?: pulumi.Input<number>;
    /**
     * Specifies the key ID of TDE rotation.
     */
    secretId?: pulumi.Input<string>;
    /**
     * Specifies the key name of TDE rotation.
     */
    secretName?: pulumi.Input<string>;
    /**
     * Specifies the key version of TDE rotation.
     */
    secretVersion?: pulumi.Input<string>;
    /**
     * Specifies the security group which the RDS DB instance belongs to.
     */
    securityGroupId: pulumi.Input<string>;
    /**
     * Specifies the slow log show original status of the instance.
     * Only **MySQL** and **PostgreSQL** are supported. Value options: **on**, **off**.
     */
    slowLogShowOriginalStatus?: pulumi.Input<string>;
    /**
     * Specifies whether to enable the SSL for MySQL database.
     */
    sslEnable?: pulumi.Input<boolean>;
    /**
     * Specifies the network id of a subnet. Changing this parameter will create a
     * new resource.
     */
    subnetId: pulumi.Input<string>;
    /**
     * Specifies the database switchover policy.
     * + **reliability**: reliability first.
     * + **availability**: availability first.
     */
    switchStrategy?: pulumi.Input<string>;
    /**
     * A mapping of tags to assign to the RDS instance. Each tag is represented by one key-value
     * pair.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * Specifies whether enable TDE for the instance.
     */
    tdeEnabled?: pulumi.Input<boolean>;
    /**
     * Specifies the UTC time zone. For MySQL and PostgreSQL Chinese mainland site
     * and international site use UTC by default. The value ranges from UTC-12:00 to UTC+12:00 at the full hour. For
     * Microsoft SQL Server international site use UTC by default and Chinese mainland site use China Standard Time. The time
     * zone is expressed as a character string, refer to
     * [HuaweiCloud Document](https://support.huaweicloud.com/intl/en-us/api-rds/rds_01_0002.html#rds_01_0002__table613473883617).
     */
    timeZone?: pulumi.Input<string>;
    /**
     * Specifies the volume information. Structure is documented below.
     */
    volume: pulumi.Input<inputs.Rds.InstanceVolume>;
    /**
     * Specifies the VPC ID. Changing this parameter will create a new resource.
     */
    vpcId: pulumi.Input<string>;
}
