from enum import Enum


class EHostComponentType(str, Enum):
    AGENT = "Agent"
    AGENTSHAREDMGMTOBJECTS = "AgentSharedMgmtObjects"
    AGENTSQLLOCALDB = "AgentSqlLocalDB"
    AGENTSQLSYSCLRTYPES = "AgentSqlSysClrTypes"
    ANTIVIRUS = "Antivirus"
    APPBACKUPREPOSITORY = "AppBackupRepository"
    CDPAGENT = "CdpAgent"
    CDPFILTER = "CdpFilter"
    CDPSVC = "CdpSvc"
    CIFSGATEWAY = "CifsGateway"
    CLOUDGATEWAY = "CloudGateway"
    CLOUDMESSAGESVC = "CloudMessageSvc"
    CLOUDSVCINVOKER = "CloudSvcInvoker"
    CLOUDSVCREMOTING = "CloudSvcRemoting"
    DBPLUGINREDIST = "DbPluginRedist"
    DDBOOSTSDK = "DDBoostSdk"
    DISTRIBUTIONSVC = "DistributionSvc"
    GUESTCONTROL = "GuestControl"
    GUESTINTERACTIONPROXY = "GuestInteractionProxy"
    GUESTPROXYDEPENDENCIES = "GuestProxyDependencies"
    HVINTEGRATION = "HvIntegration"
    INSTALLERSVC = "InstallerSvc"
    MOUNTSERVERDEPENDENCIES = "MountServerDependencies"
    MOUNTTARGET = "MountTarget"
    NFSGATEWAY = "NfsGateway"
    OPENSSL3V13 = "OpenSSL3v13"
    PLATFORMCONVERTERSVC = "PlatformConverterSvc"
    PLUGINMSSQL = "PluginMsSql"
    PLUGINORACLERMAN = "PluginOracleRman"
    PSMANAGEMENTSVC = "PSManagementSvc"
    RESTOREPROXY = "RestoreProxy"
    SNAPDIFFV3 = "SnapDiffV3"
    STANDBYSVC = "StandBySvc"
    STOREONCECATALYSTSDK = "StoreOnceCatalystSdk"
    TAPEPROXY = "TapeProxy"
    TRANSPORTSVC = "TransportSvc"
    VALREDIST = "ValRedist"
    VAMREDIST = "VamRedist"
    VAUREDIST = "VauRedist"
    VAWREDIST = "VawRedist"
    VDDK = "Vddk"
    VPOWERNFS = "VPowerNFS"
    VSSHVSNAPSHOTPROVIDER = "VssHvSnapshotProvider"
    VSSINTEGRATION = "VssIntegration"
    WANACCELERATOR = "WanAccelerator"
    YNQ = "Ynq"

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