from enum import Enum


class ManagementAgentTaskType(str, Enum):
    BACKUPAGENTACTIVATIONSTATUSCHANGE = "BackupAgentActivationStatusChange"
    BACKUPAGENTCBTDRIVERDEPLOYMENT = "BackupAgentCbtDriverDeployment"
    BACKUPAGENTCBTDRIVERREMOVAL = "BackupAgentCbtDriverRemoval"
    BACKUPAGENTDEPLOYMENT = "BackupAgentDeployment"
    BACKUPAGENTJOBCHANGE = "BackupAgentJobChange"
    BACKUPAGENTJOBREMOVAL = "BackupAgentJobRemoval"
    BACKUPAGENTJOBSTART = "BackupAgentJobStart"
    BACKUPAGENTJOBSTOP = "BackupAgentJobStop"
    BACKUPAGENTPATCH = "BackupAgentPatch"
    BACKUPAGENTREMOVAL = "BackupAgentRemoval"
    BACKUPAGENTSERVICERESTART = "BackupAgentServiceRestart"
    BACKUPAGENTSETTINGSCHANGE = "BackupAgentSettingsChange"
    BACKUPAGENTUIMODECHANGE = "BackupAgentUiModeChange"
    BACKUPAGENTUPGRADE = "BackupAgentUpgrade"
    BACKUPREPOSITORYRECONFIGURATION = "BackupRepositoryReconfiguration"
    CLOUDGATEWAYLISTUPDATE = "CloudGatewayListUpdate"
    COMPUTERREBOOT = "ComputerReboot"
    DATACOLLECTIONJOB = "DataCollectionJob"
    FAILOVERPLANEXECUTION = "FailoverPlanExecution"
    FILESDOWNLOAD = "FilesDownload"
    FILESUPLOAD = "FilesUpload"
    MANAGEMENTAGENTCONNECTIONATTEMPT = "ManagementAgentConnectionAttempt"
    MANAGEMENTAGENTCONNECTIONSETTINGSUPDATE = "ManagementAgentConnectionSettingsUpdate"
    MANAGEMENTAGENTMASTERROLEASSIGNMENT = "ManagementAgentMasterRoleAssignment"
    MANAGEMENTAGENTMASTERROLEREMOVAL = "ManagementAgentMasterRoleRemoval"
    MANAGEMENTAGENTPATCHDEPLOYMENT = "ManagementAgentPatchDeployment"
    MANAGEMENTAGENTREMOVAL = "ManagementAgentRemoval"
    MANAGEMENTAGENTTASKSTART = "ManagementAgentTaskStart"
    MANAGEMENTAGENTUPDATE = "ManagementAgentUpdate"
    MANAGEMENTAGENTVERSIONCHECK = "ManagementAgentVersionCheck"
    NEWBACKUPSERVERIDCREATION = "NewBackupServerIdCreation"
    REMOTECOMPUTERDISCOVERY = "RemoteComputerDiscovery"
    TASKSQUEUECLEANUP = "TasksQueueCleanUp"
    UNKNOWN = "Unknown"
    VBRDEPLOYMENT = "VBRDeployment"
    VBRISOPREDOWNLOAD = "VBRIsoPredownload"
    VBRJOBACTIONEXECUTION = "VBRJobActionExecution"
    VBRPATCHING = "VBRPatching"
    VBRUPGRADE = "VBRUpgrade"

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