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