xref: /openbmc/bmcweb/redfish-core/include/generated/enums/power_distribution.hpp (revision 5ecf7b4e1bb6988dd3403fa80b723afbe2be30ae)
1 // SPDX-License-Identifier: Apache-2.0
2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
3 #pragma once
4 #include <nlohmann/json.hpp>
5 
6 namespace power_distribution
7 {
8 // clang-format off
9 
10 enum class PowerEquipmentType{
11     Invalid,
12     RackPDU,
13     FloorPDU,
14     ManualTransferSwitch,
15     AutomaticTransferSwitch,
16     Switchgear,
17     PowerShelf,
18     Bus,
19     BatteryShelf,
20 };
21 
22 enum class TransferSensitivityType{
23     Invalid,
24     High,
25     Medium,
26     Low,
27 };
28 
29 enum class ExportType{
30     Invalid,
31     Clone,
32     Replacement,
33 };
34 
35 enum class Component{
36     Invalid,
37     All,
38     Manager,
39     ManagerAccounts,
40     PowerDistribution,
41 };
42 
43 enum class ExportSecurity{
44     Invalid,
45     IncludeSensitiveData,
46     HashedDataOnly,
47     ExcludeSensitiveData,
48 };
49 
50 NLOHMANN_JSON_SERIALIZE_ENUM(PowerEquipmentType, {
51     {PowerEquipmentType::Invalid, "Invalid"},
52     {PowerEquipmentType::RackPDU, "RackPDU"},
53     {PowerEquipmentType::FloorPDU, "FloorPDU"},
54     {PowerEquipmentType::ManualTransferSwitch, "ManualTransferSwitch"},
55     {PowerEquipmentType::AutomaticTransferSwitch, "AutomaticTransferSwitch"},
56     {PowerEquipmentType::Switchgear, "Switchgear"},
57     {PowerEquipmentType::PowerShelf, "PowerShelf"},
58     {PowerEquipmentType::Bus, "Bus"},
59     {PowerEquipmentType::BatteryShelf, "BatteryShelf"},
60 });
61 
62 NLOHMANN_JSON_SERIALIZE_ENUM(TransferSensitivityType, {
63     {TransferSensitivityType::Invalid, "Invalid"},
64     {TransferSensitivityType::High, "High"},
65     {TransferSensitivityType::Medium, "Medium"},
66     {TransferSensitivityType::Low, "Low"},
67 });
68 
69 NLOHMANN_JSON_SERIALIZE_ENUM(ExportType, {
70     {ExportType::Invalid, "Invalid"},
71     {ExportType::Clone, "Clone"},
72     {ExportType::Replacement, "Replacement"},
73 });
74 
75 NLOHMANN_JSON_SERIALIZE_ENUM(Component, {
76     {Component::Invalid, "Invalid"},
77     {Component::All, "All"},
78     {Component::Manager, "Manager"},
79     {Component::ManagerAccounts, "ManagerAccounts"},
80     {Component::PowerDistribution, "PowerDistribution"},
81 });
82 
83 NLOHMANN_JSON_SERIALIZE_ENUM(ExportSecurity, {
84     {ExportSecurity::Invalid, "Invalid"},
85     {ExportSecurity::IncludeSensitiveData, "IncludeSensitiveData"},
86     {ExportSecurity::HashedDataOnly, "HashedDataOnly"},
87     {ExportSecurity::ExcludeSensitiveData, "ExcludeSensitiveData"},
88 });
89 
90 }
91 // clang-format on
92