1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #pragma once 4 #include <nlohmann/json.hpp> 5 6 namespace certificate_enrollment 7 { 8 // clang-format off 9 10 enum class EnrollmentProtocolType{ 11 Invalid, 12 ACME, 13 SCEP, 14 OEM, 15 }; 16 17 enum class LastOperationType{ 18 Invalid, 19 Renew, 20 UpdateAcmeEmail, 21 }; 22 23 enum class OperationStatus{ 24 Invalid, 25 Success, 26 Failed, 27 InProgress, 28 Unknown, 29 }; 30 31 enum class ACMEChallengeType{ 32 Invalid, 33 Http01, 34 Dns01, 35 }; 36 37 NLOHMANN_JSON_SERIALIZE_ENUM(EnrollmentProtocolType, { 38 {EnrollmentProtocolType::Invalid, "Invalid"}, 39 {EnrollmentProtocolType::ACME, "ACME"}, 40 {EnrollmentProtocolType::SCEP, "SCEP"}, 41 {EnrollmentProtocolType::OEM, "OEM"}, 42 }); 43 44 NLOHMANN_JSON_SERIALIZE_ENUM(LastOperationType, { 45 {LastOperationType::Invalid, "Invalid"}, 46 {LastOperationType::Renew, "Renew"}, 47 {LastOperationType::UpdateAcmeEmail, "UpdateAcmeEmail"}, 48 }); 49 50 NLOHMANN_JSON_SERIALIZE_ENUM(OperationStatus, { 51 {OperationStatus::Invalid, "Invalid"}, 52 {OperationStatus::Success, "Success"}, 53 {OperationStatus::Failed, "Failed"}, 54 {OperationStatus::InProgress, "InProgress"}, 55 {OperationStatus::Unknown, "Unknown"}, 56 }); 57 58 NLOHMANN_JSON_SERIALIZE_ENUM(ACMEChallengeType, { 59 {ACMEChallengeType::Invalid, "Invalid"}, 60 {ACMEChallengeType::Http01, "Http01"}, 61 {ACMEChallengeType::Dns01, "Dns01"}, 62 }); 63 64 } 65 // clang-format on 66