xref: /openbmc/bmcweb/features/redfish/include/generated/enums/component_integrity.hpp (revision 40e9b92ec19acffb46f83a6e55b18974da5d708e)
1*40e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0
2*40e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors
3853c0dc5SEd Tanous #pragma once
4853c0dc5SEd Tanous #include <nlohmann/json.hpp>
5853c0dc5SEd Tanous 
6853c0dc5SEd Tanous namespace component_integrity
7853c0dc5SEd Tanous {
8853c0dc5SEd Tanous // clang-format off
9853c0dc5SEd Tanous 
10853c0dc5SEd Tanous enum class ComponentIntegrityType{
11853c0dc5SEd Tanous     Invalid,
12853c0dc5SEd Tanous     SPDM,
13853c0dc5SEd Tanous     TPM,
14dd5c81e9SGunnar Mills     TCM,
15dd5c81e9SGunnar Mills     TPCM,
16853c0dc5SEd Tanous     OEM,
17853c0dc5SEd Tanous };
18853c0dc5SEd Tanous 
19853c0dc5SEd Tanous enum class MeasurementSpecification{
20853c0dc5SEd Tanous     Invalid,
21853c0dc5SEd Tanous     DMTF,
22853c0dc5SEd Tanous };
23853c0dc5SEd Tanous 
24853c0dc5SEd Tanous enum class SPDMmeasurementSummaryType{
25853c0dc5SEd Tanous     Invalid,
26853c0dc5SEd Tanous     TCB,
27853c0dc5SEd Tanous     All,
28853c0dc5SEd Tanous };
29853c0dc5SEd Tanous 
30853c0dc5SEd Tanous enum class DMTFmeasurementTypes{
31853c0dc5SEd Tanous     Invalid,
32853c0dc5SEd Tanous     ImmutableROM,
33853c0dc5SEd Tanous     MutableFirmware,
34853c0dc5SEd Tanous     HardwareConfiguration,
35853c0dc5SEd Tanous     FirmwareConfiguration,
36853c0dc5SEd Tanous     MutableFirmwareVersion,
37853c0dc5SEd Tanous     MutableFirmwareSecurityVersionNumber,
38853c0dc5SEd Tanous     MeasurementManifest,
39853c0dc5SEd Tanous };
40853c0dc5SEd Tanous 
41853c0dc5SEd Tanous enum class VerificationStatus{
42853c0dc5SEd Tanous     Invalid,
43853c0dc5SEd Tanous     Success,
44853c0dc5SEd Tanous     Failed,
45853c0dc5SEd Tanous };
46853c0dc5SEd Tanous 
47853c0dc5SEd Tanous enum class SecureSessionType{
48853c0dc5SEd Tanous     Invalid,
49853c0dc5SEd Tanous     Plain,
50853c0dc5SEd Tanous     EncryptedAuthenticated,
51853c0dc5SEd Tanous     AuthenticatedOnly,
52853c0dc5SEd Tanous };
53853c0dc5SEd Tanous 
54853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ComponentIntegrityType, {
55853c0dc5SEd Tanous     {ComponentIntegrityType::Invalid, "Invalid"},
56853c0dc5SEd Tanous     {ComponentIntegrityType::SPDM, "SPDM"},
57853c0dc5SEd Tanous     {ComponentIntegrityType::TPM, "TPM"},
58dd5c81e9SGunnar Mills     {ComponentIntegrityType::TCM, "TCM"},
59dd5c81e9SGunnar Mills     {ComponentIntegrityType::TPCM, "TPCM"},
60853c0dc5SEd Tanous     {ComponentIntegrityType::OEM, "OEM"},
61853c0dc5SEd Tanous });
62853c0dc5SEd Tanous 
63853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MeasurementSpecification, {
64853c0dc5SEd Tanous     {MeasurementSpecification::Invalid, "Invalid"},
65853c0dc5SEd Tanous     {MeasurementSpecification::DMTF, "DMTF"},
66853c0dc5SEd Tanous });
67853c0dc5SEd Tanous 
68853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SPDMmeasurementSummaryType, {
69853c0dc5SEd Tanous     {SPDMmeasurementSummaryType::Invalid, "Invalid"},
70853c0dc5SEd Tanous     {SPDMmeasurementSummaryType::TCB, "TCB"},
71853c0dc5SEd Tanous     {SPDMmeasurementSummaryType::All, "All"},
72853c0dc5SEd Tanous });
73853c0dc5SEd Tanous 
74853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(DMTFmeasurementTypes, {
75853c0dc5SEd Tanous     {DMTFmeasurementTypes::Invalid, "Invalid"},
76853c0dc5SEd Tanous     {DMTFmeasurementTypes::ImmutableROM, "ImmutableROM"},
77853c0dc5SEd Tanous     {DMTFmeasurementTypes::MutableFirmware, "MutableFirmware"},
78853c0dc5SEd Tanous     {DMTFmeasurementTypes::HardwareConfiguration, "HardwareConfiguration"},
79853c0dc5SEd Tanous     {DMTFmeasurementTypes::FirmwareConfiguration, "FirmwareConfiguration"},
80853c0dc5SEd Tanous     {DMTFmeasurementTypes::MutableFirmwareVersion, "MutableFirmwareVersion"},
81853c0dc5SEd Tanous     {DMTFmeasurementTypes::MutableFirmwareSecurityVersionNumber, "MutableFirmwareSecurityVersionNumber"},
82853c0dc5SEd Tanous     {DMTFmeasurementTypes::MeasurementManifest, "MeasurementManifest"},
83853c0dc5SEd Tanous });
84853c0dc5SEd Tanous 
85853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(VerificationStatus, {
86853c0dc5SEd Tanous     {VerificationStatus::Invalid, "Invalid"},
87853c0dc5SEd Tanous     {VerificationStatus::Success, "Success"},
88853c0dc5SEd Tanous     {VerificationStatus::Failed, "Failed"},
89853c0dc5SEd Tanous });
90853c0dc5SEd Tanous 
91853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SecureSessionType, {
92853c0dc5SEd Tanous     {SecureSessionType::Invalid, "Invalid"},
93853c0dc5SEd Tanous     {SecureSessionType::Plain, "Plain"},
94853c0dc5SEd Tanous     {SecureSessionType::EncryptedAuthenticated, "EncryptedAuthenticated"},
95853c0dc5SEd Tanous     {SecureSessionType::AuthenticatedOnly, "AuthenticatedOnly"},
96853c0dc5SEd Tanous });
97853c0dc5SEd Tanous 
98853c0dc5SEd Tanous }
99853c0dc5SEd Tanous // clang-format on
100