# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) Python Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from enum import Enum
from azure.core import CaseInsensitiveEnumMeta


class AdditionalOsPatch(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Additional VM Patching solution enabled on the Virtual Machine."""

    WU = "WU"
    """WU."""
    WUMU = "WUMU"
    """WUMU."""
    WSUS = "WSUS"
    """WSUS."""


class AdditionalVmPatch(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Additional Patch to be enable or enabled on the SQL Virtual Machine."""

    NOT_SET = "NotSet"
    """NOT_SET."""
    MICROSOFT_UPDATE = "MicrosoftUpdate"
    """MICROSOFT_UPDATE."""


class AssessmentDayOfWeek(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Day of the week to run assessment."""

    MONDAY = "Monday"
    """MONDAY."""
    TUESDAY = "Tuesday"
    """TUESDAY."""
    WEDNESDAY = "Wednesday"
    """WEDNESDAY."""
    THURSDAY = "Thursday"
    """THURSDAY."""
    FRIDAY = "Friday"
    """FRIDAY."""
    SATURDAY = "Saturday"
    """SATURDAY."""
    SUNDAY = "Sunday"
    """SUNDAY."""


class AutoBackupDaysOfWeek(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of AutoBackupDaysOfWeek."""

    MONDAY = "Monday"
    """MONDAY."""
    TUESDAY = "Tuesday"
    """TUESDAY."""
    WEDNESDAY = "Wednesday"
    """WEDNESDAY."""
    THURSDAY = "Thursday"
    """THURSDAY."""
    FRIDAY = "Friday"
    """FRIDAY."""
    SATURDAY = "Saturday"
    """SATURDAY."""
    SUNDAY = "Sunday"
    """SUNDAY."""


class BackupScheduleType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Backup schedule type."""

    MANUAL = "Manual"
    """MANUAL."""
    AUTOMATED = "Automated"
    """AUTOMATED."""


class ClusterConfiguration(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Cluster type."""

    DOMAINFUL = "Domainful"
    """DOMAINFUL."""


class ClusterManagerType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of cluster manager: Windows Server Failover Cluster (WSFC), implied by the scale type of
    the group and the OS type.
    """

    WSFC = "WSFC"
    """WSFC."""


class ClusterSubnetType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Cluster subnet type."""

    SINGLE_SUBNET = "SingleSubnet"
    """SINGLE_SUBNET."""
    MULTI_SUBNET = "MultiSubnet"
    """MULTI_SUBNET."""


class Commit(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Replica commit mode in availability group."""

    SYNCHRONOUS_COMMIT = "Synchronous_Commit"
    """SYNCHRONOUS_COMMIT."""
    ASYNCHRONOUS_COMMIT = "Asynchronous_Commit"
    """ASYNCHRONOUS_COMMIT."""


class ConnectivityType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """SQL Server connectivity option."""

    LOCAL = "LOCAL"
    """LOCAL."""
    PRIVATE = "PRIVATE"
    """PRIVATE."""
    PUBLIC = "PUBLIC"
    """PUBLIC."""


class CreatedByType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The kind of entity that created the resource."""

    USER = "User"
    """The entity was created by a user."""
    APPLICATION = "Application"
    """The entity was created by an application."""
    MANAGED_IDENTITY = "ManagedIdentity"
    """The entity was created by a managed identity."""
    KEY = "Key"
    """The entity was created by a key."""


class DayOfWeek(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Day of week to apply the patch on."""

    EVERYDAY = "Everyday"
    """EVERYDAY."""
    MONDAY = "Monday"
    """MONDAY."""
    TUESDAY = "Tuesday"
    """TUESDAY."""
    WEDNESDAY = "Wednesday"
    """WEDNESDAY."""
    THURSDAY = "Thursday"
    """THURSDAY."""
    FRIDAY = "Friday"
    """FRIDAY."""
    SATURDAY = "Saturday"
    """SATURDAY."""
    SUNDAY = "Sunday"
    """SUNDAY."""


class DiskConfigurationType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Disk configuration to apply to SQL Server."""

    NEW = "NEW"
    """NEW."""
    EXTEND = "EXTEND"
    """EXTEND."""
    ADD = "ADD"
    """ADD."""


class Failover(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Replica failover mode in availability group."""

    AUTOMATIC = "Automatic"
    """AUTOMATIC."""
    MANUAL = "Manual"
    """MANUAL."""


class FullBackupFrequencyType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Frequency of full backups. In both cases, full backups begin during the next scheduled time
    window.
    """

    DAILY = "Daily"
    """DAILY."""
    WEEKLY = "Weekly"
    """WEEKLY."""


class IdentityType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The identity type. Set this to 'SystemAssigned' in order to automatically create and assign an
    Azure Active Directory principal for the resource.
    """

    NONE = "None"
    """NONE."""
    SYSTEM_ASSIGNED = "SystemAssigned"
    """SYSTEM_ASSIGNED."""
    USER_ASSIGNED = "UserAssigned"
    """USER_ASSIGNED."""
    SYSTEM_ASSIGNED_USER_ASSIGNED = "SystemAssigned,UserAssigned"
    """SYSTEM_ASSIGNED_USER_ASSIGNED."""


class LeastPrivilegeMode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """SQL IaaS Agent least privilege mode."""

    ENABLED = "Enabled"
    """ENABLED."""
    NOT_SET = "NotSet"
    """NOT_SET."""


class OperationOrigin(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The intended executor of the operation."""

    USER = "user"
    """USER."""
    SYSTEM = "system"
    """SYSTEM."""


class OsType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Operating System of the current SQL Virtual Machine."""

    WINDOWS = "Windows"
    """WINDOWS."""
    LINUX = "Linux"
    """LINUX."""


class ReadableSecondary(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Replica readable secondary mode in availability group."""

    NO = "No"
    """NO."""
    ALL = "All"
    """ALL."""
    READ_ONLY = "Read_Only"
    """READ_ONLY."""


class Role(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Replica Role in availability group."""

    PRIMARY = "Primary"
    """PRIMARY."""
    SECONDARY = "Secondary"
    """SECONDARY."""


class ScaleType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Scale type."""

    HA = "HA"
    """HA."""


class SqlImageSku(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """SQL Server edition type."""

    DEVELOPER = "Developer"
    """DEVELOPER."""
    EXPRESS = "Express"
    """EXPRESS."""
    STANDARD = "Standard"
    """STANDARD."""
    ENTERPRISE = "Enterprise"
    """ENTERPRISE."""
    WEB = "Web"
    """WEB."""


class SqlManagementMode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """SQL Server Management type. NOTE: This parameter is not used anymore. API will automatically
    detect the Sql Management, refrain from using it.
    """

    FULL = "Full"
    """FULL."""
    LIGHT_WEIGHT = "LightWeight"
    """LIGHT_WEIGHT."""
    NO_AGENT = "NoAgent"
    """NO_AGENT."""


class SqlServerLicenseType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """SQL Server license type."""

    PAYG = "PAYG"
    """PAYG."""
    AHUB = "AHUB"
    """AHUB."""
    DR = "DR"
    """DR."""


class SqlVmGroupImageSku(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """SQL image sku."""

    DEVELOPER = "Developer"
    """DEVELOPER."""
    ENTERPRISE = "Enterprise"
    """ENTERPRISE."""


class SqlWorkloadType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """SQL Server workload type."""

    GENERAL = "GENERAL"
    """GENERAL."""
    OLTP = "OLTP"
    """OLTP."""
    DW = "DW"
    """DW."""


class StorageWorkloadType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Storage workload type."""

    GENERAL = "GENERAL"
    """GENERAL."""
    OLTP = "OLTP"
    """OLTP."""
    DW = "DW"
    """DW."""


class TroubleshootingScenario(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """SQL VM troubleshooting scenario."""

    UNHEALTHY_REPLICA = "UnhealthyReplica"
    """UNHEALTHY_REPLICA."""


class VmIdentityType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Identity type of the virtual machine. Specify None to opt-out of Managed Identities."""

    NONE = "None"
    """NONE."""
    SYSTEM_ASSIGNED = "SystemAssigned"
    """SYSTEM_ASSIGNED."""
    USER_ASSIGNED = "UserAssigned"
    """USER_ASSIGNED."""
