# pylint: disable=too-many-lines
# 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 AcquireStorageAccountLock(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Whether storage account lock is to be acquired for this container or not."""

    ACQUIRE = "Acquire"
    """ACQUIRE."""
    NOT_ACQUIRE = "NotAcquire"
    """NOT_ACQUIRE."""


class AzureFileShareType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """File Share type XSync or XSMB."""

    INVALID = "Invalid"
    """INVALID."""
    XSMB = "XSMB"
    """XSMB."""
    X_SYNC = "XSync"
    """X_SYNC."""


class BackupEngineType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of the backup engine."""

    INVALID = "Invalid"
    """INVALID."""
    DPM_BACKUP_ENGINE = "DpmBackupEngine"
    """DPM_BACKUP_ENGINE."""
    AZURE_BACKUP_SERVER_ENGINE = "AzureBackupServerEngine"
    """AZURE_BACKUP_SERVER_ENGINE."""


class BackupItemType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of backup items associated with this container."""

    INVALID = "Invalid"
    """INVALID."""
    VM = "VM"
    """VM."""
    FILE_FOLDER = "FileFolder"
    """FILE_FOLDER."""
    AZURE_SQL_DB = "AzureSqlDb"
    """AZURE_SQL_DB."""
    SQLDB = "SQLDB"
    """SQLDB."""
    EXCHANGE = "Exchange"
    """EXCHANGE."""
    SHAREPOINT = "Sharepoint"
    """SHAREPOINT."""
    V_MWARE_VM = "VMwareVM"
    """V_MWARE_VM."""
    SYSTEM_STATE = "SystemState"
    """SYSTEM_STATE."""
    CLIENT = "Client"
    """CLIENT."""
    GENERIC_DATA_SOURCE = "GenericDataSource"
    """GENERIC_DATA_SOURCE."""
    SQL_DATA_BASE = "SQLDataBase"
    """SQL_DATA_BASE."""
    AZURE_FILE_SHARE = "AzureFileShare"
    """AZURE_FILE_SHARE."""
    SAP_HANA_DATABASE = "SAPHanaDatabase"
    """SAP_HANA_DATABASE."""
    SAP_ASE_DATABASE = "SAPAseDatabase"
    """SAP_ASE_DATABASE."""
    SAP_HANA_DB_INSTANCE = "SAPHanaDBInstance"
    """SAP_HANA_DB_INSTANCE."""


class BackupManagementType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Backup management type to execute the current job."""

    INVALID = "Invalid"
    """INVALID."""
    AZURE_IAAS_VM = "AzureIaasVM"
    """AZURE_IAAS_VM."""
    MAB = "MAB"
    """MAB."""
    DPM = "DPM"
    """DPM."""
    AZURE_BACKUP_SERVER = "AzureBackupServer"
    """AZURE_BACKUP_SERVER."""
    AZURE_SQL = "AzureSql"
    """AZURE_SQL."""
    AZURE_STORAGE = "AzureStorage"
    """AZURE_STORAGE."""
    AZURE_WORKLOAD = "AzureWorkload"
    """AZURE_WORKLOAD."""
    DEFAULT_BACKUP = "DefaultBackup"
    """DEFAULT_BACKUP."""


class BackupType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of backup, viz. Full, Differential, Log or CopyOnlyFull."""

    INVALID = "Invalid"
    """INVALID."""
    FULL = "Full"
    """FULL."""
    DIFFERENTIAL = "Differential"
    """DIFFERENTIAL."""
    LOG = "Log"
    """LOG."""
    COPY_ONLY_FULL = "CopyOnlyFull"
    """COPY_ONLY_FULL."""
    INCREMENTAL = "Incremental"
    """INCREMENTAL."""
    SNAPSHOT_FULL = "SnapshotFull"
    """SNAPSHOT_FULL."""
    SNAPSHOT_COPY_ONLY_FULL = "SnapshotCopyOnlyFull"
    """SNAPSHOT_COPY_ONLY_FULL."""


class CopyOptions(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Options to resolve copy conflicts."""

    INVALID = "Invalid"
    """INVALID."""
    CREATE_COPY = "CreateCopy"
    """CREATE_COPY."""
    SKIP = "Skip"
    """SKIP."""
    OVERWRITE = "Overwrite"
    """OVERWRITE."""
    FAIL_ON_CONFLICT = "FailOnConflict"
    """FAIL_ON_CONFLICT."""


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):
    """Create mode to indicate recovery of existing soft deleted data source or creation of new data
    source.
    """

    INVALID = "Invalid"
    """INVALID."""
    DEFAULT = "Default"
    """DEFAULT."""
    RECOVER = "Recover"
    """RECOVER."""


class DataMoveLevel(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """DataMove Level."""

    INVALID = "Invalid"
    """INVALID."""
    VAULT = "Vault"
    """VAULT."""
    CONTAINER = "Container"
    """CONTAINER."""


class DataSourceType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of workload this item represents."""

    INVALID = "Invalid"
    """INVALID."""
    VM = "VM"
    """VM."""
    FILE_FOLDER = "FileFolder"
    """FILE_FOLDER."""
    AZURE_SQL_DB = "AzureSqlDb"
    """AZURE_SQL_DB."""
    SQLDB = "SQLDB"
    """SQLDB."""
    EXCHANGE = "Exchange"
    """EXCHANGE."""
    SHAREPOINT = "Sharepoint"
    """SHAREPOINT."""
    V_MWARE_VM = "VMwareVM"
    """V_MWARE_VM."""
    SYSTEM_STATE = "SystemState"
    """SYSTEM_STATE."""
    CLIENT = "Client"
    """CLIENT."""
    GENERIC_DATA_SOURCE = "GenericDataSource"
    """GENERIC_DATA_SOURCE."""
    SQL_DATA_BASE = "SQLDataBase"
    """SQL_DATA_BASE."""
    AZURE_FILE_SHARE = "AzureFileShare"
    """AZURE_FILE_SHARE."""
    SAP_HANA_DATABASE = "SAPHanaDatabase"
    """SAP_HANA_DATABASE."""
    SAP_ASE_DATABASE = "SAPAseDatabase"
    """SAP_ASE_DATABASE."""
    SAP_HANA_DB_INSTANCE = "SAPHanaDBInstance"
    """SAP_HANA_DB_INSTANCE."""


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

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


class DedupState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Vault Dedup state."""

    INVALID = "Invalid"
    """INVALID."""
    ENABLED = "Enabled"
    """ENABLED."""
    DISABLED = "Disabled"
    """DISABLED."""


class EncryptionAtRestType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Encryption At Rest Type."""

    INVALID = "Invalid"
    """INVALID."""
    MICROSOFT_MANAGED = "MicrosoftManaged"
    """MICROSOFT_MANAGED."""
    CUSTOMER_MANAGED = "CustomerManaged"
    """CUSTOMER_MANAGED."""


class EnhancedSecurityState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Enabled or Disabled."""

    INVALID = "Invalid"
    """INVALID."""
    ENABLED = "Enabled"
    """ENABLED."""
    DISABLED = "Disabled"
    """DISABLED."""


class FabricName(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Specifies the fabric name - Azure or AD."""

    INVALID = "Invalid"
    """INVALID."""
    AZURE = "Azure"
    """AZURE."""


class HealthStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Health status of protected item."""

    PASSED = "Passed"
    """PASSED."""
    ACTION_REQUIRED = "ActionRequired"
    """ACTION_REQUIRED."""
    ACTION_SUGGESTED = "ActionSuggested"
    """ACTION_SUGGESTED."""
    INVALID = "Invalid"
    """INVALID."""


class HttpStatusCode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """HTTP Status Code of the operation."""

    CONTINUE_ENUM = "Continue"
    """CONTINUE_ENUM."""
    SWITCHING_PROTOCOLS = "SwitchingProtocols"
    """SWITCHING_PROTOCOLS."""
    OK = "OK"
    """OK."""
    CREATED = "Created"
    """CREATED."""
    ACCEPTED = "Accepted"
    """ACCEPTED."""
    NON_AUTHORITATIVE_INFORMATION = "NonAuthoritativeInformation"
    """NON_AUTHORITATIVE_INFORMATION."""
    NO_CONTENT = "NoContent"
    """NO_CONTENT."""
    RESET_CONTENT = "ResetContent"
    """RESET_CONTENT."""
    PARTIAL_CONTENT = "PartialContent"
    """PARTIAL_CONTENT."""
    MULTIPLE_CHOICES = "MultipleChoices"
    """MULTIPLE_CHOICES."""
    AMBIGUOUS = "Ambiguous"
    """AMBIGUOUS."""
    MOVED_PERMANENTLY = "MovedPermanently"
    """MOVED_PERMANENTLY."""
    MOVED = "Moved"
    """MOVED."""
    FOUND = "Found"
    """FOUND."""
    REDIRECT = "Redirect"
    """REDIRECT."""
    SEE_OTHER = "SeeOther"
    """SEE_OTHER."""
    REDIRECT_METHOD = "RedirectMethod"
    """REDIRECT_METHOD."""
    NOT_MODIFIED = "NotModified"
    """NOT_MODIFIED."""
    USE_PROXY = "UseProxy"
    """USE_PROXY."""
    UNUSED = "Unused"
    """UNUSED."""
    TEMPORARY_REDIRECT = "TemporaryRedirect"
    """TEMPORARY_REDIRECT."""
    REDIRECT_KEEP_VERB = "RedirectKeepVerb"
    """REDIRECT_KEEP_VERB."""
    BAD_REQUEST = "BadRequest"
    """BAD_REQUEST."""
    UNAUTHORIZED = "Unauthorized"
    """UNAUTHORIZED."""
    PAYMENT_REQUIRED = "PaymentRequired"
    """PAYMENT_REQUIRED."""
    FORBIDDEN = "Forbidden"
    """FORBIDDEN."""
    NOT_FOUND = "NotFound"
    """NOT_FOUND."""
    METHOD_NOT_ALLOWED = "MethodNotAllowed"
    """METHOD_NOT_ALLOWED."""
    NOT_ACCEPTABLE = "NotAcceptable"
    """NOT_ACCEPTABLE."""
    PROXY_AUTHENTICATION_REQUIRED = "ProxyAuthenticationRequired"
    """PROXY_AUTHENTICATION_REQUIRED."""
    REQUEST_TIMEOUT = "RequestTimeout"
    """REQUEST_TIMEOUT."""
    CONFLICT = "Conflict"
    """CONFLICT."""
    GONE = "Gone"
    """GONE."""
    LENGTH_REQUIRED = "LengthRequired"
    """LENGTH_REQUIRED."""
    PRECONDITION_FAILED = "PreconditionFailed"
    """PRECONDITION_FAILED."""
    REQUEST_ENTITY_TOO_LARGE = "RequestEntityTooLarge"
    """REQUEST_ENTITY_TOO_LARGE."""
    REQUEST_URI_TOO_LONG = "RequestUriTooLong"
    """REQUEST_URI_TOO_LONG."""
    UNSUPPORTED_MEDIA_TYPE = "UnsupportedMediaType"
    """UNSUPPORTED_MEDIA_TYPE."""
    REQUESTED_RANGE_NOT_SATISFIABLE = "RequestedRangeNotSatisfiable"
    """REQUESTED_RANGE_NOT_SATISFIABLE."""
    EXPECTATION_FAILED = "ExpectationFailed"
    """EXPECTATION_FAILED."""
    UPGRADE_REQUIRED = "UpgradeRequired"
    """UPGRADE_REQUIRED."""
    INTERNAL_SERVER_ERROR = "InternalServerError"
    """INTERNAL_SERVER_ERROR."""
    NOT_IMPLEMENTED = "NotImplemented"
    """NOT_IMPLEMENTED."""
    BAD_GATEWAY = "BadGateway"
    """BAD_GATEWAY."""
    SERVICE_UNAVAILABLE = "ServiceUnavailable"
    """SERVICE_UNAVAILABLE."""
    GATEWAY_TIMEOUT = "GatewayTimeout"
    """GATEWAY_TIMEOUT."""
    HTTP_VERSION_NOT_SUPPORTED = "HttpVersionNotSupported"
    """HTTP_VERSION_NOT_SUPPORTED."""


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

    INVALID = "Invalid"
    """INVALID."""
    V1 = "V1"
    """V1."""
    V2 = "V2"
    """V2."""


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

    ONLY_CRASH_CONSISTENT = "OnlyCrashConsistent"
    """ONLY_CRASH_CONSISTENT."""


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

    INVALID = "Invalid"
    """INVALID."""
    DISABLED = "Disabled"
    """DISABLED."""
    ENABLED = "Enabled"
    """ENABLED."""


class InquiryStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Status of protectable item, i.e. InProgress,Succeeded,Failed."""

    INVALID = "Invalid"
    """INVALID."""
    SUCCESS = "Success"
    """SUCCESS."""
    FAILED = "Failed"
    """FAILED."""


class InstanceProtectionReadiness(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The state of instance protection."""

    UNKNOWN = "Unknown"
    """Instance protection readiness is unknown."""
    READY = "Ready"
    """Instance is ready for protection."""
    SCHEDULE_DISABLED = "ScheduleDisabled"
    """Backup schedule is disabled for this instance."""
    PARTIAL_PROTECTION = "PartialProtection"
    """Instance is partially protected."""
    PROTECTION_ERROR = "ProtectionError"
    """Instance protection encountered an error."""


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

    INVALID = "Invalid"
    """INVALID."""
    CANCELLABLE = "Cancellable"
    """CANCELLABLE."""
    RETRIABLE = "Retriable"
    """RETRIABLE."""


class LastBackupStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Last backup operation status. Possible values: Healthy, Unhealthy."""

    INVALID = "Invalid"
    """INVALID."""
    HEALTHY = "Healthy"
    """HEALTHY."""
    UNHEALTHY = "Unhealthy"
    """UNHEALTHY."""
    IR_PENDING = "IRPending"
    """IR_PENDING."""


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

    INVALID = "Invalid"
    """INVALID."""
    NOT_ENABLED = "NotEnabled"
    """NOT_ENABLED."""
    PARTIALLY_SUCCEEDED = "PartiallySucceeded"
    """PARTIALLY_SUCCEEDED."""
    PARTIALLY_FAILED = "PartiallyFailed"
    """PARTIALLY_FAILED."""
    FAILED = "Failed"
    """FAILED."""
    SUCCEEDED = "Succeeded"
    """SUCCEEDED."""
    INITIALIZED = "Initialized"
    """INITIALIZED."""
    FIRST_INITIALIZATION = "FirstInitialization"
    """FIRST_INITIALIZATION."""


class MabServerType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Server type of MAB container."""

    INVALID = "Invalid"
    """INVALID."""
    UNKNOWN = "Unknown"
    """UNKNOWN."""
    IAAS_VM_CONTAINER = "IaasVMContainer"
    """IAAS_VM_CONTAINER."""
    IAAS_VM_SERVICE_CONTAINER = "IaasVMServiceContainer"
    """IAAS_VM_SERVICE_CONTAINER."""
    DPM_CONTAINER = "DPMContainer"
    """DPM_CONTAINER."""
    AZURE_BACKUP_SERVER_CONTAINER = "AzureBackupServerContainer"
    """AZURE_BACKUP_SERVER_CONTAINER."""
    MAB_CONTAINER = "MABContainer"
    """MAB_CONTAINER."""
    CLUSTER = "Cluster"
    """CLUSTER."""
    AZURE_SQL_CONTAINER = "AzureSqlContainer"
    """AZURE_SQL_CONTAINER."""
    WINDOWS = "Windows"
    """WINDOWS."""
    V_CENTER = "VCenter"
    """V_CENTER."""
    VM_APP_CONTAINER = "VMAppContainer"
    """VM_APP_CONTAINER."""
    SQLAG_WORK_LOAD_CONTAINER = "SQLAGWorkLoadContainer"
    """SQLAG_WORK_LOAD_CONTAINER."""
    STORAGE_CONTAINER = "StorageContainer"
    """STORAGE_CONTAINER."""
    GENERIC_CONTAINER = "GenericContainer"
    """GENERIC_CONTAINER."""


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

    INVALID = "Invalid"
    """INVALID."""
    JANUARY = "January"
    """JANUARY."""
    FEBRUARY = "February"
    """FEBRUARY."""
    MARCH = "March"
    """MARCH."""
    APRIL = "April"
    """APRIL."""
    MAY = "May"
    """MAY."""
    JUNE = "June"
    """JUNE."""
    JULY = "July"
    """JULY."""
    AUGUST = "August"
    """AUGUST."""
    SEPTEMBER = "September"
    """SEPTEMBER."""
    OCTOBER = "October"
    """OCTOBER."""
    NOVEMBER = "November"
    """NOVEMBER."""
    DECEMBER = "December"
    """DECEMBER."""


class OperationStatusValues(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Operation status."""

    INVALID = "Invalid"
    """INVALID."""
    IN_PROGRESS = "InProgress"
    """IN_PROGRESS."""
    SUCCEEDED = "Succeeded"
    """SUCCEEDED."""
    FAILED = "Failed"
    """FAILED."""
    CANCELED = "Canceled"
    """CANCELED."""


class OperationType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Re-Do Operation."""

    INVALID = "Invalid"
    """INVALID."""
    REGISTER = "Register"
    """REGISTER."""
    REREGISTER = "Reregister"
    """REREGISTER."""
    REHYDRATE = "Rehydrate"
    """REHYDRATE."""


class OverwriteOptions(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Can Overwrite if Target DataBase already exists."""

    INVALID = "Invalid"
    """INVALID."""
    FAIL_ON_CONFLICT = "FailOnConflict"
    """FAIL_ON_CONFLICT."""
    OVERWRITE = "Overwrite"
    """OVERWRITE."""


class PolicyType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of backup policy type."""

    INVALID = "Invalid"
    """INVALID."""
    FULL = "Full"
    """FULL."""
    DIFFERENTIAL = "Differential"
    """DIFFERENTIAL."""
    LOG = "Log"
    """LOG."""
    COPY_ONLY_FULL = "CopyOnlyFull"
    """COPY_ONLY_FULL."""
    INCREMENTAL = "Incremental"
    """INCREMENTAL."""
    SNAPSHOT_FULL = "SnapshotFull"
    """SNAPSHOT_FULL."""
    SNAPSHOT_COPY_ONLY_FULL = "SnapshotCopyOnlyFull"
    """SNAPSHOT_COPY_ONLY_FULL."""


class PrivateEndpointConnectionStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Gets or sets the status."""

    PENDING = "Pending"
    """PENDING."""
    APPROVED = "Approved"
    """APPROVED."""
    REJECTED = "Rejected"
    """REJECTED."""
    DISCONNECTED = "Disconnected"
    """DISCONNECTED."""


class ProtectableContainerType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of the container. The value of this property for

    1. Compute Azure VM is Microsoft.Compute/virtualMachines
    2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines.
    """

    INVALID = "Invalid"
    """INVALID."""
    UNKNOWN = "Unknown"
    """UNKNOWN."""
    IAAS_VM_CONTAINER = "IaasVMContainer"
    """IAAS_VM_CONTAINER."""
    IAAS_VM_SERVICE_CONTAINER = "IaasVMServiceContainer"
    """IAAS_VM_SERVICE_CONTAINER."""
    DPM_CONTAINER = "DPMContainer"
    """DPM_CONTAINER."""
    AZURE_BACKUP_SERVER_CONTAINER = "AzureBackupServerContainer"
    """AZURE_BACKUP_SERVER_CONTAINER."""
    MAB_CONTAINER = "MABContainer"
    """MAB_CONTAINER."""
    CLUSTER = "Cluster"
    """CLUSTER."""
    AZURE_SQL_CONTAINER = "AzureSqlContainer"
    """AZURE_SQL_CONTAINER."""
    WINDOWS = "Windows"
    """WINDOWS."""
    V_CENTER = "VCenter"
    """V_CENTER."""
    VM_APP_CONTAINER = "VMAppContainer"
    """VM_APP_CONTAINER."""
    SQLAG_WORK_LOAD_CONTAINER = "SQLAGWorkLoadContainer"
    """SQLAG_WORK_LOAD_CONTAINER."""
    STORAGE_CONTAINER = "StorageContainer"
    """STORAGE_CONTAINER."""
    GENERIC_CONTAINER = "GenericContainer"
    """GENERIC_CONTAINER."""
    MICROSOFT_CLASSIC_COMPUTE_VIRTUAL_MACHINES = "Microsoft.ClassicCompute/virtualMachines"
    """MICROSOFT_CLASSIC_COMPUTE_VIRTUAL_MACHINES."""
    MICROSOFT_COMPUTE_VIRTUAL_MACHINES = "Microsoft.Compute/virtualMachines"
    """MICROSOFT_COMPUTE_VIRTUAL_MACHINES."""
    AZURE_WORKLOAD_CONTAINER = "AzureWorkloadContainer"
    """AZURE_WORKLOAD_CONTAINER."""


class ProtectedItemHealthStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Health status of the backup item, evaluated based on last heartbeat received."""

    INVALID = "Invalid"
    """INVALID."""
    HEALTHY = "Healthy"
    """HEALTHY."""
    UNHEALTHY = "Unhealthy"
    """UNHEALTHY."""
    NOT_REACHABLE = "NotReachable"
    """NOT_REACHABLE."""
    IR_PENDING = "IRPending"
    """IR_PENDING."""


class ProtectedItemState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Backup state of the backed up item."""

    INVALID = "Invalid"
    """INVALID."""
    IR_PENDING = "IRPending"
    """IR_PENDING."""
    PROTECTED = "Protected"
    """PROTECTED."""
    PROTECTION_ERROR = "ProtectionError"
    """PROTECTION_ERROR."""
    PROTECTION_STOPPED = "ProtectionStopped"
    """PROTECTION_STOPPED."""
    PROTECTION_PAUSED = "ProtectionPaused"
    """PROTECTION_PAUSED."""
    BACKUPS_SUSPENDED = "BackupsSuspended"
    """BACKUPS_SUSPENDED."""


class ProtectionIntentItemType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """backup protectionIntent type."""

    INVALID = "Invalid"
    """INVALID."""
    AZURE_RESOURCE_ITEM = "AzureResourceItem"
    """AZURE_RESOURCE_ITEM."""
    RECOVERY_SERVICE_VAULT_ITEM = "RecoveryServiceVaultItem"
    """RECOVERY_SERVICE_VAULT_ITEM."""
    AZURE_WORKLOAD_CONTAINER_AUTO_PROTECTION_INTENT = "AzureWorkloadContainerAutoProtectionIntent"
    """AZURE_WORKLOAD_CONTAINER_AUTO_PROTECTION_INTENT."""
    AZURE_WORKLOAD_AUTO_PROTECTION_INTENT = "AzureWorkloadAutoProtectionIntent"
    """AZURE_WORKLOAD_AUTO_PROTECTION_INTENT."""
    AZURE_WORKLOAD_SQL_AUTO_PROTECTION_INTENT = "AzureWorkloadSQLAutoProtectionIntent"
    """AZURE_WORKLOAD_SQL_AUTO_PROTECTION_INTENT."""


class ProtectionLevel(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Protection type in case protected as part of a parent."""

    DATABASE = "Database"
    """Protected at database level."""
    DATABASE_UNDER_INSTANCE = "DatabaseUnderInstance"
    """Database protected under an instance."""


class ProtectionState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Backup state of this backup item."""

    INVALID = "Invalid"
    """INVALID."""
    IR_PENDING = "IRPending"
    """IR_PENDING."""
    PROTECTED = "Protected"
    """PROTECTED."""
    PROTECTION_ERROR = "ProtectionError"
    """PROTECTION_ERROR."""
    PROTECTION_STOPPED = "ProtectionStopped"
    """PROTECTION_STOPPED."""
    PROTECTION_PAUSED = "ProtectionPaused"
    """PROTECTION_PAUSED."""
    BACKUPS_SUSPENDED = "BackupsSuspended"
    """BACKUPS_SUSPENDED."""


class ProtectionStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Specifies whether the container is registered or not."""

    INVALID = "Invalid"
    """INVALID."""
    NOT_PROTECTED = "NotProtected"
    """NOT_PROTECTED."""
    PROTECTING = "Protecting"
    """PROTECTING."""
    PROTECTED = "Protected"
    """PROTECTED."""
    PROTECTION_FAILED = "ProtectionFailed"
    """PROTECTION_FAILED."""


class ProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Gets or sets provisioning state of the private endpoint connection."""

    SUCCEEDED = "Succeeded"
    """SUCCEEDED."""
    DELETING = "Deleting"
    """DELETING."""
    FAILED = "Failed"
    """FAILED."""
    PENDING = "Pending"
    """PENDING."""


class RecoveryMode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Defines whether the current recovery mode is file restore or database restore."""

    INVALID = "Invalid"
    """INVALID."""
    FILE_RECOVERY = "FileRecovery"
    """FILE_RECOVERY."""
    WORKLOAD_RECOVERY = "WorkloadRecovery"
    """WORKLOAD_RECOVERY."""
    SNAPSHOT_ATTACH = "SnapshotAttach"
    """SNAPSHOT_ATTACH."""
    RECOVERY_USING_SNAPSHOT = "RecoveryUsingSnapshot"
    """RECOVERY_USING_SNAPSHOT."""
    SNAPSHOT_ATTACH_AND_RECOVER = "SnapshotAttachAndRecover"
    """SNAPSHOT_ATTACH_AND_RECOVER."""


class RecoveryPointTierStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Recovery point tier status."""

    INVALID = "Invalid"
    """INVALID."""
    VALID = "Valid"
    """VALID."""
    DISABLED = "Disabled"
    """DISABLED."""
    DELETED = "Deleted"
    """DELETED."""
    REHYDRATED = "Rehydrated"
    """REHYDRATED."""


class RecoveryPointTierType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Recovery point tier type."""

    INVALID = "Invalid"
    """INVALID."""
    INSTANT_RP = "InstantRP"
    """INSTANT_RP."""
    HARDENED_RP = "HardenedRP"
    """HARDENED_RP."""
    ARCHIVED_RP = "ArchivedRP"
    """ARCHIVED_RP."""


class RecoveryType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of this recovery."""

    INVALID = "Invalid"
    """INVALID."""
    ORIGINAL_LOCATION = "OriginalLocation"
    """ORIGINAL_LOCATION."""
    ALTERNATE_LOCATION = "AlternateLocation"
    """ALTERNATE_LOCATION."""
    RESTORE_DISKS = "RestoreDisks"
    """RESTORE_DISKS."""
    OFFLINE = "Offline"
    """OFFLINE."""


class RehydrationPriority(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Rehydration Priority."""

    STANDARD = "Standard"
    """STANDARD."""
    HIGH = "High"
    """HIGH."""


class ResourceHealthStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Resource Health Status."""

    HEALTHY = "Healthy"
    """HEALTHY."""
    TRANSIENT_DEGRADED = "TransientDegraded"
    """TRANSIENT_DEGRADED."""
    PERSISTENT_DEGRADED = "PersistentDegraded"
    """PERSISTENT_DEGRADED."""
    TRANSIENT_UNHEALTHY = "TransientUnhealthy"
    """TRANSIENT_UNHEALTHY."""
    PERSISTENT_UNHEALTHY = "PersistentUnhealthy"
    """PERSISTENT_UNHEALTHY."""
    INVALID = "Invalid"
    """INVALID."""


class RestorePointType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of restore point."""

    INVALID = "Invalid"
    """INVALID."""
    FULL = "Full"
    """FULL."""
    LOG = "Log"
    """LOG."""
    DIFFERENTIAL = "Differential"
    """DIFFERENTIAL."""
    INCREMENTAL = "Incremental"
    """INCREMENTAL."""
    SNAPSHOT_FULL = "SnapshotFull"
    """SNAPSHOT_FULL."""
    SNAPSHOT_COPY_ONLY_FULL = "SnapshotCopyOnlyFull"
    """SNAPSHOT_COPY_ONLY_FULL."""


class RestoreRequestType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Restore Type (FullShareRestore or ItemLevelRestore)."""

    INVALID = "Invalid"
    """INVALID."""
    FULL_SHARE_RESTORE = "FullShareRestore"
    """FULL_SHARE_RESTORE."""
    ITEM_LEVEL_RESTORE = "ItemLevelRestore"
    """ITEM_LEVEL_RESTORE."""


class RetentionDurationType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Retention duration type of retention policy."""

    INVALID = "Invalid"
    """INVALID."""
    DAYS = "Days"
    """DAYS."""
    WEEKS = "Weeks"
    """WEEKS."""
    MONTHS = "Months"
    """MONTHS."""
    YEARS = "Years"
    """YEARS."""


class RetentionScheduleFormat(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Retention schedule format type for monthly retention policy."""

    INVALID = "Invalid"
    """INVALID."""
    DAILY = "Daily"
    """DAILY."""
    WEEKLY = "Weekly"
    """WEEKLY."""


class ScheduleRunType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Frequency of the schedule operation of this policy."""

    INVALID = "Invalid"
    """INVALID."""
    DAILY = "Daily"
    """DAILY."""
    WEEKLY = "Weekly"
    """WEEKLY."""
    HOURLY = "Hourly"
    """HOURLY."""


class SoftDeleteFeatureState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Soft Delete feature state."""

    INVALID = "Invalid"
    """INVALID."""
    ENABLED = "Enabled"
    """ENABLED."""
    DISABLED = "Disabled"
    """DISABLED."""
    ALWAYS_ON = "AlwaysON"
    """ALWAYS_ON."""


class SourceSideScanStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Threat status of the container."""

    CONFIGURED = "Configured"
    """Source side scan is configured."""
    NOT_CONFIGURED = "NotConfigured"
    """Source side scan is not configured."""
    NOT_APPLICABLE = "NotApplicable"
    """Source side scan is not applicable."""


class SourceSideScanSummary(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Threat summary for the container."""

    UNKNOWN = "Unknown"
    """Scan summary is unknown."""
    NOT_APPLICABLE = "NotApplicable"
    """Scan summary is not applicable."""
    SUSPICIOUS = "Suspicious"
    """Scan summary is suspicious."""
    HEALTHY = "Healthy"
    """Scan summary indicates healthy state."""


class SQLDataDirectoryType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of data directory mapping."""

    INVALID = "Invalid"
    """INVALID."""
    DATA = "Data"
    """DATA."""
    LOG = "Log"
    """LOG."""


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

    INVALID = "Invalid"
    """INVALID."""
    GEO_REDUNDANT = "GeoRedundant"
    """GEO_REDUNDANT."""
    LOCALLY_REDUNDANT = "LocallyRedundant"
    """LOCALLY_REDUNDANT."""
    ZONE_REDUNDANT = "ZoneRedundant"
    """ZONE_REDUNDANT."""
    READ_ACCESS_GEO_ZONE_REDUNDANT = "ReadAccessGeoZoneRedundant"
    """READ_ACCESS_GEO_ZONE_REDUNDANT."""


class StorageTypeState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is
    always Locked.
    """

    INVALID = "Invalid"
    """INVALID."""
    LOCKED = "Locked"
    """LOCKED."""
    UNLOCKED = "Unlocked"
    """UNLOCKED."""


class SupportStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Support status of feature."""

    INVALID = "Invalid"
    """INVALID."""
    SUPPORTED = "Supported"
    """SUPPORTED."""
    DEFAULT_OFF = "DefaultOFF"
    """DEFAULT_OFF."""
    DEFAULT_ON = "DefaultON"
    """DEFAULT_ON."""
    NOT_SUPPORTED = "NotSupported"
    """NOT_SUPPORTED."""


class TargetDiskNetworkAccessOption(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Network access settings to be used for restored disks."""

    SAME_AS_ON_SOURCE_DISKS = "SameAsOnSourceDisks"
    """SAME_AS_ON_SOURCE_DISKS."""
    ENABLE_PRIVATE_ACCESS_FOR_ALL_DISKS = "EnablePrivateAccessForAllDisks"
    """ENABLE_PRIVATE_ACCESS_FOR_ALL_DISKS."""
    ENABLE_PUBLIC_ACCESS_FOR_ALL_DISKS = "EnablePublicAccessForAllDisks"
    """ENABLE_PUBLIC_ACCESS_FOR_ALL_DISKS."""


class ThreatSeverity(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Threat Severity Types."""

    CRITICAL = "Critical"
    """Critical severity level."""
    HIGH = "High"
    """High severity level."""
    WARNING = "Warning"
    """Warning severity level."""
    INFORMATIONAL = "Informational"
    """Informational severity level."""


class ThreatState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Threat Status Types."""

    ACTIVE = "Active"
    """Threat is active."""
    IN_PROGRESS = "InProgress"
    """Threat remediation is in progress."""
    IGNORED = "Ignored"
    """Threat has been ignored."""
    RESOLVED = "Resolved"
    """Threat has been resolved."""


class ThreatStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Threat status of the recovery point."""

    UNKNOWN = "Unknown"
    """Threat status is unknown."""
    HEALTHY = "Healthy"
    """Recovery point is healthy."""
    UN_HEALTHY = "UnHealthy"
    """Recovery point is unhealthy."""
    WARNING = "Warning"
    """Recovery point has warning-level threats."""
    NOT_AVAILABLE = "NotAvailable"
    """Threat status is not available."""


class TieringMode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Tiering Mode to control automatic tiering of recovery points. Supported values are:

    1. TierRecommended: Tier all recovery points recommended to be tiered
    2. TierAfter: Tier all recovery points after a fixed period, as specified in duration +
    durationType below.
    3. DoNotTier: Do not tier any recovery points.
    """

    INVALID = "Invalid"
    """INVALID."""
    TIER_RECOMMENDED = "TierRecommended"
    """TIER_RECOMMENDED."""
    TIER_AFTER = "TierAfter"
    """TIER_AFTER."""
    DO_NOT_TIER = "DoNotTier"
    """DO_NOT_TIER."""


class UsagesUnit(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Unit of the usage."""

    COUNT = "Count"
    """COUNT."""
    BYTES = "Bytes"
    """BYTES."""
    SECONDS = "Seconds"
    """SECONDS."""
    PERCENT = "Percent"
    """PERCENT."""
    COUNT_PER_SECOND = "CountPerSecond"
    """COUNT_PER_SECOND."""
    BYTES_PER_SECOND = "BytesPerSecond"
    """BYTES_PER_SECOND."""


class ValidationStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Validation Status."""

    INVALID = "Invalid"
    """INVALID."""
    SUCCEEDED = "Succeeded"
    """SUCCEEDED."""
    FAILED = "Failed"
    """FAILED."""


class VaultSubResourceType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """GroupId for the PrivateEndpointConnection - AzureBackup, AzureBackup_secondary or
    AzureSiteRecovery.
    """

    AZURE_BACKUP = "AzureBackup"
    """AZURE_BACKUP."""
    AZURE_BACKUP_SECONDARY = "AzureBackup_secondary"
    """AZURE_BACKUP_SECONDARY."""
    AZURE_SITE_RECOVERY = "AzureSiteRecovery"
    """AZURE_SITE_RECOVERY."""


class VMWorkloadPolicyType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of the protection policy."""

    INVALID = "Invalid"
    """Invalid policy type."""
    SNAPSHOT_V1 = "SnapshotV1"
    """Snapshot V1 policy type."""
    SNAPSHOT_V2 = "SnapshotV2"
    """Snapshot V2 policy type."""
    STREAMING = "Streaming"
    """Streaming policy type."""


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

    FIRST = "First"
    """FIRST."""
    SECOND = "Second"
    """SECOND."""
    THIRD = "Third"
    """THIRD."""
    FOURTH = "Fourth"
    """FOURTH."""
    LAST = "Last"
    """LAST."""
    INVALID = "Invalid"
    """INVALID."""


class WorkloadItemType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Workload item type of the item for which intent is to be set."""

    INVALID = "Invalid"
    """INVALID."""
    SQL_INSTANCE = "SQLInstance"
    """SQL_INSTANCE."""
    SQL_DATA_BASE = "SQLDataBase"
    """SQL_DATA_BASE."""
    SAP_HANA_SYSTEM = "SAPHanaSystem"
    """SAP_HANA_SYSTEM."""
    SAP_HANA_DATABASE = "SAPHanaDatabase"
    """SAP_HANA_DATABASE."""
    SAP_ASE_SYSTEM = "SAPAseSystem"
    """SAP_ASE_SYSTEM."""
    SAP_ASE_DATABASE = "SAPAseDatabase"
    """SAP_ASE_DATABASE."""
    SAP_HANA_DB_INSTANCE = "SAPHanaDBInstance"
    """SAP_HANA_DB_INSTANCE."""


class WorkloadType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Type of workload for the backup management."""

    INVALID = "Invalid"
    """INVALID."""
    VM = "VM"
    """VM."""
    FILE_FOLDER = "FileFolder"
    """FILE_FOLDER."""
    AZURE_SQL_DB = "AzureSqlDb"
    """AZURE_SQL_DB."""
    SQLDB = "SQLDB"
    """SQLDB."""
    EXCHANGE = "Exchange"
    """EXCHANGE."""
    SHAREPOINT = "Sharepoint"
    """SHAREPOINT."""
    V_MWARE_VM = "VMwareVM"
    """V_MWARE_VM."""
    SYSTEM_STATE = "SystemState"
    """SYSTEM_STATE."""
    CLIENT = "Client"
    """CLIENT."""
    GENERIC_DATA_SOURCE = "GenericDataSource"
    """GENERIC_DATA_SOURCE."""
    SQL_DATA_BASE = "SQLDataBase"
    """SQL_DATA_BASE."""
    AZURE_FILE_SHARE = "AzureFileShare"
    """AZURE_FILE_SHARE."""
    SAP_HANA_DATABASE = "SAPHanaDatabase"
    """SAP_HANA_DATABASE."""
    SAP_ASE_DATABASE = "SAPAseDatabase"
    """SAP_ASE_DATABASE."""
    SAP_HANA_DB_INSTANCE = "SAPHanaDBInstance"
    """SAP_HANA_DB_INSTANCE."""


class XcoolState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Vault x-cool state."""

    INVALID = "Invalid"
    """INVALID."""
    ENABLED = "Enabled"
    """ENABLED."""
    DISABLED = "Disabled"
    """DISABLED."""
