1*e9cc1bc9SEd Tanous #pragma once 2*e9cc1bc9SEd Tanous #include <nlohmann/json.hpp> 3*e9cc1bc9SEd Tanous 4*e9cc1bc9SEd Tanous namespace operating_system 5*e9cc1bc9SEd Tanous { 6*e9cc1bc9SEd Tanous // clang-format off 7*e9cc1bc9SEd Tanous 8*e9cc1bc9SEd Tanous enum class OperatingSystemTypes{ 9*e9cc1bc9SEd Tanous Invalid, 10*e9cc1bc9SEd Tanous Linux, 11*e9cc1bc9SEd Tanous Windows, 12*e9cc1bc9SEd Tanous Solaris, 13*e9cc1bc9SEd Tanous HPUX, 14*e9cc1bc9SEd Tanous AIX, 15*e9cc1bc9SEd Tanous BSD, 16*e9cc1bc9SEd Tanous macOS, 17*e9cc1bc9SEd Tanous IBMi, 18*e9cc1bc9SEd Tanous Hypervisor, 19*e9cc1bc9SEd Tanous }; 20*e9cc1bc9SEd Tanous 21*e9cc1bc9SEd Tanous enum class VirtualMachineEngineTypes{ 22*e9cc1bc9SEd Tanous Invalid, 23*e9cc1bc9SEd Tanous VMwareESX, 24*e9cc1bc9SEd Tanous HyperV, 25*e9cc1bc9SEd Tanous Xen, 26*e9cc1bc9SEd Tanous KVM, 27*e9cc1bc9SEd Tanous QEMU, 28*e9cc1bc9SEd Tanous VirtualBox, 29*e9cc1bc9SEd Tanous PowerVM, 30*e9cc1bc9SEd Tanous }; 31*e9cc1bc9SEd Tanous 32*e9cc1bc9SEd Tanous enum class VirtualMachineImageTypes{ 33*e9cc1bc9SEd Tanous Invalid, 34*e9cc1bc9SEd Tanous Raw, 35*e9cc1bc9SEd Tanous OVF, 36*e9cc1bc9SEd Tanous OVA, 37*e9cc1bc9SEd Tanous VHD, 38*e9cc1bc9SEd Tanous VMDK, 39*e9cc1bc9SEd Tanous VDI, 40*e9cc1bc9SEd Tanous QCOW, 41*e9cc1bc9SEd Tanous QCOW2, 42*e9cc1bc9SEd Tanous }; 43*e9cc1bc9SEd Tanous 44*e9cc1bc9SEd Tanous enum class ContainerEngineTypes{ 45*e9cc1bc9SEd Tanous Invalid, 46*e9cc1bc9SEd Tanous Docker, 47*e9cc1bc9SEd Tanous containerd, 48*e9cc1bc9SEd Tanous CRIO, 49*e9cc1bc9SEd Tanous }; 50*e9cc1bc9SEd Tanous 51*e9cc1bc9SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(OperatingSystemTypes, { 52*e9cc1bc9SEd Tanous {OperatingSystemTypes::Invalid, "Invalid"}, 53*e9cc1bc9SEd Tanous {OperatingSystemTypes::Linux, "Linux"}, 54*e9cc1bc9SEd Tanous {OperatingSystemTypes::Windows, "Windows"}, 55*e9cc1bc9SEd Tanous {OperatingSystemTypes::Solaris, "Solaris"}, 56*e9cc1bc9SEd Tanous {OperatingSystemTypes::HPUX, "HPUX"}, 57*e9cc1bc9SEd Tanous {OperatingSystemTypes::AIX, "AIX"}, 58*e9cc1bc9SEd Tanous {OperatingSystemTypes::BSD, "BSD"}, 59*e9cc1bc9SEd Tanous {OperatingSystemTypes::macOS, "macOS"}, 60*e9cc1bc9SEd Tanous {OperatingSystemTypes::IBMi, "IBMi"}, 61*e9cc1bc9SEd Tanous {OperatingSystemTypes::Hypervisor, "Hypervisor"}, 62*e9cc1bc9SEd Tanous }); 63*e9cc1bc9SEd Tanous 64*e9cc1bc9SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(VirtualMachineEngineTypes, { 65*e9cc1bc9SEd Tanous {VirtualMachineEngineTypes::Invalid, "Invalid"}, 66*e9cc1bc9SEd Tanous {VirtualMachineEngineTypes::VMwareESX, "VMwareESX"}, 67*e9cc1bc9SEd Tanous {VirtualMachineEngineTypes::HyperV, "HyperV"}, 68*e9cc1bc9SEd Tanous {VirtualMachineEngineTypes::Xen, "Xen"}, 69*e9cc1bc9SEd Tanous {VirtualMachineEngineTypes::KVM, "KVM"}, 70*e9cc1bc9SEd Tanous {VirtualMachineEngineTypes::QEMU, "QEMU"}, 71*e9cc1bc9SEd Tanous {VirtualMachineEngineTypes::VirtualBox, "VirtualBox"}, 72*e9cc1bc9SEd Tanous {VirtualMachineEngineTypes::PowerVM, "PowerVM"}, 73*e9cc1bc9SEd Tanous }); 74*e9cc1bc9SEd Tanous 75*e9cc1bc9SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(VirtualMachineImageTypes, { 76*e9cc1bc9SEd Tanous {VirtualMachineImageTypes::Invalid, "Invalid"}, 77*e9cc1bc9SEd Tanous {VirtualMachineImageTypes::Raw, "Raw"}, 78*e9cc1bc9SEd Tanous {VirtualMachineImageTypes::OVF, "OVF"}, 79*e9cc1bc9SEd Tanous {VirtualMachineImageTypes::OVA, "OVA"}, 80*e9cc1bc9SEd Tanous {VirtualMachineImageTypes::VHD, "VHD"}, 81*e9cc1bc9SEd Tanous {VirtualMachineImageTypes::VMDK, "VMDK"}, 82*e9cc1bc9SEd Tanous {VirtualMachineImageTypes::VDI, "VDI"}, 83*e9cc1bc9SEd Tanous {VirtualMachineImageTypes::QCOW, "QCOW"}, 84*e9cc1bc9SEd Tanous {VirtualMachineImageTypes::QCOW2, "QCOW2"}, 85*e9cc1bc9SEd Tanous }); 86*e9cc1bc9SEd Tanous 87*e9cc1bc9SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ContainerEngineTypes, { 88*e9cc1bc9SEd Tanous {ContainerEngineTypes::Invalid, "Invalid"}, 89*e9cc1bc9SEd Tanous {ContainerEngineTypes::Docker, "Docker"}, 90*e9cc1bc9SEd Tanous {ContainerEngineTypes::containerd, "containerd"}, 91*e9cc1bc9SEd Tanous {ContainerEngineTypes::CRIO, "CRIO"}, 92*e9cc1bc9SEd Tanous }); 93*e9cc1bc9SEd Tanous 94*e9cc1bc9SEd Tanous } 95*e9cc1bc9SEd Tanous // clang-format on 96