from enum import Enum


class ESessionType(str, Enum):
    AGENTBACKUP = "AgentBackup"
    AGENTDISCOVERY = "AgentDiscovery"
    AGENTOPERATIONPURGECACHE = "AgentOperationPurgeCache"
    AGENTPOLICY = "AgentPolicy"
    APPLIANCEUPDATESINSTALL = "ApplianceUpdatesInstall"
    ARCHIVEBACKUP = "ArchiveBackup"
    ARCHIVECOPY = "ArchiveCopy"
    ARCHIVEFREEZING = "ArchiveFreezing"
    ARCHIVEREHYDRATION = "ArchiveRehydration"
    ARCHIVESYNC = "ArchiveSync"
    ARCHIVETIERDOWNLOAD = "ArchiveTierDownload"
    AUTOMATION = "Automation"
    AZUREAPPLIANCEDEPLOY = "AzureApplianceDeploy"
    AZUREINSTANTRECOVERY = "AzureInstantRecovery"
    AZUREINSTANTRECOVERYMIGRATION = "AzureInstantRecoveryMigration"
    AZUREINSTANTRECOVERYMIGRATIONUNDO = "AzureInstantRecoveryMigrationUndo"
    AZUREINSTANTRECOVERYMOUNT = "AzureInstantRecoveryMount"
    AZUREINSTANTRECOVERYSTART = "AzureInstantRecoveryStart"
    AZUREINSTANTRECOVERYSTOP = "AzureInstantRecoveryStop"
    AZUREINSTANTRECOVERYSWITCHOVER = "AzureInstantRecoverySwitchover"
    BACKGROUNDOPERATION = "BackgroundOperation"
    BACKUPCOPYJOB = "BackupCopyJob"
    BACKUPJOB = "BackupJob"
    CHECKPOINTREMOVAL = "CheckpointRemoval"
    CLOUDDIRECTORVAPPRESTORE = "CloudDirectorVAppRestore"
    CLOUDDIRECTORVMRESTORE = "CloudDirectorVmRestore"
    COMMITFAILBACK = "CommitFailback"
    CONFIGURATIONBACKUP = "ConfigurationBackup"
    CONFIGURATIONRESYNCHRONIZE = "ConfigurationResynchronize"
    COPYBACKUP = "CopyBackup"
    DELETEBACKUP = "DeleteBackup"
    DIRECTBACKUPSYNC = "DirectBackupSync"
    ENTRAIDRESCANREPOSITORY = "EntraIdRescanRepository"
    ENTRAIDRESTORE = "EntraIdRestore"
    ENTRAIDRESTOREFROMCOPY = "EntraIdRestoreFromCopy"
    FAILBACK = "Failback"
    FAILOVER = "Failover"
    FAILOVERPLAN = "FailoverPlan"
    FAILOVERPLANTASK = "FailoverPlanTask"
    FILEBACKUPHEALTHCHECK = "FileBackupHealthCheck"
    FILEINSTANTRECOVERY = "FileInstantRecovery"
    FILEINSTANTRECOVERYMIGRATION = "FileInstantRecoveryMigration"
    FILELEVELRESTORE = "FileLevelRestore"
    FILESERVERSAVE = "FileServerSave"
    FIRSTCLASSDISKINSTANTRESTORE = "FirstClassDiskInstantRestore"
    FIRSTCLASSDISKQUICKMIGRATION = "FirstClassDiskQuickMigration"
    HOSTCOMPONENTSUPDATE = "HostComponentsUpdate"
    INFRASTRUCTURE = "Infrastructure"
    INFRASTRUCTUREITEMDELETION = "InfrastructureItemDeletion"
    INSTANTRECOVERY = "InstantRecovery"
    LINUXFILELEVELRESTORE = "LinuxFileLevelRestore"
    LOGSEXPORT = "LogsExport"
    MALWAREDETECTION = "MalwareDetection"
    NASRESTORE = "NasRestore"
    ORACLELOGBACKUP = "OracleLogBackup"
    PERMANENTFAILOVER = "PermanentFailover"
    PLANNEDFAILOVER = "PlannedFailover"
    POSTGRESQLLOGBACKUP = "PostgreSqlLogBackup"
    PUBLISHBACKUPCONTENTVIAMOUNT = "PublishBackupContentViaMount"
    PUBLISHBACKUPCONTENTVIANFS = "PublishBackupContentViaNfs"
    QUICKMIGRATION = "QuickMigration"
    REPLICAJOB = "ReplicaJob"
    REPOSITORYEVACUATE = "RepositoryEvacuate"
    REPOSITORYMAINTENANCE = "RepositoryMaintenance"
    RESTOREVM = "RestoreVm"
    RETENTION = "Retention"
    RETRIEVEBACKUP = "RetrieveBackup"
    SECURITYCOMPLIANCEANALYZER = "SecurityComplianceAnalyzer"
    SQLLOGBACKUP = "SqlLogBackup"
    SUREBACKUP = "SureBackup"
    SUREBACKUPCONTENTSCAN = "SureBackupContentScan"
    SWITCHREPLICATOPRODUCTION = "SwitchReplicaToProduction"
    TESTCREDENTIALS = "TestCredentials"
    UNDOFAILBACK = "UndoFailback"
    UNDOFAILOVER = "UndoFailover"
    UNSTRUCTUREDDATABACKUPCOPY = "UnstructuredDataBackupCopy"
    UNSTRUCTUREDDATABROWSE = "UnstructuredDataBrowse"
    UNSTRUCTUREDDOWNLOADMETA = "UnstructuredDownloadMeta"
    VOLUMESDISCOVER = "VolumesDiscover"

    def __str__(self) -> str:
        return str(self.value)
