# coding=utf-8
# *** WARNING: this file was generated by the Pulumi SDK Generator. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

from enum import Enum

__all__ = [
    'AccountProvisioningMode',
    'ArcSqlManagedInstanceLicenseType',
    'ArcSqlServerLicenseType',
    'ConnectionStatus',
    'DatabaseState',
    'DefenderStatus',
    'EditionType',
    'ExtendedLocationTypes',
    'FailoverGroupPartnerSyncMode',
    'HostType',
    'Infrastructure',
    'InstanceFailoverGroupRole',
    'PostgresInstanceSkuTier',
    'RecoveryMode',
    'SqlManagedInstanceSkuName',
    'SqlManagedInstanceSkuTier',
    'SqlVersion',
    'State',
]


class AccountProvisioningMode(str, Enum):
    """
    The service account provisioning mode for this Active Directory connector.
    """
    AUTOMATIC = "automatic"
    MANUAL = "manual"


class ArcSqlManagedInstanceLicenseType(str, Enum):
    """
    The license type to apply for this managed instance.
    """
    BASE_PRICE = "BasePrice"
    LICENSE_INCLUDED = "LicenseIncluded"
    DISASTER_RECOVERY = "DisasterRecovery"


class ArcSqlServerLicenseType(str, Enum):
    """
    SQL Server license type.
    """
    UNDEFINED = "Undefined"
    FREE = "Free"
    HADR = "HADR"
    SERVER_CAL = "ServerCAL"
    LICENSE_ONLY = "LicenseOnly"
    PAYG = "PAYG"
    PAID = "Paid"


class ConnectionStatus(str, Enum):
    """
    The cloud connectivity status.
    """
    CONNECTED = "Connected"
    DISCONNECTED = "Disconnected"
    REGISTERED = "Registered"
    UNKNOWN = "Unknown"


class DatabaseState(str, Enum):
    """
    State of the database.
    """
    ONLINE = "Online"
    RESTORING = "Restoring"
    RECOVERING = "Recovering"
    RECOVERY_PENDING = "RecoveryPending"
    SUSPECT = "Suspect"
    EMERGENCY = "Emergency"
    OFFLINE = "Offline"
    COPYING = "Copying"
    OFFLINE_SECONDARY = "OfflineSecondary"


class DefenderStatus(str, Enum):
    """
    Status of Azure Defender.
    """
    PROTECTED = "Protected"
    UNPROTECTED = "Unprotected"
    UNKNOWN = "Unknown"


class EditionType(str, Enum):
    """
    SQL Server edition.
    """
    EVALUATION = "Evaluation"
    ENTERPRISE = "Enterprise"
    STANDARD = "Standard"
    WEB = "Web"
    DEVELOPER = "Developer"
    EXPRESS = "Express"
    BUSINESS_INTELLIGENCE = "Business Intelligence"


class ExtendedLocationTypes(str, Enum):
    """
    The type of the extended location.
    """
    CUSTOM_LOCATION = "CustomLocation"


class FailoverGroupPartnerSyncMode(str, Enum):
    """
    The partner sync mode of the SQL managed instance.
    """
    ASYNC_ = "async"
    SYNC = "sync"


class HostType(str, Enum):
    """
    Type of host for Azure Arc SQL Server
    """
    AZURE_VIRTUAL_MACHINE = "Azure Virtual Machine"
    AZURE_VM_WARE_VIRTUAL_MACHINE = "Azure VMWare Virtual Machine"
    AZURE_KUBERNETES_SERVICE = "Azure Kubernetes Service"
    AW_S_VM_WARE_VIRTUAL_MACHINE = "AWS VMWare Virtual Machine"
    AW_S_KUBERNETES_SERVICE = "AWS Kubernetes Service"
    GC_P_VM_WARE_VIRTUAL_MACHINE = "GCP VMWare Virtual Machine"
    GC_P_KUBERNETES_SERVICE = "GCP Kubernetes Service"
    CONTAINER = "Container"
    VIRTUAL_MACHINE = "Virtual Machine"
    PHYSICAL_SERVER = "Physical Server"
    AW_S_VIRTUAL_MACHINE = "AWS Virtual Machine"
    GC_P_VIRTUAL_MACHINE = "GCP Virtual Machine"
    OTHER = "Other"


class Infrastructure(str, Enum):
    """
    The infrastructure the data controller is running on.
    """
    AZURE = "azure"
    GCP = "gcp"
    AWS = "aws"
    ALIBABA = "alibaba"
    ONPREMISES = "onpremises"
    OTHER = "other"


class InstanceFailoverGroupRole(str, Enum):
    """
    The role of the managed instance in the failover group.
    """
    PRIMARY = "primary"
    SECONDARY = "secondary"
    FORCE_PRIMARY_ALLOW_DATA_LOSS = "force-primary-allow-data-loss"
    FORCE_SECONDARY = "force-secondary"


class PostgresInstanceSkuTier(str, Enum):
    """
    This field is required to be implemented by the Resource Provider if the service has more than one tier.
    """
    HYPERSCALE = "Hyperscale"


class RecoveryMode(str, Enum):
    """
    Status of the database.
    """
    FULL = "Full"
    BULK_LOGGED = "Bulk-logged"
    SIMPLE = "Simple"


class SqlManagedInstanceSkuName(str, Enum):
    """
    The name of the SKU.
    """
    V_CORE = "vCore"


class SqlManagedInstanceSkuTier(str, Enum):
    """
    The pricing tier for the instance.
    """
    GENERAL_PURPOSE = "GeneralPurpose"
    BUSINESS_CRITICAL = "BusinessCritical"


class SqlVersion(str, Enum):
    """
    SQL Server version.
    """
    SQ_L_SERVER_2012 = "SQL Server 2012"
    SQ_L_SERVER_2014 = "SQL Server 2014"
    SQ_L_SERVER_2016 = "SQL Server 2016"
    SQ_L_SERVER_2017 = "SQL Server 2017"
    SQ_L_SERVER_2019 = "SQL Server 2019"
    SQ_L_SERVER_2022 = "SQL Server 2022"
    UNKNOWN = "Unknown"


class State(str, Enum):
    """
    The state of the failover group custom resource.
    """
    WAITING = "Waiting"
    SUCCEEDED = "Succeeded"
    FAILED = "Failed"
