# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import builtins
import copy
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
    from typing import NotRequired, TypedDict, TypeAlias
else:
    from typing_extensions import NotRequired, TypedDict, TypeAlias
from .. import _utilities
from . import outputs
from ._inputs import *

__all__ = ['InstanceArgs', 'Instance']

@pulumi.input_type
class InstanceArgs:
    def __init__(__self__, *,
                 db_engine_version: pulumi.Input[builtins.str],
                 instance_type: pulumi.Input[builtins.str],
                 node_spec: pulumi.Input[builtins.str],
                 storage_space: pulumi.Input[builtins.int],
                 subnet_id: pulumi.Input[builtins.str],
                 super_account_password: pulumi.Input[builtins.str],
                 time_zone: pulumi.Input[builtins.str],
                 vpc_id: pulumi.Input[builtins.str],
                 zone_id: pulumi.Input[builtins.str],
                 advanced_features: Optional[pulumi.Input[builtins.str]] = None,
                 allow_list_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 charge_info: Optional[pulumi.Input['InstanceChargeInfoArgs']] = None,
                 instance_name: Optional[pulumi.Input[builtins.str]] = None,
                 maintenance_time: Optional[pulumi.Input[builtins.str]] = None,
                 master_node_id: Optional[pulumi.Input[builtins.str]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 server_collation: Optional[pulumi.Input[builtins.str]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceTagArgs']]]] = None):
        """
        The set of arguments for constructing a Instance resource.
        :param pulumi.Input[builtins.str] db_engine_version: 兼容版本。取值如下：SQLServer*2019*Std：表示 SQL Server 2019 标准版。SQLServer*2019*Ent：表示 SQL Server 2019 企业版。SQLServer*2019*Web：表示 SQL Server 2019 Web 版。SQLServer*2022*Std：表示 SQL Server 2022 标准版。SQLServer*2022*Ent：表示 SQL Server 2022 企业版。SQLServer*2022*Web：表示 SQL Server 2022 Web 版。
        :param pulumi.Input[builtins.str] instance_type: 实例类型。取值如下：HA（高可用）、Basic（基础版）、Cluster（集群版）。不同引擎版本支持的类型不同：2019 Std 支持 HA/Basic；2019 Ent 支持 Cluster/Basic；2019 Web 支持 Basic。
        :param pulumi.Input[builtins.str] node_spec: 实例规格代码。
        :param pulumi.Input[builtins.int] storage_space: 存储空间大小，单位为 GiB。取值范围：20GiB ~ 4000GiB，步长为 10GiB。
        :param pulumi.Input[builtins.str] subnet_id: 子网 ID。当主备节点不在同一个可用区时，主备节点的子网也需设置为对应可用区私有网络下的子网，多个可用区需使用英文分号（;）隔开。
        :param pulumi.Input[builtins.str] super_account_password: 高权限账号的密码。密码规则如下：长度为 8~32 个字符。由大写字母、小写字母、数字、特殊字符中的至少三种组成。特殊字符为 !@#$%^&*()_+-=。
        :param pulumi.Input[builtins.str] time_zone: 时区。
        :param pulumi.Input[builtins.str] vpc_id: VPC ID
        :param pulumi.Input[builtins.str] zone_id: 节点所在可用区。当主备节点不在同一个可用区时，您可以使用英文分号（;）隔开，默认第一个为主节点可用区，第二个为备节点可用区。
        :param pulumi.Input[builtins.str] advanced_features: 需要修改的实例高级特性。该接口当前属于加白接口，如需使用，您可以联系技术支持。示例值：{"Key":"Value"}
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] allow_list_ids: 允许访问的白名单ID列表。
        :param pulumi.Input['InstanceChargeInfoArgs'] charge_info: 付费方式。
        :param pulumi.Input[builtins.str] instance_name: 实例名称。实例名称的命名规则如下：不能以数字、中划线开头。只能包含中文、字母、数字、下划线和中划线。长度限制在 1~128 之间。
        :param pulumi.Input[builtins.str] maintenance_time: 实例的可维护时间段。格式：HH:mmZ-HH:mmZ（UTC时间）。默认取值为 UTC18:00Z-21:59Z（即北京时间 02:00-05:59）。说明：为保护云数据库的稳定性，系统会不定期对实例进行维护。可维护时间段建议设置在业务低峰期，避免对业务造成影响。在可维护时间段内，实例可能会出现 1~2 次的连接闪断，需确保应用程序具有自动重连机制。可维护时间段最小时间间隔 1 小时，最大时间间隔 24 小时，不允许跨天选择可维护时间段。
        :param pulumi.Input[builtins.str] master_node_id: 主节点ID。手动切换主备节点时，该参数为必填项。
        :param pulumi.Input[builtins.str] project_name: 所属项目。
        :param pulumi.Input[builtins.str] server_collation: 实例字符集排序规则，默认 Chinese*PRC*CI*AS。目前已支持大多数原生字符集具体取值如下：Latin1*General*CI*AS，Latin1*General*CS*AS，SQL*Latin1*General*CP1*CI*AS，SQL*Latin1*General*CP1*CS*AS，Chinese*PRC*CI*AS，Chinese*PRC*CS*AS，Chinese*PRC*BIN，Japanese*CI*AS，Japanese*CS*AS，Chinese*Taiwan*Stroke*CI*AS，Chinese*Taiwan*Stroke*CS*AS，Thai*CI*AS，Chinese*PRC*CI*AI，Chinese*PRC*BIN2，Cyrillic*General*CI_AS。
        """
        pulumi.set(__self__, "db_engine_version", db_engine_version)
        pulumi.set(__self__, "instance_type", instance_type)
        pulumi.set(__self__, "node_spec", node_spec)
        pulumi.set(__self__, "storage_space", storage_space)
        pulumi.set(__self__, "subnet_id", subnet_id)
        pulumi.set(__self__, "super_account_password", super_account_password)
        pulumi.set(__self__, "time_zone", time_zone)
        pulumi.set(__self__, "vpc_id", vpc_id)
        pulumi.set(__self__, "zone_id", zone_id)
        if advanced_features is not None:
            pulumi.set(__self__, "advanced_features", advanced_features)
        if allow_list_ids is not None:
            pulumi.set(__self__, "allow_list_ids", allow_list_ids)
        if charge_info is not None:
            pulumi.set(__self__, "charge_info", charge_info)
        if instance_name is not None:
            pulumi.set(__self__, "instance_name", instance_name)
        if maintenance_time is not None:
            pulumi.set(__self__, "maintenance_time", maintenance_time)
        if master_node_id is not None:
            pulumi.set(__self__, "master_node_id", master_node_id)
        if project_name is not None:
            pulumi.set(__self__, "project_name", project_name)
        if server_collation is not None:
            pulumi.set(__self__, "server_collation", server_collation)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)

    @property
    @pulumi.getter(name="dbEngineVersion")
    def db_engine_version(self) -> pulumi.Input[builtins.str]:
        """
        兼容版本。取值如下：SQLServer*2019*Std：表示 SQL Server 2019 标准版。SQLServer*2019*Ent：表示 SQL Server 2019 企业版。SQLServer*2019*Web：表示 SQL Server 2019 Web 版。SQLServer*2022*Std：表示 SQL Server 2022 标准版。SQLServer*2022*Ent：表示 SQL Server 2022 企业版。SQLServer*2022*Web：表示 SQL Server 2022 Web 版。
        """
        return pulumi.get(self, "db_engine_version")

    @db_engine_version.setter
    def db_engine_version(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "db_engine_version", value)

    @property
    @pulumi.getter(name="instanceType")
    def instance_type(self) -> pulumi.Input[builtins.str]:
        """
        实例类型。取值如下：HA（高可用）、Basic（基础版）、Cluster（集群版）。不同引擎版本支持的类型不同：2019 Std 支持 HA/Basic；2019 Ent 支持 Cluster/Basic；2019 Web 支持 Basic。
        """
        return pulumi.get(self, "instance_type")

    @instance_type.setter
    def instance_type(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "instance_type", value)

    @property
    @pulumi.getter(name="nodeSpec")
    def node_spec(self) -> pulumi.Input[builtins.str]:
        """
        实例规格代码。
        """
        return pulumi.get(self, "node_spec")

    @node_spec.setter
    def node_spec(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "node_spec", value)

    @property
    @pulumi.getter(name="storageSpace")
    def storage_space(self) -> pulumi.Input[builtins.int]:
        """
        存储空间大小，单位为 GiB。取值范围：20GiB ~ 4000GiB，步长为 10GiB。
        """
        return pulumi.get(self, "storage_space")

    @storage_space.setter
    def storage_space(self, value: pulumi.Input[builtins.int]):
        pulumi.set(self, "storage_space", value)

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> pulumi.Input[builtins.str]:
        """
        子网 ID。当主备节点不在同一个可用区时，主备节点的子网也需设置为对应可用区私有网络下的子网，多个可用区需使用英文分号（;）隔开。
        """
        return pulumi.get(self, "subnet_id")

    @subnet_id.setter
    def subnet_id(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "subnet_id", value)

    @property
    @pulumi.getter(name="superAccountPassword")
    def super_account_password(self) -> pulumi.Input[builtins.str]:
        """
        高权限账号的密码。密码规则如下：长度为 8~32 个字符。由大写字母、小写字母、数字、特殊字符中的至少三种组成。特殊字符为 !@#$%^&*()_+-=。
        """
        return pulumi.get(self, "super_account_password")

    @super_account_password.setter
    def super_account_password(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "super_account_password", value)

    @property
    @pulumi.getter(name="timeZone")
    def time_zone(self) -> pulumi.Input[builtins.str]:
        """
        时区。
        """
        return pulumi.get(self, "time_zone")

    @time_zone.setter
    def time_zone(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "time_zone", value)

    @property
    @pulumi.getter(name="vpcId")
    def vpc_id(self) -> pulumi.Input[builtins.str]:
        """
        VPC ID
        """
        return pulumi.get(self, "vpc_id")

    @vpc_id.setter
    def vpc_id(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "vpc_id", value)

    @property
    @pulumi.getter(name="zoneId")
    def zone_id(self) -> pulumi.Input[builtins.str]:
        """
        节点所在可用区。当主备节点不在同一个可用区时，您可以使用英文分号（;）隔开，默认第一个为主节点可用区，第二个为备节点可用区。
        """
        return pulumi.get(self, "zone_id")

    @zone_id.setter
    def zone_id(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "zone_id", value)

    @property
    @pulumi.getter(name="advancedFeatures")
    def advanced_features(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        需要修改的实例高级特性。该接口当前属于加白接口，如需使用，您可以联系技术支持。示例值：{"Key":"Value"}
        """
        return pulumi.get(self, "advanced_features")

    @advanced_features.setter
    def advanced_features(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "advanced_features", value)

    @property
    @pulumi.getter(name="allowListIds")
    def allow_list_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
        """
        允许访问的白名单ID列表。
        """
        return pulumi.get(self, "allow_list_ids")

    @allow_list_ids.setter
    def allow_list_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
        pulumi.set(self, "allow_list_ids", value)

    @property
    @pulumi.getter(name="chargeInfo")
    def charge_info(self) -> Optional[pulumi.Input['InstanceChargeInfoArgs']]:
        """
        付费方式。
        """
        return pulumi.get(self, "charge_info")

    @charge_info.setter
    def charge_info(self, value: Optional[pulumi.Input['InstanceChargeInfoArgs']]):
        pulumi.set(self, "charge_info", value)

    @property
    @pulumi.getter(name="instanceName")
    def instance_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例名称。实例名称的命名规则如下：不能以数字、中划线开头。只能包含中文、字母、数字、下划线和中划线。长度限制在 1~128 之间。
        """
        return pulumi.get(self, "instance_name")

    @instance_name.setter
    def instance_name(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "instance_name", value)

    @property
    @pulumi.getter(name="maintenanceTime")
    def maintenance_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例的可维护时间段。格式：HH:mmZ-HH:mmZ（UTC时间）。默认取值为 UTC18:00Z-21:59Z（即北京时间 02:00-05:59）。说明：为保护云数据库的稳定性，系统会不定期对实例进行维护。可维护时间段建议设置在业务低峰期，避免对业务造成影响。在可维护时间段内，实例可能会出现 1~2 次的连接闪断，需确保应用程序具有自动重连机制。可维护时间段最小时间间隔 1 小时，最大时间间隔 24 小时，不允许跨天选择可维护时间段。
        """
        return pulumi.get(self, "maintenance_time")

    @maintenance_time.setter
    def maintenance_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "maintenance_time", value)

    @property
    @pulumi.getter(name="masterNodeId")
    def master_node_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        主节点ID。手动切换主备节点时，该参数为必填项。
        """
        return pulumi.get(self, "master_node_id")

    @master_node_id.setter
    def master_node_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "master_node_id", value)

    @property
    @pulumi.getter(name="projectName")
    def project_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        所属项目。
        """
        return pulumi.get(self, "project_name")

    @project_name.setter
    def project_name(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "project_name", value)

    @property
    @pulumi.getter(name="serverCollation")
    def server_collation(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例字符集排序规则，默认 Chinese*PRC*CI*AS。目前已支持大多数原生字符集具体取值如下：Latin1*General*CI*AS，Latin1*General*CS*AS，SQL*Latin1*General*CP1*CI*AS，SQL*Latin1*General*CP1*CS*AS，Chinese*PRC*CI*AS，Chinese*PRC*CS*AS，Chinese*PRC*BIN，Japanese*CI*AS，Japanese*CS*AS，Chinese*Taiwan*Stroke*CI*AS，Chinese*Taiwan*Stroke*CS*AS，Thai*CI*AS，Chinese*PRC*CI*AI，Chinese*PRC*BIN2，Cyrillic*General*CI_AS。
        """
        return pulumi.get(self, "server_collation")

    @server_collation.setter
    def server_collation(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "server_collation", value)

    @property
    @pulumi.getter
    def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceTagArgs']]]]:
        return pulumi.get(self, "tags")

    @tags.setter
    def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceTagArgs']]]]):
        pulumi.set(self, "tags", value)


@pulumi.input_type
class _InstanceState:
    def __init__(__self__, *,
                 advanced_features: Optional[pulumi.Input[builtins.str]] = None,
                 allow_list_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 backup_use: Optional[pulumi.Input[builtins.float]] = None,
                 charge_info: Optional[pulumi.Input['InstanceChargeInfoArgs']] = None,
                 connection_infos: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceConnectionInfoArgs']]]] = None,
                 created_time: Optional[pulumi.Input[builtins.str]] = None,
                 db_engine_version: Optional[pulumi.Input[builtins.str]] = None,
                 inner_version: Optional[pulumi.Input[builtins.str]] = None,
                 instance_category: Optional[pulumi.Input[builtins.str]] = None,
                 instance_id: Optional[pulumi.Input[builtins.str]] = None,
                 instance_name: Optional[pulumi.Input[builtins.str]] = None,
                 instance_status: Optional[pulumi.Input[builtins.str]] = None,
                 instance_type: Optional[pulumi.Input[builtins.str]] = None,
                 maintenance_time: Optional[pulumi.Input[builtins.str]] = None,
                 master_node_id: Optional[pulumi.Input[builtins.str]] = None,
                 memory: Optional[pulumi.Input[builtins.int]] = None,
                 node_detail_infos: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceNodeDetailInfoArgs']]]] = None,
                 node_spec: Optional[pulumi.Input[builtins.str]] = None,
                 port: Optional[pulumi.Input[builtins.str]] = None,
                 primary_instance_id: Optional[pulumi.Input[builtins.str]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 read_only_number: Optional[pulumi.Input[builtins.int]] = None,
                 server_collation: Optional[pulumi.Input[builtins.str]] = None,
                 slow_query_enable: Optional[pulumi.Input[builtins.bool]] = None,
                 slow_query_time: Optional[pulumi.Input[builtins.str]] = None,
                 storage_space: Optional[pulumi.Input[builtins.int]] = None,
                 storage_type: Optional[pulumi.Input[builtins.str]] = None,
                 storage_use: Optional[pulumi.Input[builtins.float]] = None,
                 subnet_id: Optional[pulumi.Input[builtins.str]] = None,
                 super_account_password: Optional[pulumi.Input[builtins.str]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceTagArgs']]]] = None,
                 time_zone: Optional[pulumi.Input[builtins.str]] = None,
                 updated_time: Optional[pulumi.Input[builtins.str]] = None,
                 vcpu: Optional[pulumi.Input[builtins.int]] = None,
                 vpc_id: Optional[pulumi.Input[builtins.str]] = None,
                 zone_id: Optional[pulumi.Input[builtins.str]] = None):
        """
        Input properties used for looking up and filtering Instance resources.
        :param pulumi.Input[builtins.str] advanced_features: 需要修改的实例高级特性。该接口当前属于加白接口，如需使用，您可以联系技术支持。示例值：{"Key":"Value"}
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] allow_list_ids: 允许访问的白名单ID列表。
        :param pulumi.Input[builtins.float] backup_use: 实例已用备份空间。单位：GiB。
        :param pulumi.Input['InstanceChargeInfoArgs'] charge_info: 付费方式。
        :param pulumi.Input[builtins.str] created_time: 创建时间。
        :param pulumi.Input[builtins.str] db_engine_version: 兼容版本。取值如下：SQLServer*2019*Std：表示 SQL Server 2019 标准版。SQLServer*2019*Ent：表示 SQL Server 2019 企业版。SQLServer*2019*Web：表示 SQL Server 2019 Web 版。SQLServer*2022*Std：表示 SQL Server 2022 标准版。SQLServer*2022*Ent：表示 SQL Server 2022 企业版。SQLServer*2022*Web：表示 SQL Server 2022 Web 版。
        :param pulumi.Input[builtins.str] inner_version: 内核版本号。
        :param pulumi.Input[builtins.str] instance_category: 实例分类。取值：Primary：主实例。ReadOnly：只读实例。
        :param pulumi.Input[builtins.str] instance_id: 实例ID。
        :param pulumi.Input[builtins.str] instance_name: 实例名称。实例名称的命名规则如下：不能以数字、中划线开头。只能包含中文、字母、数字、下划线和中划线。长度限制在 1~128 之间。
        :param pulumi.Input[builtins.str] instance_status: 实例状态，取值：Running：运行中。Creating：创建中。CreateFailed：创建失败。Deleting：删除中。Restarting：重启中。Updating：变更中。MasterChanging：主节点切换中。Error：错误。
        :param pulumi.Input[builtins.str] instance_type: 实例类型。取值如下：HA（高可用）、Basic（基础版）、Cluster（集群版）。不同引擎版本支持的类型不同：2019 Std 支持 HA/Basic；2019 Ent 支持 Cluster/Basic；2019 Web 支持 Basic。
        :param pulumi.Input[builtins.str] maintenance_time: 实例的可维护时间段。格式：HH:mmZ-HH:mmZ（UTC时间）。默认取值为 UTC18:00Z-21:59Z（即北京时间 02:00-05:59）。说明：为保护云数据库的稳定性，系统会不定期对实例进行维护。可维护时间段建议设置在业务低峰期，避免对业务造成影响。在可维护时间段内，实例可能会出现 1~2 次的连接闪断，需确保应用程序具有自动重连机制。可维护时间段最小时间间隔 1 小时，最大时间间隔 24 小时，不允许跨天选择可维护时间段。
        :param pulumi.Input[builtins.str] master_node_id: 主节点ID。手动切换主备节点时，该参数为必填项。
        :param pulumi.Input[builtins.int] memory: 内存大小，单位为 GiB。
        :param pulumi.Input[builtins.str] node_spec: 实例规格代码。
        :param pulumi.Input[builtins.str] port: 端口
        :param pulumi.Input[builtins.str] primary_instance_id: 主实例ID。如果为空说明它是主实例。
        :param pulumi.Input[builtins.str] project_name: 所属项目。
        :param pulumi.Input[builtins.int] read_only_number: 只读实例数量。
        :param pulumi.Input[builtins.str] server_collation: 实例字符集排序规则，默认 Chinese*PRC*CI*AS。目前已支持大多数原生字符集具体取值如下：Latin1*General*CI*AS，Latin1*General*CS*AS，SQL*Latin1*General*CP1*CI*AS，SQL*Latin1*General*CP1*CS*AS，Chinese*PRC*CI*AS，Chinese*PRC*CS*AS，Chinese*PRC*BIN，Japanese*CI*AS，Japanese*CS*AS，Chinese*Taiwan*Stroke*CI*AS，Chinese*Taiwan*Stroke*CS*AS，Thai*CI*AS，Chinese*PRC*CI*AI，Chinese*PRC*BIN2，Cyrillic*General*CI_AS。
        :param pulumi.Input[builtins.bool] slow_query_enable: 表示是否开启慢日志，取值如下：true：表示开启慢日志。false：表示不开启慢日志。
        :param pulumi.Input[builtins.str] slow_query_time: 慢日志的阈值，取值范围为 [1~10]，单位：秒（s）。
        :param pulumi.Input[builtins.int] storage_space: 存储空间大小，单位为 GiB。取值范围：20GiB ~ 4000GiB，步长为 10GiB。
        :param pulumi.Input[builtins.str] storage_type: 实例存储类型。
        :param pulumi.Input[builtins.float] storage_use: 实例已用储空间。单位：GiB。
        :param pulumi.Input[builtins.str] subnet_id: 子网 ID。当主备节点不在同一个可用区时，主备节点的子网也需设置为对应可用区私有网络下的子网，多个可用区需使用英文分号（;）隔开。
        :param pulumi.Input[builtins.str] super_account_password: 高权限账号的密码。密码规则如下：长度为 8~32 个字符。由大写字母、小写字母、数字、特殊字符中的至少三种组成。特殊字符为 !@#$%^&*()_+-=。
        :param pulumi.Input[builtins.str] time_zone: 时区。
        :param pulumi.Input[builtins.str] updated_time: 更新时间。
        :param pulumi.Input[builtins.int] vcpu: CPU 大小。例如：1 表示 1核。
        :param pulumi.Input[builtins.str] vpc_id: VPC ID
        :param pulumi.Input[builtins.str] zone_id: 节点所在可用区。当主备节点不在同一个可用区时，您可以使用英文分号（;）隔开，默认第一个为主节点可用区，第二个为备节点可用区。
        """
        if advanced_features is not None:
            pulumi.set(__self__, "advanced_features", advanced_features)
        if allow_list_ids is not None:
            pulumi.set(__self__, "allow_list_ids", allow_list_ids)
        if backup_use is not None:
            pulumi.set(__self__, "backup_use", backup_use)
        if charge_info is not None:
            pulumi.set(__self__, "charge_info", charge_info)
        if connection_infos is not None:
            pulumi.set(__self__, "connection_infos", connection_infos)
        if created_time is not None:
            pulumi.set(__self__, "created_time", created_time)
        if db_engine_version is not None:
            pulumi.set(__self__, "db_engine_version", db_engine_version)
        if inner_version is not None:
            pulumi.set(__self__, "inner_version", inner_version)
        if instance_category is not None:
            pulumi.set(__self__, "instance_category", instance_category)
        if instance_id is not None:
            pulumi.set(__self__, "instance_id", instance_id)
        if instance_name is not None:
            pulumi.set(__self__, "instance_name", instance_name)
        if instance_status is not None:
            pulumi.set(__self__, "instance_status", instance_status)
        if instance_type is not None:
            pulumi.set(__self__, "instance_type", instance_type)
        if maintenance_time is not None:
            pulumi.set(__self__, "maintenance_time", maintenance_time)
        if master_node_id is not None:
            pulumi.set(__self__, "master_node_id", master_node_id)
        if memory is not None:
            pulumi.set(__self__, "memory", memory)
        if node_detail_infos is not None:
            pulumi.set(__self__, "node_detail_infos", node_detail_infos)
        if node_spec is not None:
            pulumi.set(__self__, "node_spec", node_spec)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if primary_instance_id is not None:
            pulumi.set(__self__, "primary_instance_id", primary_instance_id)
        if project_name is not None:
            pulumi.set(__self__, "project_name", project_name)
        if read_only_number is not None:
            pulumi.set(__self__, "read_only_number", read_only_number)
        if server_collation is not None:
            pulumi.set(__self__, "server_collation", server_collation)
        if slow_query_enable is not None:
            pulumi.set(__self__, "slow_query_enable", slow_query_enable)
        if slow_query_time is not None:
            pulumi.set(__self__, "slow_query_time", slow_query_time)
        if storage_space is not None:
            pulumi.set(__self__, "storage_space", storage_space)
        if storage_type is not None:
            pulumi.set(__self__, "storage_type", storage_type)
        if storage_use is not None:
            pulumi.set(__self__, "storage_use", storage_use)
        if subnet_id is not None:
            pulumi.set(__self__, "subnet_id", subnet_id)
        if super_account_password is not None:
            pulumi.set(__self__, "super_account_password", super_account_password)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)
        if time_zone is not None:
            pulumi.set(__self__, "time_zone", time_zone)
        if updated_time is not None:
            pulumi.set(__self__, "updated_time", updated_time)
        if vcpu is not None:
            pulumi.set(__self__, "vcpu", vcpu)
        if vpc_id is not None:
            pulumi.set(__self__, "vpc_id", vpc_id)
        if zone_id is not None:
            pulumi.set(__self__, "zone_id", zone_id)

    @property
    @pulumi.getter(name="advancedFeatures")
    def advanced_features(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        需要修改的实例高级特性。该接口当前属于加白接口，如需使用，您可以联系技术支持。示例值：{"Key":"Value"}
        """
        return pulumi.get(self, "advanced_features")

    @advanced_features.setter
    def advanced_features(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "advanced_features", value)

    @property
    @pulumi.getter(name="allowListIds")
    def allow_list_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
        """
        允许访问的白名单ID列表。
        """
        return pulumi.get(self, "allow_list_ids")

    @allow_list_ids.setter
    def allow_list_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
        pulumi.set(self, "allow_list_ids", value)

    @property
    @pulumi.getter(name="backupUse")
    def backup_use(self) -> Optional[pulumi.Input[builtins.float]]:
        """
        实例已用备份空间。单位：GiB。
        """
        return pulumi.get(self, "backup_use")

    @backup_use.setter
    def backup_use(self, value: Optional[pulumi.Input[builtins.float]]):
        pulumi.set(self, "backup_use", value)

    @property
    @pulumi.getter(name="chargeInfo")
    def charge_info(self) -> Optional[pulumi.Input['InstanceChargeInfoArgs']]:
        """
        付费方式。
        """
        return pulumi.get(self, "charge_info")

    @charge_info.setter
    def charge_info(self, value: Optional[pulumi.Input['InstanceChargeInfoArgs']]):
        pulumi.set(self, "charge_info", value)

    @property
    @pulumi.getter(name="connectionInfos")
    def connection_infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceConnectionInfoArgs']]]]:
        return pulumi.get(self, "connection_infos")

    @connection_infos.setter
    def connection_infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceConnectionInfoArgs']]]]):
        pulumi.set(self, "connection_infos", value)

    @property
    @pulumi.getter(name="createdTime")
    def created_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        创建时间。
        """
        return pulumi.get(self, "created_time")

    @created_time.setter
    def created_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "created_time", value)

    @property
    @pulumi.getter(name="dbEngineVersion")
    def db_engine_version(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        兼容版本。取值如下：SQLServer*2019*Std：表示 SQL Server 2019 标准版。SQLServer*2019*Ent：表示 SQL Server 2019 企业版。SQLServer*2019*Web：表示 SQL Server 2019 Web 版。SQLServer*2022*Std：表示 SQL Server 2022 标准版。SQLServer*2022*Ent：表示 SQL Server 2022 企业版。SQLServer*2022*Web：表示 SQL Server 2022 Web 版。
        """
        return pulumi.get(self, "db_engine_version")

    @db_engine_version.setter
    def db_engine_version(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "db_engine_version", value)

    @property
    @pulumi.getter(name="innerVersion")
    def inner_version(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        内核版本号。
        """
        return pulumi.get(self, "inner_version")

    @inner_version.setter
    def inner_version(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "inner_version", value)

    @property
    @pulumi.getter(name="instanceCategory")
    def instance_category(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例分类。取值：Primary：主实例。ReadOnly：只读实例。
        """
        return pulumi.get(self, "instance_category")

    @instance_category.setter
    def instance_category(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "instance_category", value)

    @property
    @pulumi.getter(name="instanceId")
    def instance_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例ID。
        """
        return pulumi.get(self, "instance_id")

    @instance_id.setter
    def instance_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "instance_id", value)

    @property
    @pulumi.getter(name="instanceName")
    def instance_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例名称。实例名称的命名规则如下：不能以数字、中划线开头。只能包含中文、字母、数字、下划线和中划线。长度限制在 1~128 之间。
        """
        return pulumi.get(self, "instance_name")

    @instance_name.setter
    def instance_name(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "instance_name", value)

    @property
    @pulumi.getter(name="instanceStatus")
    def instance_status(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例状态，取值：Running：运行中。Creating：创建中。CreateFailed：创建失败。Deleting：删除中。Restarting：重启中。Updating：变更中。MasterChanging：主节点切换中。Error：错误。
        """
        return pulumi.get(self, "instance_status")

    @instance_status.setter
    def instance_status(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "instance_status", value)

    @property
    @pulumi.getter(name="instanceType")
    def instance_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例类型。取值如下：HA（高可用）、Basic（基础版）、Cluster（集群版）。不同引擎版本支持的类型不同：2019 Std 支持 HA/Basic；2019 Ent 支持 Cluster/Basic；2019 Web 支持 Basic。
        """
        return pulumi.get(self, "instance_type")

    @instance_type.setter
    def instance_type(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "instance_type", value)

    @property
    @pulumi.getter(name="maintenanceTime")
    def maintenance_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例的可维护时间段。格式：HH:mmZ-HH:mmZ（UTC时间）。默认取值为 UTC18:00Z-21:59Z（即北京时间 02:00-05:59）。说明：为保护云数据库的稳定性，系统会不定期对实例进行维护。可维护时间段建议设置在业务低峰期，避免对业务造成影响。在可维护时间段内，实例可能会出现 1~2 次的连接闪断，需确保应用程序具有自动重连机制。可维护时间段最小时间间隔 1 小时，最大时间间隔 24 小时，不允许跨天选择可维护时间段。
        """
        return pulumi.get(self, "maintenance_time")

    @maintenance_time.setter
    def maintenance_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "maintenance_time", value)

    @property
    @pulumi.getter(name="masterNodeId")
    def master_node_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        主节点ID。手动切换主备节点时，该参数为必填项。
        """
        return pulumi.get(self, "master_node_id")

    @master_node_id.setter
    def master_node_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "master_node_id", value)

    @property
    @pulumi.getter
    def memory(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        内存大小，单位为 GiB。
        """
        return pulumi.get(self, "memory")

    @memory.setter
    def memory(self, value: Optional[pulumi.Input[builtins.int]]):
        pulumi.set(self, "memory", value)

    @property
    @pulumi.getter(name="nodeDetailInfos")
    def node_detail_infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceNodeDetailInfoArgs']]]]:
        return pulumi.get(self, "node_detail_infos")

    @node_detail_infos.setter
    def node_detail_infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceNodeDetailInfoArgs']]]]):
        pulumi.set(self, "node_detail_infos", value)

    @property
    @pulumi.getter(name="nodeSpec")
    def node_spec(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例规格代码。
        """
        return pulumi.get(self, "node_spec")

    @node_spec.setter
    def node_spec(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "node_spec", value)

    @property
    @pulumi.getter
    def port(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        端口
        """
        return pulumi.get(self, "port")

    @port.setter
    def port(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "port", value)

    @property
    @pulumi.getter(name="primaryInstanceId")
    def primary_instance_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        主实例ID。如果为空说明它是主实例。
        """
        return pulumi.get(self, "primary_instance_id")

    @primary_instance_id.setter
    def primary_instance_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "primary_instance_id", value)

    @property
    @pulumi.getter(name="projectName")
    def project_name(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        所属项目。
        """
        return pulumi.get(self, "project_name")

    @project_name.setter
    def project_name(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "project_name", value)

    @property
    @pulumi.getter(name="readOnlyNumber")
    def read_only_number(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        只读实例数量。
        """
        return pulumi.get(self, "read_only_number")

    @read_only_number.setter
    def read_only_number(self, value: Optional[pulumi.Input[builtins.int]]):
        pulumi.set(self, "read_only_number", value)

    @property
    @pulumi.getter(name="serverCollation")
    def server_collation(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例字符集排序规则，默认 Chinese*PRC*CI*AS。目前已支持大多数原生字符集具体取值如下：Latin1*General*CI*AS，Latin1*General*CS*AS，SQL*Latin1*General*CP1*CI*AS，SQL*Latin1*General*CP1*CS*AS，Chinese*PRC*CI*AS，Chinese*PRC*CS*AS，Chinese*PRC*BIN，Japanese*CI*AS，Japanese*CS*AS，Chinese*Taiwan*Stroke*CI*AS，Chinese*Taiwan*Stroke*CS*AS，Thai*CI*AS，Chinese*PRC*CI*AI，Chinese*PRC*BIN2，Cyrillic*General*CI_AS。
        """
        return pulumi.get(self, "server_collation")

    @server_collation.setter
    def server_collation(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "server_collation", value)

    @property
    @pulumi.getter(name="slowQueryEnable")
    def slow_query_enable(self) -> Optional[pulumi.Input[builtins.bool]]:
        """
        表示是否开启慢日志，取值如下：true：表示开启慢日志。false：表示不开启慢日志。
        """
        return pulumi.get(self, "slow_query_enable")

    @slow_query_enable.setter
    def slow_query_enable(self, value: Optional[pulumi.Input[builtins.bool]]):
        pulumi.set(self, "slow_query_enable", value)

    @property
    @pulumi.getter(name="slowQueryTime")
    def slow_query_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        慢日志的阈值，取值范围为 [1~10]，单位：秒（s）。
        """
        return pulumi.get(self, "slow_query_time")

    @slow_query_time.setter
    def slow_query_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "slow_query_time", value)

    @property
    @pulumi.getter(name="storageSpace")
    def storage_space(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        存储空间大小，单位为 GiB。取值范围：20GiB ~ 4000GiB，步长为 10GiB。
        """
        return pulumi.get(self, "storage_space")

    @storage_space.setter
    def storage_space(self, value: Optional[pulumi.Input[builtins.int]]):
        pulumi.set(self, "storage_space", value)

    @property
    @pulumi.getter(name="storageType")
    def storage_type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        实例存储类型。
        """
        return pulumi.get(self, "storage_type")

    @storage_type.setter
    def storage_type(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "storage_type", value)

    @property
    @pulumi.getter(name="storageUse")
    def storage_use(self) -> Optional[pulumi.Input[builtins.float]]:
        """
        实例已用储空间。单位：GiB。
        """
        return pulumi.get(self, "storage_use")

    @storage_use.setter
    def storage_use(self, value: Optional[pulumi.Input[builtins.float]]):
        pulumi.set(self, "storage_use", value)

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        子网 ID。当主备节点不在同一个可用区时，主备节点的子网也需设置为对应可用区私有网络下的子网，多个可用区需使用英文分号（;）隔开。
        """
        return pulumi.get(self, "subnet_id")

    @subnet_id.setter
    def subnet_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "subnet_id", value)

    @property
    @pulumi.getter(name="superAccountPassword")
    def super_account_password(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        高权限账号的密码。密码规则如下：长度为 8~32 个字符。由大写字母、小写字母、数字、特殊字符中的至少三种组成。特殊字符为 !@#$%^&*()_+-=。
        """
        return pulumi.get(self, "super_account_password")

    @super_account_password.setter
    def super_account_password(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "super_account_password", value)

    @property
    @pulumi.getter
    def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceTagArgs']]]]:
        return pulumi.get(self, "tags")

    @tags.setter
    def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceTagArgs']]]]):
        pulumi.set(self, "tags", value)

    @property
    @pulumi.getter(name="timeZone")
    def time_zone(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        时区。
        """
        return pulumi.get(self, "time_zone")

    @time_zone.setter
    def time_zone(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "time_zone", value)

    @property
    @pulumi.getter(name="updatedTime")
    def updated_time(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        更新时间。
        """
        return pulumi.get(self, "updated_time")

    @updated_time.setter
    def updated_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "updated_time", value)

    @property
    @pulumi.getter
    def vcpu(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        CPU 大小。例如：1 表示 1核。
        """
        return pulumi.get(self, "vcpu")

    @vcpu.setter
    def vcpu(self, value: Optional[pulumi.Input[builtins.int]]):
        pulumi.set(self, "vcpu", value)

    @property
    @pulumi.getter(name="vpcId")
    def vpc_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        VPC ID
        """
        return pulumi.get(self, "vpc_id")

    @vpc_id.setter
    def vpc_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "vpc_id", value)

    @property
    @pulumi.getter(name="zoneId")
    def zone_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        节点所在可用区。当主备节点不在同一个可用区时，您可以使用英文分号（;）隔开，默认第一个为主节点可用区，第二个为备节点可用区。
        """
        return pulumi.get(self, "zone_id")

    @zone_id.setter
    def zone_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "zone_id", value)


@pulumi.type_token("bytepluscc:rdsmssql/instance:Instance")
class Instance(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 advanced_features: Optional[pulumi.Input[builtins.str]] = None,
                 allow_list_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 charge_info: Optional[pulumi.Input[Union['InstanceChargeInfoArgs', 'InstanceChargeInfoArgsDict']]] = None,
                 db_engine_version: Optional[pulumi.Input[builtins.str]] = None,
                 instance_name: Optional[pulumi.Input[builtins.str]] = None,
                 instance_type: Optional[pulumi.Input[builtins.str]] = None,
                 maintenance_time: Optional[pulumi.Input[builtins.str]] = None,
                 master_node_id: Optional[pulumi.Input[builtins.str]] = None,
                 node_spec: Optional[pulumi.Input[builtins.str]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 server_collation: Optional[pulumi.Input[builtins.str]] = None,
                 storage_space: Optional[pulumi.Input[builtins.int]] = None,
                 subnet_id: Optional[pulumi.Input[builtins.str]] = None,
                 super_account_password: Optional[pulumi.Input[builtins.str]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceTagArgs', 'InstanceTagArgsDict']]]]] = None,
                 time_zone: Optional[pulumi.Input[builtins.str]] = None,
                 vpc_id: Optional[pulumi.Input[builtins.str]] = None,
                 zone_id: Optional[pulumi.Input[builtins.str]] = None,
                 __props__=None):
        """
        云数据库 SQL Server 版是基于世界一流的商用型数据库产品 Microsoft SQL Server 打造的一种稳定、可靠、可弹性伸缩的在线数据库服务。实例是使用云数据库 SQL Server 版的第一步

        ## Import

        ```sh
        $ pulumi import bytepluscc:rdsmssql/instance:Instance example "instance_id"
        ```

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[builtins.str] advanced_features: 需要修改的实例高级特性。该接口当前属于加白接口，如需使用，您可以联系技术支持。示例值：{"Key":"Value"}
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] allow_list_ids: 允许访问的白名单ID列表。
        :param pulumi.Input[Union['InstanceChargeInfoArgs', 'InstanceChargeInfoArgsDict']] charge_info: 付费方式。
        :param pulumi.Input[builtins.str] db_engine_version: 兼容版本。取值如下：SQLServer*2019*Std：表示 SQL Server 2019 标准版。SQLServer*2019*Ent：表示 SQL Server 2019 企业版。SQLServer*2019*Web：表示 SQL Server 2019 Web 版。SQLServer*2022*Std：表示 SQL Server 2022 标准版。SQLServer*2022*Ent：表示 SQL Server 2022 企业版。SQLServer*2022*Web：表示 SQL Server 2022 Web 版。
        :param pulumi.Input[builtins.str] instance_name: 实例名称。实例名称的命名规则如下：不能以数字、中划线开头。只能包含中文、字母、数字、下划线和中划线。长度限制在 1~128 之间。
        :param pulumi.Input[builtins.str] instance_type: 实例类型。取值如下：HA（高可用）、Basic（基础版）、Cluster（集群版）。不同引擎版本支持的类型不同：2019 Std 支持 HA/Basic；2019 Ent 支持 Cluster/Basic；2019 Web 支持 Basic。
        :param pulumi.Input[builtins.str] maintenance_time: 实例的可维护时间段。格式：HH:mmZ-HH:mmZ（UTC时间）。默认取值为 UTC18:00Z-21:59Z（即北京时间 02:00-05:59）。说明：为保护云数据库的稳定性，系统会不定期对实例进行维护。可维护时间段建议设置在业务低峰期，避免对业务造成影响。在可维护时间段内，实例可能会出现 1~2 次的连接闪断，需确保应用程序具有自动重连机制。可维护时间段最小时间间隔 1 小时，最大时间间隔 24 小时，不允许跨天选择可维护时间段。
        :param pulumi.Input[builtins.str] master_node_id: 主节点ID。手动切换主备节点时，该参数为必填项。
        :param pulumi.Input[builtins.str] node_spec: 实例规格代码。
        :param pulumi.Input[builtins.str] project_name: 所属项目。
        :param pulumi.Input[builtins.str] server_collation: 实例字符集排序规则，默认 Chinese*PRC*CI*AS。目前已支持大多数原生字符集具体取值如下：Latin1*General*CI*AS，Latin1*General*CS*AS，SQL*Latin1*General*CP1*CI*AS，SQL*Latin1*General*CP1*CS*AS，Chinese*PRC*CI*AS，Chinese*PRC*CS*AS，Chinese*PRC*BIN，Japanese*CI*AS，Japanese*CS*AS，Chinese*Taiwan*Stroke*CI*AS，Chinese*Taiwan*Stroke*CS*AS，Thai*CI*AS，Chinese*PRC*CI*AI，Chinese*PRC*BIN2，Cyrillic*General*CI_AS。
        :param pulumi.Input[builtins.int] storage_space: 存储空间大小，单位为 GiB。取值范围：20GiB ~ 4000GiB，步长为 10GiB。
        :param pulumi.Input[builtins.str] subnet_id: 子网 ID。当主备节点不在同一个可用区时，主备节点的子网也需设置为对应可用区私有网络下的子网，多个可用区需使用英文分号（;）隔开。
        :param pulumi.Input[builtins.str] super_account_password: 高权限账号的密码。密码规则如下：长度为 8~32 个字符。由大写字母、小写字母、数字、特殊字符中的至少三种组成。特殊字符为 !@#$%^&*()_+-=。
        :param pulumi.Input[builtins.str] time_zone: 时区。
        :param pulumi.Input[builtins.str] vpc_id: VPC ID
        :param pulumi.Input[builtins.str] zone_id: 节点所在可用区。当主备节点不在同一个可用区时，您可以使用英文分号（;）隔开，默认第一个为主节点可用区，第二个为备节点可用区。
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: InstanceArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        云数据库 SQL Server 版是基于世界一流的商用型数据库产品 Microsoft SQL Server 打造的一种稳定、可靠、可弹性伸缩的在线数据库服务。实例是使用云数据库 SQL Server 版的第一步

        ## Import

        ```sh
        $ pulumi import bytepluscc:rdsmssql/instance:Instance example "instance_id"
        ```

        :param str resource_name: The name of the resource.
        :param InstanceArgs args: The arguments to use to populate this resource's properties.
        :param pulumi.ResourceOptions opts: Options for the resource.
        """
        ...
    def __init__(__self__, resource_name: str, *args, **kwargs):
        resource_args, opts = _utilities.get_resource_args_opts(InstanceArgs, pulumi.ResourceOptions, *args, **kwargs)
        if resource_args is not None:
            __self__._internal_init(resource_name, opts, **resource_args.__dict__)
        else:
            __self__._internal_init(resource_name, *args, **kwargs)

    def _internal_init(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 advanced_features: Optional[pulumi.Input[builtins.str]] = None,
                 allow_list_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 charge_info: Optional[pulumi.Input[Union['InstanceChargeInfoArgs', 'InstanceChargeInfoArgsDict']]] = None,
                 db_engine_version: Optional[pulumi.Input[builtins.str]] = None,
                 instance_name: Optional[pulumi.Input[builtins.str]] = None,
                 instance_type: Optional[pulumi.Input[builtins.str]] = None,
                 maintenance_time: Optional[pulumi.Input[builtins.str]] = None,
                 master_node_id: Optional[pulumi.Input[builtins.str]] = None,
                 node_spec: Optional[pulumi.Input[builtins.str]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 server_collation: Optional[pulumi.Input[builtins.str]] = None,
                 storage_space: Optional[pulumi.Input[builtins.int]] = None,
                 subnet_id: Optional[pulumi.Input[builtins.str]] = None,
                 super_account_password: Optional[pulumi.Input[builtins.str]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceTagArgs', 'InstanceTagArgsDict']]]]] = None,
                 time_zone: Optional[pulumi.Input[builtins.str]] = None,
                 vpc_id: Optional[pulumi.Input[builtins.str]] = None,
                 zone_id: Optional[pulumi.Input[builtins.str]] = None,
                 __props__=None):
        opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
        if not isinstance(opts, pulumi.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')
        if opts.id is None:
            if __props__ is not None:
                raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
            __props__ = InstanceArgs.__new__(InstanceArgs)

            __props__.__dict__["advanced_features"] = advanced_features
            __props__.__dict__["allow_list_ids"] = allow_list_ids
            __props__.__dict__["charge_info"] = charge_info
            if db_engine_version is None and not opts.urn:
                raise TypeError("Missing required property 'db_engine_version'")
            __props__.__dict__["db_engine_version"] = db_engine_version
            __props__.__dict__["instance_name"] = instance_name
            if instance_type is None and not opts.urn:
                raise TypeError("Missing required property 'instance_type'")
            __props__.__dict__["instance_type"] = instance_type
            __props__.__dict__["maintenance_time"] = maintenance_time
            __props__.__dict__["master_node_id"] = master_node_id
            if node_spec is None and not opts.urn:
                raise TypeError("Missing required property 'node_spec'")
            __props__.__dict__["node_spec"] = node_spec
            __props__.__dict__["project_name"] = project_name
            __props__.__dict__["server_collation"] = server_collation
            if storage_space is None and not opts.urn:
                raise TypeError("Missing required property 'storage_space'")
            __props__.__dict__["storage_space"] = storage_space
            if subnet_id is None and not opts.urn:
                raise TypeError("Missing required property 'subnet_id'")
            __props__.__dict__["subnet_id"] = subnet_id
            if super_account_password is None and not opts.urn:
                raise TypeError("Missing required property 'super_account_password'")
            __props__.__dict__["super_account_password"] = super_account_password
            __props__.__dict__["tags"] = tags
            if time_zone is None and not opts.urn:
                raise TypeError("Missing required property 'time_zone'")
            __props__.__dict__["time_zone"] = time_zone
            if vpc_id is None and not opts.urn:
                raise TypeError("Missing required property 'vpc_id'")
            __props__.__dict__["vpc_id"] = vpc_id
            if zone_id is None and not opts.urn:
                raise TypeError("Missing required property 'zone_id'")
            __props__.__dict__["zone_id"] = zone_id
            __props__.__dict__["backup_use"] = None
            __props__.__dict__["connection_infos"] = None
            __props__.__dict__["created_time"] = None
            __props__.__dict__["inner_version"] = None
            __props__.__dict__["instance_category"] = None
            __props__.__dict__["instance_id"] = None
            __props__.__dict__["instance_status"] = None
            __props__.__dict__["memory"] = None
            __props__.__dict__["node_detail_infos"] = None
            __props__.__dict__["port"] = None
            __props__.__dict__["primary_instance_id"] = None
            __props__.__dict__["read_only_number"] = None
            __props__.__dict__["slow_query_enable"] = None
            __props__.__dict__["slow_query_time"] = None
            __props__.__dict__["storage_type"] = None
            __props__.__dict__["storage_use"] = None
            __props__.__dict__["updated_time"] = None
            __props__.__dict__["vcpu"] = None
        super(Instance, __self__).__init__(
            'bytepluscc:rdsmssql/instance:Instance',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None,
            advanced_features: Optional[pulumi.Input[builtins.str]] = None,
            allow_list_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
            backup_use: Optional[pulumi.Input[builtins.float]] = None,
            charge_info: Optional[pulumi.Input[Union['InstanceChargeInfoArgs', 'InstanceChargeInfoArgsDict']]] = None,
            connection_infos: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceConnectionInfoArgs', 'InstanceConnectionInfoArgsDict']]]]] = None,
            created_time: Optional[pulumi.Input[builtins.str]] = None,
            db_engine_version: Optional[pulumi.Input[builtins.str]] = None,
            inner_version: Optional[pulumi.Input[builtins.str]] = None,
            instance_category: Optional[pulumi.Input[builtins.str]] = None,
            instance_id: Optional[pulumi.Input[builtins.str]] = None,
            instance_name: Optional[pulumi.Input[builtins.str]] = None,
            instance_status: Optional[pulumi.Input[builtins.str]] = None,
            instance_type: Optional[pulumi.Input[builtins.str]] = None,
            maintenance_time: Optional[pulumi.Input[builtins.str]] = None,
            master_node_id: Optional[pulumi.Input[builtins.str]] = None,
            memory: Optional[pulumi.Input[builtins.int]] = None,
            node_detail_infos: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceNodeDetailInfoArgs', 'InstanceNodeDetailInfoArgsDict']]]]] = None,
            node_spec: Optional[pulumi.Input[builtins.str]] = None,
            port: Optional[pulumi.Input[builtins.str]] = None,
            primary_instance_id: Optional[pulumi.Input[builtins.str]] = None,
            project_name: Optional[pulumi.Input[builtins.str]] = None,
            read_only_number: Optional[pulumi.Input[builtins.int]] = None,
            server_collation: Optional[pulumi.Input[builtins.str]] = None,
            slow_query_enable: Optional[pulumi.Input[builtins.bool]] = None,
            slow_query_time: Optional[pulumi.Input[builtins.str]] = None,
            storage_space: Optional[pulumi.Input[builtins.int]] = None,
            storage_type: Optional[pulumi.Input[builtins.str]] = None,
            storage_use: Optional[pulumi.Input[builtins.float]] = None,
            subnet_id: Optional[pulumi.Input[builtins.str]] = None,
            super_account_password: Optional[pulumi.Input[builtins.str]] = None,
            tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceTagArgs', 'InstanceTagArgsDict']]]]] = None,
            time_zone: Optional[pulumi.Input[builtins.str]] = None,
            updated_time: Optional[pulumi.Input[builtins.str]] = None,
            vcpu: Optional[pulumi.Input[builtins.int]] = None,
            vpc_id: Optional[pulumi.Input[builtins.str]] = None,
            zone_id: Optional[pulumi.Input[builtins.str]] = None) -> 'Instance':
        """
        Get an existing Instance resource's state with the given name, id, and optional extra
        properties used to qualify the lookup.

        :param str resource_name: The unique name of the resulting resource.
        :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[builtins.str] advanced_features: 需要修改的实例高级特性。该接口当前属于加白接口，如需使用，您可以联系技术支持。示例值：{"Key":"Value"}
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] allow_list_ids: 允许访问的白名单ID列表。
        :param pulumi.Input[builtins.float] backup_use: 实例已用备份空间。单位：GiB。
        :param pulumi.Input[Union['InstanceChargeInfoArgs', 'InstanceChargeInfoArgsDict']] charge_info: 付费方式。
        :param pulumi.Input[builtins.str] created_time: 创建时间。
        :param pulumi.Input[builtins.str] db_engine_version: 兼容版本。取值如下：SQLServer*2019*Std：表示 SQL Server 2019 标准版。SQLServer*2019*Ent：表示 SQL Server 2019 企业版。SQLServer*2019*Web：表示 SQL Server 2019 Web 版。SQLServer*2022*Std：表示 SQL Server 2022 标准版。SQLServer*2022*Ent：表示 SQL Server 2022 企业版。SQLServer*2022*Web：表示 SQL Server 2022 Web 版。
        :param pulumi.Input[builtins.str] inner_version: 内核版本号。
        :param pulumi.Input[builtins.str] instance_category: 实例分类。取值：Primary：主实例。ReadOnly：只读实例。
        :param pulumi.Input[builtins.str] instance_id: 实例ID。
        :param pulumi.Input[builtins.str] instance_name: 实例名称。实例名称的命名规则如下：不能以数字、中划线开头。只能包含中文、字母、数字、下划线和中划线。长度限制在 1~128 之间。
        :param pulumi.Input[builtins.str] instance_status: 实例状态，取值：Running：运行中。Creating：创建中。CreateFailed：创建失败。Deleting：删除中。Restarting：重启中。Updating：变更中。MasterChanging：主节点切换中。Error：错误。
        :param pulumi.Input[builtins.str] instance_type: 实例类型。取值如下：HA（高可用）、Basic（基础版）、Cluster（集群版）。不同引擎版本支持的类型不同：2019 Std 支持 HA/Basic；2019 Ent 支持 Cluster/Basic；2019 Web 支持 Basic。
        :param pulumi.Input[builtins.str] maintenance_time: 实例的可维护时间段。格式：HH:mmZ-HH:mmZ（UTC时间）。默认取值为 UTC18:00Z-21:59Z（即北京时间 02:00-05:59）。说明：为保护云数据库的稳定性，系统会不定期对实例进行维护。可维护时间段建议设置在业务低峰期，避免对业务造成影响。在可维护时间段内，实例可能会出现 1~2 次的连接闪断，需确保应用程序具有自动重连机制。可维护时间段最小时间间隔 1 小时，最大时间间隔 24 小时，不允许跨天选择可维护时间段。
        :param pulumi.Input[builtins.str] master_node_id: 主节点ID。手动切换主备节点时，该参数为必填项。
        :param pulumi.Input[builtins.int] memory: 内存大小，单位为 GiB。
        :param pulumi.Input[builtins.str] node_spec: 实例规格代码。
        :param pulumi.Input[builtins.str] port: 端口
        :param pulumi.Input[builtins.str] primary_instance_id: 主实例ID。如果为空说明它是主实例。
        :param pulumi.Input[builtins.str] project_name: 所属项目。
        :param pulumi.Input[builtins.int] read_only_number: 只读实例数量。
        :param pulumi.Input[builtins.str] server_collation: 实例字符集排序规则，默认 Chinese*PRC*CI*AS。目前已支持大多数原生字符集具体取值如下：Latin1*General*CI*AS，Latin1*General*CS*AS，SQL*Latin1*General*CP1*CI*AS，SQL*Latin1*General*CP1*CS*AS，Chinese*PRC*CI*AS，Chinese*PRC*CS*AS，Chinese*PRC*BIN，Japanese*CI*AS，Japanese*CS*AS，Chinese*Taiwan*Stroke*CI*AS，Chinese*Taiwan*Stroke*CS*AS，Thai*CI*AS，Chinese*PRC*CI*AI，Chinese*PRC*BIN2，Cyrillic*General*CI_AS。
        :param pulumi.Input[builtins.bool] slow_query_enable: 表示是否开启慢日志，取值如下：true：表示开启慢日志。false：表示不开启慢日志。
        :param pulumi.Input[builtins.str] slow_query_time: 慢日志的阈值，取值范围为 [1~10]，单位：秒（s）。
        :param pulumi.Input[builtins.int] storage_space: 存储空间大小，单位为 GiB。取值范围：20GiB ~ 4000GiB，步长为 10GiB。
        :param pulumi.Input[builtins.str] storage_type: 实例存储类型。
        :param pulumi.Input[builtins.float] storage_use: 实例已用储空间。单位：GiB。
        :param pulumi.Input[builtins.str] subnet_id: 子网 ID。当主备节点不在同一个可用区时，主备节点的子网也需设置为对应可用区私有网络下的子网，多个可用区需使用英文分号（;）隔开。
        :param pulumi.Input[builtins.str] super_account_password: 高权限账号的密码。密码规则如下：长度为 8~32 个字符。由大写字母、小写字母、数字、特殊字符中的至少三种组成。特殊字符为 !@#$%^&*()_+-=。
        :param pulumi.Input[builtins.str] time_zone: 时区。
        :param pulumi.Input[builtins.str] updated_time: 更新时间。
        :param pulumi.Input[builtins.int] vcpu: CPU 大小。例如：1 表示 1核。
        :param pulumi.Input[builtins.str] vpc_id: VPC ID
        :param pulumi.Input[builtins.str] zone_id: 节点所在可用区。当主备节点不在同一个可用区时，您可以使用英文分号（;）隔开，默认第一个为主节点可用区，第二个为备节点可用区。
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = _InstanceState.__new__(_InstanceState)

        __props__.__dict__["advanced_features"] = advanced_features
        __props__.__dict__["allow_list_ids"] = allow_list_ids
        __props__.__dict__["backup_use"] = backup_use
        __props__.__dict__["charge_info"] = charge_info
        __props__.__dict__["connection_infos"] = connection_infos
        __props__.__dict__["created_time"] = created_time
        __props__.__dict__["db_engine_version"] = db_engine_version
        __props__.__dict__["inner_version"] = inner_version
        __props__.__dict__["instance_category"] = instance_category
        __props__.__dict__["instance_id"] = instance_id
        __props__.__dict__["instance_name"] = instance_name
        __props__.__dict__["instance_status"] = instance_status
        __props__.__dict__["instance_type"] = instance_type
        __props__.__dict__["maintenance_time"] = maintenance_time
        __props__.__dict__["master_node_id"] = master_node_id
        __props__.__dict__["memory"] = memory
        __props__.__dict__["node_detail_infos"] = node_detail_infos
        __props__.__dict__["node_spec"] = node_spec
        __props__.__dict__["port"] = port
        __props__.__dict__["primary_instance_id"] = primary_instance_id
        __props__.__dict__["project_name"] = project_name
        __props__.__dict__["read_only_number"] = read_only_number
        __props__.__dict__["server_collation"] = server_collation
        __props__.__dict__["slow_query_enable"] = slow_query_enable
        __props__.__dict__["slow_query_time"] = slow_query_time
        __props__.__dict__["storage_space"] = storage_space
        __props__.__dict__["storage_type"] = storage_type
        __props__.__dict__["storage_use"] = storage_use
        __props__.__dict__["subnet_id"] = subnet_id
        __props__.__dict__["super_account_password"] = super_account_password
        __props__.__dict__["tags"] = tags
        __props__.__dict__["time_zone"] = time_zone
        __props__.__dict__["updated_time"] = updated_time
        __props__.__dict__["vcpu"] = vcpu
        __props__.__dict__["vpc_id"] = vpc_id
        __props__.__dict__["zone_id"] = zone_id
        return Instance(resource_name, opts=opts, __props__=__props__)

    @property
    @pulumi.getter(name="advancedFeatures")
    def advanced_features(self) -> pulumi.Output[builtins.str]:
        """
        需要修改的实例高级特性。该接口当前属于加白接口，如需使用，您可以联系技术支持。示例值：{"Key":"Value"}
        """
        return pulumi.get(self, "advanced_features")

    @property
    @pulumi.getter(name="allowListIds")
    def allow_list_ids(self) -> pulumi.Output[Sequence[builtins.str]]:
        """
        允许访问的白名单ID列表。
        """
        return pulumi.get(self, "allow_list_ids")

    @property
    @pulumi.getter(name="backupUse")
    def backup_use(self) -> pulumi.Output[builtins.float]:
        """
        实例已用备份空间。单位：GiB。
        """
        return pulumi.get(self, "backup_use")

    @property
    @pulumi.getter(name="chargeInfo")
    def charge_info(self) -> pulumi.Output['outputs.InstanceChargeInfo']:
        """
        付费方式。
        """
        return pulumi.get(self, "charge_info")

    @property
    @pulumi.getter(name="connectionInfos")
    def connection_infos(self) -> pulumi.Output[Sequence['outputs.InstanceConnectionInfo']]:
        return pulumi.get(self, "connection_infos")

    @property
    @pulumi.getter(name="createdTime")
    def created_time(self) -> pulumi.Output[builtins.str]:
        """
        创建时间。
        """
        return pulumi.get(self, "created_time")

    @property
    @pulumi.getter(name="dbEngineVersion")
    def db_engine_version(self) -> pulumi.Output[builtins.str]:
        """
        兼容版本。取值如下：SQLServer*2019*Std：表示 SQL Server 2019 标准版。SQLServer*2019*Ent：表示 SQL Server 2019 企业版。SQLServer*2019*Web：表示 SQL Server 2019 Web 版。SQLServer*2022*Std：表示 SQL Server 2022 标准版。SQLServer*2022*Ent：表示 SQL Server 2022 企业版。SQLServer*2022*Web：表示 SQL Server 2022 Web 版。
        """
        return pulumi.get(self, "db_engine_version")

    @property
    @pulumi.getter(name="innerVersion")
    def inner_version(self) -> pulumi.Output[builtins.str]:
        """
        内核版本号。
        """
        return pulumi.get(self, "inner_version")

    @property
    @pulumi.getter(name="instanceCategory")
    def instance_category(self) -> pulumi.Output[builtins.str]:
        """
        实例分类。取值：Primary：主实例。ReadOnly：只读实例。
        """
        return pulumi.get(self, "instance_category")

    @property
    @pulumi.getter(name="instanceId")
    def instance_id(self) -> pulumi.Output[builtins.str]:
        """
        实例ID。
        """
        return pulumi.get(self, "instance_id")

    @property
    @pulumi.getter(name="instanceName")
    def instance_name(self) -> pulumi.Output[builtins.str]:
        """
        实例名称。实例名称的命名规则如下：不能以数字、中划线开头。只能包含中文、字母、数字、下划线和中划线。长度限制在 1~128 之间。
        """
        return pulumi.get(self, "instance_name")

    @property
    @pulumi.getter(name="instanceStatus")
    def instance_status(self) -> pulumi.Output[builtins.str]:
        """
        实例状态，取值：Running：运行中。Creating：创建中。CreateFailed：创建失败。Deleting：删除中。Restarting：重启中。Updating：变更中。MasterChanging：主节点切换中。Error：错误。
        """
        return pulumi.get(self, "instance_status")

    @property
    @pulumi.getter(name="instanceType")
    def instance_type(self) -> pulumi.Output[builtins.str]:
        """
        实例类型。取值如下：HA（高可用）、Basic（基础版）、Cluster（集群版）。不同引擎版本支持的类型不同：2019 Std 支持 HA/Basic；2019 Ent 支持 Cluster/Basic；2019 Web 支持 Basic。
        """
        return pulumi.get(self, "instance_type")

    @property
    @pulumi.getter(name="maintenanceTime")
    def maintenance_time(self) -> pulumi.Output[builtins.str]:
        """
        实例的可维护时间段。格式：HH:mmZ-HH:mmZ（UTC时间）。默认取值为 UTC18:00Z-21:59Z（即北京时间 02:00-05:59）。说明：为保护云数据库的稳定性，系统会不定期对实例进行维护。可维护时间段建议设置在业务低峰期，避免对业务造成影响。在可维护时间段内，实例可能会出现 1~2 次的连接闪断，需确保应用程序具有自动重连机制。可维护时间段最小时间间隔 1 小时，最大时间间隔 24 小时，不允许跨天选择可维护时间段。
        """
        return pulumi.get(self, "maintenance_time")

    @property
    @pulumi.getter(name="masterNodeId")
    def master_node_id(self) -> pulumi.Output[builtins.str]:
        """
        主节点ID。手动切换主备节点时，该参数为必填项。
        """
        return pulumi.get(self, "master_node_id")

    @property
    @pulumi.getter
    def memory(self) -> pulumi.Output[builtins.int]:
        """
        内存大小，单位为 GiB。
        """
        return pulumi.get(self, "memory")

    @property
    @pulumi.getter(name="nodeDetailInfos")
    def node_detail_infos(self) -> pulumi.Output[Sequence['outputs.InstanceNodeDetailInfo']]:
        return pulumi.get(self, "node_detail_infos")

    @property
    @pulumi.getter(name="nodeSpec")
    def node_spec(self) -> pulumi.Output[builtins.str]:
        """
        实例规格代码。
        """
        return pulumi.get(self, "node_spec")

    @property
    @pulumi.getter
    def port(self) -> pulumi.Output[builtins.str]:
        """
        端口
        """
        return pulumi.get(self, "port")

    @property
    @pulumi.getter(name="primaryInstanceId")
    def primary_instance_id(self) -> pulumi.Output[builtins.str]:
        """
        主实例ID。如果为空说明它是主实例。
        """
        return pulumi.get(self, "primary_instance_id")

    @property
    @pulumi.getter(name="projectName")
    def project_name(self) -> pulumi.Output[builtins.str]:
        """
        所属项目。
        """
        return pulumi.get(self, "project_name")

    @property
    @pulumi.getter(name="readOnlyNumber")
    def read_only_number(self) -> pulumi.Output[builtins.int]:
        """
        只读实例数量。
        """
        return pulumi.get(self, "read_only_number")

    @property
    @pulumi.getter(name="serverCollation")
    def server_collation(self) -> pulumi.Output[builtins.str]:
        """
        实例字符集排序规则，默认 Chinese*PRC*CI*AS。目前已支持大多数原生字符集具体取值如下：Latin1*General*CI*AS，Latin1*General*CS*AS，SQL*Latin1*General*CP1*CI*AS，SQL*Latin1*General*CP1*CS*AS，Chinese*PRC*CI*AS，Chinese*PRC*CS*AS，Chinese*PRC*BIN，Japanese*CI*AS，Japanese*CS*AS，Chinese*Taiwan*Stroke*CI*AS，Chinese*Taiwan*Stroke*CS*AS，Thai*CI*AS，Chinese*PRC*CI*AI，Chinese*PRC*BIN2，Cyrillic*General*CI_AS。
        """
        return pulumi.get(self, "server_collation")

    @property
    @pulumi.getter(name="slowQueryEnable")
    def slow_query_enable(self) -> pulumi.Output[builtins.bool]:
        """
        表示是否开启慢日志，取值如下：true：表示开启慢日志。false：表示不开启慢日志。
        """
        return pulumi.get(self, "slow_query_enable")

    @property
    @pulumi.getter(name="slowQueryTime")
    def slow_query_time(self) -> pulumi.Output[builtins.str]:
        """
        慢日志的阈值，取值范围为 [1~10]，单位：秒（s）。
        """
        return pulumi.get(self, "slow_query_time")

    @property
    @pulumi.getter(name="storageSpace")
    def storage_space(self) -> pulumi.Output[builtins.int]:
        """
        存储空间大小，单位为 GiB。取值范围：20GiB ~ 4000GiB，步长为 10GiB。
        """
        return pulumi.get(self, "storage_space")

    @property
    @pulumi.getter(name="storageType")
    def storage_type(self) -> pulumi.Output[builtins.str]:
        """
        实例存储类型。
        """
        return pulumi.get(self, "storage_type")

    @property
    @pulumi.getter(name="storageUse")
    def storage_use(self) -> pulumi.Output[builtins.float]:
        """
        实例已用储空间。单位：GiB。
        """
        return pulumi.get(self, "storage_use")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> pulumi.Output[builtins.str]:
        """
        子网 ID。当主备节点不在同一个可用区时，主备节点的子网也需设置为对应可用区私有网络下的子网，多个可用区需使用英文分号（;）隔开。
        """
        return pulumi.get(self, "subnet_id")

    @property
    @pulumi.getter(name="superAccountPassword")
    def super_account_password(self) -> pulumi.Output[builtins.str]:
        """
        高权限账号的密码。密码规则如下：长度为 8~32 个字符。由大写字母、小写字母、数字、特殊字符中的至少三种组成。特殊字符为 !@#$%^&*()_+-=。
        """
        return pulumi.get(self, "super_account_password")

    @property
    @pulumi.getter
    def tags(self) -> pulumi.Output[Sequence['outputs.InstanceTag']]:
        return pulumi.get(self, "tags")

    @property
    @pulumi.getter(name="timeZone")
    def time_zone(self) -> pulumi.Output[builtins.str]:
        """
        时区。
        """
        return pulumi.get(self, "time_zone")

    @property
    @pulumi.getter(name="updatedTime")
    def updated_time(self) -> pulumi.Output[builtins.str]:
        """
        更新时间。
        """
        return pulumi.get(self, "updated_time")

    @property
    @pulumi.getter
    def vcpu(self) -> pulumi.Output[builtins.int]:
        """
        CPU 大小。例如：1 表示 1核。
        """
        return pulumi.get(self, "vcpu")

    @property
    @pulumi.getter(name="vpcId")
    def vpc_id(self) -> pulumi.Output[builtins.str]:
        """
        VPC ID
        """
        return pulumi.get(self, "vpc_id")

    @property
    @pulumi.getter(name="zoneId")
    def zone_id(self) -> pulumi.Output[builtins.str]:
        """
        节点所在可用区。当主备节点不在同一个可用区时，您可以使用英文分号（;）隔开，默认第一个为主节点可用区，第二个为备节点可用区。
        """
        return pulumi.get(self, "zone_id")

