1*0ec8b83dSEd Tanous #pragma once 2*0ec8b83dSEd Tanous #include <nlohmann/json.hpp> 3*0ec8b83dSEd Tanous 4*0ec8b83dSEd Tanous namespace computer_system 5*0ec8b83dSEd Tanous { 6*0ec8b83dSEd Tanous // clang-format off 7*0ec8b83dSEd Tanous 8*0ec8b83dSEd Tanous enum class BootSource{ 9*0ec8b83dSEd Tanous Invalid, 10*0ec8b83dSEd Tanous None, 11*0ec8b83dSEd Tanous Pxe, 12*0ec8b83dSEd Tanous Floppy, 13*0ec8b83dSEd Tanous Cd, 14*0ec8b83dSEd Tanous Usb, 15*0ec8b83dSEd Tanous Hdd, 16*0ec8b83dSEd Tanous BiosSetup, 17*0ec8b83dSEd Tanous Utilities, 18*0ec8b83dSEd Tanous Diags, 19*0ec8b83dSEd Tanous UefiShell, 20*0ec8b83dSEd Tanous UefiTarget, 21*0ec8b83dSEd Tanous SDCard, 22*0ec8b83dSEd Tanous UefiHttp, 23*0ec8b83dSEd Tanous RemoteDrive, 24*0ec8b83dSEd Tanous UefiBootNext, 25*0ec8b83dSEd Tanous Recovery, 26*0ec8b83dSEd Tanous }; 27*0ec8b83dSEd Tanous 28*0ec8b83dSEd Tanous enum class SystemType{ 29*0ec8b83dSEd Tanous Invalid, 30*0ec8b83dSEd Tanous Physical, 31*0ec8b83dSEd Tanous Virtual, 32*0ec8b83dSEd Tanous OS, 33*0ec8b83dSEd Tanous PhysicallyPartitioned, 34*0ec8b83dSEd Tanous VirtuallyPartitioned, 35*0ec8b83dSEd Tanous Composed, 36*0ec8b83dSEd Tanous DPU, 37*0ec8b83dSEd Tanous }; 38*0ec8b83dSEd Tanous 39*0ec8b83dSEd Tanous enum class IndicatorLED{ 40*0ec8b83dSEd Tanous Invalid, 41*0ec8b83dSEd Tanous Unknown, 42*0ec8b83dSEd Tanous Lit, 43*0ec8b83dSEd Tanous Blinking, 44*0ec8b83dSEd Tanous Off, 45*0ec8b83dSEd Tanous }; 46*0ec8b83dSEd Tanous 47*0ec8b83dSEd Tanous enum class PowerState{ 48*0ec8b83dSEd Tanous Invalid, 49*0ec8b83dSEd Tanous On, 50*0ec8b83dSEd Tanous Off, 51*0ec8b83dSEd Tanous PoweringOn, 52*0ec8b83dSEd Tanous PoweringOff, 53*0ec8b83dSEd Tanous }; 54*0ec8b83dSEd Tanous 55*0ec8b83dSEd Tanous enum class BootSourceOverrideEnabled{ 56*0ec8b83dSEd Tanous Invalid, 57*0ec8b83dSEd Tanous Disabled, 58*0ec8b83dSEd Tanous Once, 59*0ec8b83dSEd Tanous Continuous, 60*0ec8b83dSEd Tanous }; 61*0ec8b83dSEd Tanous 62*0ec8b83dSEd Tanous enum class MemoryMirroring{ 63*0ec8b83dSEd Tanous Invalid, 64*0ec8b83dSEd Tanous System, 65*0ec8b83dSEd Tanous DIMM, 66*0ec8b83dSEd Tanous Hybrid, 67*0ec8b83dSEd Tanous None, 68*0ec8b83dSEd Tanous }; 69*0ec8b83dSEd Tanous 70*0ec8b83dSEd Tanous enum class BootSourceOverrideMode{ 71*0ec8b83dSEd Tanous Invalid, 72*0ec8b83dSEd Tanous Legacy, 73*0ec8b83dSEd Tanous UEFI, 74*0ec8b83dSEd Tanous }; 75*0ec8b83dSEd Tanous 76*0ec8b83dSEd Tanous enum class InterfaceType{ 77*0ec8b83dSEd Tanous Invalid, 78*0ec8b83dSEd Tanous TPM1_2, 79*0ec8b83dSEd Tanous TPM2_0, 80*0ec8b83dSEd Tanous TCM1_0, 81*0ec8b83dSEd Tanous }; 82*0ec8b83dSEd Tanous 83*0ec8b83dSEd Tanous enum class HostingRole{ 84*0ec8b83dSEd Tanous Invalid, 85*0ec8b83dSEd Tanous ApplicationServer, 86*0ec8b83dSEd Tanous StorageServer, 87*0ec8b83dSEd Tanous Switch, 88*0ec8b83dSEd Tanous Appliance, 89*0ec8b83dSEd Tanous BareMetalServer, 90*0ec8b83dSEd Tanous VirtualMachineServer, 91*0ec8b83dSEd Tanous ContainerServer, 92*0ec8b83dSEd Tanous }; 93*0ec8b83dSEd Tanous 94*0ec8b83dSEd Tanous enum class InterfaceTypeSelection{ 95*0ec8b83dSEd Tanous Invalid, 96*0ec8b83dSEd Tanous None, 97*0ec8b83dSEd Tanous FirmwareUpdate, 98*0ec8b83dSEd Tanous BiosSetting, 99*0ec8b83dSEd Tanous OemMethod, 100*0ec8b83dSEd Tanous }; 101*0ec8b83dSEd Tanous 102*0ec8b83dSEd Tanous enum class WatchdogWarningActions{ 103*0ec8b83dSEd Tanous Invalid, 104*0ec8b83dSEd Tanous None, 105*0ec8b83dSEd Tanous DiagnosticInterrupt, 106*0ec8b83dSEd Tanous SMI, 107*0ec8b83dSEd Tanous MessagingInterrupt, 108*0ec8b83dSEd Tanous SCI, 109*0ec8b83dSEd Tanous OEM, 110*0ec8b83dSEd Tanous }; 111*0ec8b83dSEd Tanous 112*0ec8b83dSEd Tanous enum class WatchdogTimeoutActions{ 113*0ec8b83dSEd Tanous Invalid, 114*0ec8b83dSEd Tanous None, 115*0ec8b83dSEd Tanous ResetSystem, 116*0ec8b83dSEd Tanous PowerCycle, 117*0ec8b83dSEd Tanous PowerDown, 118*0ec8b83dSEd Tanous OEM, 119*0ec8b83dSEd Tanous }; 120*0ec8b83dSEd Tanous 121*0ec8b83dSEd Tanous enum class PowerRestorePolicyTypes{ 122*0ec8b83dSEd Tanous Invalid, 123*0ec8b83dSEd Tanous AlwaysOn, 124*0ec8b83dSEd Tanous AlwaysOff, 125*0ec8b83dSEd Tanous LastState, 126*0ec8b83dSEd Tanous }; 127*0ec8b83dSEd Tanous 128*0ec8b83dSEd Tanous enum class BootOrderTypes{ 129*0ec8b83dSEd Tanous Invalid, 130*0ec8b83dSEd Tanous BootOrder, 131*0ec8b83dSEd Tanous AliasBootOrder, 132*0ec8b83dSEd Tanous }; 133*0ec8b83dSEd Tanous 134*0ec8b83dSEd Tanous enum class AutomaticRetryConfig{ 135*0ec8b83dSEd Tanous Invalid, 136*0ec8b83dSEd Tanous Disabled, 137*0ec8b83dSEd Tanous RetryAttempts, 138*0ec8b83dSEd Tanous RetryAlways, 139*0ec8b83dSEd Tanous }; 140*0ec8b83dSEd Tanous 141*0ec8b83dSEd Tanous enum class BootProgressTypes{ 142*0ec8b83dSEd Tanous Invalid, 143*0ec8b83dSEd Tanous None, 144*0ec8b83dSEd Tanous PrimaryProcessorInitializationStarted, 145*0ec8b83dSEd Tanous BusInitializationStarted, 146*0ec8b83dSEd Tanous MemoryInitializationStarted, 147*0ec8b83dSEd Tanous SecondaryProcessorInitializationStarted, 148*0ec8b83dSEd Tanous PCIResourceConfigStarted, 149*0ec8b83dSEd Tanous SystemHardwareInitializationComplete, 150*0ec8b83dSEd Tanous SetupEntered, 151*0ec8b83dSEd Tanous OSBootStarted, 152*0ec8b83dSEd Tanous OSRunning, 153*0ec8b83dSEd Tanous OEM, 154*0ec8b83dSEd Tanous }; 155*0ec8b83dSEd Tanous 156*0ec8b83dSEd Tanous enum class GraphicalConnectTypesSupported{ 157*0ec8b83dSEd Tanous Invalid, 158*0ec8b83dSEd Tanous KVMIP, 159*0ec8b83dSEd Tanous OEM, 160*0ec8b83dSEd Tanous }; 161*0ec8b83dSEd Tanous 162*0ec8b83dSEd Tanous enum class TrustedModuleRequiredToBoot{ 163*0ec8b83dSEd Tanous Invalid, 164*0ec8b83dSEd Tanous Disabled, 165*0ec8b83dSEd Tanous Required, 166*0ec8b83dSEd Tanous }; 167*0ec8b83dSEd Tanous 168*0ec8b83dSEd Tanous enum class StopBootOnFault{ 169*0ec8b83dSEd Tanous Invalid, 170*0ec8b83dSEd Tanous Never, 171*0ec8b83dSEd Tanous AnyFault, 172*0ec8b83dSEd Tanous }; 173*0ec8b83dSEd Tanous 174*0ec8b83dSEd Tanous enum class PowerMode{ 175*0ec8b83dSEd Tanous Invalid, 176*0ec8b83dSEd Tanous MaximumPerformance, 177*0ec8b83dSEd Tanous BalancedPerformance, 178*0ec8b83dSEd Tanous PowerSaving, 179*0ec8b83dSEd Tanous Static, 180*0ec8b83dSEd Tanous OSControlled, 181*0ec8b83dSEd Tanous OEM, 182*0ec8b83dSEd Tanous }; 183*0ec8b83dSEd Tanous 184*0ec8b83dSEd Tanous enum class CompositionUseCase{ 185*0ec8b83dSEd Tanous Invalid, 186*0ec8b83dSEd Tanous ResourceBlockCapable, 187*0ec8b83dSEd Tanous ExpandableSystem, 188*0ec8b83dSEd Tanous }; 189*0ec8b83dSEd Tanous 190*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(BootSource, { 191*0ec8b83dSEd Tanous {BootSource::Invalid, "Invalid"}, 192*0ec8b83dSEd Tanous {BootSource::None, "None"}, 193*0ec8b83dSEd Tanous {BootSource::Pxe, "Pxe"}, 194*0ec8b83dSEd Tanous {BootSource::Floppy, "Floppy"}, 195*0ec8b83dSEd Tanous {BootSource::Cd, "Cd"}, 196*0ec8b83dSEd Tanous {BootSource::Usb, "Usb"}, 197*0ec8b83dSEd Tanous {BootSource::Hdd, "Hdd"}, 198*0ec8b83dSEd Tanous {BootSource::BiosSetup, "BiosSetup"}, 199*0ec8b83dSEd Tanous {BootSource::Utilities, "Utilities"}, 200*0ec8b83dSEd Tanous {BootSource::Diags, "Diags"}, 201*0ec8b83dSEd Tanous {BootSource::UefiShell, "UefiShell"}, 202*0ec8b83dSEd Tanous {BootSource::UefiTarget, "UefiTarget"}, 203*0ec8b83dSEd Tanous {BootSource::SDCard, "SDCard"}, 204*0ec8b83dSEd Tanous {BootSource::UefiHttp, "UefiHttp"}, 205*0ec8b83dSEd Tanous {BootSource::RemoteDrive, "RemoteDrive"}, 206*0ec8b83dSEd Tanous {BootSource::UefiBootNext, "UefiBootNext"}, 207*0ec8b83dSEd Tanous {BootSource::Recovery, "Recovery"}, 208*0ec8b83dSEd Tanous }); 209*0ec8b83dSEd Tanous 210*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SystemType, { 211*0ec8b83dSEd Tanous {SystemType::Invalid, "Invalid"}, 212*0ec8b83dSEd Tanous {SystemType::Physical, "Physical"}, 213*0ec8b83dSEd Tanous {SystemType::Virtual, "Virtual"}, 214*0ec8b83dSEd Tanous {SystemType::OS, "OS"}, 215*0ec8b83dSEd Tanous {SystemType::PhysicallyPartitioned, "PhysicallyPartitioned"}, 216*0ec8b83dSEd Tanous {SystemType::VirtuallyPartitioned, "VirtuallyPartitioned"}, 217*0ec8b83dSEd Tanous {SystemType::Composed, "Composed"}, 218*0ec8b83dSEd Tanous {SystemType::DPU, "DPU"}, 219*0ec8b83dSEd Tanous }); 220*0ec8b83dSEd Tanous 221*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(IndicatorLED, { 222*0ec8b83dSEd Tanous {IndicatorLED::Invalid, "Invalid"}, 223*0ec8b83dSEd Tanous {IndicatorLED::Unknown, "Unknown"}, 224*0ec8b83dSEd Tanous {IndicatorLED::Lit, "Lit"}, 225*0ec8b83dSEd Tanous {IndicatorLED::Blinking, "Blinking"}, 226*0ec8b83dSEd Tanous {IndicatorLED::Off, "Off"}, 227*0ec8b83dSEd Tanous }); 228*0ec8b83dSEd Tanous 229*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PowerState, { 230*0ec8b83dSEd Tanous {PowerState::Invalid, "Invalid"}, 231*0ec8b83dSEd Tanous {PowerState::On, "On"}, 232*0ec8b83dSEd Tanous {PowerState::Off, "Off"}, 233*0ec8b83dSEd Tanous {PowerState::PoweringOn, "PoweringOn"}, 234*0ec8b83dSEd Tanous {PowerState::PoweringOff, "PoweringOff"}, 235*0ec8b83dSEd Tanous }); 236*0ec8b83dSEd Tanous 237*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(BootSourceOverrideEnabled, { 238*0ec8b83dSEd Tanous {BootSourceOverrideEnabled::Invalid, "Invalid"}, 239*0ec8b83dSEd Tanous {BootSourceOverrideEnabled::Disabled, "Disabled"}, 240*0ec8b83dSEd Tanous {BootSourceOverrideEnabled::Once, "Once"}, 241*0ec8b83dSEd Tanous {BootSourceOverrideEnabled::Continuous, "Continuous"}, 242*0ec8b83dSEd Tanous }); 243*0ec8b83dSEd Tanous 244*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MemoryMirroring, { 245*0ec8b83dSEd Tanous {MemoryMirroring::Invalid, "Invalid"}, 246*0ec8b83dSEd Tanous {MemoryMirroring::System, "System"}, 247*0ec8b83dSEd Tanous {MemoryMirroring::DIMM, "DIMM"}, 248*0ec8b83dSEd Tanous {MemoryMirroring::Hybrid, "Hybrid"}, 249*0ec8b83dSEd Tanous {MemoryMirroring::None, "None"}, 250*0ec8b83dSEd Tanous }); 251*0ec8b83dSEd Tanous 252*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(BootSourceOverrideMode, { 253*0ec8b83dSEd Tanous {BootSourceOverrideMode::Invalid, "Invalid"}, 254*0ec8b83dSEd Tanous {BootSourceOverrideMode::Legacy, "Legacy"}, 255*0ec8b83dSEd Tanous {BootSourceOverrideMode::UEFI, "UEFI"}, 256*0ec8b83dSEd Tanous }); 257*0ec8b83dSEd Tanous 258*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(InterfaceType, { 259*0ec8b83dSEd Tanous {InterfaceType::Invalid, "Invalid"}, 260*0ec8b83dSEd Tanous {InterfaceType::TPM1_2, "TPM1_2"}, 261*0ec8b83dSEd Tanous {InterfaceType::TPM2_0, "TPM2_0"}, 262*0ec8b83dSEd Tanous {InterfaceType::TCM1_0, "TCM1_0"}, 263*0ec8b83dSEd Tanous }); 264*0ec8b83dSEd Tanous 265*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(HostingRole, { 266*0ec8b83dSEd Tanous {HostingRole::Invalid, "Invalid"}, 267*0ec8b83dSEd Tanous {HostingRole::ApplicationServer, "ApplicationServer"}, 268*0ec8b83dSEd Tanous {HostingRole::StorageServer, "StorageServer"}, 269*0ec8b83dSEd Tanous {HostingRole::Switch, "Switch"}, 270*0ec8b83dSEd Tanous {HostingRole::Appliance, "Appliance"}, 271*0ec8b83dSEd Tanous {HostingRole::BareMetalServer, "BareMetalServer"}, 272*0ec8b83dSEd Tanous {HostingRole::VirtualMachineServer, "VirtualMachineServer"}, 273*0ec8b83dSEd Tanous {HostingRole::ContainerServer, "ContainerServer"}, 274*0ec8b83dSEd Tanous }); 275*0ec8b83dSEd Tanous 276*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(InterfaceTypeSelection, { 277*0ec8b83dSEd Tanous {InterfaceTypeSelection::Invalid, "Invalid"}, 278*0ec8b83dSEd Tanous {InterfaceTypeSelection::None, "None"}, 279*0ec8b83dSEd Tanous {InterfaceTypeSelection::FirmwareUpdate, "FirmwareUpdate"}, 280*0ec8b83dSEd Tanous {InterfaceTypeSelection::BiosSetting, "BiosSetting"}, 281*0ec8b83dSEd Tanous {InterfaceTypeSelection::OemMethod, "OemMethod"}, 282*0ec8b83dSEd Tanous }); 283*0ec8b83dSEd Tanous 284*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(WatchdogWarningActions, { 285*0ec8b83dSEd Tanous {WatchdogWarningActions::Invalid, "Invalid"}, 286*0ec8b83dSEd Tanous {WatchdogWarningActions::None, "None"}, 287*0ec8b83dSEd Tanous {WatchdogWarningActions::DiagnosticInterrupt, "DiagnosticInterrupt"}, 288*0ec8b83dSEd Tanous {WatchdogWarningActions::SMI, "SMI"}, 289*0ec8b83dSEd Tanous {WatchdogWarningActions::MessagingInterrupt, "MessagingInterrupt"}, 290*0ec8b83dSEd Tanous {WatchdogWarningActions::SCI, "SCI"}, 291*0ec8b83dSEd Tanous {WatchdogWarningActions::OEM, "OEM"}, 292*0ec8b83dSEd Tanous }); 293*0ec8b83dSEd Tanous 294*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(WatchdogTimeoutActions, { 295*0ec8b83dSEd Tanous {WatchdogTimeoutActions::Invalid, "Invalid"}, 296*0ec8b83dSEd Tanous {WatchdogTimeoutActions::None, "None"}, 297*0ec8b83dSEd Tanous {WatchdogTimeoutActions::ResetSystem, "ResetSystem"}, 298*0ec8b83dSEd Tanous {WatchdogTimeoutActions::PowerCycle, "PowerCycle"}, 299*0ec8b83dSEd Tanous {WatchdogTimeoutActions::PowerDown, "PowerDown"}, 300*0ec8b83dSEd Tanous {WatchdogTimeoutActions::OEM, "OEM"}, 301*0ec8b83dSEd Tanous }); 302*0ec8b83dSEd Tanous 303*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PowerRestorePolicyTypes, { 304*0ec8b83dSEd Tanous {PowerRestorePolicyTypes::Invalid, "Invalid"}, 305*0ec8b83dSEd Tanous {PowerRestorePolicyTypes::AlwaysOn, "AlwaysOn"}, 306*0ec8b83dSEd Tanous {PowerRestorePolicyTypes::AlwaysOff, "AlwaysOff"}, 307*0ec8b83dSEd Tanous {PowerRestorePolicyTypes::LastState, "LastState"}, 308*0ec8b83dSEd Tanous }); 309*0ec8b83dSEd Tanous 310*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(BootOrderTypes, { 311*0ec8b83dSEd Tanous {BootOrderTypes::Invalid, "Invalid"}, 312*0ec8b83dSEd Tanous {BootOrderTypes::BootOrder, "BootOrder"}, 313*0ec8b83dSEd Tanous {BootOrderTypes::AliasBootOrder, "AliasBootOrder"}, 314*0ec8b83dSEd Tanous }); 315*0ec8b83dSEd Tanous 316*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AutomaticRetryConfig, { 317*0ec8b83dSEd Tanous {AutomaticRetryConfig::Invalid, "Invalid"}, 318*0ec8b83dSEd Tanous {AutomaticRetryConfig::Disabled, "Disabled"}, 319*0ec8b83dSEd Tanous {AutomaticRetryConfig::RetryAttempts, "RetryAttempts"}, 320*0ec8b83dSEd Tanous {AutomaticRetryConfig::RetryAlways, "RetryAlways"}, 321*0ec8b83dSEd Tanous }); 322*0ec8b83dSEd Tanous 323*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(BootProgressTypes, { 324*0ec8b83dSEd Tanous {BootProgressTypes::Invalid, "Invalid"}, 325*0ec8b83dSEd Tanous {BootProgressTypes::None, "None"}, 326*0ec8b83dSEd Tanous {BootProgressTypes::PrimaryProcessorInitializationStarted, "PrimaryProcessorInitializationStarted"}, 327*0ec8b83dSEd Tanous {BootProgressTypes::BusInitializationStarted, "BusInitializationStarted"}, 328*0ec8b83dSEd Tanous {BootProgressTypes::MemoryInitializationStarted, "MemoryInitializationStarted"}, 329*0ec8b83dSEd Tanous {BootProgressTypes::SecondaryProcessorInitializationStarted, "SecondaryProcessorInitializationStarted"}, 330*0ec8b83dSEd Tanous {BootProgressTypes::PCIResourceConfigStarted, "PCIResourceConfigStarted"}, 331*0ec8b83dSEd Tanous {BootProgressTypes::SystemHardwareInitializationComplete, "SystemHardwareInitializationComplete"}, 332*0ec8b83dSEd Tanous {BootProgressTypes::SetupEntered, "SetupEntered"}, 333*0ec8b83dSEd Tanous {BootProgressTypes::OSBootStarted, "OSBootStarted"}, 334*0ec8b83dSEd Tanous {BootProgressTypes::OSRunning, "OSRunning"}, 335*0ec8b83dSEd Tanous {BootProgressTypes::OEM, "OEM"}, 336*0ec8b83dSEd Tanous }); 337*0ec8b83dSEd Tanous 338*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(GraphicalConnectTypesSupported, { 339*0ec8b83dSEd Tanous {GraphicalConnectTypesSupported::Invalid, "Invalid"}, 340*0ec8b83dSEd Tanous {GraphicalConnectTypesSupported::KVMIP, "KVMIP"}, 341*0ec8b83dSEd Tanous {GraphicalConnectTypesSupported::OEM, "OEM"}, 342*0ec8b83dSEd Tanous }); 343*0ec8b83dSEd Tanous 344*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(TrustedModuleRequiredToBoot, { 345*0ec8b83dSEd Tanous {TrustedModuleRequiredToBoot::Invalid, "Invalid"}, 346*0ec8b83dSEd Tanous {TrustedModuleRequiredToBoot::Disabled, "Disabled"}, 347*0ec8b83dSEd Tanous {TrustedModuleRequiredToBoot::Required, "Required"}, 348*0ec8b83dSEd Tanous }); 349*0ec8b83dSEd Tanous 350*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(StopBootOnFault, { 351*0ec8b83dSEd Tanous {StopBootOnFault::Invalid, "Invalid"}, 352*0ec8b83dSEd Tanous {StopBootOnFault::Never, "Never"}, 353*0ec8b83dSEd Tanous {StopBootOnFault::AnyFault, "AnyFault"}, 354*0ec8b83dSEd Tanous }); 355*0ec8b83dSEd Tanous 356*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PowerMode, { 357*0ec8b83dSEd Tanous {PowerMode::Invalid, "Invalid"}, 358*0ec8b83dSEd Tanous {PowerMode::MaximumPerformance, "MaximumPerformance"}, 359*0ec8b83dSEd Tanous {PowerMode::BalancedPerformance, "BalancedPerformance"}, 360*0ec8b83dSEd Tanous {PowerMode::PowerSaving, "PowerSaving"}, 361*0ec8b83dSEd Tanous {PowerMode::Static, "Static"}, 362*0ec8b83dSEd Tanous {PowerMode::OSControlled, "OSControlled"}, 363*0ec8b83dSEd Tanous {PowerMode::OEM, "OEM"}, 364*0ec8b83dSEd Tanous }); 365*0ec8b83dSEd Tanous 366*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(CompositionUseCase, { 367*0ec8b83dSEd Tanous {CompositionUseCase::Invalid, "Invalid"}, 368*0ec8b83dSEd Tanous {CompositionUseCase::ResourceBlockCapable, "ResourceBlockCapable"}, 369*0ec8b83dSEd Tanous {CompositionUseCase::ExpandableSystem, "ExpandableSystem"}, 370*0ec8b83dSEd Tanous }); 371*0ec8b83dSEd Tanous 372*0ec8b83dSEd Tanous } 373*0ec8b83dSEd Tanous // clang-format on 374