10ec8b83dSEd Tanous #pragma once 20ec8b83dSEd Tanous #include <nlohmann/json.hpp> 30ec8b83dSEd Tanous 40ec8b83dSEd Tanous namespace computer_system 50ec8b83dSEd Tanous { 60ec8b83dSEd Tanous // clang-format off 70ec8b83dSEd Tanous 80ec8b83dSEd Tanous enum class BootSource{ 90ec8b83dSEd Tanous Invalid, 100ec8b83dSEd Tanous None, 110ec8b83dSEd Tanous Pxe, 120ec8b83dSEd Tanous Floppy, 130ec8b83dSEd Tanous Cd, 140ec8b83dSEd Tanous Usb, 150ec8b83dSEd Tanous Hdd, 160ec8b83dSEd Tanous BiosSetup, 170ec8b83dSEd Tanous Utilities, 180ec8b83dSEd Tanous Diags, 190ec8b83dSEd Tanous UefiShell, 200ec8b83dSEd Tanous UefiTarget, 210ec8b83dSEd Tanous SDCard, 220ec8b83dSEd Tanous UefiHttp, 230ec8b83dSEd Tanous RemoteDrive, 240ec8b83dSEd Tanous UefiBootNext, 250ec8b83dSEd Tanous Recovery, 260ec8b83dSEd Tanous }; 270ec8b83dSEd Tanous 280ec8b83dSEd Tanous enum class SystemType{ 290ec8b83dSEd Tanous Invalid, 300ec8b83dSEd Tanous Physical, 310ec8b83dSEd Tanous Virtual, 320ec8b83dSEd Tanous OS, 330ec8b83dSEd Tanous PhysicallyPartitioned, 340ec8b83dSEd Tanous VirtuallyPartitioned, 350ec8b83dSEd Tanous Composed, 360ec8b83dSEd Tanous DPU, 370ec8b83dSEd Tanous }; 380ec8b83dSEd Tanous 390ec8b83dSEd Tanous enum class IndicatorLED{ 400ec8b83dSEd Tanous Invalid, 410ec8b83dSEd Tanous Unknown, 420ec8b83dSEd Tanous Lit, 430ec8b83dSEd Tanous Blinking, 440ec8b83dSEd Tanous Off, 450ec8b83dSEd Tanous }; 460ec8b83dSEd Tanous 470ec8b83dSEd Tanous enum class BootSourceOverrideEnabled{ 480ec8b83dSEd Tanous Invalid, 490ec8b83dSEd Tanous Disabled, 500ec8b83dSEd Tanous Once, 510ec8b83dSEd Tanous Continuous, 520ec8b83dSEd Tanous }; 530ec8b83dSEd Tanous 540ec8b83dSEd Tanous enum class MemoryMirroring{ 550ec8b83dSEd Tanous Invalid, 560ec8b83dSEd Tanous System, 570ec8b83dSEd Tanous DIMM, 580ec8b83dSEd Tanous Hybrid, 590ec8b83dSEd Tanous None, 600ec8b83dSEd Tanous }; 610ec8b83dSEd Tanous 620ec8b83dSEd Tanous enum class BootSourceOverrideMode{ 630ec8b83dSEd Tanous Invalid, 640ec8b83dSEd Tanous Legacy, 650ec8b83dSEd Tanous UEFI, 660ec8b83dSEd Tanous }; 670ec8b83dSEd Tanous 680ec8b83dSEd Tanous enum class InterfaceType{ 690ec8b83dSEd Tanous Invalid, 700ec8b83dSEd Tanous TPM1_2, 710ec8b83dSEd Tanous TPM2_0, 720ec8b83dSEd Tanous TCM1_0, 730ec8b83dSEd Tanous }; 740ec8b83dSEd Tanous 750ec8b83dSEd Tanous enum class HostingRole{ 760ec8b83dSEd Tanous Invalid, 770ec8b83dSEd Tanous ApplicationServer, 780ec8b83dSEd Tanous StorageServer, 790ec8b83dSEd Tanous Switch, 800ec8b83dSEd Tanous Appliance, 810ec8b83dSEd Tanous BareMetalServer, 820ec8b83dSEd Tanous VirtualMachineServer, 830ec8b83dSEd Tanous ContainerServer, 840ec8b83dSEd Tanous }; 850ec8b83dSEd Tanous 860ec8b83dSEd Tanous enum class InterfaceTypeSelection{ 870ec8b83dSEd Tanous Invalid, 880ec8b83dSEd Tanous None, 890ec8b83dSEd Tanous FirmwareUpdate, 900ec8b83dSEd Tanous BiosSetting, 910ec8b83dSEd Tanous OemMethod, 920ec8b83dSEd Tanous }; 930ec8b83dSEd Tanous 940ec8b83dSEd Tanous enum class WatchdogWarningActions{ 950ec8b83dSEd Tanous Invalid, 960ec8b83dSEd Tanous None, 970ec8b83dSEd Tanous DiagnosticInterrupt, 980ec8b83dSEd Tanous SMI, 990ec8b83dSEd Tanous MessagingInterrupt, 1000ec8b83dSEd Tanous SCI, 1010ec8b83dSEd Tanous OEM, 1020ec8b83dSEd Tanous }; 1030ec8b83dSEd Tanous 1040ec8b83dSEd Tanous enum class WatchdogTimeoutActions{ 1050ec8b83dSEd Tanous Invalid, 1060ec8b83dSEd Tanous None, 1070ec8b83dSEd Tanous ResetSystem, 1080ec8b83dSEd Tanous PowerCycle, 1090ec8b83dSEd Tanous PowerDown, 1100ec8b83dSEd Tanous OEM, 1110ec8b83dSEd Tanous }; 1120ec8b83dSEd Tanous 1130ec8b83dSEd Tanous enum class PowerRestorePolicyTypes{ 1140ec8b83dSEd Tanous Invalid, 1150ec8b83dSEd Tanous AlwaysOn, 1160ec8b83dSEd Tanous AlwaysOff, 1170ec8b83dSEd Tanous LastState, 1180ec8b83dSEd Tanous }; 1190ec8b83dSEd Tanous 1200ec8b83dSEd Tanous enum class BootOrderTypes{ 1210ec8b83dSEd Tanous Invalid, 1220ec8b83dSEd Tanous BootOrder, 1230ec8b83dSEd Tanous AliasBootOrder, 1240ec8b83dSEd Tanous }; 1250ec8b83dSEd Tanous 1260ec8b83dSEd Tanous enum class AutomaticRetryConfig{ 1270ec8b83dSEd Tanous Invalid, 1280ec8b83dSEd Tanous Disabled, 1290ec8b83dSEd Tanous RetryAttempts, 1300ec8b83dSEd Tanous RetryAlways, 1310ec8b83dSEd Tanous }; 1320ec8b83dSEd Tanous 1330ec8b83dSEd Tanous enum class BootProgressTypes{ 1340ec8b83dSEd Tanous Invalid, 1350ec8b83dSEd Tanous None, 1360ec8b83dSEd Tanous PrimaryProcessorInitializationStarted, 1370ec8b83dSEd Tanous BusInitializationStarted, 1380ec8b83dSEd Tanous MemoryInitializationStarted, 1390ec8b83dSEd Tanous SecondaryProcessorInitializationStarted, 1400ec8b83dSEd Tanous PCIResourceConfigStarted, 1410ec8b83dSEd Tanous SystemHardwareInitializationComplete, 1420ec8b83dSEd Tanous SetupEntered, 1430ec8b83dSEd Tanous OSBootStarted, 1440ec8b83dSEd Tanous OSRunning, 1450ec8b83dSEd Tanous OEM, 1460ec8b83dSEd Tanous }; 1470ec8b83dSEd Tanous 1480ec8b83dSEd Tanous enum class GraphicalConnectTypesSupported{ 1490ec8b83dSEd Tanous Invalid, 1500ec8b83dSEd Tanous KVMIP, 1510ec8b83dSEd Tanous OEM, 1520ec8b83dSEd Tanous }; 1530ec8b83dSEd Tanous 1540ec8b83dSEd Tanous enum class TrustedModuleRequiredToBoot{ 1550ec8b83dSEd Tanous Invalid, 1560ec8b83dSEd Tanous Disabled, 1570ec8b83dSEd Tanous Required, 1580ec8b83dSEd Tanous }; 1590ec8b83dSEd Tanous 1600ec8b83dSEd Tanous enum class StopBootOnFault{ 1610ec8b83dSEd Tanous Invalid, 1620ec8b83dSEd Tanous Never, 1630ec8b83dSEd Tanous AnyFault, 1640ec8b83dSEd Tanous }; 1650ec8b83dSEd Tanous 1660ec8b83dSEd Tanous enum class PowerMode{ 1670ec8b83dSEd Tanous Invalid, 1680ec8b83dSEd Tanous MaximumPerformance, 1690ec8b83dSEd Tanous BalancedPerformance, 1700ec8b83dSEd Tanous PowerSaving, 1710ec8b83dSEd Tanous Static, 1720ec8b83dSEd Tanous OSControlled, 1730ec8b83dSEd Tanous OEM, 1740ec8b83dSEd Tanous }; 1750ec8b83dSEd Tanous 1760ec8b83dSEd Tanous enum class CompositionUseCase{ 1770ec8b83dSEd Tanous Invalid, 1780ec8b83dSEd Tanous ResourceBlockCapable, 1790ec8b83dSEd Tanous ExpandableSystem, 1800ec8b83dSEd Tanous }; 1810ec8b83dSEd Tanous 182a8d8f9d8SEd Tanous enum class KMIPCachePolicy{ 183a8d8f9d8SEd Tanous Invalid, 184a8d8f9d8SEd Tanous None, 185a8d8f9d8SEd Tanous AfterFirstUse, 186a8d8f9d8SEd Tanous }; 187a8d8f9d8SEd Tanous 188*e9cc1bc9SEd Tanous enum class DecommissionType{ 189*e9cc1bc9SEd Tanous Invalid, 190*e9cc1bc9SEd Tanous All, 191*e9cc1bc9SEd Tanous UserData, 192*e9cc1bc9SEd Tanous ManagerConfig, 193*e9cc1bc9SEd Tanous BIOSConfig, 194*e9cc1bc9SEd Tanous NetworkConfig, 195*e9cc1bc9SEd Tanous StorageConfig, 196*e9cc1bc9SEd Tanous Logs, 197*e9cc1bc9SEd Tanous }; 198*e9cc1bc9SEd Tanous 1990ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(BootSource, { 2000ec8b83dSEd Tanous {BootSource::Invalid, "Invalid"}, 2010ec8b83dSEd Tanous {BootSource::None, "None"}, 2020ec8b83dSEd Tanous {BootSource::Pxe, "Pxe"}, 2030ec8b83dSEd Tanous {BootSource::Floppy, "Floppy"}, 2040ec8b83dSEd Tanous {BootSource::Cd, "Cd"}, 2050ec8b83dSEd Tanous {BootSource::Usb, "Usb"}, 2060ec8b83dSEd Tanous {BootSource::Hdd, "Hdd"}, 2070ec8b83dSEd Tanous {BootSource::BiosSetup, "BiosSetup"}, 2080ec8b83dSEd Tanous {BootSource::Utilities, "Utilities"}, 2090ec8b83dSEd Tanous {BootSource::Diags, "Diags"}, 2100ec8b83dSEd Tanous {BootSource::UefiShell, "UefiShell"}, 2110ec8b83dSEd Tanous {BootSource::UefiTarget, "UefiTarget"}, 2120ec8b83dSEd Tanous {BootSource::SDCard, "SDCard"}, 2130ec8b83dSEd Tanous {BootSource::UefiHttp, "UefiHttp"}, 2140ec8b83dSEd Tanous {BootSource::RemoteDrive, "RemoteDrive"}, 2150ec8b83dSEd Tanous {BootSource::UefiBootNext, "UefiBootNext"}, 2160ec8b83dSEd Tanous {BootSource::Recovery, "Recovery"}, 2170ec8b83dSEd Tanous }); 2180ec8b83dSEd Tanous 2190ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SystemType, { 2200ec8b83dSEd Tanous {SystemType::Invalid, "Invalid"}, 2210ec8b83dSEd Tanous {SystemType::Physical, "Physical"}, 2220ec8b83dSEd Tanous {SystemType::Virtual, "Virtual"}, 2230ec8b83dSEd Tanous {SystemType::OS, "OS"}, 2240ec8b83dSEd Tanous {SystemType::PhysicallyPartitioned, "PhysicallyPartitioned"}, 2250ec8b83dSEd Tanous {SystemType::VirtuallyPartitioned, "VirtuallyPartitioned"}, 2260ec8b83dSEd Tanous {SystemType::Composed, "Composed"}, 2270ec8b83dSEd Tanous {SystemType::DPU, "DPU"}, 2280ec8b83dSEd Tanous }); 2290ec8b83dSEd Tanous 2300ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(IndicatorLED, { 2310ec8b83dSEd Tanous {IndicatorLED::Invalid, "Invalid"}, 2320ec8b83dSEd Tanous {IndicatorLED::Unknown, "Unknown"}, 2330ec8b83dSEd Tanous {IndicatorLED::Lit, "Lit"}, 2340ec8b83dSEd Tanous {IndicatorLED::Blinking, "Blinking"}, 2350ec8b83dSEd Tanous {IndicatorLED::Off, "Off"}, 2360ec8b83dSEd Tanous }); 2370ec8b83dSEd Tanous 2380ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(BootSourceOverrideEnabled, { 2390ec8b83dSEd Tanous {BootSourceOverrideEnabled::Invalid, "Invalid"}, 2400ec8b83dSEd Tanous {BootSourceOverrideEnabled::Disabled, "Disabled"}, 2410ec8b83dSEd Tanous {BootSourceOverrideEnabled::Once, "Once"}, 2420ec8b83dSEd Tanous {BootSourceOverrideEnabled::Continuous, "Continuous"}, 2430ec8b83dSEd Tanous }); 2440ec8b83dSEd Tanous 2450ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MemoryMirroring, { 2460ec8b83dSEd Tanous {MemoryMirroring::Invalid, "Invalid"}, 2470ec8b83dSEd Tanous {MemoryMirroring::System, "System"}, 2480ec8b83dSEd Tanous {MemoryMirroring::DIMM, "DIMM"}, 2490ec8b83dSEd Tanous {MemoryMirroring::Hybrid, "Hybrid"}, 2500ec8b83dSEd Tanous {MemoryMirroring::None, "None"}, 2510ec8b83dSEd Tanous }); 2520ec8b83dSEd Tanous 2530ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(BootSourceOverrideMode, { 2540ec8b83dSEd Tanous {BootSourceOverrideMode::Invalid, "Invalid"}, 2550ec8b83dSEd Tanous {BootSourceOverrideMode::Legacy, "Legacy"}, 2560ec8b83dSEd Tanous {BootSourceOverrideMode::UEFI, "UEFI"}, 2570ec8b83dSEd Tanous }); 2580ec8b83dSEd Tanous 2590ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(InterfaceType, { 2600ec8b83dSEd Tanous {InterfaceType::Invalid, "Invalid"}, 2610ec8b83dSEd Tanous {InterfaceType::TPM1_2, "TPM1_2"}, 2620ec8b83dSEd Tanous {InterfaceType::TPM2_0, "TPM2_0"}, 2630ec8b83dSEd Tanous {InterfaceType::TCM1_0, "TCM1_0"}, 2640ec8b83dSEd Tanous }); 2650ec8b83dSEd Tanous 2660ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(HostingRole, { 2670ec8b83dSEd Tanous {HostingRole::Invalid, "Invalid"}, 2680ec8b83dSEd Tanous {HostingRole::ApplicationServer, "ApplicationServer"}, 2690ec8b83dSEd Tanous {HostingRole::StorageServer, "StorageServer"}, 2700ec8b83dSEd Tanous {HostingRole::Switch, "Switch"}, 2710ec8b83dSEd Tanous {HostingRole::Appliance, "Appliance"}, 2720ec8b83dSEd Tanous {HostingRole::BareMetalServer, "BareMetalServer"}, 2730ec8b83dSEd Tanous {HostingRole::VirtualMachineServer, "VirtualMachineServer"}, 2740ec8b83dSEd Tanous {HostingRole::ContainerServer, "ContainerServer"}, 2750ec8b83dSEd Tanous }); 2760ec8b83dSEd Tanous 2770ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(InterfaceTypeSelection, { 2780ec8b83dSEd Tanous {InterfaceTypeSelection::Invalid, "Invalid"}, 2790ec8b83dSEd Tanous {InterfaceTypeSelection::None, "None"}, 2800ec8b83dSEd Tanous {InterfaceTypeSelection::FirmwareUpdate, "FirmwareUpdate"}, 2810ec8b83dSEd Tanous {InterfaceTypeSelection::BiosSetting, "BiosSetting"}, 2820ec8b83dSEd Tanous {InterfaceTypeSelection::OemMethod, "OemMethod"}, 2830ec8b83dSEd Tanous }); 2840ec8b83dSEd Tanous 2850ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(WatchdogWarningActions, { 2860ec8b83dSEd Tanous {WatchdogWarningActions::Invalid, "Invalid"}, 2870ec8b83dSEd Tanous {WatchdogWarningActions::None, "None"}, 2880ec8b83dSEd Tanous {WatchdogWarningActions::DiagnosticInterrupt, "DiagnosticInterrupt"}, 2890ec8b83dSEd Tanous {WatchdogWarningActions::SMI, "SMI"}, 2900ec8b83dSEd Tanous {WatchdogWarningActions::MessagingInterrupt, "MessagingInterrupt"}, 2910ec8b83dSEd Tanous {WatchdogWarningActions::SCI, "SCI"}, 2920ec8b83dSEd Tanous {WatchdogWarningActions::OEM, "OEM"}, 2930ec8b83dSEd Tanous }); 2940ec8b83dSEd Tanous 2950ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(WatchdogTimeoutActions, { 2960ec8b83dSEd Tanous {WatchdogTimeoutActions::Invalid, "Invalid"}, 2970ec8b83dSEd Tanous {WatchdogTimeoutActions::None, "None"}, 2980ec8b83dSEd Tanous {WatchdogTimeoutActions::ResetSystem, "ResetSystem"}, 2990ec8b83dSEd Tanous {WatchdogTimeoutActions::PowerCycle, "PowerCycle"}, 3000ec8b83dSEd Tanous {WatchdogTimeoutActions::PowerDown, "PowerDown"}, 3010ec8b83dSEd Tanous {WatchdogTimeoutActions::OEM, "OEM"}, 3020ec8b83dSEd Tanous }); 3030ec8b83dSEd Tanous 3040ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PowerRestorePolicyTypes, { 3050ec8b83dSEd Tanous {PowerRestorePolicyTypes::Invalid, "Invalid"}, 3060ec8b83dSEd Tanous {PowerRestorePolicyTypes::AlwaysOn, "AlwaysOn"}, 3070ec8b83dSEd Tanous {PowerRestorePolicyTypes::AlwaysOff, "AlwaysOff"}, 3080ec8b83dSEd Tanous {PowerRestorePolicyTypes::LastState, "LastState"}, 3090ec8b83dSEd Tanous }); 3100ec8b83dSEd Tanous 3110ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(BootOrderTypes, { 3120ec8b83dSEd Tanous {BootOrderTypes::Invalid, "Invalid"}, 3130ec8b83dSEd Tanous {BootOrderTypes::BootOrder, "BootOrder"}, 3140ec8b83dSEd Tanous {BootOrderTypes::AliasBootOrder, "AliasBootOrder"}, 3150ec8b83dSEd Tanous }); 3160ec8b83dSEd Tanous 3170ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AutomaticRetryConfig, { 3180ec8b83dSEd Tanous {AutomaticRetryConfig::Invalid, "Invalid"}, 3190ec8b83dSEd Tanous {AutomaticRetryConfig::Disabled, "Disabled"}, 3200ec8b83dSEd Tanous {AutomaticRetryConfig::RetryAttempts, "RetryAttempts"}, 3210ec8b83dSEd Tanous {AutomaticRetryConfig::RetryAlways, "RetryAlways"}, 3220ec8b83dSEd Tanous }); 3230ec8b83dSEd Tanous 3240ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(BootProgressTypes, { 3250ec8b83dSEd Tanous {BootProgressTypes::Invalid, "Invalid"}, 3260ec8b83dSEd Tanous {BootProgressTypes::None, "None"}, 3270ec8b83dSEd Tanous {BootProgressTypes::PrimaryProcessorInitializationStarted, "PrimaryProcessorInitializationStarted"}, 3280ec8b83dSEd Tanous {BootProgressTypes::BusInitializationStarted, "BusInitializationStarted"}, 3290ec8b83dSEd Tanous {BootProgressTypes::MemoryInitializationStarted, "MemoryInitializationStarted"}, 3300ec8b83dSEd Tanous {BootProgressTypes::SecondaryProcessorInitializationStarted, "SecondaryProcessorInitializationStarted"}, 3310ec8b83dSEd Tanous {BootProgressTypes::PCIResourceConfigStarted, "PCIResourceConfigStarted"}, 3320ec8b83dSEd Tanous {BootProgressTypes::SystemHardwareInitializationComplete, "SystemHardwareInitializationComplete"}, 3330ec8b83dSEd Tanous {BootProgressTypes::SetupEntered, "SetupEntered"}, 3340ec8b83dSEd Tanous {BootProgressTypes::OSBootStarted, "OSBootStarted"}, 3350ec8b83dSEd Tanous {BootProgressTypes::OSRunning, "OSRunning"}, 3360ec8b83dSEd Tanous {BootProgressTypes::OEM, "OEM"}, 3370ec8b83dSEd Tanous }); 3380ec8b83dSEd Tanous 3390ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(GraphicalConnectTypesSupported, { 3400ec8b83dSEd Tanous {GraphicalConnectTypesSupported::Invalid, "Invalid"}, 3410ec8b83dSEd Tanous {GraphicalConnectTypesSupported::KVMIP, "KVMIP"}, 3420ec8b83dSEd Tanous {GraphicalConnectTypesSupported::OEM, "OEM"}, 3430ec8b83dSEd Tanous }); 3440ec8b83dSEd Tanous 3450ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(TrustedModuleRequiredToBoot, { 3460ec8b83dSEd Tanous {TrustedModuleRequiredToBoot::Invalid, "Invalid"}, 3470ec8b83dSEd Tanous {TrustedModuleRequiredToBoot::Disabled, "Disabled"}, 3480ec8b83dSEd Tanous {TrustedModuleRequiredToBoot::Required, "Required"}, 3490ec8b83dSEd Tanous }); 3500ec8b83dSEd Tanous 3510ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(StopBootOnFault, { 3520ec8b83dSEd Tanous {StopBootOnFault::Invalid, "Invalid"}, 3530ec8b83dSEd Tanous {StopBootOnFault::Never, "Never"}, 3540ec8b83dSEd Tanous {StopBootOnFault::AnyFault, "AnyFault"}, 3550ec8b83dSEd Tanous }); 3560ec8b83dSEd Tanous 3570ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PowerMode, { 3580ec8b83dSEd Tanous {PowerMode::Invalid, "Invalid"}, 3590ec8b83dSEd Tanous {PowerMode::MaximumPerformance, "MaximumPerformance"}, 3600ec8b83dSEd Tanous {PowerMode::BalancedPerformance, "BalancedPerformance"}, 3610ec8b83dSEd Tanous {PowerMode::PowerSaving, "PowerSaving"}, 3620ec8b83dSEd Tanous {PowerMode::Static, "Static"}, 3630ec8b83dSEd Tanous {PowerMode::OSControlled, "OSControlled"}, 3640ec8b83dSEd Tanous {PowerMode::OEM, "OEM"}, 3650ec8b83dSEd Tanous }); 3660ec8b83dSEd Tanous 3670ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(CompositionUseCase, { 3680ec8b83dSEd Tanous {CompositionUseCase::Invalid, "Invalid"}, 3690ec8b83dSEd Tanous {CompositionUseCase::ResourceBlockCapable, "ResourceBlockCapable"}, 3700ec8b83dSEd Tanous {CompositionUseCase::ExpandableSystem, "ExpandableSystem"}, 3710ec8b83dSEd Tanous }); 3720ec8b83dSEd Tanous 373a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(KMIPCachePolicy, { 374a8d8f9d8SEd Tanous {KMIPCachePolicy::Invalid, "Invalid"}, 375a8d8f9d8SEd Tanous {KMIPCachePolicy::None, "None"}, 376a8d8f9d8SEd Tanous {KMIPCachePolicy::AfterFirstUse, "AfterFirstUse"}, 377a8d8f9d8SEd Tanous }); 378a8d8f9d8SEd Tanous 379*e9cc1bc9SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(DecommissionType, { 380*e9cc1bc9SEd Tanous {DecommissionType::Invalid, "Invalid"}, 381*e9cc1bc9SEd Tanous {DecommissionType::All, "All"}, 382*e9cc1bc9SEd Tanous {DecommissionType::UserData, "UserData"}, 383*e9cc1bc9SEd Tanous {DecommissionType::ManagerConfig, "ManagerConfig"}, 384*e9cc1bc9SEd Tanous {DecommissionType::BIOSConfig, "BIOSConfig"}, 385*e9cc1bc9SEd Tanous {DecommissionType::NetworkConfig, "NetworkConfig"}, 386*e9cc1bc9SEd Tanous {DecommissionType::StorageConfig, "StorageConfig"}, 387*e9cc1bc9SEd Tanous {DecommissionType::Logs, "Logs"}, 388*e9cc1bc9SEd Tanous }); 389*e9cc1bc9SEd Tanous 3900ec8b83dSEd Tanous } 3910ec8b83dSEd Tanous // clang-format on 392