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