xref: /openbmc/bmcweb/features/redfish/include/generated/enums/operating_system.hpp (revision 40e9b92ec19acffb46f83a6e55b18974da5d708e)
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