from enum import Enum


class InvoiceChargeCategory(str, Enum):
    CLOUDARCHIVETIERCONSUMEDSPACE = "CloudArchiveTierConsumedSpace"
    CLOUDBACKUPDATATRANSFEROUT = "CloudBackupDataTransferOut"
    CLOUDCAPACITYTIERCONSUMEDSPACE = "CloudCapacityTierConsumedSpace"
    CLOUDINSIDERPROTECTION = "CloudInsiderProtection"
    CLOUDPERFORMANCETIERCONSUMEDSPACE = "CloudPerformanceTierConsumedSpace"
    CLOUDREPLICATIONDATATRANSFEROUT = "CloudReplicationDataTransferOut"
    CLOUDREPOSITORYALLOCATEDSPACE = "CloudRepositoryAllocatedSpace"
    CLOUDREPOSITORYCONSUMEDSPACE = "CloudRepositoryConsumedSpace"
    CLOUDSERVERBACKUP = "CloudServerBackup"
    CLOUDVMBACKUP = "CloudVmBackup"
    CLOUDVMCDPREPLICA = "CloudVmCdpReplica"
    CLOUDVMREPLICA = "CloudVmReplica"
    CLOUDVMREPLICACOMPUTERESOURCES = "CloudVmReplicaComputeResources"
    CLOUDVMREPLICACONSUMEDMEMORY = "CloudVmReplicaConsumedMemory"
    CLOUDVMREPLICACONSUMEDSTORAGE = "CloudVmReplicaConsumedStorage"
    CLOUDWORKSTATIONBACKUP = "CloudWorkstationBackup"
    LICENTERPRISEPLUSVBRAPPLICATION = "LicEnterprisePlusVbrApplication"
    LICENTERPRISEPLUSVBRFILESHARE = "LicEnterprisePlusVbrFileShare"
    LICENTERPRISEPLUSVBROBJECTSTORAGE = "LicEnterprisePlusVbrObjectStorage"
    LICENTERPRISEPLUSVBRSERVER = "LicEnterprisePlusVbrServer"
    LICENTERPRISEPLUSVBRVM = "LicEnterprisePlusVbrVm"
    LICENTERPRISEPLUSVBRWORKSTATION = "LicEnterprisePlusVbrWorkstation"
    LICENTERPRISEVBRAPPLICATION = "LicEnterpriseVbrApplication"
    LICENTERPRISEVBRFILESHARE = "LicEnterpriseVbrFileShare"
    LICENTERPRISEVBROBJECTSTORAGE = "LicEnterpriseVbrObjectStorage"
    LICENTERPRISEVBRSERVER = "LicEnterpriseVbrServer"
    LICENTERPRISEVBRVM = "LicEnterpriseVbrVm"
    LICENTERPRISEVBRWORKSTATION = "LicEnterpriseVbrWorkstation"
    LICPUBLICCLOUDDATABASE = "LicPublicCloudDatabase"
    LICPUBLICCLOUDFILESHARE = "LicPublicCloudFileShare"
    LICPUBLICCLOUDVM = "LicPublicCloudVm"
    LICSTANDARDVBRAPPLICATION = "LicStandardVbrApplication"
    LICSTANDARDVBRFILESHARE = "LicStandardVbrFileShare"
    LICSTANDARDVBROBJECTSTORAGE = "LicStandardVbrObjectStorage"
    LICSTANDARDVBRSERVER = "LicStandardVbrServer"
    LICSTANDARDVBRVM = "LicStandardVbrVm"
    LICSTANDARDVBRWORKSTATION = "LicStandardVbrWorkstation"
    LICVB365USER = "LicVb365User"
    LICVCCBACKUPVM = "LicVccBackupVm"
    LICVCCREPLICAVM = "LicVccReplicaVm"
    LICVCCSERVER = "LicVccServer"
    LICVCCWORKSTATION = "LicVccWorkstation"
    LICVEEAMONEMONITOREDOBJECT = "LicVeeamOneMonitoredObject"
    LICVSPCSERVER = "LicVspcServer"
    LICVSPCWORKSTATION = "LicVspcWorkstation"
    LINUXOS = "LinuxOS"
    LONGTERMBACKUP = "LongTermBackup"
    MACOS = "MacOS"
    MANAGEDCDPVM = "ManagedCdpVm"
    MANAGEDCLOUDVM = "ManagedCloudVm"
    MANAGEDSERVER = "ManagedServer"
    MANAGEDSERVICES = "ManagedServices"
    MANAGEDVM = "ManagedVm"
    MANAGEDWORKSTATION = "ManagedWorkstation"
    MONITOREDSERVICES = "MonitoredServices"
    PUBLICCLOUDARCHIVESIZE = "PublicCloudArchiveSize"
    PUBLICCLOUDBACKUPSIZE = "PublicCloudBackupSize"
    PUBLICCLOUDDATABASE = "PublicCloudDatabase"
    PUBLICCLOUDFILESHARE = "PublicCloudFileShare"
    PUBLICCLOUDNETWORK = "PublicCloudNetwork"
    PUBLICCLOUDNETWORKBACKUPSERVICES = "PublicCloudNetworkBackupServices"
    SHORTTERMBACKUP = "ShortTermBackup"
    SOURCEAMOUNTOFDATA = "SourceAmountOfData"
    UNKNOWN = "Unknown"
    VB365ARCHIVESIZE = "Vb365ArchiveSize"
    VB365BACKUPSIZE = "Vb365BackupSize"
    VB365EDUCATIONALUSER = "Vb365EducationalUser"
    VB365REPOSITORYALLOCATEDSPACE = "Vb365RepositoryAllocatedSpace"
    VB365USER = "Vb365User"
    VBRREPOSITORYALLOCATEDSPACE = "VbrRepositoryAllocatedSpace"
    VBRREPOSITORYCONSUMEDSPACE = "VbrRepositoryConsumedSpace"
    WINDOWSDESKTOPOS = "WindowsDesktopOS"
    WINDOWSSERVEROS = "WindowsServerOS"

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