import * as pulumi from "@pulumi/pulumi";
import { input as inputs, output as outputs } from "../types";
/**
 * GaussDB OpenGauss instance management within HuaweiCould.
 *
 * ## Example Usage
 *
 * ## Import
 *
 * OpenGaussDB instance can be imported using the `id`, e.g. bash
 *
 * ```sh
 *  $ pulumi import huaweicloud:GaussDBforOpenGauss/opengaussInstance:OpengaussInstance 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 attributes include`password`, `ha.0.mode`, `ha.0.instance_mode`, `configuration_id`, `disk_encryption_id`, `enable_force_switch`, `enable_single_float_ip`, `parameters`, `period_unit`, `period` and `auto_renew`. It is generally recommended running `terraform plan` after importing a GaussDB OpenGauss instance. You can then decide if changes should be applied to the GaussDB OpenGauss instance, or the resource definition should be updated to align with the GaussDB OpenGauss instance. Also you can ignore changes as below. hcl resource "huaweicloud_gaussdb_opengauss_instance" "test" {
 *
 *  ...
 *
 *  lifecycle {
 *
 *  ignore_changes = [
 *
 *  password, configuration_id, disk_encryption_id, enable_force_switch, enable_single_float_ip, parameters, period_unit,
 *
 *  period, auto_renew,
 *
 *  ]
 *
 *  } }
 */
export declare class OpengaussInstance extends pulumi.CustomResource {
    /**
     * Get an existing OpengaussInstance 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?: OpengaussInstanceState, opts?: pulumi.CustomResourceOptions): OpengaussInstance;
    /**
     * Returns true if the given object is an instance of OpengaussInstance.  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 OpengaussInstance;
    /**
     * Specifies the advanced features.
     * The advanceFeatures structure is documented below.
     */
    readonly advanceFeatures: pulumi.Output<outputs.GaussDBforOpenGauss.OpengaussInstanceAdvanceFeature[]>;
    /**
     * Specifies whether auto renew is enabled.
     * Valid values are **true** and **false**. Defaults to **false**.
     */
    readonly autoRenew: pulumi.Output<string | undefined>;
    /**
     * Specifies the availability zone information, can be three same or
     * different az like **cn-north-4a,cn-north-4a,cn-north-4a**. Changing this parameter will create a new resource.
     */
    readonly availabilityZone: pulumi.Output<string>;
    /**
     * Specifies the advanced backup policy.
     * The backupStrategy structure is documented below.
     */
    readonly backupStrategy: pulumi.Output<outputs.GaussDBforOpenGauss.OpengaussInstanceBackupStrategy>;
    /**
     * Indicates whether the host load is balanced due to a primary/standby switchover.
     */
    readonly balanceStatus: pulumi.Output<boolean>;
    /**
     * Specifies the charging mode of opengauss instance.
     * The valid values are as follows:
     * + **prePaid**: the yearly/monthly billing mode.
     * + **postPaid**: the pay-per-use billing mode.
     */
    readonly chargingMode: pulumi.Output<string>;
    /**
     * Specifies the parameter template ID.
     * Changing this parameter will create a new resource.
     */
    readonly configurationId: pulumi.Output<string | undefined>;
    /**
     * Specifies the coordinator number.
     * The valid value is range form `1` to `9`. The default value is `3`.
     * The value must not be greater than twice value of `shardingNum`.
     */
    readonly coordinatorNum: pulumi.Output<number | undefined>;
    /**
     * Specifies the datastore information.
     * The datastore structure is documented below.
     * Changing this parameter will create a new resource.
     */
    readonly datastore: pulumi.Output<outputs.GaussDBforOpenGauss.OpengaussInstanceDatastore>;
    /**
     * Indicates the default username.
     */
    readonly dbUserName: pulumi.Output<string>;
    /**
     * Specifies the key ID for disk encryption.
     * Changing this parameter will create a new resource.
     */
    readonly diskEncryptionId: pulumi.Output<string | undefined>;
    /**
     * Specifies whether to forcibly promote a standby node to primary.
     * Defaults to **false**. Changing this parameter will create a new resource.
     */
    readonly enableForceSwitch: pulumi.Output<boolean | undefined>;
    /**
     * Specifies whether to enable single floating IP address policy,
     * which is only suitable for primary/standby instances. Value options:
     * + **true**: This function is enabled. Only one floating IP address is bound to the primary node of a DB instance. If a
     * primary/standby fail over occurs, the floating IP address does not change.
     * + **false (default value)**: The function is disabled. Each node is bound to a floating IP address. If a primary/standby
     * fail over occurs, the floating IP addresses change.
     */
    readonly enableSingleFloatIp: pulumi.Output<boolean | undefined>;
    /**
     * Indicates the connection endpoints list of the DB instance. Example: [127.0.0.1:8000].
     */
    readonly endpoints: pulumi.Output<string[]>;
    /**
     * Specifies the enterprise project ID.
     */
    readonly enterpriseProjectId: pulumi.Output<string>;
    /**
     * Indicates whether error log collection is enabled. The value can be:
     * + **ON**: enabled
     * + **OFF**: disabled
     */
    readonly errorLogSwitchStatus: pulumi.Output<string>;
    /**
     * Specifies the instance specifications.
     */
    readonly flavor: pulumi.Output<string>;
    /**
     * Specifies whether to import the instance with the given configuration instead of
     * creation. If specified, try to import the instance instead of creation if the instance already existed.
     */
    readonly forceImport: pulumi.Output<boolean | undefined>;
    /**
     * Specifies the HA information.
     * The object structure is documented below.
     * Changing this parameter will create a new resource.
     */
    readonly ha: pulumi.Output<outputs.GaussDBforOpenGauss.OpengaussInstanceHa>;
    /**
     * Indicates the maintenance window.
     */
    readonly maintenanceWindow: pulumi.Output<string>;
    /**
     * Specifies the port for MySQL compatibility. Value range: **0** or
     * **1024** to **39989**.
     * + The following ports are used by the system and cannot be used: **2378**, **2379**, **2380**, **2400**, **4999**,
     * **5000**, **5001**, **5100**, **5500**, **5999**, **6000**, **6001**, **6009**, **6010**, **6500**, **8015**, **8097**,
     * **8098**, **8181**, **9090**, **9100**, **9180**, **9187**, **9200**, **12016**, **12017**, **20049**, **20050**,
     * **21731**, **21732**, **32122**, **32123**, **32124**, **32125**, **32126**, **39001**,
     * **[Database port, Database port + 10]**.
     * + If the value is **0**, the MySQL compatibility port is disabled.
     */
    readonly mysqlCompatibilityPort: pulumi.Output<string>;
    /**
     * Specifies the name of the advance feature.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Indicates the instance nodes information. Structure is documented below.
     */
    readonly nodes: pulumi.Output<outputs.GaussDBforOpenGauss.OpengaussInstanceNode[]>;
    /**
     * 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.GaussDBforOpenGauss.OpengaussInstanceParameter[]>;
    /**
     * 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 opengauss 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 5.
     * This parameter is mandatory if `chargingMode` is set to **prePaid**.
     * Changing this parameter will create a new resource.
     */
    readonly period: pulumi.Output<number | undefined>;
    /**
     * Specifies the charging period unit of opengauss instance.
     * Valid values are **month** and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**.
     * Changing this parameter will create a new resource.
     */
    readonly periodUnit: pulumi.Output<string | undefined>;
    /**
     * Specifies the port information. Defaults to `8,000`.
     * The valid values are as follows:
     * + `2,378` to `2,380`
     */
    readonly port: pulumi.Output<string>;
    /**
     * Indicates the private IP address of the DB instance.
     */
    readonly privateIps: pulumi.Output<string[]>;
    /**
     * Indicates the public IP address of the DB instance.
     */
    readonly publicIps: pulumi.Output<string[]>;
    /**
     * Specifies the region in which to create the instance.
     * If omitted, the provider-level region will be used. Changing this parameter will create a new resource.
     */
    readonly region: pulumi.Output<string>;
    /**
     * The replica number. The valid values are `2` and `3`, defaults to `3`.
     * Double replicas are only available for specific users and supports only instance versions are v1.3.0 or later.
     * Changing this parameter will create a new resource.
     */
    readonly replicaNum: pulumi.Output<number | undefined>;
    /**
     * Specifies the security group ID to which the instance belongs.
     * If the `port` parameter is specified, please ensure that the TCP ports in the inbound rule of security group
     * includes the `100` ports starting with the database port.
     * (For example, if the database port is `8,000`, the TCP port must include the range from `8,000` to `8,100`.)
     */
    readonly securityGroupId: pulumi.Output<string>;
    /**
     * Specifies the sharding number.
     * The valid value is range form `1` to `9`. The default value is `3`.
     */
    readonly shardingNum: pulumi.Output<number | undefined>;
    /**
     * Indicates the node status.
     */
    readonly status: pulumi.Output<string>;
    /**
     * Specifies the network ID of VPC subnet to which the instance belongs.
     * Changing this parameter will create a new resource.
     */
    readonly subnetId: pulumi.Output<string>;
    /**
     * Indicates the switch strategy.
     */
    readonly switchStrategy: pulumi.Output<string>;
    /**
     * Specifies the key/value pairs to associate with the GaussDB OpenGauss 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>;
    /**
     * Specifies the volume type. Only **ULTRAHIGH** is supported now.
     * Changing this parameter will create a new resource.
     */
    readonly type: pulumi.Output<string>;
    /**
     * Specifies the volume storage information.
     * The object structure is documented below.
     */
    readonly volume: pulumi.Output<outputs.GaussDBforOpenGauss.OpengaussInstanceVolume>;
    /**
     * Specifies the VPC ID to which the subnet belongs.
     * Changing this parameter will create a new resource.
     */
    readonly vpcId: pulumi.Output<string>;
    /**
     * Create a OpengaussInstance 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: OpengaussInstanceArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering OpengaussInstance resources.
 */
export interface OpengaussInstanceState {
    /**
     * Specifies the advanced features.
     * The advanceFeatures structure is documented below.
     */
    advanceFeatures?: pulumi.Input<pulumi.Input<inputs.GaussDBforOpenGauss.OpengaussInstanceAdvanceFeature>[]>;
    /**
     * Specifies whether auto renew is enabled.
     * Valid values are **true** and **false**. Defaults to **false**.
     */
    autoRenew?: pulumi.Input<string>;
    /**
     * Specifies the availability zone information, can be three same or
     * different az like **cn-north-4a,cn-north-4a,cn-north-4a**. Changing this parameter will create a new resource.
     */
    availabilityZone?: pulumi.Input<string>;
    /**
     * Specifies the advanced backup policy.
     * The backupStrategy structure is documented below.
     */
    backupStrategy?: pulumi.Input<inputs.GaussDBforOpenGauss.OpengaussInstanceBackupStrategy>;
    /**
     * Indicates whether the host load is balanced due to a primary/standby switchover.
     */
    balanceStatus?: pulumi.Input<boolean>;
    /**
     * Specifies the charging mode of opengauss instance.
     * The valid values are as follows:
     * + **prePaid**: the yearly/monthly billing mode.
     * + **postPaid**: the pay-per-use billing mode.
     */
    chargingMode?: pulumi.Input<string>;
    /**
     * Specifies the parameter template ID.
     * Changing this parameter will create a new resource.
     */
    configurationId?: pulumi.Input<string>;
    /**
     * Specifies the coordinator number.
     * The valid value is range form `1` to `9`. The default value is `3`.
     * The value must not be greater than twice value of `shardingNum`.
     */
    coordinatorNum?: pulumi.Input<number>;
    /**
     * Specifies the datastore information.
     * The datastore structure is documented below.
     * Changing this parameter will create a new resource.
     */
    datastore?: pulumi.Input<inputs.GaussDBforOpenGauss.OpengaussInstanceDatastore>;
    /**
     * Indicates the default username.
     */
    dbUserName?: pulumi.Input<string>;
    /**
     * Specifies the key ID for disk encryption.
     * Changing this parameter will create a new resource.
     */
    diskEncryptionId?: pulumi.Input<string>;
    /**
     * Specifies whether to forcibly promote a standby node to primary.
     * Defaults to **false**. Changing this parameter will create a new resource.
     */
    enableForceSwitch?: pulumi.Input<boolean>;
    /**
     * Specifies whether to enable single floating IP address policy,
     * which is only suitable for primary/standby instances. Value options:
     * + **true**: This function is enabled. Only one floating IP address is bound to the primary node of a DB instance. If a
     * primary/standby fail over occurs, the floating IP address does not change.
     * + **false (default value)**: The function is disabled. Each node is bound to a floating IP address. If a primary/standby
     * fail over occurs, the floating IP addresses change.
     */
    enableSingleFloatIp?: pulumi.Input<boolean>;
    /**
     * Indicates the connection endpoints list of the DB instance. Example: [127.0.0.1:8000].
     */
    endpoints?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Specifies the enterprise project ID.
     */
    enterpriseProjectId?: pulumi.Input<string>;
    /**
     * Indicates whether error log collection is enabled. The value can be:
     * + **ON**: enabled
     * + **OFF**: disabled
     */
    errorLogSwitchStatus?: pulumi.Input<string>;
    /**
     * Specifies the instance specifications.
     */
    flavor?: pulumi.Input<string>;
    /**
     * Specifies whether to import the instance with the given configuration instead of
     * creation. If specified, try to import the instance instead of creation if the instance already existed.
     */
    forceImport?: pulumi.Input<boolean>;
    /**
     * Specifies the HA information.
     * The object structure is documented below.
     * Changing this parameter will create a new resource.
     */
    ha?: pulumi.Input<inputs.GaussDBforOpenGauss.OpengaussInstanceHa>;
    /**
     * Indicates the maintenance window.
     */
    maintenanceWindow?: pulumi.Input<string>;
    /**
     * Specifies the port for MySQL compatibility. Value range: **0** or
     * **1024** to **39989**.
     * + The following ports are used by the system and cannot be used: **2378**, **2379**, **2380**, **2400**, **4999**,
     * **5000**, **5001**, **5100**, **5500**, **5999**, **6000**, **6001**, **6009**, **6010**, **6500**, **8015**, **8097**,
     * **8098**, **8181**, **9090**, **9100**, **9180**, **9187**, **9200**, **12016**, **12017**, **20049**, **20050**,
     * **21731**, **21732**, **32122**, **32123**, **32124**, **32125**, **32126**, **39001**,
     * **[Database port, Database port + 10]**.
     * + If the value is **0**, the MySQL compatibility port is disabled.
     */
    mysqlCompatibilityPort?: pulumi.Input<string>;
    /**
     * Specifies the name of the advance feature.
     */
    name?: pulumi.Input<string>;
    /**
     * Indicates the instance nodes information. Structure is documented below.
     */
    nodes?: pulumi.Input<pulumi.Input<inputs.GaussDBforOpenGauss.OpengaussInstanceNode>[]>;
    /**
     * 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.GaussDBforOpenGauss.OpengaussInstanceParameter>[]>;
    /**
     * 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 opengauss 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 5.
     * This parameter is mandatory if `chargingMode` is set to **prePaid**.
     * Changing this parameter will create a new resource.
     */
    period?: pulumi.Input<number>;
    /**
     * Specifies the charging period unit of opengauss instance.
     * Valid values are **month** and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**.
     * Changing this parameter will create a new resource.
     */
    periodUnit?: pulumi.Input<string>;
    /**
     * Specifies the port information. Defaults to `8,000`.
     * The valid values are as follows:
     * + `2,378` to `2,380`
     */
    port?: pulumi.Input<string>;
    /**
     * Indicates the private IP address of the DB instance.
     */
    privateIps?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Indicates the public IP address of the DB instance.
     */
    publicIps?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Specifies the region in which to create the instance.
     * If omitted, the provider-level region will be used. Changing this parameter will create a new resource.
     */
    region?: pulumi.Input<string>;
    /**
     * The replica number. The valid values are `2` and `3`, defaults to `3`.
     * Double replicas are only available for specific users and supports only instance versions are v1.3.0 or later.
     * Changing this parameter will create a new resource.
     */
    replicaNum?: pulumi.Input<number>;
    /**
     * Specifies the security group ID to which the instance belongs.
     * If the `port` parameter is specified, please ensure that the TCP ports in the inbound rule of security group
     * includes the `100` ports starting with the database port.
     * (For example, if the database port is `8,000`, the TCP port must include the range from `8,000` to `8,100`.)
     */
    securityGroupId?: pulumi.Input<string>;
    /**
     * Specifies the sharding number.
     * The valid value is range form `1` to `9`. The default value is `3`.
     */
    shardingNum?: pulumi.Input<number>;
    /**
     * Indicates the node status.
     */
    status?: pulumi.Input<string>;
    /**
     * Specifies the network ID of VPC subnet to which the instance belongs.
     * Changing this parameter will create a new resource.
     */
    subnetId?: pulumi.Input<string>;
    /**
     * Indicates the switch strategy.
     */
    switchStrategy?: pulumi.Input<string>;
    /**
     * Specifies the key/value pairs to associate with the GaussDB OpenGauss 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 type. Only **ULTRAHIGH** is supported now.
     * Changing this parameter will create a new resource.
     */
    type?: pulumi.Input<string>;
    /**
     * Specifies the volume storage information.
     * The object structure is documented below.
     */
    volume?: pulumi.Input<inputs.GaussDBforOpenGauss.OpengaussInstanceVolume>;
    /**
     * Specifies the VPC ID to which the subnet belongs.
     * Changing this parameter will create a new resource.
     */
    vpcId?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a OpengaussInstance resource.
 */
export interface OpengaussInstanceArgs {
    /**
     * Specifies the advanced features.
     * The advanceFeatures structure is documented below.
     */
    advanceFeatures?: pulumi.Input<pulumi.Input<inputs.GaussDBforOpenGauss.OpengaussInstanceAdvanceFeature>[]>;
    /**
     * Specifies whether auto renew is enabled.
     * Valid values are **true** and **false**. Defaults to **false**.
     */
    autoRenew?: pulumi.Input<string>;
    /**
     * Specifies the availability zone information, can be three same or
     * different az like **cn-north-4a,cn-north-4a,cn-north-4a**. Changing this parameter will create a new resource.
     */
    availabilityZone: pulumi.Input<string>;
    /**
     * Specifies the advanced backup policy.
     * The backupStrategy structure is documented below.
     */
    backupStrategy?: pulumi.Input<inputs.GaussDBforOpenGauss.OpengaussInstanceBackupStrategy>;
    /**
     * Specifies the charging mode of opengauss instance.
     * The valid values are as follows:
     * + **prePaid**: the yearly/monthly billing mode.
     * + **postPaid**: the pay-per-use billing mode.
     */
    chargingMode?: pulumi.Input<string>;
    /**
     * Specifies the parameter template ID.
     * Changing this parameter will create a new resource.
     */
    configurationId?: pulumi.Input<string>;
    /**
     * Specifies the coordinator number.
     * The valid value is range form `1` to `9`. The default value is `3`.
     * The value must not be greater than twice value of `shardingNum`.
     */
    coordinatorNum?: pulumi.Input<number>;
    /**
     * Specifies the datastore information.
     * The datastore structure is documented below.
     * Changing this parameter will create a new resource.
     */
    datastore?: pulumi.Input<inputs.GaussDBforOpenGauss.OpengaussInstanceDatastore>;
    /**
     * Specifies the key ID for disk encryption.
     * Changing this parameter will create a new resource.
     */
    diskEncryptionId?: pulumi.Input<string>;
    /**
     * Specifies whether to forcibly promote a standby node to primary.
     * Defaults to **false**. Changing this parameter will create a new resource.
     */
    enableForceSwitch?: pulumi.Input<boolean>;
    /**
     * Specifies whether to enable single floating IP address policy,
     * which is only suitable for primary/standby instances. Value options:
     * + **true**: This function is enabled. Only one floating IP address is bound to the primary node of a DB instance. If a
     * primary/standby fail over occurs, the floating IP address does not change.
     * + **false (default value)**: The function is disabled. Each node is bound to a floating IP address. If a primary/standby
     * fail over occurs, the floating IP addresses change.
     */
    enableSingleFloatIp?: pulumi.Input<boolean>;
    /**
     * Specifies the enterprise project ID.
     */
    enterpriseProjectId?: pulumi.Input<string>;
    /**
     * Specifies the instance specifications.
     */
    flavor: pulumi.Input<string>;
    /**
     * Specifies whether to import the instance with the given configuration instead of
     * creation. If specified, try to import the instance instead of creation if the instance already existed.
     */
    forceImport?: pulumi.Input<boolean>;
    /**
     * Specifies the HA information.
     * The object structure is documented below.
     * Changing this parameter will create a new resource.
     */
    ha: pulumi.Input<inputs.GaussDBforOpenGauss.OpengaussInstanceHa>;
    /**
     * Specifies the port for MySQL compatibility. Value range: **0** or
     * **1024** to **39989**.
     * + The following ports are used by the system and cannot be used: **2378**, **2379**, **2380**, **2400**, **4999**,
     * **5000**, **5001**, **5100**, **5500**, **5999**, **6000**, **6001**, **6009**, **6010**, **6500**, **8015**, **8097**,
     * **8098**, **8181**, **9090**, **9100**, **9180**, **9187**, **9200**, **12016**, **12017**, **20049**, **20050**,
     * **21731**, **21732**, **32122**, **32123**, **32124**, **32125**, **32126**, **39001**,
     * **[Database port, Database port + 10]**.
     * + If the value is **0**, the MySQL compatibility port is disabled.
     */
    mysqlCompatibilityPort?: pulumi.Input<string>;
    /**
     * Specifies the name of the advance feature.
     */
    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.GaussDBforOpenGauss.OpengaussInstanceParameter>[]>;
    /**
     * 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 opengauss 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 5.
     * This parameter is mandatory if `chargingMode` is set to **prePaid**.
     * Changing this parameter will create a new resource.
     */
    period?: pulumi.Input<number>;
    /**
     * Specifies the charging period unit of opengauss instance.
     * Valid values are **month** and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**.
     * Changing this parameter will create a new resource.
     */
    periodUnit?: pulumi.Input<string>;
    /**
     * Specifies the port information. Defaults to `8,000`.
     * The valid values are as follows:
     * + `2,378` to `2,380`
     */
    port?: pulumi.Input<string>;
    /**
     * Specifies the region in which to create the instance.
     * If omitted, the provider-level region will be used. Changing this parameter will create a new resource.
     */
    region?: pulumi.Input<string>;
    /**
     * The replica number. The valid values are `2` and `3`, defaults to `3`.
     * Double replicas are only available for specific users and supports only instance versions are v1.3.0 or later.
     * Changing this parameter will create a new resource.
     */
    replicaNum?: pulumi.Input<number>;
    /**
     * Specifies the security group ID to which the instance belongs.
     * If the `port` parameter is specified, please ensure that the TCP ports in the inbound rule of security group
     * includes the `100` ports starting with the database port.
     * (For example, if the database port is `8,000`, the TCP port must include the range from `8,000` to `8,100`.)
     */
    securityGroupId?: pulumi.Input<string>;
    /**
     * Specifies the sharding number.
     * The valid value is range form `1` to `9`. The default value is `3`.
     */
    shardingNum?: pulumi.Input<number>;
    /**
     * Specifies the network ID of VPC subnet to which the instance belongs.
     * Changing this parameter will create a new resource.
     */
    subnetId: pulumi.Input<string>;
    /**
     * Specifies the key/value pairs to associate with the GaussDB OpenGauss 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 storage information.
     * The object structure is documented below.
     */
    volume: pulumi.Input<inputs.GaussDBforOpenGauss.OpengaussInstanceVolume>;
    /**
     * Specifies the VPC ID to which the subnet belongs.
     * Changing this parameter will create a new resource.
     */
    vpcId: pulumi.Input<string>;
}
