# 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 warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from . import _utilities
from . import outputs
from ._inputs import *

__all__ = ['MdbSqlServerClusterArgs', 'MdbSqlServerCluster']

@pulumi.input_type
class MdbSqlServerClusterArgs:
    def __init__(__self__, *,
                 databases: pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterDatabaseArgs']]],
                 environment: pulumi.Input[str],
                 hosts: pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterHostArgs']]],
                 network_id: pulumi.Input[str],
                 resources: pulumi.Input['MdbSqlServerClusterResourcesArgs'],
                 users: pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterUserArgs']]],
                 version: pulumi.Input[str],
                 backup_window_start: Optional[pulumi.Input['MdbSqlServerClusterBackupWindowStartArgs']] = None,
                 deletion_protection: Optional[pulumi.Input[bool]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 folder_id: Optional[pulumi.Input[str]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 sqlserver_config: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None):
        """
        The set of arguments for constructing a MdbSqlServerCluster resource.
        :param pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterDatabaseArgs']]] databases: A database of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[str] environment: Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)
        :param pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterHostArgs']]] hosts: A host of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[str] network_id: ID of the network, to which the SQLServer cluster uses.
        :param pulumi.Input['MdbSqlServerClusterResourcesArgs'] resources: Resources allocated to hosts of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterUserArgs']]] users: A user of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[str] version: Version of the SQLServer cluster. (2016sp2std, 2016sp2ent)
        :param pulumi.Input['MdbSqlServerClusterBackupWindowStartArgs'] backup_window_start: Time to start the daily backup, in the UTC. The structure is documented below.
        :param pulumi.Input[bool] deletion_protection: Inhibits deletion of the cluster.  Can be either `true` or `false`.
        :param pulumi.Input[str] description: Description of the SQLServer cluster.
        :param pulumi.Input[str] folder_id: The ID of the folder that the resource belongs to. If it
               is not provided, the default provider folder is used.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A set of key/value label pairs to assign to the SQLServer cluster.
        :param pulumi.Input[str] name: The name of the database.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A set of ids of security groups assigned to hosts of the cluster.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] sqlserver_config: SQLServer cluster config. Detail info in "SQLServer config" section (documented below).
        """
        pulumi.set(__self__, "databases", databases)
        pulumi.set(__self__, "environment", environment)
        pulumi.set(__self__, "hosts", hosts)
        pulumi.set(__self__, "network_id", network_id)
        pulumi.set(__self__, "resources", resources)
        pulumi.set(__self__, "users", users)
        pulumi.set(__self__, "version", version)
        if backup_window_start is not None:
            pulumi.set(__self__, "backup_window_start", backup_window_start)
        if deletion_protection is not None:
            pulumi.set(__self__, "deletion_protection", deletion_protection)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder_id is not None:
            pulumi.set(__self__, "folder_id", folder_id)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if security_group_ids is not None:
            pulumi.set(__self__, "security_group_ids", security_group_ids)
        if sqlserver_config is not None:
            pulumi.set(__self__, "sqlserver_config", sqlserver_config)

    @property
    @pulumi.getter
    def databases(self) -> pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterDatabaseArgs']]]:
        """
        A database of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "databases")

    @databases.setter
    def databases(self, value: pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterDatabaseArgs']]]):
        pulumi.set(self, "databases", value)

    @property
    @pulumi.getter
    def environment(self) -> pulumi.Input[str]:
        """
        Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)
        """
        return pulumi.get(self, "environment")

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

    @property
    @pulumi.getter
    def hosts(self) -> pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterHostArgs']]]:
        """
        A host of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "hosts")

    @hosts.setter
    def hosts(self, value: pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterHostArgs']]]):
        pulumi.set(self, "hosts", value)

    @property
    @pulumi.getter(name="networkId")
    def network_id(self) -> pulumi.Input[str]:
        """
        ID of the network, to which the SQLServer cluster uses.
        """
        return pulumi.get(self, "network_id")

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

    @property
    @pulumi.getter
    def resources(self) -> pulumi.Input['MdbSqlServerClusterResourcesArgs']:
        """
        Resources allocated to hosts of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "resources")

    @resources.setter
    def resources(self, value: pulumi.Input['MdbSqlServerClusterResourcesArgs']):
        pulumi.set(self, "resources", value)

    @property
    @pulumi.getter
    def users(self) -> pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterUserArgs']]]:
        """
        A user of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "users")

    @users.setter
    def users(self, value: pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterUserArgs']]]):
        pulumi.set(self, "users", value)

    @property
    @pulumi.getter
    def version(self) -> pulumi.Input[str]:
        """
        Version of the SQLServer cluster. (2016sp2std, 2016sp2ent)
        """
        return pulumi.get(self, "version")

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

    @property
    @pulumi.getter(name="backupWindowStart")
    def backup_window_start(self) -> Optional[pulumi.Input['MdbSqlServerClusterBackupWindowStartArgs']]:
        """
        Time to start the daily backup, in the UTC. The structure is documented below.
        """
        return pulumi.get(self, "backup_window_start")

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

    @property
    @pulumi.getter(name="deletionProtection")
    def deletion_protection(self) -> Optional[pulumi.Input[bool]]:
        """
        Inhibits deletion of the cluster.  Can be either `true` or `false`.
        """
        return pulumi.get(self, "deletion_protection")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        """
        Description of the SQLServer cluster.
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter(name="folderId")
    def folder_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the folder that the resource belongs to. If it
        is not provided, the default provider folder is used.
        """
        return pulumi.get(self, "folder_id")

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

    @property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
        """
        A set of key/value label pairs to assign to the SQLServer cluster.
        """
        return pulumi.get(self, "labels")

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

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        The name of the database.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter(name="securityGroupIds")
    def security_group_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        A set of ids of security groups assigned to hosts of the cluster.
        """
        return pulumi.get(self, "security_group_ids")

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

    @property
    @pulumi.getter(name="sqlserverConfig")
    def sqlserver_config(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
        """
        SQLServer cluster config. Detail info in "SQLServer config" section (documented below).
        """
        return pulumi.get(self, "sqlserver_config")

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


@pulumi.input_type
class _MdbSqlServerClusterState:
    def __init__(__self__, *,
                 backup_window_start: Optional[pulumi.Input['MdbSqlServerClusterBackupWindowStartArgs']] = None,
                 created_at: Optional[pulumi.Input[str]] = None,
                 databases: Optional[pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterDatabaseArgs']]]] = None,
                 deletion_protection: Optional[pulumi.Input[bool]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 environment: Optional[pulumi.Input[str]] = None,
                 folder_id: Optional[pulumi.Input[str]] = None,
                 health: Optional[pulumi.Input[str]] = None,
                 hosts: Optional[pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterHostArgs']]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 network_id: Optional[pulumi.Input[str]] = None,
                 resources: Optional[pulumi.Input['MdbSqlServerClusterResourcesArgs']] = None,
                 security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 sqlserver_config: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 status: Optional[pulumi.Input[str]] = None,
                 users: Optional[pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterUserArgs']]]] = None,
                 version: Optional[pulumi.Input[str]] = None):
        """
        Input properties used for looking up and filtering MdbSqlServerCluster resources.
        :param pulumi.Input['MdbSqlServerClusterBackupWindowStartArgs'] backup_window_start: Time to start the daily backup, in the UTC. The structure is documented below.
        :param pulumi.Input[str] created_at: Creation timestamp of the cluster.
        :param pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterDatabaseArgs']]] databases: A database of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[bool] deletion_protection: Inhibits deletion of the cluster.  Can be either `true` or `false`.
        :param pulumi.Input[str] description: Description of the SQLServer cluster.
        :param pulumi.Input[str] environment: Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)
        :param pulumi.Input[str] folder_id: The ID of the folder that the resource belongs to. If it
               is not provided, the default provider folder is used.
        :param pulumi.Input[str] health: Aggregated health of the cluster.
        :param pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterHostArgs']]] hosts: A host of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A set of key/value label pairs to assign to the SQLServer cluster.
        :param pulumi.Input[str] name: The name of the database.
        :param pulumi.Input[str] network_id: ID of the network, to which the SQLServer cluster uses.
        :param pulumi.Input['MdbSqlServerClusterResourcesArgs'] resources: Resources allocated to hosts of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A set of ids of security groups assigned to hosts of the cluster.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] sqlserver_config: SQLServer cluster config. Detail info in "SQLServer config" section (documented below).
        :param pulumi.Input[str] status: Status of the cluster.
        :param pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterUserArgs']]] users: A user of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[str] version: Version of the SQLServer cluster. (2016sp2std, 2016sp2ent)
        """
        if backup_window_start is not None:
            pulumi.set(__self__, "backup_window_start", backup_window_start)
        if created_at is not None:
            pulumi.set(__self__, "created_at", created_at)
        if databases is not None:
            pulumi.set(__self__, "databases", databases)
        if deletion_protection is not None:
            pulumi.set(__self__, "deletion_protection", deletion_protection)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if environment is not None:
            pulumi.set(__self__, "environment", environment)
        if folder_id is not None:
            pulumi.set(__self__, "folder_id", folder_id)
        if health is not None:
            pulumi.set(__self__, "health", health)
        if hosts is not None:
            pulumi.set(__self__, "hosts", hosts)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if network_id is not None:
            pulumi.set(__self__, "network_id", network_id)
        if resources is not None:
            pulumi.set(__self__, "resources", resources)
        if security_group_ids is not None:
            pulumi.set(__self__, "security_group_ids", security_group_ids)
        if sqlserver_config is not None:
            pulumi.set(__self__, "sqlserver_config", sqlserver_config)
        if status is not None:
            pulumi.set(__self__, "status", status)
        if users is not None:
            pulumi.set(__self__, "users", users)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @property
    @pulumi.getter(name="backupWindowStart")
    def backup_window_start(self) -> Optional[pulumi.Input['MdbSqlServerClusterBackupWindowStartArgs']]:
        """
        Time to start the daily backup, in the UTC. The structure is documented below.
        """
        return pulumi.get(self, "backup_window_start")

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

    @property
    @pulumi.getter(name="createdAt")
    def created_at(self) -> Optional[pulumi.Input[str]]:
        """
        Creation timestamp of the cluster.
        """
        return pulumi.get(self, "created_at")

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

    @property
    @pulumi.getter
    def databases(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterDatabaseArgs']]]]:
        """
        A database of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "databases")

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

    @property
    @pulumi.getter(name="deletionProtection")
    def deletion_protection(self) -> Optional[pulumi.Input[bool]]:
        """
        Inhibits deletion of the cluster.  Can be either `true` or `false`.
        """
        return pulumi.get(self, "deletion_protection")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        """
        Description of the SQLServer cluster.
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter
    def environment(self) -> Optional[pulumi.Input[str]]:
        """
        Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)
        """
        return pulumi.get(self, "environment")

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

    @property
    @pulumi.getter(name="folderId")
    def folder_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the folder that the resource belongs to. If it
        is not provided, the default provider folder is used.
        """
        return pulumi.get(self, "folder_id")

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

    @property
    @pulumi.getter
    def health(self) -> Optional[pulumi.Input[str]]:
        """
        Aggregated health of the cluster.
        """
        return pulumi.get(self, "health")

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

    @property
    @pulumi.getter
    def hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterHostArgs']]]]:
        """
        A host of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "hosts")

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

    @property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
        """
        A set of key/value label pairs to assign to the SQLServer cluster.
        """
        return pulumi.get(self, "labels")

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

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        The name of the database.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter(name="networkId")
    def network_id(self) -> Optional[pulumi.Input[str]]:
        """
        ID of the network, to which the SQLServer cluster uses.
        """
        return pulumi.get(self, "network_id")

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

    @property
    @pulumi.getter
    def resources(self) -> Optional[pulumi.Input['MdbSqlServerClusterResourcesArgs']]:
        """
        Resources allocated to hosts of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "resources")

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

    @property
    @pulumi.getter(name="securityGroupIds")
    def security_group_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        A set of ids of security groups assigned to hosts of the cluster.
        """
        return pulumi.get(self, "security_group_ids")

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

    @property
    @pulumi.getter(name="sqlserverConfig")
    def sqlserver_config(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
        """
        SQLServer cluster config. Detail info in "SQLServer config" section (documented below).
        """
        return pulumi.get(self, "sqlserver_config")

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

    @property
    @pulumi.getter
    def status(self) -> Optional[pulumi.Input[str]]:
        """
        Status of the cluster.
        """
        return pulumi.get(self, "status")

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

    @property
    @pulumi.getter
    def users(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterUserArgs']]]]:
        """
        A user of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "users")

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

    @property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[str]]:
        """
        Version of the SQLServer cluster. (2016sp2std, 2016sp2ent)
        """
        return pulumi.get(self, "version")

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


class MdbSqlServerCluster(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 backup_window_start: Optional[pulumi.Input[pulumi.InputType['MdbSqlServerClusterBackupWindowStartArgs']]] = None,
                 databases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterDatabaseArgs']]]]] = None,
                 deletion_protection: Optional[pulumi.Input[bool]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 environment: Optional[pulumi.Input[str]] = None,
                 folder_id: Optional[pulumi.Input[str]] = None,
                 hosts: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterHostArgs']]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 network_id: Optional[pulumi.Input[str]] = None,
                 resources: Optional[pulumi.Input[pulumi.InputType['MdbSqlServerClusterResourcesArgs']]] = None,
                 security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 sqlserver_config: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 users: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterUserArgs']]]]] = None,
                 version: Optional[pulumi.Input[str]] = None,
                 __props__=None):
        """
        Manages a SQLServer cluster within the Yandex.Cloud. For more information, see
        [the official documentation](https://cloud.yandex.com/docs/managed-sqlserver/).

        Please read [Pricing for Managed Service for SQL Server](https://cloud.yandex.com/docs/managed-sqlserver/pricing#prices) before using SQLServer cluster.

        ## Example Usage

        Example of creating a Single Node SQLServer.

        ```python
        import pulumi
        import pulumi_yandex as yandex

        foo_vpc_network = yandex.VpcNetwork("fooVpcNetwork")
        foo_vpc_subnet = yandex.VpcSubnet("fooVpcSubnet",
            zone="ru-central1-a",
            network_id=foo_vpc_network.id,
            v4_cidr_blocks=["10.5.0.0/24"])
        test_sg_x = yandex.VpcSecurityGroup("test-sg-x",
            network_id=foo_vpc_network.id,
            ingresses=[yandex.VpcSecurityGroupIngressArgs(
                protocol="ANY",
                description="Allow incoming traffic from members of the same security group",
                from_port=0,
                to_port=65535,
                v4_cidr_blocks=["0.0.0.0/0"],
            )],
            egresses=[yandex.VpcSecurityGroupEgressArgs(
                protocol="ANY",
                description="Allow outgoing traffic to members of the same security group",
                from_port=0,
                to_port=65535,
                v4_cidr_blocks=["0.0.0.0/0"],
            )])
        foo_mdb_sql_server_cluster = yandex.MdbSqlServerCluster("fooMdbSqlServerCluster",
            environment="PRESTABLE",
            network_id=foo_vpc_network.id,
            version="2016sp2std",
            resources=yandex.MdbSqlServerClusterResourcesArgs(
                resource_preset_id="s2.small",
                disk_type_id="network-ssd",
                disk_size=20,
            ),
            labels={
                "test_key": "test_value",
            },
            backup_window_start=yandex.MdbSqlServerClusterBackupWindowStartArgs(
                hours=20,
                minutes=30,
            ),
            sqlserver_config={
                "fill_factor_percent": "49",
                "optimize_for_ad_hoc_workloads": "true",
            },
            databases=[
                yandex.MdbSqlServerClusterDatabaseArgs(
                    name="db_name_a",
                ),
                yandex.MdbSqlServerClusterDatabaseArgs(
                    name="db_name",
                ),
                yandex.MdbSqlServerClusterDatabaseArgs(
                    name="db_name_b",
                ),
            ],
            users=[
                yandex.MdbSqlServerClusterUserArgs(
                    name="bob",
                    password="<PASSWORD>",
                ),
                yandex.MdbSqlServerClusterUserArgs(
                    name="alice",
                    password="<PASSWORD>",
                    permissions=[yandex.MdbSqlServerClusterUserPermissionArgs(
                        database_name="db_name",
                        roles=["DDLADMIN"],
                    )],
                ),
                yandex.MdbSqlServerClusterUserArgs(
                    name="chuck",
                    password="<PASSWORD>",
                    permissions=[
                        yandex.MdbSqlServerClusterUserPermissionArgs(
                            database_name="db_name_a",
                            roles=["OWNER"],
                        ),
                        yandex.MdbSqlServerClusterUserPermissionArgs(
                            database_name="db_name",
                            roles=[
                                "OWNER",
                                "DDLADMIN",
                            ],
                        ),
                        yandex.MdbSqlServerClusterUserPermissionArgs(
                            database_name="db_name_b",
                            roles=[
                                "OWNER",
                                "DDLADMIN",
                            ],
                        ),
                    ],
                ),
            ],
            hosts=[yandex.MdbSqlServerClusterHostArgs(
                zone="ru-central1-a",
                subnet_id=foo_vpc_subnet.id,
            )],
            security_group_ids=[test_sg_x.id])
        ```
        ## SQLServer config

        If not specified `sqlserver_config` then does not make any changes.

        * max_degree_of_parallelism - Limits the number of processors to use in parallel plan execution per task. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-max-degree-of-parallelism-server-configuration-option?view=sql-server-2016).

        * cost_threshold_for_parallelism - Specifies the threshold at which SQL Server creates and runs parallel plans for queries. SQL Server creates and runs a parallel plan for a query only when the estimated cost to run a serial plan for the same query is higher than the value of the option. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-cost-threshold-for-parallelism-server-configuration-option?view=sql-server-2016).

        * audit_level - Describes how to configure login auditing to monitor SQL Server Database Engine login activity. Possible values:
          - 0 — do not log login attempts,˚√
          - 1 — log only failed login attempts,
          - 2 — log only successful login attempts (not recommended),
          - 3 — log all login attempts (not recommended).
             See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/ssms/configure-login-auditing-sql-server-management-studio?view=sql-server-2016).

        * fill_factor_percent - Manages the fill factor server configuration option. When an index is created or rebuilt the fill factor determines the percentage of space on each index leaf-level page to be filled with data, reserving the rest as free space for future growth. Values 0 and 100 mean full page usage (no space reserved). See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-fill-factor-server-configuration-option?view=sql-server-2016).
        * optimize_for_ad_hoc_workloads - Determines whether plans should be cached only after second execution. Allows to avoid SQL cache bloat because of single-use plans. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/optimize-for-ad-hoc-workloads-server-configuration-option?view=sql-server-2016).

        ## Import

        A cluster can be imported using the `id` of the resource, e.g.

        ```sh
         $ pulumi import yandex:index/mdbSqlServerCluster:MdbSqlServerCluster foo cluster_id
        ```

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[pulumi.InputType['MdbSqlServerClusterBackupWindowStartArgs']] backup_window_start: Time to start the daily backup, in the UTC. The structure is documented below.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterDatabaseArgs']]]] databases: A database of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[bool] deletion_protection: Inhibits deletion of the cluster.  Can be either `true` or `false`.
        :param pulumi.Input[str] description: Description of the SQLServer cluster.
        :param pulumi.Input[str] environment: Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)
        :param pulumi.Input[str] folder_id: The ID of the folder that the resource belongs to. If it
               is not provided, the default provider folder is used.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterHostArgs']]]] hosts: A host of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A set of key/value label pairs to assign to the SQLServer cluster.
        :param pulumi.Input[str] name: The name of the database.
        :param pulumi.Input[str] network_id: ID of the network, to which the SQLServer cluster uses.
        :param pulumi.Input[pulumi.InputType['MdbSqlServerClusterResourcesArgs']] resources: Resources allocated to hosts of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A set of ids of security groups assigned to hosts of the cluster.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] sqlserver_config: SQLServer cluster config. Detail info in "SQLServer config" section (documented below).
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterUserArgs']]]] users: A user of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[str] version: Version of the SQLServer cluster. (2016sp2std, 2016sp2ent)
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: MdbSqlServerClusterArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        Manages a SQLServer cluster within the Yandex.Cloud. For more information, see
        [the official documentation](https://cloud.yandex.com/docs/managed-sqlserver/).

        Please read [Pricing for Managed Service for SQL Server](https://cloud.yandex.com/docs/managed-sqlserver/pricing#prices) before using SQLServer cluster.

        ## Example Usage

        Example of creating a Single Node SQLServer.

        ```python
        import pulumi
        import pulumi_yandex as yandex

        foo_vpc_network = yandex.VpcNetwork("fooVpcNetwork")
        foo_vpc_subnet = yandex.VpcSubnet("fooVpcSubnet",
            zone="ru-central1-a",
            network_id=foo_vpc_network.id,
            v4_cidr_blocks=["10.5.0.0/24"])
        test_sg_x = yandex.VpcSecurityGroup("test-sg-x",
            network_id=foo_vpc_network.id,
            ingresses=[yandex.VpcSecurityGroupIngressArgs(
                protocol="ANY",
                description="Allow incoming traffic from members of the same security group",
                from_port=0,
                to_port=65535,
                v4_cidr_blocks=["0.0.0.0/0"],
            )],
            egresses=[yandex.VpcSecurityGroupEgressArgs(
                protocol="ANY",
                description="Allow outgoing traffic to members of the same security group",
                from_port=0,
                to_port=65535,
                v4_cidr_blocks=["0.0.0.0/0"],
            )])
        foo_mdb_sql_server_cluster = yandex.MdbSqlServerCluster("fooMdbSqlServerCluster",
            environment="PRESTABLE",
            network_id=foo_vpc_network.id,
            version="2016sp2std",
            resources=yandex.MdbSqlServerClusterResourcesArgs(
                resource_preset_id="s2.small",
                disk_type_id="network-ssd",
                disk_size=20,
            ),
            labels={
                "test_key": "test_value",
            },
            backup_window_start=yandex.MdbSqlServerClusterBackupWindowStartArgs(
                hours=20,
                minutes=30,
            ),
            sqlserver_config={
                "fill_factor_percent": "49",
                "optimize_for_ad_hoc_workloads": "true",
            },
            databases=[
                yandex.MdbSqlServerClusterDatabaseArgs(
                    name="db_name_a",
                ),
                yandex.MdbSqlServerClusterDatabaseArgs(
                    name="db_name",
                ),
                yandex.MdbSqlServerClusterDatabaseArgs(
                    name="db_name_b",
                ),
            ],
            users=[
                yandex.MdbSqlServerClusterUserArgs(
                    name="bob",
                    password="<PASSWORD>",
                ),
                yandex.MdbSqlServerClusterUserArgs(
                    name="alice",
                    password="<PASSWORD>",
                    permissions=[yandex.MdbSqlServerClusterUserPermissionArgs(
                        database_name="db_name",
                        roles=["DDLADMIN"],
                    )],
                ),
                yandex.MdbSqlServerClusterUserArgs(
                    name="chuck",
                    password="<PASSWORD>",
                    permissions=[
                        yandex.MdbSqlServerClusterUserPermissionArgs(
                            database_name="db_name_a",
                            roles=["OWNER"],
                        ),
                        yandex.MdbSqlServerClusterUserPermissionArgs(
                            database_name="db_name",
                            roles=[
                                "OWNER",
                                "DDLADMIN",
                            ],
                        ),
                        yandex.MdbSqlServerClusterUserPermissionArgs(
                            database_name="db_name_b",
                            roles=[
                                "OWNER",
                                "DDLADMIN",
                            ],
                        ),
                    ],
                ),
            ],
            hosts=[yandex.MdbSqlServerClusterHostArgs(
                zone="ru-central1-a",
                subnet_id=foo_vpc_subnet.id,
            )],
            security_group_ids=[test_sg_x.id])
        ```
        ## SQLServer config

        If not specified `sqlserver_config` then does not make any changes.

        * max_degree_of_parallelism - Limits the number of processors to use in parallel plan execution per task. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-max-degree-of-parallelism-server-configuration-option?view=sql-server-2016).

        * cost_threshold_for_parallelism - Specifies the threshold at which SQL Server creates and runs parallel plans for queries. SQL Server creates and runs a parallel plan for a query only when the estimated cost to run a serial plan for the same query is higher than the value of the option. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-cost-threshold-for-parallelism-server-configuration-option?view=sql-server-2016).

        * audit_level - Describes how to configure login auditing to monitor SQL Server Database Engine login activity. Possible values:
          - 0 — do not log login attempts,˚√
          - 1 — log only failed login attempts,
          - 2 — log only successful login attempts (not recommended),
          - 3 — log all login attempts (not recommended).
             See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/ssms/configure-login-auditing-sql-server-management-studio?view=sql-server-2016).

        * fill_factor_percent - Manages the fill factor server configuration option. When an index is created or rebuilt the fill factor determines the percentage of space on each index leaf-level page to be filled with data, reserving the rest as free space for future growth. Values 0 and 100 mean full page usage (no space reserved). See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-fill-factor-server-configuration-option?view=sql-server-2016).
        * optimize_for_ad_hoc_workloads - Determines whether plans should be cached only after second execution. Allows to avoid SQL cache bloat because of single-use plans. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/optimize-for-ad-hoc-workloads-server-configuration-option?view=sql-server-2016).

        ## Import

        A cluster can be imported using the `id` of the resource, e.g.

        ```sh
         $ pulumi import yandex:index/mdbSqlServerCluster:MdbSqlServerCluster foo cluster_id
        ```

        :param str resource_name: The name of the resource.
        :param MdbSqlServerClusterArgs 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(MdbSqlServerClusterArgs, 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,
                 backup_window_start: Optional[pulumi.Input[pulumi.InputType['MdbSqlServerClusterBackupWindowStartArgs']]] = None,
                 databases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterDatabaseArgs']]]]] = None,
                 deletion_protection: Optional[pulumi.Input[bool]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 environment: Optional[pulumi.Input[str]] = None,
                 folder_id: Optional[pulumi.Input[str]] = None,
                 hosts: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterHostArgs']]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 network_id: Optional[pulumi.Input[str]] = None,
                 resources: Optional[pulumi.Input[pulumi.InputType['MdbSqlServerClusterResourcesArgs']]] = None,
                 security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 sqlserver_config: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 users: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterUserArgs']]]]] = None,
                 version: Optional[pulumi.Input[str]] = None,
                 __props__=None):
        if opts is None:
            opts = pulumi.ResourceOptions()
        if not isinstance(opts, pulumi.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')
        if opts.version is None:
            opts.version = _utilities.get_version()
        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__ = MdbSqlServerClusterArgs.__new__(MdbSqlServerClusterArgs)

            __props__.__dict__["backup_window_start"] = backup_window_start
            if databases is None and not opts.urn:
                raise TypeError("Missing required property 'databases'")
            __props__.__dict__["databases"] = databases
            __props__.__dict__["deletion_protection"] = deletion_protection
            __props__.__dict__["description"] = description
            if environment is None and not opts.urn:
                raise TypeError("Missing required property 'environment'")
            __props__.__dict__["environment"] = environment
            __props__.__dict__["folder_id"] = folder_id
            if hosts is None and not opts.urn:
                raise TypeError("Missing required property 'hosts'")
            __props__.__dict__["hosts"] = hosts
            __props__.__dict__["labels"] = labels
            __props__.__dict__["name"] = name
            if network_id is None and not opts.urn:
                raise TypeError("Missing required property 'network_id'")
            __props__.__dict__["network_id"] = network_id
            if resources is None and not opts.urn:
                raise TypeError("Missing required property 'resources'")
            __props__.__dict__["resources"] = resources
            __props__.__dict__["security_group_ids"] = security_group_ids
            __props__.__dict__["sqlserver_config"] = sqlserver_config
            if users is None and not opts.urn:
                raise TypeError("Missing required property 'users'")
            __props__.__dict__["users"] = users
            if version is None and not opts.urn:
                raise TypeError("Missing required property 'version'")
            __props__.__dict__["version"] = version
            __props__.__dict__["created_at"] = None
            __props__.__dict__["health"] = None
            __props__.__dict__["status"] = None
        super(MdbSqlServerCluster, __self__).__init__(
            'yandex:index/mdbSqlServerCluster:MdbSqlServerCluster',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None,
            backup_window_start: Optional[pulumi.Input[pulumi.InputType['MdbSqlServerClusterBackupWindowStartArgs']]] = None,
            created_at: Optional[pulumi.Input[str]] = None,
            databases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterDatabaseArgs']]]]] = None,
            deletion_protection: Optional[pulumi.Input[bool]] = None,
            description: Optional[pulumi.Input[str]] = None,
            environment: Optional[pulumi.Input[str]] = None,
            folder_id: Optional[pulumi.Input[str]] = None,
            health: Optional[pulumi.Input[str]] = None,
            hosts: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterHostArgs']]]]] = None,
            labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
            name: Optional[pulumi.Input[str]] = None,
            network_id: Optional[pulumi.Input[str]] = None,
            resources: Optional[pulumi.Input[pulumi.InputType['MdbSqlServerClusterResourcesArgs']]] = None,
            security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
            sqlserver_config: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
            status: Optional[pulumi.Input[str]] = None,
            users: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterUserArgs']]]]] = None,
            version: Optional[pulumi.Input[str]] = None) -> 'MdbSqlServerCluster':
        """
        Get an existing MdbSqlServerCluster 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[pulumi.InputType['MdbSqlServerClusterBackupWindowStartArgs']] backup_window_start: Time to start the daily backup, in the UTC. The structure is documented below.
        :param pulumi.Input[str] created_at: Creation timestamp of the cluster.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterDatabaseArgs']]]] databases: A database of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[bool] deletion_protection: Inhibits deletion of the cluster.  Can be either `true` or `false`.
        :param pulumi.Input[str] description: Description of the SQLServer cluster.
        :param pulumi.Input[str] environment: Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)
        :param pulumi.Input[str] folder_id: The ID of the folder that the resource belongs to. If it
               is not provided, the default provider folder is used.
        :param pulumi.Input[str] health: Aggregated health of the cluster.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterHostArgs']]]] hosts: A host of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A set of key/value label pairs to assign to the SQLServer cluster.
        :param pulumi.Input[str] name: The name of the database.
        :param pulumi.Input[str] network_id: ID of the network, to which the SQLServer cluster uses.
        :param pulumi.Input[pulumi.InputType['MdbSqlServerClusterResourcesArgs']] resources: Resources allocated to hosts of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A set of ids of security groups assigned to hosts of the cluster.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] sqlserver_config: SQLServer cluster config. Detail info in "SQLServer config" section (documented below).
        :param pulumi.Input[str] status: Status of the cluster.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterUserArgs']]]] users: A user of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[str] version: Version of the SQLServer cluster. (2016sp2std, 2016sp2ent)
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = _MdbSqlServerClusterState.__new__(_MdbSqlServerClusterState)

        __props__.__dict__["backup_window_start"] = backup_window_start
        __props__.__dict__["created_at"] = created_at
        __props__.__dict__["databases"] = databases
        __props__.__dict__["deletion_protection"] = deletion_protection
        __props__.__dict__["description"] = description
        __props__.__dict__["environment"] = environment
        __props__.__dict__["folder_id"] = folder_id
        __props__.__dict__["health"] = health
        __props__.__dict__["hosts"] = hosts
        __props__.__dict__["labels"] = labels
        __props__.__dict__["name"] = name
        __props__.__dict__["network_id"] = network_id
        __props__.__dict__["resources"] = resources
        __props__.__dict__["security_group_ids"] = security_group_ids
        __props__.__dict__["sqlserver_config"] = sqlserver_config
        __props__.__dict__["status"] = status
        __props__.__dict__["users"] = users
        __props__.__dict__["version"] = version
        return MdbSqlServerCluster(resource_name, opts=opts, __props__=__props__)

    @property
    @pulumi.getter(name="backupWindowStart")
    def backup_window_start(self) -> pulumi.Output['outputs.MdbSqlServerClusterBackupWindowStart']:
        """
        Time to start the daily backup, in the UTC. The structure is documented below.
        """
        return pulumi.get(self, "backup_window_start")

    @property
    @pulumi.getter(name="createdAt")
    def created_at(self) -> pulumi.Output[str]:
        """
        Creation timestamp of the cluster.
        """
        return pulumi.get(self, "created_at")

    @property
    @pulumi.getter
    def databases(self) -> pulumi.Output[Sequence['outputs.MdbSqlServerClusterDatabase']]:
        """
        A database of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "databases")

    @property
    @pulumi.getter(name="deletionProtection")
    def deletion_protection(self) -> pulumi.Output[bool]:
        """
        Inhibits deletion of the cluster.  Can be either `true` or `false`.
        """
        return pulumi.get(self, "deletion_protection")

    @property
    @pulumi.getter
    def description(self) -> pulumi.Output[Optional[str]]:
        """
        Description of the SQLServer cluster.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def environment(self) -> pulumi.Output[str]:
        """
        Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)
        """
        return pulumi.get(self, "environment")

    @property
    @pulumi.getter(name="folderId")
    def folder_id(self) -> pulumi.Output[str]:
        """
        The ID of the folder that the resource belongs to. If it
        is not provided, the default provider folder is used.
        """
        return pulumi.get(self, "folder_id")

    @property
    @pulumi.getter
    def health(self) -> pulumi.Output[str]:
        """
        Aggregated health of the cluster.
        """
        return pulumi.get(self, "health")

    @property
    @pulumi.getter
    def hosts(self) -> pulumi.Output[Sequence['outputs.MdbSqlServerClusterHost']]:
        """
        A host of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "hosts")

    @property
    @pulumi.getter
    def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
        """
        A set of key/value label pairs to assign to the SQLServer cluster.
        """
        return pulumi.get(self, "labels")

    @property
    @pulumi.getter
    def name(self) -> pulumi.Output[str]:
        """
        The name of the database.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="networkId")
    def network_id(self) -> pulumi.Output[str]:
        """
        ID of the network, to which the SQLServer cluster uses.
        """
        return pulumi.get(self, "network_id")

    @property
    @pulumi.getter
    def resources(self) -> pulumi.Output['outputs.MdbSqlServerClusterResources']:
        """
        Resources allocated to hosts of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "resources")

    @property
    @pulumi.getter(name="securityGroupIds")
    def security_group_ids(self) -> pulumi.Output[Optional[Sequence[str]]]:
        """
        A set of ids of security groups assigned to hosts of the cluster.
        """
        return pulumi.get(self, "security_group_ids")

    @property
    @pulumi.getter(name="sqlserverConfig")
    def sqlserver_config(self) -> pulumi.Output[Mapping[str, str]]:
        """
        SQLServer cluster config. Detail info in "SQLServer config" section (documented below).
        """
        return pulumi.get(self, "sqlserver_config")

    @property
    @pulumi.getter
    def status(self) -> pulumi.Output[str]:
        """
        Status of the cluster.
        """
        return pulumi.get(self, "status")

    @property
    @pulumi.getter
    def users(self) -> pulumi.Output[Sequence['outputs.MdbSqlServerClusterUser']]:
        """
        A user of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "users")

    @property
    @pulumi.getter
    def version(self) -> pulumi.Output[str]:
        """
        Version of the SQLServer cluster. (2016sp2std, 2016sp2ent)
        """
        return pulumi.get(self, "version")


# 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 warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from . import _utilities
from . import outputs
from ._inputs import *

__all__ = ['MdbSqlServerClusterArgs', 'MdbSqlServerCluster']

@pulumi.input_type
class MdbSqlServerClusterArgs:
    def __init__(__self__, *,
                 databases: pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterDatabaseArgs']]],
                 environment: pulumi.Input[str],
                 hosts: pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterHostArgs']]],
                 network_id: pulumi.Input[str],
                 resources: pulumi.Input['MdbSqlServerClusterResourcesArgs'],
                 users: pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterUserArgs']]],
                 version: pulumi.Input[str],
                 backup_window_start: Optional[pulumi.Input['MdbSqlServerClusterBackupWindowStartArgs']] = None,
                 deletion_protection: Optional[pulumi.Input[bool]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 folder_id: Optional[pulumi.Input[str]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 sqlserver_config: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None):
        """
        The set of arguments for constructing a MdbSqlServerCluster resource.
        :param pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterDatabaseArgs']]] databases: A database of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[str] environment: Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)
        :param pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterHostArgs']]] hosts: A host of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[str] network_id: ID of the network, to which the SQLServer cluster uses.
        :param pulumi.Input['MdbSqlServerClusterResourcesArgs'] resources: Resources allocated to hosts of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterUserArgs']]] users: A user of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[str] version: Version of the SQLServer cluster. (2016sp2std, 2016sp2ent)
        :param pulumi.Input['MdbSqlServerClusterBackupWindowStartArgs'] backup_window_start: Time to start the daily backup, in the UTC. The structure is documented below.
        :param pulumi.Input[bool] deletion_protection: Inhibits deletion of the cluster.  Can be either `true` or `false`.
        :param pulumi.Input[str] description: Description of the SQLServer cluster.
        :param pulumi.Input[str] folder_id: The ID of the folder that the resource belongs to. If it
               is not provided, the default provider folder is used.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A set of key/value label pairs to assign to the SQLServer cluster.
        :param pulumi.Input[str] name: The name of the database.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A set of ids of security groups assigned to hosts of the cluster.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] sqlserver_config: SQLServer cluster config. Detail info in "SQLServer config" section (documented below).
        """
        pulumi.set(__self__, "databases", databases)
        pulumi.set(__self__, "environment", environment)
        pulumi.set(__self__, "hosts", hosts)
        pulumi.set(__self__, "network_id", network_id)
        pulumi.set(__self__, "resources", resources)
        pulumi.set(__self__, "users", users)
        pulumi.set(__self__, "version", version)
        if backup_window_start is not None:
            pulumi.set(__self__, "backup_window_start", backup_window_start)
        if deletion_protection is not None:
            pulumi.set(__self__, "deletion_protection", deletion_protection)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if folder_id is not None:
            pulumi.set(__self__, "folder_id", folder_id)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if security_group_ids is not None:
            pulumi.set(__self__, "security_group_ids", security_group_ids)
        if sqlserver_config is not None:
            pulumi.set(__self__, "sqlserver_config", sqlserver_config)

    @property
    @pulumi.getter
    def databases(self) -> pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterDatabaseArgs']]]:
        """
        A database of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "databases")

    @databases.setter
    def databases(self, value: pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterDatabaseArgs']]]):
        pulumi.set(self, "databases", value)

    @property
    @pulumi.getter
    def environment(self) -> pulumi.Input[str]:
        """
        Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)
        """
        return pulumi.get(self, "environment")

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

    @property
    @pulumi.getter
    def hosts(self) -> pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterHostArgs']]]:
        """
        A host of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "hosts")

    @hosts.setter
    def hosts(self, value: pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterHostArgs']]]):
        pulumi.set(self, "hosts", value)

    @property
    @pulumi.getter(name="networkId")
    def network_id(self) -> pulumi.Input[str]:
        """
        ID of the network, to which the SQLServer cluster uses.
        """
        return pulumi.get(self, "network_id")

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

    @property
    @pulumi.getter
    def resources(self) -> pulumi.Input['MdbSqlServerClusterResourcesArgs']:
        """
        Resources allocated to hosts of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "resources")

    @resources.setter
    def resources(self, value: pulumi.Input['MdbSqlServerClusterResourcesArgs']):
        pulumi.set(self, "resources", value)

    @property
    @pulumi.getter
    def users(self) -> pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterUserArgs']]]:
        """
        A user of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "users")

    @users.setter
    def users(self, value: pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterUserArgs']]]):
        pulumi.set(self, "users", value)

    @property
    @pulumi.getter
    def version(self) -> pulumi.Input[str]:
        """
        Version of the SQLServer cluster. (2016sp2std, 2016sp2ent)
        """
        return pulumi.get(self, "version")

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

    @property
    @pulumi.getter(name="backupWindowStart")
    def backup_window_start(self) -> Optional[pulumi.Input['MdbSqlServerClusterBackupWindowStartArgs']]:
        """
        Time to start the daily backup, in the UTC. The structure is documented below.
        """
        return pulumi.get(self, "backup_window_start")

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

    @property
    @pulumi.getter(name="deletionProtection")
    def deletion_protection(self) -> Optional[pulumi.Input[bool]]:
        """
        Inhibits deletion of the cluster.  Can be either `true` or `false`.
        """
        return pulumi.get(self, "deletion_protection")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        """
        Description of the SQLServer cluster.
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter(name="folderId")
    def folder_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the folder that the resource belongs to. If it
        is not provided, the default provider folder is used.
        """
        return pulumi.get(self, "folder_id")

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

    @property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
        """
        A set of key/value label pairs to assign to the SQLServer cluster.
        """
        return pulumi.get(self, "labels")

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

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        The name of the database.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter(name="securityGroupIds")
    def security_group_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        A set of ids of security groups assigned to hosts of the cluster.
        """
        return pulumi.get(self, "security_group_ids")

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

    @property
    @pulumi.getter(name="sqlserverConfig")
    def sqlserver_config(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
        """
        SQLServer cluster config. Detail info in "SQLServer config" section (documented below).
        """
        return pulumi.get(self, "sqlserver_config")

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


@pulumi.input_type
class _MdbSqlServerClusterState:
    def __init__(__self__, *,
                 backup_window_start: Optional[pulumi.Input['MdbSqlServerClusterBackupWindowStartArgs']] = None,
                 created_at: Optional[pulumi.Input[str]] = None,
                 databases: Optional[pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterDatabaseArgs']]]] = None,
                 deletion_protection: Optional[pulumi.Input[bool]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 environment: Optional[pulumi.Input[str]] = None,
                 folder_id: Optional[pulumi.Input[str]] = None,
                 health: Optional[pulumi.Input[str]] = None,
                 hosts: Optional[pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterHostArgs']]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 network_id: Optional[pulumi.Input[str]] = None,
                 resources: Optional[pulumi.Input['MdbSqlServerClusterResourcesArgs']] = None,
                 security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 sqlserver_config: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 status: Optional[pulumi.Input[str]] = None,
                 users: Optional[pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterUserArgs']]]] = None,
                 version: Optional[pulumi.Input[str]] = None):
        """
        Input properties used for looking up and filtering MdbSqlServerCluster resources.
        :param pulumi.Input['MdbSqlServerClusterBackupWindowStartArgs'] backup_window_start: Time to start the daily backup, in the UTC. The structure is documented below.
        :param pulumi.Input[str] created_at: Creation timestamp of the cluster.
        :param pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterDatabaseArgs']]] databases: A database of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[bool] deletion_protection: Inhibits deletion of the cluster.  Can be either `true` or `false`.
        :param pulumi.Input[str] description: Description of the SQLServer cluster.
        :param pulumi.Input[str] environment: Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)
        :param pulumi.Input[str] folder_id: The ID of the folder that the resource belongs to. If it
               is not provided, the default provider folder is used.
        :param pulumi.Input[str] health: Aggregated health of the cluster.
        :param pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterHostArgs']]] hosts: A host of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A set of key/value label pairs to assign to the SQLServer cluster.
        :param pulumi.Input[str] name: The name of the database.
        :param pulumi.Input[str] network_id: ID of the network, to which the SQLServer cluster uses.
        :param pulumi.Input['MdbSqlServerClusterResourcesArgs'] resources: Resources allocated to hosts of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A set of ids of security groups assigned to hosts of the cluster.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] sqlserver_config: SQLServer cluster config. Detail info in "SQLServer config" section (documented below).
        :param pulumi.Input[str] status: Status of the cluster.
        :param pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterUserArgs']]] users: A user of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[str] version: Version of the SQLServer cluster. (2016sp2std, 2016sp2ent)
        """
        if backup_window_start is not None:
            pulumi.set(__self__, "backup_window_start", backup_window_start)
        if created_at is not None:
            pulumi.set(__self__, "created_at", created_at)
        if databases is not None:
            pulumi.set(__self__, "databases", databases)
        if deletion_protection is not None:
            pulumi.set(__self__, "deletion_protection", deletion_protection)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if environment is not None:
            pulumi.set(__self__, "environment", environment)
        if folder_id is not None:
            pulumi.set(__self__, "folder_id", folder_id)
        if health is not None:
            pulumi.set(__self__, "health", health)
        if hosts is not None:
            pulumi.set(__self__, "hosts", hosts)
        if labels is not None:
            pulumi.set(__self__, "labels", labels)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if network_id is not None:
            pulumi.set(__self__, "network_id", network_id)
        if resources is not None:
            pulumi.set(__self__, "resources", resources)
        if security_group_ids is not None:
            pulumi.set(__self__, "security_group_ids", security_group_ids)
        if sqlserver_config is not None:
            pulumi.set(__self__, "sqlserver_config", sqlserver_config)
        if status is not None:
            pulumi.set(__self__, "status", status)
        if users is not None:
            pulumi.set(__self__, "users", users)
        if version is not None:
            pulumi.set(__self__, "version", version)

    @property
    @pulumi.getter(name="backupWindowStart")
    def backup_window_start(self) -> Optional[pulumi.Input['MdbSqlServerClusterBackupWindowStartArgs']]:
        """
        Time to start the daily backup, in the UTC. The structure is documented below.
        """
        return pulumi.get(self, "backup_window_start")

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

    @property
    @pulumi.getter(name="createdAt")
    def created_at(self) -> Optional[pulumi.Input[str]]:
        """
        Creation timestamp of the cluster.
        """
        return pulumi.get(self, "created_at")

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

    @property
    @pulumi.getter
    def databases(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterDatabaseArgs']]]]:
        """
        A database of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "databases")

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

    @property
    @pulumi.getter(name="deletionProtection")
    def deletion_protection(self) -> Optional[pulumi.Input[bool]]:
        """
        Inhibits deletion of the cluster.  Can be either `true` or `false`.
        """
        return pulumi.get(self, "deletion_protection")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        """
        Description of the SQLServer cluster.
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter
    def environment(self) -> Optional[pulumi.Input[str]]:
        """
        Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)
        """
        return pulumi.get(self, "environment")

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

    @property
    @pulumi.getter(name="folderId")
    def folder_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the folder that the resource belongs to. If it
        is not provided, the default provider folder is used.
        """
        return pulumi.get(self, "folder_id")

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

    @property
    @pulumi.getter
    def health(self) -> Optional[pulumi.Input[str]]:
        """
        Aggregated health of the cluster.
        """
        return pulumi.get(self, "health")

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

    @property
    @pulumi.getter
    def hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterHostArgs']]]]:
        """
        A host of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "hosts")

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

    @property
    @pulumi.getter
    def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
        """
        A set of key/value label pairs to assign to the SQLServer cluster.
        """
        return pulumi.get(self, "labels")

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

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        The name of the database.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter(name="networkId")
    def network_id(self) -> Optional[pulumi.Input[str]]:
        """
        ID of the network, to which the SQLServer cluster uses.
        """
        return pulumi.get(self, "network_id")

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

    @property
    @pulumi.getter
    def resources(self) -> Optional[pulumi.Input['MdbSqlServerClusterResourcesArgs']]:
        """
        Resources allocated to hosts of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "resources")

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

    @property
    @pulumi.getter(name="securityGroupIds")
    def security_group_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        A set of ids of security groups assigned to hosts of the cluster.
        """
        return pulumi.get(self, "security_group_ids")

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

    @property
    @pulumi.getter(name="sqlserverConfig")
    def sqlserver_config(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
        """
        SQLServer cluster config. Detail info in "SQLServer config" section (documented below).
        """
        return pulumi.get(self, "sqlserver_config")

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

    @property
    @pulumi.getter
    def status(self) -> Optional[pulumi.Input[str]]:
        """
        Status of the cluster.
        """
        return pulumi.get(self, "status")

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

    @property
    @pulumi.getter
    def users(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterUserArgs']]]]:
        """
        A user of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "users")

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

    @property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[str]]:
        """
        Version of the SQLServer cluster. (2016sp2std, 2016sp2ent)
        """
        return pulumi.get(self, "version")

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


class MdbSqlServerCluster(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 backup_window_start: Optional[pulumi.Input[pulumi.InputType['MdbSqlServerClusterBackupWindowStartArgs']]] = None,
                 databases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterDatabaseArgs']]]]] = None,
                 deletion_protection: Optional[pulumi.Input[bool]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 environment: Optional[pulumi.Input[str]] = None,
                 folder_id: Optional[pulumi.Input[str]] = None,
                 hosts: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterHostArgs']]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 network_id: Optional[pulumi.Input[str]] = None,
                 resources: Optional[pulumi.Input[pulumi.InputType['MdbSqlServerClusterResourcesArgs']]] = None,
                 security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 sqlserver_config: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 users: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterUserArgs']]]]] = None,
                 version: Optional[pulumi.Input[str]] = None,
                 __props__=None):
        """
        Manages a SQLServer cluster within the Yandex.Cloud. For more information, see
        [the official documentation](https://cloud.yandex.com/docs/managed-sqlserver/).

        Please read [Pricing for Managed Service for SQL Server](https://cloud.yandex.com/docs/managed-sqlserver/pricing#prices) before using SQLServer cluster.

        ## Example Usage

        Example of creating a Single Node SQLServer.

        ```python
        import pulumi
        import pulumi_yandex as yandex

        foo_vpc_network = yandex.VpcNetwork("fooVpcNetwork")
        foo_vpc_subnet = yandex.VpcSubnet("fooVpcSubnet",
            zone="ru-central1-a",
            network_id=foo_vpc_network.id,
            v4_cidr_blocks=["10.5.0.0/24"])
        test_sg_x = yandex.VpcSecurityGroup("test-sg-x",
            network_id=foo_vpc_network.id,
            ingresses=[yandex.VpcSecurityGroupIngressArgs(
                protocol="ANY",
                description="Allow incoming traffic from members of the same security group",
                from_port=0,
                to_port=65535,
                v4_cidr_blocks=["0.0.0.0/0"],
            )],
            egresses=[yandex.VpcSecurityGroupEgressArgs(
                protocol="ANY",
                description="Allow outgoing traffic to members of the same security group",
                from_port=0,
                to_port=65535,
                v4_cidr_blocks=["0.0.0.0/0"],
            )])
        foo_mdb_sql_server_cluster = yandex.MdbSqlServerCluster("fooMdbSqlServerCluster",
            environment="PRESTABLE",
            network_id=foo_vpc_network.id,
            version="2016sp2std",
            resources=yandex.MdbSqlServerClusterResourcesArgs(
                resource_preset_id="s2.small",
                disk_type_id="network-ssd",
                disk_size=20,
            ),
            labels={
                "test_key": "test_value",
            },
            backup_window_start=yandex.MdbSqlServerClusterBackupWindowStartArgs(
                hours=20,
                minutes=30,
            ),
            sqlserver_config={
                "fill_factor_percent": "49",
                "optimize_for_ad_hoc_workloads": "true",
            },
            databases=[
                yandex.MdbSqlServerClusterDatabaseArgs(
                    name="db_name_a",
                ),
                yandex.MdbSqlServerClusterDatabaseArgs(
                    name="db_name",
                ),
                yandex.MdbSqlServerClusterDatabaseArgs(
                    name="db_name_b",
                ),
            ],
            users=[
                yandex.MdbSqlServerClusterUserArgs(
                    name="bob",
                    password="<PASSWORD>",
                ),
                yandex.MdbSqlServerClusterUserArgs(
                    name="alice",
                    password="<PASSWORD>",
                    permissions=[yandex.MdbSqlServerClusterUserPermissionArgs(
                        database_name="db_name",
                        roles=["DDLADMIN"],
                    )],
                ),
                yandex.MdbSqlServerClusterUserArgs(
                    name="chuck",
                    password="<PASSWORD>",
                    permissions=[
                        yandex.MdbSqlServerClusterUserPermissionArgs(
                            database_name="db_name_a",
                            roles=["OWNER"],
                        ),
                        yandex.MdbSqlServerClusterUserPermissionArgs(
                            database_name="db_name",
                            roles=[
                                "OWNER",
                                "DDLADMIN",
                            ],
                        ),
                        yandex.MdbSqlServerClusterUserPermissionArgs(
                            database_name="db_name_b",
                            roles=[
                                "OWNER",
                                "DDLADMIN",
                            ],
                        ),
                    ],
                ),
            ],
            hosts=[yandex.MdbSqlServerClusterHostArgs(
                zone="ru-central1-a",
                subnet_id=foo_vpc_subnet.id,
            )],
            security_group_ids=[test_sg_x.id])
        ```
        ## SQLServer config

        If not specified `sqlserver_config` then does not make any changes.

        * max_degree_of_parallelism - Limits the number of processors to use in parallel plan execution per task. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-max-degree-of-parallelism-server-configuration-option?view=sql-server-2016).

        * cost_threshold_for_parallelism - Specifies the threshold at which SQL Server creates and runs parallel plans for queries. SQL Server creates and runs a parallel plan for a query only when the estimated cost to run a serial plan for the same query is higher than the value of the option. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-cost-threshold-for-parallelism-server-configuration-option?view=sql-server-2016).

        * audit_level - Describes how to configure login auditing to monitor SQL Server Database Engine login activity. Possible values:
          - 0 — do not log login attempts,˚√
          - 1 — log only failed login attempts,
          - 2 — log only successful login attempts (not recommended),
          - 3 — log all login attempts (not recommended).
             See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/ssms/configure-login-auditing-sql-server-management-studio?view=sql-server-2016).

        * fill_factor_percent - Manages the fill factor server configuration option. When an index is created or rebuilt the fill factor determines the percentage of space on each index leaf-level page to be filled with data, reserving the rest as free space for future growth. Values 0 and 100 mean full page usage (no space reserved). See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-fill-factor-server-configuration-option?view=sql-server-2016).
        * optimize_for_ad_hoc_workloads - Determines whether plans should be cached only after second execution. Allows to avoid SQL cache bloat because of single-use plans. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/optimize-for-ad-hoc-workloads-server-configuration-option?view=sql-server-2016).

        ## Import

        A cluster can be imported using the `id` of the resource, e.g.

        ```sh
         $ pulumi import yandex:index/mdbSqlServerCluster:MdbSqlServerCluster foo cluster_id
        ```

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[pulumi.InputType['MdbSqlServerClusterBackupWindowStartArgs']] backup_window_start: Time to start the daily backup, in the UTC. The structure is documented below.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterDatabaseArgs']]]] databases: A database of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[bool] deletion_protection: Inhibits deletion of the cluster.  Can be either `true` or `false`.
        :param pulumi.Input[str] description: Description of the SQLServer cluster.
        :param pulumi.Input[str] environment: Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)
        :param pulumi.Input[str] folder_id: The ID of the folder that the resource belongs to. If it
               is not provided, the default provider folder is used.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterHostArgs']]]] hosts: A host of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A set of key/value label pairs to assign to the SQLServer cluster.
        :param pulumi.Input[str] name: The name of the database.
        :param pulumi.Input[str] network_id: ID of the network, to which the SQLServer cluster uses.
        :param pulumi.Input[pulumi.InputType['MdbSqlServerClusterResourcesArgs']] resources: Resources allocated to hosts of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A set of ids of security groups assigned to hosts of the cluster.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] sqlserver_config: SQLServer cluster config. Detail info in "SQLServer config" section (documented below).
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterUserArgs']]]] users: A user of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[str] version: Version of the SQLServer cluster. (2016sp2std, 2016sp2ent)
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: MdbSqlServerClusterArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        Manages a SQLServer cluster within the Yandex.Cloud. For more information, see
        [the official documentation](https://cloud.yandex.com/docs/managed-sqlserver/).

        Please read [Pricing for Managed Service for SQL Server](https://cloud.yandex.com/docs/managed-sqlserver/pricing#prices) before using SQLServer cluster.

        ## Example Usage

        Example of creating a Single Node SQLServer.

        ```python
        import pulumi
        import pulumi_yandex as yandex

        foo_vpc_network = yandex.VpcNetwork("fooVpcNetwork")
        foo_vpc_subnet = yandex.VpcSubnet("fooVpcSubnet",
            zone="ru-central1-a",
            network_id=foo_vpc_network.id,
            v4_cidr_blocks=["10.5.0.0/24"])
        test_sg_x = yandex.VpcSecurityGroup("test-sg-x",
            network_id=foo_vpc_network.id,
            ingresses=[yandex.VpcSecurityGroupIngressArgs(
                protocol="ANY",
                description="Allow incoming traffic from members of the same security group",
                from_port=0,
                to_port=65535,
                v4_cidr_blocks=["0.0.0.0/0"],
            )],
            egresses=[yandex.VpcSecurityGroupEgressArgs(
                protocol="ANY",
                description="Allow outgoing traffic to members of the same security group",
                from_port=0,
                to_port=65535,
                v4_cidr_blocks=["0.0.0.0/0"],
            )])
        foo_mdb_sql_server_cluster = yandex.MdbSqlServerCluster("fooMdbSqlServerCluster",
            environment="PRESTABLE",
            network_id=foo_vpc_network.id,
            version="2016sp2std",
            resources=yandex.MdbSqlServerClusterResourcesArgs(
                resource_preset_id="s2.small",
                disk_type_id="network-ssd",
                disk_size=20,
            ),
            labels={
                "test_key": "test_value",
            },
            backup_window_start=yandex.MdbSqlServerClusterBackupWindowStartArgs(
                hours=20,
                minutes=30,
            ),
            sqlserver_config={
                "fill_factor_percent": "49",
                "optimize_for_ad_hoc_workloads": "true",
            },
            databases=[
                yandex.MdbSqlServerClusterDatabaseArgs(
                    name="db_name_a",
                ),
                yandex.MdbSqlServerClusterDatabaseArgs(
                    name="db_name",
                ),
                yandex.MdbSqlServerClusterDatabaseArgs(
                    name="db_name_b",
                ),
            ],
            users=[
                yandex.MdbSqlServerClusterUserArgs(
                    name="bob",
                    password="<PASSWORD>",
                ),
                yandex.MdbSqlServerClusterUserArgs(
                    name="alice",
                    password="<PASSWORD>",
                    permissions=[yandex.MdbSqlServerClusterUserPermissionArgs(
                        database_name="db_name",
                        roles=["DDLADMIN"],
                    )],
                ),
                yandex.MdbSqlServerClusterUserArgs(
                    name="chuck",
                    password="<PASSWORD>",
                    permissions=[
                        yandex.MdbSqlServerClusterUserPermissionArgs(
                            database_name="db_name_a",
                            roles=["OWNER"],
                        ),
                        yandex.MdbSqlServerClusterUserPermissionArgs(
                            database_name="db_name",
                            roles=[
                                "OWNER",
                                "DDLADMIN",
                            ],
                        ),
                        yandex.MdbSqlServerClusterUserPermissionArgs(
                            database_name="db_name_b",
                            roles=[
                                "OWNER",
                                "DDLADMIN",
                            ],
                        ),
                    ],
                ),
            ],
            hosts=[yandex.MdbSqlServerClusterHostArgs(
                zone="ru-central1-a",
                subnet_id=foo_vpc_subnet.id,
            )],
            security_group_ids=[test_sg_x.id])
        ```
        ## SQLServer config

        If not specified `sqlserver_config` then does not make any changes.

        * max_degree_of_parallelism - Limits the number of processors to use in parallel plan execution per task. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-max-degree-of-parallelism-server-configuration-option?view=sql-server-2016).

        * cost_threshold_for_parallelism - Specifies the threshold at which SQL Server creates and runs parallel plans for queries. SQL Server creates and runs a parallel plan for a query only when the estimated cost to run a serial plan for the same query is higher than the value of the option. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-cost-threshold-for-parallelism-server-configuration-option?view=sql-server-2016).

        * audit_level - Describes how to configure login auditing to monitor SQL Server Database Engine login activity. Possible values:
          - 0 — do not log login attempts,˚√
          - 1 — log only failed login attempts,
          - 2 — log only successful login attempts (not recommended),
          - 3 — log all login attempts (not recommended).
             See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/ssms/configure-login-auditing-sql-server-management-studio?view=sql-server-2016).

        * fill_factor_percent - Manages the fill factor server configuration option. When an index is created or rebuilt the fill factor determines the percentage of space on each index leaf-level page to be filled with data, reserving the rest as free space for future growth. Values 0 and 100 mean full page usage (no space reserved). See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-fill-factor-server-configuration-option?view=sql-server-2016).
        * optimize_for_ad_hoc_workloads - Determines whether plans should be cached only after second execution. Allows to avoid SQL cache bloat because of single-use plans. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/optimize-for-ad-hoc-workloads-server-configuration-option?view=sql-server-2016).

        ## Import

        A cluster can be imported using the `id` of the resource, e.g.

        ```sh
         $ pulumi import yandex:index/mdbSqlServerCluster:MdbSqlServerCluster foo cluster_id
        ```

        :param str resource_name: The name of the resource.
        :param MdbSqlServerClusterArgs 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(MdbSqlServerClusterArgs, 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,
                 backup_window_start: Optional[pulumi.Input[pulumi.InputType['MdbSqlServerClusterBackupWindowStartArgs']]] = None,
                 databases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterDatabaseArgs']]]]] = None,
                 deletion_protection: Optional[pulumi.Input[bool]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 environment: Optional[pulumi.Input[str]] = None,
                 folder_id: Optional[pulumi.Input[str]] = None,
                 hosts: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterHostArgs']]]]] = None,
                 labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 network_id: Optional[pulumi.Input[str]] = None,
                 resources: Optional[pulumi.Input[pulumi.InputType['MdbSqlServerClusterResourcesArgs']]] = None,
                 security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 sqlserver_config: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 users: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterUserArgs']]]]] = None,
                 version: Optional[pulumi.Input[str]] = None,
                 __props__=None):
        if opts is None:
            opts = pulumi.ResourceOptions()
        if not isinstance(opts, pulumi.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')
        if opts.version is None:
            opts.version = _utilities.get_version()
        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__ = MdbSqlServerClusterArgs.__new__(MdbSqlServerClusterArgs)

            __props__.__dict__["backup_window_start"] = backup_window_start
            if databases is None and not opts.urn:
                raise TypeError("Missing required property 'databases'")
            __props__.__dict__["databases"] = databases
            __props__.__dict__["deletion_protection"] = deletion_protection
            __props__.__dict__["description"] = description
            if environment is None and not opts.urn:
                raise TypeError("Missing required property 'environment'")
            __props__.__dict__["environment"] = environment
            __props__.__dict__["folder_id"] = folder_id
            if hosts is None and not opts.urn:
                raise TypeError("Missing required property 'hosts'")
            __props__.__dict__["hosts"] = hosts
            __props__.__dict__["labels"] = labels
            __props__.__dict__["name"] = name
            if network_id is None and not opts.urn:
                raise TypeError("Missing required property 'network_id'")
            __props__.__dict__["network_id"] = network_id
            if resources is None and not opts.urn:
                raise TypeError("Missing required property 'resources'")
            __props__.__dict__["resources"] = resources
            __props__.__dict__["security_group_ids"] = security_group_ids
            __props__.__dict__["sqlserver_config"] = sqlserver_config
            if users is None and not opts.urn:
                raise TypeError("Missing required property 'users'")
            __props__.__dict__["users"] = users
            if version is None and not opts.urn:
                raise TypeError("Missing required property 'version'")
            __props__.__dict__["version"] = version
            __props__.__dict__["created_at"] = None
            __props__.__dict__["health"] = None
            __props__.__dict__["status"] = None
        super(MdbSqlServerCluster, __self__).__init__(
            'yandex:index/mdbSqlServerCluster:MdbSqlServerCluster',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None,
            backup_window_start: Optional[pulumi.Input[pulumi.InputType['MdbSqlServerClusterBackupWindowStartArgs']]] = None,
            created_at: Optional[pulumi.Input[str]] = None,
            databases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterDatabaseArgs']]]]] = None,
            deletion_protection: Optional[pulumi.Input[bool]] = None,
            description: Optional[pulumi.Input[str]] = None,
            environment: Optional[pulumi.Input[str]] = None,
            folder_id: Optional[pulumi.Input[str]] = None,
            health: Optional[pulumi.Input[str]] = None,
            hosts: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterHostArgs']]]]] = None,
            labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
            name: Optional[pulumi.Input[str]] = None,
            network_id: Optional[pulumi.Input[str]] = None,
            resources: Optional[pulumi.Input[pulumi.InputType['MdbSqlServerClusterResourcesArgs']]] = None,
            security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
            sqlserver_config: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
            status: Optional[pulumi.Input[str]] = None,
            users: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterUserArgs']]]]] = None,
            version: Optional[pulumi.Input[str]] = None) -> 'MdbSqlServerCluster':
        """
        Get an existing MdbSqlServerCluster 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[pulumi.InputType['MdbSqlServerClusterBackupWindowStartArgs']] backup_window_start: Time to start the daily backup, in the UTC. The structure is documented below.
        :param pulumi.Input[str] created_at: Creation timestamp of the cluster.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterDatabaseArgs']]]] databases: A database of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[bool] deletion_protection: Inhibits deletion of the cluster.  Can be either `true` or `false`.
        :param pulumi.Input[str] description: Description of the SQLServer cluster.
        :param pulumi.Input[str] environment: Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)
        :param pulumi.Input[str] folder_id: The ID of the folder that the resource belongs to. If it
               is not provided, the default provider folder is used.
        :param pulumi.Input[str] health: Aggregated health of the cluster.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterHostArgs']]]] hosts: A host of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A set of key/value label pairs to assign to the SQLServer cluster.
        :param pulumi.Input[str] name: The name of the database.
        :param pulumi.Input[str] network_id: ID of the network, to which the SQLServer cluster uses.
        :param pulumi.Input[pulumi.InputType['MdbSqlServerClusterResourcesArgs']] resources: Resources allocated to hosts of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A set of ids of security groups assigned to hosts of the cluster.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] sqlserver_config: SQLServer cluster config. Detail info in "SQLServer config" section (documented below).
        :param pulumi.Input[str] status: Status of the cluster.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterUserArgs']]]] users: A user of the SQLServer cluster. The structure is documented below.
        :param pulumi.Input[str] version: Version of the SQLServer cluster. (2016sp2std, 2016sp2ent)
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = _MdbSqlServerClusterState.__new__(_MdbSqlServerClusterState)

        __props__.__dict__["backup_window_start"] = backup_window_start
        __props__.__dict__["created_at"] = created_at
        __props__.__dict__["databases"] = databases
        __props__.__dict__["deletion_protection"] = deletion_protection
        __props__.__dict__["description"] = description
        __props__.__dict__["environment"] = environment
        __props__.__dict__["folder_id"] = folder_id
        __props__.__dict__["health"] = health
        __props__.__dict__["hosts"] = hosts
        __props__.__dict__["labels"] = labels
        __props__.__dict__["name"] = name
        __props__.__dict__["network_id"] = network_id
        __props__.__dict__["resources"] = resources
        __props__.__dict__["security_group_ids"] = security_group_ids
        __props__.__dict__["sqlserver_config"] = sqlserver_config
        __props__.__dict__["status"] = status
        __props__.__dict__["users"] = users
        __props__.__dict__["version"] = version
        return MdbSqlServerCluster(resource_name, opts=opts, __props__=__props__)

    @property
    @pulumi.getter(name="backupWindowStart")
    def backup_window_start(self) -> pulumi.Output['outputs.MdbSqlServerClusterBackupWindowStart']:
        """
        Time to start the daily backup, in the UTC. The structure is documented below.
        """
        return pulumi.get(self, "backup_window_start")

    @property
    @pulumi.getter(name="createdAt")
    def created_at(self) -> pulumi.Output[str]:
        """
        Creation timestamp of the cluster.
        """
        return pulumi.get(self, "created_at")

    @property
    @pulumi.getter
    def databases(self) -> pulumi.Output[Sequence['outputs.MdbSqlServerClusterDatabase']]:
        """
        A database of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "databases")

    @property
    @pulumi.getter(name="deletionProtection")
    def deletion_protection(self) -> pulumi.Output[bool]:
        """
        Inhibits deletion of the cluster.  Can be either `true` or `false`.
        """
        return pulumi.get(self, "deletion_protection")

    @property
    @pulumi.getter
    def description(self) -> pulumi.Output[Optional[str]]:
        """
        Description of the SQLServer cluster.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def environment(self) -> pulumi.Output[str]:
        """
        Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)
        """
        return pulumi.get(self, "environment")

    @property
    @pulumi.getter(name="folderId")
    def folder_id(self) -> pulumi.Output[str]:
        """
        The ID of the folder that the resource belongs to. If it
        is not provided, the default provider folder is used.
        """
        return pulumi.get(self, "folder_id")

    @property
    @pulumi.getter
    def health(self) -> pulumi.Output[str]:
        """
        Aggregated health of the cluster.
        """
        return pulumi.get(self, "health")

    @property
    @pulumi.getter
    def hosts(self) -> pulumi.Output[Sequence['outputs.MdbSqlServerClusterHost']]:
        """
        A host of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "hosts")

    @property
    @pulumi.getter
    def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
        """
        A set of key/value label pairs to assign to the SQLServer cluster.
        """
        return pulumi.get(self, "labels")

    @property
    @pulumi.getter
    def name(self) -> pulumi.Output[str]:
        """
        The name of the database.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="networkId")
    def network_id(self) -> pulumi.Output[str]:
        """
        ID of the network, to which the SQLServer cluster uses.
        """
        return pulumi.get(self, "network_id")

    @property
    @pulumi.getter
    def resources(self) -> pulumi.Output['outputs.MdbSqlServerClusterResources']:
        """
        Resources allocated to hosts of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "resources")

    @property
    @pulumi.getter(name="securityGroupIds")
    def security_group_ids(self) -> pulumi.Output[Optional[Sequence[str]]]:
        """
        A set of ids of security groups assigned to hosts of the cluster.
        """
        return pulumi.get(self, "security_group_ids")

    @property
    @pulumi.getter(name="sqlserverConfig")
    def sqlserver_config(self) -> pulumi.Output[Mapping[str, str]]:
        """
        SQLServer cluster config. Detail info in "SQLServer config" section (documented below).
        """
        return pulumi.get(self, "sqlserver_config")

    @property
    @pulumi.getter
    def status(self) -> pulumi.Output[str]:
        """
        Status of the cluster.
        """
        return pulumi.get(self, "status")

    @property
    @pulumi.getter
    def users(self) -> pulumi.Output[Sequence['outputs.MdbSqlServerClusterUser']]:
        """
        A user of the SQLServer cluster. The structure is documented below.
        """
        return pulumi.get(self, "users")

    @property
    @pulumi.getter
    def version(self) -> pulumi.Output[str]:
        """
        Version of the SQLServer cluster. (2016sp2std, 2016sp2ent)
        """
        return pulumi.get(self, "version")


# 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! *** The set of arguments for constructing a MdbSqlServerCluster resource.         :param pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterDatabaseArgs']]] databases: A database of the SQLServer cluster. The structure is documented below.         :param pulumi.Input[str] environment: Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)         :param pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterHostArgs']]] hosts: A host of the SQLServer cluster. The structure is documented below.         :param pulumi.Input[str] network_id: ID of the network, to which the SQLServer cluster uses.         :param pulumi.Input['MdbSqlServerClusterResourcesArgs'] resources: Resources allocated to hosts of the SQLServer cluster. The structure is documented below.         :param pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterUserArgs']]] users: A user of the SQLServer cluster. The structure is documented below.         :param pulumi.Input[str] version: Version of the SQLServer cluster. (2016sp2std, 2016sp2ent)         :param pulumi.Input['MdbSqlServerClusterBackupWindowStartArgs'] backup_window_start: Time to start the daily backup, in the UTC. The structure is documented below.         :param pulumi.Input[bool] deletion_protection: Inhibits deletion of the cluster.  Can be either `true` or `false`.         :param pulumi.Input[str] description: Description of the SQLServer cluster.         :param pulumi.Input[str] folder_id: The ID of the folder that the resource belongs to. If it                is not provided, the default provider folder is used.         :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A set of key/value label pairs to assign to the SQLServer cluster.         :param pulumi.Input[str] name: The name of the database.         :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A set of ids of security groups assigned to hosts of the cluster.         :param pulumi.Input[Mapping[str, pulumi.Input[str]]] sqlserver_config: SQLServer cluster config. Detail info in "SQLServer config" section (documented below). A database of the SQLServer cluster. The structure is documented below. Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE) A host of the SQLServer cluster. The structure is documented below. ID of the network, to which the SQLServer cluster uses. Resources allocated to hosts of the SQLServer cluster. The structure is documented below. A user of the SQLServer cluster. The structure is documented below. Version of the SQLServer cluster. (2016sp2std, 2016sp2ent) Time to start the daily backup, in the UTC. The structure is documented below. Inhibits deletion of the cluster.  Can be either `true` or `false`. Description of the SQLServer cluster. The ID of the folder that the resource belongs to. If it         is not provided, the default provider folder is used. A set of key/value label pairs to assign to the SQLServer cluster. The name of the database. A set of ids of security groups assigned to hosts of the cluster. SQLServer cluster config. Detail info in "SQLServer config" section (documented below). Input properties used for looking up and filtering MdbSqlServerCluster resources.         :param pulumi.Input['MdbSqlServerClusterBackupWindowStartArgs'] backup_window_start: Time to start the daily backup, in the UTC. The structure is documented below.         :param pulumi.Input[str] created_at: Creation timestamp of the cluster.         :param pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterDatabaseArgs']]] databases: A database of the SQLServer cluster. The structure is documented below.         :param pulumi.Input[bool] deletion_protection: Inhibits deletion of the cluster.  Can be either `true` or `false`.         :param pulumi.Input[str] description: Description of the SQLServer cluster.         :param pulumi.Input[str] environment: Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)         :param pulumi.Input[str] folder_id: The ID of the folder that the resource belongs to. If it                is not provided, the default provider folder is used.         :param pulumi.Input[str] health: Aggregated health of the cluster.         :param pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterHostArgs']]] hosts: A host of the SQLServer cluster. The structure is documented below.         :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A set of key/value label pairs to assign to the SQLServer cluster.         :param pulumi.Input[str] name: The name of the database.         :param pulumi.Input[str] network_id: ID of the network, to which the SQLServer cluster uses.         :param pulumi.Input['MdbSqlServerClusterResourcesArgs'] resources: Resources allocated to hosts of the SQLServer cluster. The structure is documented below.         :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A set of ids of security groups assigned to hosts of the cluster.         :param pulumi.Input[Mapping[str, pulumi.Input[str]]] sqlserver_config: SQLServer cluster config. Detail info in "SQLServer config" section (documented below).         :param pulumi.Input[str] status: Status of the cluster.         :param pulumi.Input[Sequence[pulumi.Input['MdbSqlServerClusterUserArgs']]] users: A user of the SQLServer cluster. The structure is documented below.         :param pulumi.Input[str] version: Version of the SQLServer cluster. (2016sp2std, 2016sp2ent) Time to start the daily backup, in the UTC. The structure is documented below. Creation timestamp of the cluster. A database of the SQLServer cluster. The structure is documented below. Inhibits deletion of the cluster.  Can be either `true` or `false`. Description of the SQLServer cluster. Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE) The ID of the folder that the resource belongs to. If it         is not provided, the default provider folder is used. Aggregated health of the cluster. A host of the SQLServer cluster. The structure is documented below. A set of key/value label pairs to assign to the SQLServer cluster. The name of the database. ID of the network, to which the SQLServer cluster uses. Resources allocated to hosts of the SQLServer cluster. The structure is documented below. A set of ids of security groups assigned to hosts of the cluster. SQLServer cluster config. Detail info in "SQLServer config" section (documented below). Status of the cluster. A user of the SQLServer cluster. The structure is documented below. Version of the SQLServer cluster. (2016sp2std, 2016sp2ent) Manages a SQLServer cluster within the Yandex.Cloud. For more information, see         [the official documentation](https://cloud.yandex.com/docs/managed-sqlserver/).          Please read [Pricing for Managed Service for SQL Server](https://cloud.yandex.com/docs/managed-sqlserver/pricing#prices) before using SQLServer cluster.          ## Example Usage          Example of creating a Single Node SQLServer.          ```python         import pulumi         import pulumi_yandex as yandex          foo_vpc_network = yandex.VpcNetwork("fooVpcNetwork")         foo_vpc_subnet = yandex.VpcSubnet("fooVpcSubnet",             zone="ru-central1-a",             network_id=foo_vpc_network.id,             v4_cidr_blocks=["10.5.0.0/24"])         test_sg_x = yandex.VpcSecurityGroup("test-sg-x",             network_id=foo_vpc_network.id,             ingresses=[yandex.VpcSecurityGroupIngressArgs(                 protocol="ANY",                 description="Allow incoming traffic from members of the same security group",                 from_port=0,                 to_port=65535,                 v4_cidr_blocks=["0.0.0.0/0"],             )],             egresses=[yandex.VpcSecurityGroupEgressArgs(                 protocol="ANY",                 description="Allow outgoing traffic to members of the same security group",                 from_port=0,                 to_port=65535,                 v4_cidr_blocks=["0.0.0.0/0"],             )])         foo_mdb_sql_server_cluster = yandex.MdbSqlServerCluster("fooMdbSqlServerCluster",             environment="PRESTABLE",             network_id=foo_vpc_network.id,             version="2016sp2std",             resources=yandex.MdbSqlServerClusterResourcesArgs(                 resource_preset_id="s2.small",                 disk_type_id="network-ssd",                 disk_size=20,             ),             labels={                 "test_key": "test_value",             },             backup_window_start=yandex.MdbSqlServerClusterBackupWindowStartArgs(                 hours=20,                 minutes=30,             ),             sqlserver_config={                 "fill_factor_percent": "49",                 "optimize_for_ad_hoc_workloads": "true",             },             databases=[                 yandex.MdbSqlServerClusterDatabaseArgs(                     name="db_name_a",                 ),                 yandex.MdbSqlServerClusterDatabaseArgs(                     name="db_name",                 ),                 yandex.MdbSqlServerClusterDatabaseArgs(                     name="db_name_b",                 ),             ],             users=[                 yandex.MdbSqlServerClusterUserArgs(                     name="bob",                     password="<PASSWORD>",                 ),                 yandex.MdbSqlServerClusterUserArgs(                     name="alice",                     password="<PASSWORD>",                     permissions=[yandex.MdbSqlServerClusterUserPermissionArgs(                         database_name="db_name",                         roles=["DDLADMIN"],                     )],                 ),                 yandex.MdbSqlServerClusterUserArgs(                     name="chuck",                     password="<PASSWORD>",                     permissions=[                         yandex.MdbSqlServerClusterUserPermissionArgs(                             database_name="db_name_a",                             roles=["OWNER"],                         ),                         yandex.MdbSqlServerClusterUserPermissionArgs(                             database_name="db_name",                             roles=[                                 "OWNER",                                 "DDLADMIN",                             ],                         ),                         yandex.MdbSqlServerClusterUserPermissionArgs(                             database_name="db_name_b",                             roles=[                                 "OWNER",                                 "DDLADMIN",                             ],                         ),                     ],                 ),             ],             hosts=[yandex.MdbSqlServerClusterHostArgs(                 zone="ru-central1-a",                 subnet_id=foo_vpc_subnet.id,             )],             security_group_ids=[test_sg_x.id])         ```         ## SQLServer config          If not specified `sqlserver_config` then does not make any changes.          * max_degree_of_parallelism - Limits the number of processors to use in parallel plan execution per task. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-max-degree-of-parallelism-server-configuration-option?view=sql-server-2016).          * cost_threshold_for_parallelism - Specifies the threshold at which SQL Server creates and runs parallel plans for queries. SQL Server creates and runs a parallel plan for a query only when the estimated cost to run a serial plan for the same query is higher than the value of the option. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-cost-threshold-for-parallelism-server-configuration-option?view=sql-server-2016).          * audit_level - Describes how to configure login auditing to monitor SQL Server Database Engine login activity. Possible values:           - 0 — do not log login attempts,˚√           - 1 — log only failed login attempts,           - 2 — log only successful login attempts (not recommended),           - 3 — log all login attempts (not recommended).              See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/ssms/configure-login-auditing-sql-server-management-studio?view=sql-server-2016).          * fill_factor_percent - Manages the fill factor server configuration option. When an index is created or rebuilt the fill factor determines the percentage of space on each index leaf-level page to be filled with data, reserving the rest as free space for future growth. Values 0 and 100 mean full page usage (no space reserved). See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-fill-factor-server-configuration-option?view=sql-server-2016).         * optimize_for_ad_hoc_workloads - Determines whether plans should be cached only after second execution. Allows to avoid SQL cache bloat because of single-use plans. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/optimize-for-ad-hoc-workloads-server-configuration-option?view=sql-server-2016).          ## Import          A cluster can be imported using the `id` of the resource, e.g.          ```sh          $ pulumi import yandex:index/mdbSqlServerCluster:MdbSqlServerCluster foo cluster_id         ```          :param str resource_name: The name of the resource.         :param pulumi.ResourceOptions opts: Options for the resource.         :param pulumi.Input[pulumi.InputType['MdbSqlServerClusterBackupWindowStartArgs']] backup_window_start: Time to start the daily backup, in the UTC. The structure is documented below.         :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterDatabaseArgs']]]] databases: A database of the SQLServer cluster. The structure is documented below.         :param pulumi.Input[bool] deletion_protection: Inhibits deletion of the cluster.  Can be either `true` or `false`.         :param pulumi.Input[str] description: Description of the SQLServer cluster.         :param pulumi.Input[str] environment: Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)         :param pulumi.Input[str] folder_id: The ID of the folder that the resource belongs to. If it                is not provided, the default provider folder is used.         :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterHostArgs']]]] hosts: A host of the SQLServer cluster. The structure is documented below.         :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A set of key/value label pairs to assign to the SQLServer cluster.         :param pulumi.Input[str] name: The name of the database.         :param pulumi.Input[str] network_id: ID of the network, to which the SQLServer cluster uses.         :param pulumi.Input[pulumi.InputType['MdbSqlServerClusterResourcesArgs']] resources: Resources allocated to hosts of the SQLServer cluster. The structure is documented below.         :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A set of ids of security groups assigned to hosts of the cluster.         :param pulumi.Input[Mapping[str, pulumi.Input[str]]] sqlserver_config: SQLServer cluster config. Detail info in "SQLServer config" section (documented below).         :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterUserArgs']]]] users: A user of the SQLServer cluster. The structure is documented below.         :param pulumi.Input[str] version: Version of the SQLServer cluster. (2016sp2std, 2016sp2ent) Manages a SQLServer cluster within the Yandex.Cloud. For more information, see         [the official documentation](https://cloud.yandex.com/docs/managed-sqlserver/).          Please read [Pricing for Managed Service for SQL Server](https://cloud.yandex.com/docs/managed-sqlserver/pricing#prices) before using SQLServer cluster.          ## Example Usage          Example of creating a Single Node SQLServer.          ```python         import pulumi         import pulumi_yandex as yandex          foo_vpc_network = yandex.VpcNetwork("fooVpcNetwork")         foo_vpc_subnet = yandex.VpcSubnet("fooVpcSubnet",             zone="ru-central1-a",             network_id=foo_vpc_network.id,             v4_cidr_blocks=["10.5.0.0/24"])         test_sg_x = yandex.VpcSecurityGroup("test-sg-x",             network_id=foo_vpc_network.id,             ingresses=[yandex.VpcSecurityGroupIngressArgs(                 protocol="ANY",                 description="Allow incoming traffic from members of the same security group",                 from_port=0,                 to_port=65535,                 v4_cidr_blocks=["0.0.0.0/0"],             )],             egresses=[yandex.VpcSecurityGroupEgressArgs(                 protocol="ANY",                 description="Allow outgoing traffic to members of the same security group",                 from_port=0,                 to_port=65535,                 v4_cidr_blocks=["0.0.0.0/0"],             )])         foo_mdb_sql_server_cluster = yandex.MdbSqlServerCluster("fooMdbSqlServerCluster",             environment="PRESTABLE",             network_id=foo_vpc_network.id,             version="2016sp2std",             resources=yandex.MdbSqlServerClusterResourcesArgs(                 resource_preset_id="s2.small",                 disk_type_id="network-ssd",                 disk_size=20,             ),             labels={                 "test_key": "test_value",             },             backup_window_start=yandex.MdbSqlServerClusterBackupWindowStartArgs(                 hours=20,                 minutes=30,             ),             sqlserver_config={                 "fill_factor_percent": "49",                 "optimize_for_ad_hoc_workloads": "true",             },             databases=[                 yandex.MdbSqlServerClusterDatabaseArgs(                     name="db_name_a",                 ),                 yandex.MdbSqlServerClusterDatabaseArgs(                     name="db_name",                 ),                 yandex.MdbSqlServerClusterDatabaseArgs(                     name="db_name_b",                 ),             ],             users=[                 yandex.MdbSqlServerClusterUserArgs(                     name="bob",                     password="<PASSWORD>",                 ),                 yandex.MdbSqlServerClusterUserArgs(                     name="alice",                     password="<PASSWORD>",                     permissions=[yandex.MdbSqlServerClusterUserPermissionArgs(                         database_name="db_name",                         roles=["DDLADMIN"],                     )],                 ),                 yandex.MdbSqlServerClusterUserArgs(                     name="chuck",                     password="<PASSWORD>",                     permissions=[                         yandex.MdbSqlServerClusterUserPermissionArgs(                             database_name="db_name_a",                             roles=["OWNER"],                         ),                         yandex.MdbSqlServerClusterUserPermissionArgs(                             database_name="db_name",                             roles=[                                 "OWNER",                                 "DDLADMIN",                             ],                         ),                         yandex.MdbSqlServerClusterUserPermissionArgs(                             database_name="db_name_b",                             roles=[                                 "OWNER",                                 "DDLADMIN",                             ],                         ),                     ],                 ),             ],             hosts=[yandex.MdbSqlServerClusterHostArgs(                 zone="ru-central1-a",                 subnet_id=foo_vpc_subnet.id,             )],             security_group_ids=[test_sg_x.id])         ```         ## SQLServer config          If not specified `sqlserver_config` then does not make any changes.          * max_degree_of_parallelism - Limits the number of processors to use in parallel plan execution per task. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-max-degree-of-parallelism-server-configuration-option?view=sql-server-2016).          * cost_threshold_for_parallelism - Specifies the threshold at which SQL Server creates and runs parallel plans for queries. SQL Server creates and runs a parallel plan for a query only when the estimated cost to run a serial plan for the same query is higher than the value of the option. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-cost-threshold-for-parallelism-server-configuration-option?view=sql-server-2016).          * audit_level - Describes how to configure login auditing to monitor SQL Server Database Engine login activity. Possible values:           - 0 — do not log login attempts,˚√           - 1 — log only failed login attempts,           - 2 — log only successful login attempts (not recommended),           - 3 — log all login attempts (not recommended).              See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/ssms/configure-login-auditing-sql-server-management-studio?view=sql-server-2016).          * fill_factor_percent - Manages the fill factor server configuration option. When an index is created or rebuilt the fill factor determines the percentage of space on each index leaf-level page to be filled with data, reserving the rest as free space for future growth. Values 0 and 100 mean full page usage (no space reserved). See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-fill-factor-server-configuration-option?view=sql-server-2016).         * optimize_for_ad_hoc_workloads - Determines whether plans should be cached only after second execution. Allows to avoid SQL cache bloat because of single-use plans. See in-depth description in [SQL Server documentation](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/optimize-for-ad-hoc-workloads-server-configuration-option?view=sql-server-2016).          ## Import          A cluster can be imported using the `id` of the resource, e.g.          ```sh          $ pulumi import yandex:index/mdbSqlServerCluster:MdbSqlServerCluster foo cluster_id         ```          :param str resource_name: The name of the resource.         :param MdbSqlServerClusterArgs args: The arguments to use to populate this resource's properties.         :param pulumi.ResourceOptions opts: Options for the resource. Get an existing MdbSqlServerCluster 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[pulumi.InputType['MdbSqlServerClusterBackupWindowStartArgs']] backup_window_start: Time to start the daily backup, in the UTC. The structure is documented below.         :param pulumi.Input[str] created_at: Creation timestamp of the cluster.         :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterDatabaseArgs']]]] databases: A database of the SQLServer cluster. The structure is documented below.         :param pulumi.Input[bool] deletion_protection: Inhibits deletion of the cluster.  Can be either `true` or `false`.         :param pulumi.Input[str] description: Description of the SQLServer cluster.         :param pulumi.Input[str] environment: Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE)         :param pulumi.Input[str] folder_id: The ID of the folder that the resource belongs to. If it                is not provided, the default provider folder is used.         :param pulumi.Input[str] health: Aggregated health of the cluster.         :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterHostArgs']]]] hosts: A host of the SQLServer cluster. The structure is documented below.         :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A set of key/value label pairs to assign to the SQLServer cluster.         :param pulumi.Input[str] name: The name of the database.         :param pulumi.Input[str] network_id: ID of the network, to which the SQLServer cluster uses.         :param pulumi.Input[pulumi.InputType['MdbSqlServerClusterResourcesArgs']] resources: Resources allocated to hosts of the SQLServer cluster. The structure is documented below.         :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: A set of ids of security groups assigned to hosts of the cluster.         :param pulumi.Input[Mapping[str, pulumi.Input[str]]] sqlserver_config: SQLServer cluster config. Detail info in "SQLServer config" section (documented below).         :param pulumi.Input[str] status: Status of the cluster.         :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MdbSqlServerClusterUserArgs']]]] users: A user of the SQLServer cluster. The structure is documented below.         :param pulumi.Input[str] version: Version of the SQLServer cluster. (2016sp2std, 2016sp2ent) Time to start the daily backup, in the UTC. The structure is documented below. Creation timestamp of the cluster. A database of the SQLServer cluster. The structure is documented below. Inhibits deletion of the cluster.  Can be either `true` or `false`. Description of the SQLServer cluster. Deployment environment of the SQLServer cluster. (PRODUCTION, PRESTABLE) The ID of the folder that the resource belongs to. If it         is not provided, the default provider folder is used. Aggregated health of the cluster. A host of the SQLServer cluster. The structure is documented below. A set of key/value label pairs to assign to the SQLServer cluster. The name of the database. ID of the network, to which the SQLServer cluster uses. Resources allocated to hosts of the SQLServer cluster. The structure is documented below. A set of ids of security groups assigned to hosts of the cluster. SQLServer cluster config. Detail info in "SQLServer config" section (documented below). Status of the cluster. A user of the SQLServer cluster. The structure is documented below. Version of the SQLServer cluster. (2016sp2std, 2016sp2ent)