# 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 AdministratorName(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of AdministratorName."""

    ACTIVE_DIRECTORY = "ActiveDirectory"
    """ACTIVE_DIRECTORY."""


class AdministratorType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of the sever administrator."""

    ACTIVE_DIRECTORY = "ActiveDirectory"
    """ACTIVE_DIRECTORY."""


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

    DEFAULT = "Default"
    """DEFAULT."""


class AdvancedThreatProtectionProvisioningState(  # pylint: disable=name-too-long
    str, Enum, metaclass=CaseInsensitiveEnumMeta
):
    """The current provisioning state."""

    SUCCEEDED = "Succeeded"
    """SUCCEEDED."""
    UPDATING = "Updating"
    """UPDATING."""
    CANCELED = "Canceled"
    """CANCELED."""
    FAILED = "Failed"
    """FAILED."""


class AdvancedThreatProtectionState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Specifies the state of the Advanced Threat Protection, whether it is enabled or disabled on the
    server.
    """

    ENABLED = "Enabled"
    """ENABLED."""
    DISABLED = "Disabled"
    """DISABLED."""


class BackupFormat(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Backup Format for the current backup. (CollatedFormat is INTERNAL – DO NOT USE)."""

    COLLATED_FORMAT = "CollatedFormat"
    """COLLATED_FORMAT."""
    RAW = "Raw"
    """RAW."""


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

    FULL = "FULL"
    """FULL."""


class BatchOfMaintenance(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The batch of maintenance when enabled the custom managed maintenance window of a server."""

    DEFAULT = "Default"
    """DEFAULT."""
    BATCH1 = "Batch1"
    """BATCH1."""
    BATCH2 = "Batch2"
    """BATCH2."""


class ConfigurationSource(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Source of the configuration."""

    SYSTEM_DEFAULT = "system-default"
    """SYSTEM_DEFAULT."""
    USER_OVERRIDE = "user-override"
    """USER_OVERRIDE."""


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 CreateMode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The mode to create a new MySQL server."""

    DEFAULT = "Default"
    """DEFAULT."""
    POINT_IN_TIME_RESTORE = "PointInTimeRestore"
    """POINT_IN_TIME_RESTORE."""
    REPLICA = "Replica"
    """REPLICA."""
    GEO_RESTORE = "GeoRestore"
    """GEO_RESTORE."""
    RENAME = "Rename"
    """Rename an existing server."""


class DataEncryptionType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The key type, AzureKeyVault for enable cmk, SystemManaged for disable cmk."""

    AZURE_KEY_VAULT = "AzureKeyVault"
    """AZURE_KEY_VAULT."""
    SYSTEM_MANAGED = "SystemManaged"
    """SYSTEM_MANAGED."""


class EnableStatusEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Enum to indicate whether value is 'Enabled' or 'Disabled'."""

    ENABLED = "Enabled"
    """ENABLED."""
    DISABLED = "Disabled"
    """DISABLED."""


class FabricMirroringProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Provisioning state of Fabric Mirroring. Extends the standard
    Azure.ResourceManager.ResourceProvisioningState with the non-terminal ``Updating`` state used
    by this resource.
    """

    SUCCEEDED = "Succeeded"
    """Resource has been created."""
    FAILED = "Failed"
    """Resource creation failed."""
    CANCELED = "Canceled"
    """Resource creation was canceled."""
    UPDATING = "Updating"
    """Provisioning is in progress."""


class FabricMirroringSettingsName(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The name of the Fabric Mirroring settings resource (singleton: only "default" is allowed)."""

    DEFAULT = "Default"
    """The default Fabric Mirroring settings instance."""


class FabricMirroringState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """State of Fabric Mirroring. Extensible string-based union per Azure guidelines."""

    ENABLED = "Enabled"
    """Fabric Mirroring is enabled."""
    DISABLED = "Disabled"
    """Fabric Mirroring is disabled."""


class HighAvailabilityMode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """High availability mode for a server."""

    DISABLED = "Disabled"
    """DISABLED."""
    ZONE_REDUNDANT = "ZoneRedundant"
    """ZONE_REDUNDANT."""
    SAME_ZONE = "SameZone"
    """SAME_ZONE."""


class HighAvailabilityState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The state of server high availability."""

    NOT_ENABLED = "NotEnabled"
    """NOT_ENABLED."""
    CREATING_STANDBY = "CreatingStandby"
    """CREATING_STANDBY."""
    HEALTHY = "Healthy"
    """HEALTHY."""
    FAILING_OVER = "FailingOver"
    """FAILING_OVER."""
    REMOVING_STANDBY = "RemovingStandby"
    """REMOVING_STANDBY."""


class ImportSourceStorageType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Storage type of import source."""

    AZURE_BLOB = "AzureBlob"
    """AZURE_BLOB."""


class IsConfigPendingRestart(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """If is the configuration pending restart or not."""

    TRUE = "True"
    """TRUE."""
    FALSE = "False"
    """FALSE."""


class IsDynamicConfig(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """If is the configuration dynamic."""

    TRUE = "True"
    """TRUE."""
    FALSE = "False"
    """FALSE."""


class IsReadOnly(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """If is the configuration read only."""

    TRUE = "True"
    """TRUE."""
    FALSE = "False"
    """FALSE."""


class MaintenanceProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The current provisioning state."""

    SUCCEEDED = "Succeeded"
    """SUCCEEDED."""
    CREATING = "Creating"
    """CREATING."""
    DELETING = "Deleting"
    """DELETING."""
    FAILED = "Failed"
    """FAILED."""


class MaintenanceState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The current status of this maintenance."""

    SCHEDULED = "Scheduled"
    """SCHEDULED."""
    RE_SCHEDULED = "ReScheduled"
    """RE_SCHEDULED."""
    IN_PREPARATION = "InPreparation"
    """IN_PREPARATION."""
    PROCESSING = "Processing"
    """PROCESSING."""
    COMPLETED = "Completed"
    """COMPLETED."""
    CANCELED = "Canceled"
    """CANCELED."""


class MaintenanceType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The type of this maintenance."""

    ROUTINE_MAINTENANCE = "RoutineMaintenance"
    """ROUTINE_MAINTENANCE."""
    MINOR_VERSION_UPGRADE = "MinorVersionUpgrade"
    """MINOR_VERSION_UPGRADE."""
    SECURITY_PATCHES = "SecurityPatches"
    """SECURITY_PATCHES."""
    HOT_FIXES = "HotFixes"
    """HOT_FIXES."""


class ManagedServiceIdentityType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of managed service identity."""

    USER_ASSIGNED = "UserAssigned"
    """USER_ASSIGNED."""


class ObjectType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Identifies the type of source operation."""

    BACKUP_AND_EXPORT_RESPONSE = "BackupAndExportResponse"
    """BACKUP_AND_EXPORT_RESPONSE."""
    IMPORT_FROM_STORAGE_RESPONSE = "ImportFromStorageResponse"
    """IMPORT_FROM_STORAGE_RESPONSE."""


class OperationStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The operation status."""

    PENDING = "Pending"
    """The operation has been accepted but hasn't started."""
    IN_PROGRESS = "InProgress"
    """The operation is running."""
    SUCCEEDED = "Succeeded"
    """The operation Succeeded."""
    FAILED = "Failed"
    """The operation Failed."""
    CANCEL_IN_PROGRESS = "CancelInProgress"
    """The cancellation in progress."""
    CANCELED = "Canceled"
    """The operation has been Canceled."""


class Origin(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit
    logs UX. Default value is "user,system".
    """

    USER = "user"
    """Indicates the operation is initiated by a user."""
    SYSTEM = "system"
    """Indicates the operation is initiated by a system."""
    USER_SYSTEM = "user,system"
    """Indicates the operation is initiated by a user or system."""


class PatchStrategy(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Enum to indicate the patch strategy of a server."""

    REGULAR = "Regular"
    """REGULAR."""
    VIRTUAL_CANARY = "VirtualCanary"
    """VIRTUAL_CANARY."""


class PrivateEndpointConnectionProvisioningState(  # pylint: disable=name-too-long
    str, Enum, metaclass=CaseInsensitiveEnumMeta
):
    """The current provisioning state."""

    SUCCEEDED = "Succeeded"
    """Connection has been provisioned."""
    CREATING = "Creating"
    """Connection is being created."""
    DELETING = "Deleting"
    """Connection is being deleted."""
    FAILED = "Failed"
    """Connection provisioning has failed."""


class PrivateEndpointServiceConnectionStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The private endpoint connection status."""

    PENDING = "Pending"
    """Connection waiting for approval or rejection."""
    APPROVED = "Approved"
    """Connection approved."""
    REJECTED = "Rejected"
    """Connection Rejected."""


class ProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The current provisioning state."""

    SUCCEEDED = "Succeeded"
    """SUCCEEDED."""
    CREATING = "Creating"
    """CREATING."""
    DELETING = "Deleting"
    """DELETING."""
    FAILED = "Failed"
    """FAILED."""
    CANCELED = "Canceled"
    """CANCELED."""


class ReplicationMode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The replication Mode."""

    BINARY_LOG = "BinaryLog"
    """Binary log replication."""
    REDO_LOG = "RedoLog"
    """Redo log replication."""


class ReplicationRole(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The replication role."""

    NONE = "None"
    """NONE."""
    SOURCE = "Source"
    """SOURCE."""
    REPLICA = "Replica"
    """REPLICA."""


class ResetAllToDefault(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Whether to reset all server parameters to default."""

    TRUE = "True"
    """TRUE."""
    FALSE = "False"
    """FALSE."""


class ServerSkuTier(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The tier of the particular SKU, e.g. GeneralPurpose."""

    BURSTABLE = "Burstable"
    """BURSTABLE."""
    GENERAL_PURPOSE = "GeneralPurpose"
    """GENERAL_PURPOSE."""
    MEMORY_OPTIMIZED = "MemoryOptimized"
    """MEMORY_OPTIMIZED."""


class ServerState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The state of a server."""

    READY = "Ready"
    """READY."""
    DROPPING = "Dropping"
    """DROPPING."""
    DISABLED = "Disabled"
    """DISABLED."""
    STARTING = "Starting"
    """STARTING."""
    STOPPING = "Stopping"
    """STOPPING."""
    STOPPED = "Stopped"
    """STOPPED."""
    UPDATING = "Updating"
    """UPDATING."""


class ServerVersion(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The major version of a server. 8.0.21 stands for MySQL 8.0, 5.7.44 stands for MySQL 5.7."""

    FIVE7 = "5.7"
    """FIVE7."""
    EIGHT0_21 = "8.0.21"
    """EIGHT0_21."""
    EIGHT4 = "8.4"
    """EIGHT4."""


class StorageRedundancyEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Enum to indicate whether storage sku value is 'ZoneRedundancy' or 'LocalRedundancy'."""

    LOCAL_REDUNDANCY = "LocalRedundancy"
    """LOCAL_REDUNDANCY."""
    ZONE_REDUNDANCY = "ZoneRedundancy"
    """ZONE_REDUNDANCY."""
