import * as pulumi from "@pulumi/pulumi";
import { input as inputs, output as outputs } from "../types";
/**
 * GaussDB mysql instance management within HuaweiCould.
 *
 * ## Example Usage
 * ### create a basic instance
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as pulumi from "@huaweicloudos/pulumi";
 *
 * const instance1 = new huaweicloud.gaussdb.MysqlInstance("instance1", {
 *     password: _var.password,
 *     flavor: "gaussdb.mysql.4xlarge.x86.4",
 *     vpcId: _var.vpc_id,
 *     subnetId: _var.subnet_id,
 *     securityGroupId: _var.secgroup_id,
 * });
 * ```
 * ### create a gaussdb mysql instance with backup strategy
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as pulumi from "@huaweicloudos/pulumi";
 *
 * const instance1 = new huaweicloud.gaussdb.MysqlInstance("instance1", {
 *     password: _var.password,
 *     flavor: "gaussdb.mysql.4xlarge.x86.4",
 *     vpcId: _var.vpc_id,
 *     subnetId: _var.subnet_id,
 *     securityGroupId: _var.secgroup_id,
 *     backupStrategy: {
 *         startTime: "03:00-04:00",
 *         keepDays: 7,
 *     },
 * });
 * ```
 *
 * ## Import
 *
 * GaussDB instance can be imported using the `id`, e.g. bash
 *
 * ```sh
 *  $ pulumi import huaweicloud:GaussDB/mysqlInstance:MysqlInstance test <id>
 * ```
 *
 *  Note that the imported state may not be identical to your resource definition, due to the attribute missing from the API response. The missing attribute is`table_name_case_sensitivity`, `enterprise_project_id`, `password`, `ssl_option`, `encryption_type`, `kms_key_id` and `parameters`. It is generally recommended running `terraform plan` after importing a GaussDB MySQL instance. You can then decide if changes should be applied to the GaussDB MySQL instance, or the resource definition should be updated to align with the GaussDB MySQL instance. Also you can ignore changes as below. hcl resource "huaweicloud_gaussdb_mysql_instance" "test" {
 *
 *  ...
 *
 *  lifecycle {
 *
 *  ignore_changes = [
 *
 *  new_node_weight, proxy_mode, readonly_nodes_weight, parameters, ssl_option, encryption_type, kms_key_id
 *
 *  ]
 *
 *  } }
 */
export declare class MysqlInstance extends pulumi.CustomResource {
    /**
     * Get an existing MysqlInstance 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?: MysqlInstanceState, opts?: pulumi.CustomResourceOptions): MysqlInstance;
    /**
     * Returns true if the given object is an instance of MysqlInstance.  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 MysqlInstance;
    /**
     * Specifies whether audit log is enabled. The default value is `false`.
     */
    readonly auditLogEnabled: pulumi.Output<boolean>;
    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 auto-scaling policies.
     * The autoScaling structure is documented below.
     */
    readonly autoScaling: pulumi.Output<outputs.GaussDB.MysqlInstanceAutoScaling>;
    /**
     * Specifies the availability zone mode: "single" or "multi".
     * Defaults to "single". Changing this parameter will create a new resource.
     */
    readonly availabilityZoneMode: pulumi.Output<string | undefined>;
    /**
     * Specifies the advanced backup policy. Structure is documented below.
     */
    readonly backupStrategy: pulumi.Output<outputs.GaussDB.MysqlInstanceBackupStrategy>;
    /**
     * Specifies the charging mode of the instance. Valid values are **prePaid**
     * and **postPaid**, defaults to **postPaid**. Changing this will do nothing.
     */
    readonly chargingMode: pulumi.Output<string | undefined>;
    /**
     * Specifies the configuration ID.
     */
    readonly configurationId: pulumi.Output<string>;
    /**
     * @deprecated Deprecated
     */
    readonly configurationName: pulumi.Output<string>;
    /**
     * Indicates the creation time in the **yyyy-mm-ddThh:mm:ssZ** format.
     */
    readonly createdAt: pulumi.Output<string>;
    /**
     * Indicates the current database kernel version.
     */
    readonly currentKernelVersion: pulumi.Output<string>;
    /**
     * Indicates the current database version.
     */
    readonly currentVersion: pulumi.Output<string>;
    /**
     * Specifies the database information. Structure is documented below. Changing
     * this parameter will create a new resource.
     */
    readonly datastore: pulumi.Output<outputs.GaussDB.MysqlInstanceDatastore>;
    /**
     * Indicates the default username.
     */
    readonly dbUserName: pulumi.Output<string>;
    /**
     * Specifies the dedicated resource ID. Changing this parameter
     * will create a new resource.
     */
    readonly dedicatedResourceId: pulumi.Output<string>;
    /**
     * Specifies the dedicated resource name. Changing this parameter
     * will create a new resource.
     */
    readonly dedicatedResourceName: pulumi.Output<string>;
    /**
     * Specifies the description of the instance.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * Specifies whether to enable or disable encrypted backup. Value options:
     * + **ON**: enabled
     * + **OFF**: disabled
     */
    readonly encryptionStatus: pulumi.Output<string>;
    /**
     * Specifies the encryption type. Currently, only **kms (case-insensitive)** is
     * supported. It is mandatory when `encryptionStatus` is set to **ON**.
     */
    readonly encryptionType: pulumi.Output<string | undefined>;
    /**
     * Specifies the enterprise project id. Required if EPS enabled.
     */
    readonly enterpriseProjectId: pulumi.Output<string | undefined>;
    /**
     * Specifies the instance specifications. Please use
     * `gaussdbMysqlFlavors` data source to fetch the available flavors.
     */
    readonly flavor: pulumi.Output<string>;
    /**
     * If specified, try to import the instance instead of creating if the name already
     * existed.
     */
    readonly forceImport: pulumi.Output<boolean | undefined>;
    /**
     * Specifies the KMS ID. It is mandatory when `encryptionStatus` is set to **ON**.
     */
    readonly kmsKeyId: pulumi.Output<string | undefined>;
    /**
     * Specifies the start time for a maintenance window, for example, **22:00**.
     */
    readonly maintainBegin: pulumi.Output<string>;
    /**
     * Specifies the end time for a maintenance window, for example, **01:00**.
     */
    readonly maintainEnd: pulumi.Output<string>;
    /**
     * Specifies the availability zone where the master node
     * resides. The parameter is required in multi availability zone mode. Changing this parameter will create a new
     * resource.
     */
    readonly masterAvailabilityZone: pulumi.Output<string>;
    /**
     * Indicates the instance mode.
     */
    readonly mode: pulumi.Output<string>;
    /**
     * Specifies the name of the parameter.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Indicates the instance nodes information.
     * The nodes structure is documented below.
     */
    readonly nodes: pulumi.Output<outputs.GaussDB.MysqlInstanceNode[]>;
    /**
     * Specifies an array of one or more parameters to be set to the instance after launched.
     * The parameters structure is documented below.
     */
    readonly parameters: pulumi.Output<outputs.GaussDB.MysqlInstanceParameter[]>;
    /**
     * Specifies the database password. The value must be `8` to `32` characters in length,
     * including uppercase and lowercase letters, digits, and special characters, such as ~!@#%^*-_=+? You are advised to
     * enter a strong password to improve security, preventing security risks such as brute force cracking.
     */
    readonly password: pulumi.Output<string>;
    /**
     * Specifies the charging period of the instance.
     * If `periodUnit` is set to **month** , the value ranges from `1` to `9`.
     * If `periodUnit` is set to **year**, the value ranges from `1` to `3`.
     * This parameter is mandatory if `chargingMode` is set to **prePaid**.
     * Changing this will do nothing.
     */
    readonly period: pulumi.Output<number | undefined>;
    /**
     * Specifies the charging period unit of the instance.
     * Valid values are **month** and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**.
     * Changing this will do nothing.
     */
    readonly periodUnit: pulumi.Output<string | undefined>;
    /**
     * Specifies the database port.
     */
    readonly port: pulumi.Output<number>;
    /**
     * Indicates the private domain name.
     */
    readonly privateDnsName: pulumi.Output<string>;
    /**
     * Specifies the prefix of the private domain name. The value contains
     * `8` to `63` characters. Only uppercase letters, lowercase letters, and digits are allowed.
     */
    readonly privateDnsNamePrefix: pulumi.Output<string>;
    /**
     * Specifies the private IP address of the DB instance.
     */
    readonly privateWriteIp: pulumi.Output<string>;
    /**
     * @deprecated use huaweicloud_gaussdb_mysql_proxy instead
     */
    readonly proxyAddress: pulumi.Output<string>;
    /**
     * @deprecated use huaweicloud_gaussdb_mysql_proxy instead
     */
    readonly proxyFlavor: pulumi.Output<string>;
    /**
     * @deprecated use huaweicloud_gaussdb_mysql_proxy instead
     */
    readonly proxyNodeNum: pulumi.Output<number>;
    /**
     * @deprecated use huaweicloud_gaussdb_mysql_proxy instead
     */
    readonly proxyPort: pulumi.Output<number>;
    /**
     * Specifies the count of read replicas. Defaults to `1`.
     */
    readonly readReplicas: pulumi.Output<number | undefined>;
    /**
     * The region in which to create the GaussDB mysql instance resource. If omitted,
     * the provider-level region will be used. Changing this creates a new instance resource.
     */
    readonly region: pulumi.Output<string>;
    /**
     * Specifies whether to enable seconds level monitoring.
     */
    readonly secondsLevelMonitoringEnabled: pulumi.Output<boolean>;
    /**
     * Specifies the seconds level collection period.
     * + This parameter is valid only when `secondsLevelMonitoringEnabled` is set to **true**.
     * + This parameter can not be specified when `secondsLevelMonitoringEnabled` is set to **false**.
     * + Value options:
     * - **1**: The collection period is 1s.
     * - **5** (default value): The collection period is 5s.
     */
    readonly secondsLevelMonitoringPeriod: pulumi.Output<number | undefined>;
    /**
     * Specifies the security group ID. Required if the selected subnet doesn't
     * enable network ACL.
     */
    readonly securityGroupId: pulumi.Output<string>;
    /**
     * Specifies the slow log show original switch of the instance.
     */
    readonly slowLogShowOriginalSwitch: pulumi.Output<boolean>;
    /**
     * Specifies whether sql filter is enabled. The default value is `false`.
     */
    readonly sqlFilterEnabled: pulumi.Output<boolean>;
    /**
     * Specifies whether to enable SSL. Value options:
     * + **true**: SSL is enabled.
     * + **false**: SSL is disabled.
     */
    readonly sslOption: pulumi.Output<string | undefined>;
    /**
     * Specifies whether auto-scaling is enabled. Value options:
     * + **ON**: enabled.
     * + **OFF**: disabled.
     */
    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>;
    /**
     * Whether the kernel table name is case sensitive. The value can
     * be `true` (case sensitive) and `false` (case insensitive). Defaults to `false`. This parameter only works during
     * creation.
     */
    readonly tableNameCaseSensitivity: pulumi.Output<boolean | undefined>;
    /**
     * Specifies the key/value pairs to associate with the GaussDB Mysql instance.
     */
    readonly tags: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * Specifies the time zone. Defaults to "UTC+08:00". Changing this parameter
     * will create a new resource.
     */
    readonly timeZone: pulumi.Output<string | undefined>;
    /**
     * Indicates the Update time in the **yyyy-mm-ddThh:mm:ssZ** format.
     */
    readonly updatedAt: pulumi.Output<string>;
    /**
     * Indicates whether the version can be upgraded.
     */
    readonly upgradeFlag: pulumi.Output<boolean>;
    /**
     * Specifies the volume size of the instance. The new storage space must be greater than
     * the current storage and must be a multiple of `10` GB. Only valid when in prePaid mode.
     */
    readonly volumeSize: pulumi.Output<number>;
    /**
     * Specifies the VPC ID. Changing this parameter will create a new resource.
     */
    readonly vpcId: pulumi.Output<string>;
    /**
     * Create a MysqlInstance 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: MysqlInstanceArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering MysqlInstance resources.
 */
export interface MysqlInstanceState {
    /**
     * Specifies whether audit log is enabled. The default value is `false`.
     */
    auditLogEnabled?: pulumi.Input<boolean>;
    autoPay?: pulumi.Input<string>;
    /**
     * Specifies whether auto renew is enabled.
     * Valid values are **true** and **false**.
     */
    autoRenew?: pulumi.Input<string>;
    /**
     * Specifies the auto-scaling policies.
     * The autoScaling structure is documented below.
     */
    autoScaling?: pulumi.Input<inputs.GaussDB.MysqlInstanceAutoScaling>;
    /**
     * Specifies the availability zone mode: "single" or "multi".
     * Defaults to "single". Changing this parameter will create a new resource.
     */
    availabilityZoneMode?: pulumi.Input<string>;
    /**
     * Specifies the advanced backup policy. Structure is documented below.
     */
    backupStrategy?: pulumi.Input<inputs.GaussDB.MysqlInstanceBackupStrategy>;
    /**
     * Specifies the charging mode of the instance. Valid values are **prePaid**
     * and **postPaid**, defaults to **postPaid**. Changing this will do nothing.
     */
    chargingMode?: pulumi.Input<string>;
    /**
     * Specifies the configuration ID.
     */
    configurationId?: pulumi.Input<string>;
    /**
     * @deprecated Deprecated
     */
    configurationName?: pulumi.Input<string>;
    /**
     * Indicates the creation time in the **yyyy-mm-ddThh:mm:ssZ** format.
     */
    createdAt?: pulumi.Input<string>;
    /**
     * Indicates the current database kernel version.
     */
    currentKernelVersion?: pulumi.Input<string>;
    /**
     * Indicates the current database version.
     */
    currentVersion?: pulumi.Input<string>;
    /**
     * Specifies the database information. Structure is documented below. Changing
     * this parameter will create a new resource.
     */
    datastore?: pulumi.Input<inputs.GaussDB.MysqlInstanceDatastore>;
    /**
     * Indicates the default username.
     */
    dbUserName?: pulumi.Input<string>;
    /**
     * Specifies the dedicated resource ID. Changing this parameter
     * will create a new resource.
     */
    dedicatedResourceId?: pulumi.Input<string>;
    /**
     * Specifies the dedicated resource name. Changing this parameter
     * will create a new resource.
     */
    dedicatedResourceName?: pulumi.Input<string>;
    /**
     * Specifies the description of the instance.
     */
    description?: pulumi.Input<string>;
    /**
     * Specifies whether to enable or disable encrypted backup. Value options:
     * + **ON**: enabled
     * + **OFF**: disabled
     */
    encryptionStatus?: pulumi.Input<string>;
    /**
     * Specifies the encryption type. Currently, only **kms (case-insensitive)** is
     * supported. It is mandatory when `encryptionStatus` is set to **ON**.
     */
    encryptionType?: pulumi.Input<string>;
    /**
     * Specifies the enterprise project id. Required if EPS enabled.
     */
    enterpriseProjectId?: pulumi.Input<string>;
    /**
     * Specifies the instance specifications. Please use
     * `gaussdbMysqlFlavors` data source to fetch the available flavors.
     */
    flavor?: pulumi.Input<string>;
    /**
     * If specified, try to import the instance instead of creating if the name already
     * existed.
     */
    forceImport?: pulumi.Input<boolean>;
    /**
     * Specifies the KMS ID. It is mandatory when `encryptionStatus` is set to **ON**.
     */
    kmsKeyId?: pulumi.Input<string>;
    /**
     * Specifies the start time for a maintenance window, for example, **22:00**.
     */
    maintainBegin?: pulumi.Input<string>;
    /**
     * Specifies the end time for a maintenance window, for example, **01:00**.
     */
    maintainEnd?: pulumi.Input<string>;
    /**
     * Specifies the availability zone where the master node
     * resides. The parameter is required in multi availability zone mode. Changing this parameter will create a new
     * resource.
     */
    masterAvailabilityZone?: pulumi.Input<string>;
    /**
     * Indicates the instance mode.
     */
    mode?: pulumi.Input<string>;
    /**
     * Specifies the name of the parameter.
     */
    name?: pulumi.Input<string>;
    /**
     * Indicates the instance nodes information.
     * The nodes structure is documented below.
     */
    nodes?: pulumi.Input<pulumi.Input<inputs.GaussDB.MysqlInstanceNode>[]>;
    /**
     * Specifies an array of one or more parameters to be set to the instance after launched.
     * The parameters structure is documented below.
     */
    parameters?: pulumi.Input<pulumi.Input<inputs.GaussDB.MysqlInstanceParameter>[]>;
    /**
     * Specifies the database password. The value must be `8` to `32` characters in length,
     * including uppercase and lowercase letters, digits, and special characters, such as ~!@#%^*-_=+? You are advised to
     * enter a strong password to improve security, preventing security risks such as brute force cracking.
     */
    password?: pulumi.Input<string>;
    /**
     * Specifies the charging period of the instance.
     * If `periodUnit` is set to **month** , the value ranges from `1` to `9`.
     * If `periodUnit` is set to **year**, the value ranges from `1` to `3`.
     * This parameter is mandatory if `chargingMode` is set to **prePaid**.
     * Changing this will do nothing.
     */
    period?: pulumi.Input<number>;
    /**
     * Specifies the charging period unit of the instance.
     * Valid values are **month** and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**.
     * Changing this will do nothing.
     */
    periodUnit?: pulumi.Input<string>;
    /**
     * Specifies the database port.
     */
    port?: pulumi.Input<number>;
    /**
     * Indicates the private domain name.
     */
    privateDnsName?: pulumi.Input<string>;
    /**
     * Specifies the prefix of the private domain name. The value contains
     * `8` to `63` characters. Only uppercase letters, lowercase letters, and digits are allowed.
     */
    privateDnsNamePrefix?: pulumi.Input<string>;
    /**
     * Specifies the private IP address of the DB instance.
     */
    privateWriteIp?: pulumi.Input<string>;
    /**
     * @deprecated use huaweicloud_gaussdb_mysql_proxy instead
     */
    proxyAddress?: pulumi.Input<string>;
    /**
     * @deprecated use huaweicloud_gaussdb_mysql_proxy instead
     */
    proxyFlavor?: pulumi.Input<string>;
    /**
     * @deprecated use huaweicloud_gaussdb_mysql_proxy instead
     */
    proxyNodeNum?: pulumi.Input<number>;
    /**
     * @deprecated use huaweicloud_gaussdb_mysql_proxy instead
     */
    proxyPort?: pulumi.Input<number>;
    /**
     * Specifies the count of read replicas. Defaults to `1`.
     */
    readReplicas?: pulumi.Input<number>;
    /**
     * The region in which to create the GaussDB mysql instance resource. If omitted,
     * the provider-level region will be used. Changing this creates a new instance resource.
     */
    region?: pulumi.Input<string>;
    /**
     * Specifies whether to enable seconds level monitoring.
     */
    secondsLevelMonitoringEnabled?: pulumi.Input<boolean>;
    /**
     * Specifies the seconds level collection period.
     * + This parameter is valid only when `secondsLevelMonitoringEnabled` is set to **true**.
     * + This parameter can not be specified when `secondsLevelMonitoringEnabled` is set to **false**.
     * + Value options:
     * - **1**: The collection period is 1s.
     * - **5** (default value): The collection period is 5s.
     */
    secondsLevelMonitoringPeriod?: pulumi.Input<number>;
    /**
     * Specifies the security group ID. Required if the selected subnet doesn't
     * enable network ACL.
     */
    securityGroupId?: pulumi.Input<string>;
    /**
     * Specifies the slow log show original switch of the instance.
     */
    slowLogShowOriginalSwitch?: pulumi.Input<boolean>;
    /**
     * Specifies whether sql filter is enabled. The default value is `false`.
     */
    sqlFilterEnabled?: pulumi.Input<boolean>;
    /**
     * Specifies whether to enable SSL. Value options:
     * + **true**: SSL is enabled.
     * + **false**: SSL is disabled.
     */
    sslOption?: pulumi.Input<string>;
    /**
     * Specifies whether auto-scaling is enabled. Value options:
     * + **ON**: enabled.
     * + **OFF**: disabled.
     */
    status?: pulumi.Input<string>;
    /**
     * Specifies the network ID of a subnet. Changing this parameter will create a
     * new resource.
     */
    subnetId?: pulumi.Input<string>;
    /**
     * Whether the kernel table name is case sensitive. The value can
     * be `true` (case sensitive) and `false` (case insensitive). Defaults to `false`. This parameter only works during
     * creation.
     */
    tableNameCaseSensitivity?: pulumi.Input<boolean>;
    /**
     * Specifies the key/value pairs to associate with the GaussDB Mysql instance.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * Specifies the time zone. Defaults to "UTC+08:00". Changing this parameter
     * will create a new resource.
     */
    timeZone?: pulumi.Input<string>;
    /**
     * Indicates the Update time in the **yyyy-mm-ddThh:mm:ssZ** format.
     */
    updatedAt?: pulumi.Input<string>;
    /**
     * Indicates whether the version can be upgraded.
     */
    upgradeFlag?: pulumi.Input<boolean>;
    /**
     * Specifies the volume size of the instance. The new storage space must be greater than
     * the current storage and must be a multiple of `10` GB. Only valid when in prePaid mode.
     */
    volumeSize?: pulumi.Input<number>;
    /**
     * Specifies the VPC ID. Changing this parameter will create a new resource.
     */
    vpcId?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a MysqlInstance resource.
 */
export interface MysqlInstanceArgs {
    /**
     * Specifies whether audit log is enabled. The default value is `false`.
     */
    auditLogEnabled?: pulumi.Input<boolean>;
    autoPay?: pulumi.Input<string>;
    /**
     * Specifies whether auto renew is enabled.
     * Valid values are **true** and **false**.
     */
    autoRenew?: pulumi.Input<string>;
    /**
     * Specifies the auto-scaling policies.
     * The autoScaling structure is documented below.
     */
    autoScaling?: pulumi.Input<inputs.GaussDB.MysqlInstanceAutoScaling>;
    /**
     * Specifies the availability zone mode: "single" or "multi".
     * Defaults to "single". Changing this parameter will create a new resource.
     */
    availabilityZoneMode?: pulumi.Input<string>;
    /**
     * Specifies the advanced backup policy. Structure is documented below.
     */
    backupStrategy?: pulumi.Input<inputs.GaussDB.MysqlInstanceBackupStrategy>;
    /**
     * Specifies the charging mode of the instance. Valid values are **prePaid**
     * and **postPaid**, defaults to **postPaid**. Changing this will do nothing.
     */
    chargingMode?: pulumi.Input<string>;
    /**
     * Specifies the configuration ID.
     */
    configurationId?: pulumi.Input<string>;
    /**
     * @deprecated Deprecated
     */
    configurationName?: pulumi.Input<string>;
    /**
     * Specifies the database information. Structure is documented below. Changing
     * this parameter will create a new resource.
     */
    datastore?: pulumi.Input<inputs.GaussDB.MysqlInstanceDatastore>;
    /**
     * Specifies the dedicated resource ID. Changing this parameter
     * will create a new resource.
     */
    dedicatedResourceId?: pulumi.Input<string>;
    /**
     * Specifies the dedicated resource name. Changing this parameter
     * will create a new resource.
     */
    dedicatedResourceName?: pulumi.Input<string>;
    /**
     * Specifies the description of the instance.
     */
    description?: pulumi.Input<string>;
    /**
     * Specifies whether to enable or disable encrypted backup. Value options:
     * + **ON**: enabled
     * + **OFF**: disabled
     */
    encryptionStatus?: pulumi.Input<string>;
    /**
     * Specifies the encryption type. Currently, only **kms (case-insensitive)** is
     * supported. It is mandatory when `encryptionStatus` is set to **ON**.
     */
    encryptionType?: pulumi.Input<string>;
    /**
     * Specifies the enterprise project id. Required if EPS enabled.
     */
    enterpriseProjectId?: pulumi.Input<string>;
    /**
     * Specifies the instance specifications. Please use
     * `gaussdbMysqlFlavors` data source to fetch the available flavors.
     */
    flavor: pulumi.Input<string>;
    /**
     * If specified, try to import the instance instead of creating if the name already
     * existed.
     */
    forceImport?: pulumi.Input<boolean>;
    /**
     * Specifies the KMS ID. It is mandatory when `encryptionStatus` is set to **ON**.
     */
    kmsKeyId?: pulumi.Input<string>;
    /**
     * Specifies the start time for a maintenance window, for example, **22:00**.
     */
    maintainBegin?: pulumi.Input<string>;
    /**
     * Specifies the end time for a maintenance window, for example, **01:00**.
     */
    maintainEnd?: pulumi.Input<string>;
    /**
     * Specifies the availability zone where the master node
     * resides. The parameter is required in multi availability zone mode. Changing this parameter will create a new
     * resource.
     */
    masterAvailabilityZone?: pulumi.Input<string>;
    /**
     * Specifies the name of the parameter.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies an array of one or more parameters to be set to the instance after launched.
     * The parameters structure is documented below.
     */
    parameters?: pulumi.Input<pulumi.Input<inputs.GaussDB.MysqlInstanceParameter>[]>;
    /**
     * Specifies the database password. The value must be `8` to `32` characters in length,
     * including uppercase and lowercase letters, digits, and special characters, such as ~!@#%^*-_=+? You are advised to
     * enter a strong password to improve security, preventing security risks such as brute force cracking.
     */
    password: pulumi.Input<string>;
    /**
     * Specifies the charging period of the instance.
     * If `periodUnit` is set to **month** , the value ranges from `1` to `9`.
     * If `periodUnit` is set to **year**, the value ranges from `1` to `3`.
     * This parameter is mandatory if `chargingMode` is set to **prePaid**.
     * Changing this will do nothing.
     */
    period?: pulumi.Input<number>;
    /**
     * Specifies the charging period unit of the instance.
     * Valid values are **month** and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**.
     * Changing this will do nothing.
     */
    periodUnit?: pulumi.Input<string>;
    /**
     * Specifies the database port.
     */
    port?: pulumi.Input<number>;
    /**
     * Specifies the prefix of the private domain name. The value contains
     * `8` to `63` characters. Only uppercase letters, lowercase letters, and digits are allowed.
     */
    privateDnsNamePrefix?: pulumi.Input<string>;
    /**
     * Specifies the private IP address of the DB instance.
     */
    privateWriteIp?: pulumi.Input<string>;
    /**
     * @deprecated use huaweicloud_gaussdb_mysql_proxy instead
     */
    proxyFlavor?: pulumi.Input<string>;
    /**
     * @deprecated use huaweicloud_gaussdb_mysql_proxy instead
     */
    proxyNodeNum?: pulumi.Input<number>;
    /**
     * Specifies the count of read replicas. Defaults to `1`.
     */
    readReplicas?: pulumi.Input<number>;
    /**
     * The region in which to create the GaussDB mysql instance resource. If omitted,
     * the provider-level region will be used. Changing this creates a new instance resource.
     */
    region?: pulumi.Input<string>;
    /**
     * Specifies whether to enable seconds level monitoring.
     */
    secondsLevelMonitoringEnabled?: pulumi.Input<boolean>;
    /**
     * Specifies the seconds level collection period.
     * + This parameter is valid only when `secondsLevelMonitoringEnabled` is set to **true**.
     * + This parameter can not be specified when `secondsLevelMonitoringEnabled` is set to **false**.
     * + Value options:
     * - **1**: The collection period is 1s.
     * - **5** (default value): The collection period is 5s.
     */
    secondsLevelMonitoringPeriod?: pulumi.Input<number>;
    /**
     * Specifies the security group ID. Required if the selected subnet doesn't
     * enable network ACL.
     */
    securityGroupId?: pulumi.Input<string>;
    /**
     * Specifies the slow log show original switch of the instance.
     */
    slowLogShowOriginalSwitch?: pulumi.Input<boolean>;
    /**
     * Specifies whether sql filter is enabled. The default value is `false`.
     */
    sqlFilterEnabled?: pulumi.Input<boolean>;
    /**
     * Specifies whether to enable SSL. Value options:
     * + **true**: SSL is enabled.
     * + **false**: SSL is disabled.
     */
    sslOption?: pulumi.Input<string>;
    /**
     * Specifies the network ID of a subnet. Changing this parameter will create a
     * new resource.
     */
    subnetId: pulumi.Input<string>;
    /**
     * Whether the kernel table name is case sensitive. The value can
     * be `true` (case sensitive) and `false` (case insensitive). Defaults to `false`. This parameter only works during
     * creation.
     */
    tableNameCaseSensitivity?: pulumi.Input<boolean>;
    /**
     * Specifies the key/value pairs to associate with the GaussDB Mysql instance.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * Specifies the time zone. Defaults to "UTC+08:00". Changing this parameter
     * will create a new resource.
     */
    timeZone?: pulumi.Input<string>;
    /**
     * Specifies the volume size of the instance. The new storage space must be greater than
     * the current storage and must be a multiple of `10` GB. Only valid when in prePaid mode.
     */
    volumeSize?: pulumi.Input<number>;
    /**
     * Specifies the VPC ID. Changing this parameter will create a new resource.
     */
    vpcId: pulumi.Input<string>;
}
