xref: /openbmc/bmcweb/features/redfish/include/generated/enums/metric_report_definition.hpp (revision 40e9b92ec19acffb46f83a6e55b18974da5d708e)
1*40e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0
2*40e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors
30ec8b83dSEd Tanous #pragma once
40ec8b83dSEd Tanous #include <nlohmann/json.hpp>
50ec8b83dSEd Tanous 
60ec8b83dSEd Tanous namespace metric_report_definition
70ec8b83dSEd Tanous {
80ec8b83dSEd Tanous // clang-format off
90ec8b83dSEd Tanous 
100ec8b83dSEd Tanous enum class MetricReportDefinitionType{
110ec8b83dSEd Tanous     Invalid,
120ec8b83dSEd Tanous     Periodic,
130ec8b83dSEd Tanous     OnChange,
140ec8b83dSEd Tanous     OnRequest,
150ec8b83dSEd Tanous };
160ec8b83dSEd Tanous 
170ec8b83dSEd Tanous enum class ReportActionsEnum{
180ec8b83dSEd Tanous     Invalid,
190ec8b83dSEd Tanous     LogToMetricReportsCollection,
200ec8b83dSEd Tanous     RedfishEvent,
210ec8b83dSEd Tanous };
220ec8b83dSEd Tanous 
230ec8b83dSEd Tanous enum class ReportUpdatesEnum{
240ec8b83dSEd Tanous     Invalid,
250ec8b83dSEd Tanous     Overwrite,
260ec8b83dSEd Tanous     AppendWrapsWhenFull,
270ec8b83dSEd Tanous     AppendStopsWhenFull,
280ec8b83dSEd Tanous     NewReport,
290ec8b83dSEd Tanous };
300ec8b83dSEd Tanous 
310ec8b83dSEd Tanous enum class CalculationAlgorithmEnum{
320ec8b83dSEd Tanous     Invalid,
330ec8b83dSEd Tanous     Average,
340ec8b83dSEd Tanous     Maximum,
350ec8b83dSEd Tanous     Minimum,
360ec8b83dSEd Tanous     Summation,
370ec8b83dSEd Tanous };
380ec8b83dSEd Tanous 
390ec8b83dSEd Tanous enum class CollectionTimeScope{
400ec8b83dSEd Tanous     Invalid,
410ec8b83dSEd Tanous     Point,
420ec8b83dSEd Tanous     Interval,
430ec8b83dSEd Tanous     StartupInterval,
440ec8b83dSEd Tanous };
450ec8b83dSEd Tanous 
460ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MetricReportDefinitionType, {
470ec8b83dSEd Tanous     {MetricReportDefinitionType::Invalid, "Invalid"},
480ec8b83dSEd Tanous     {MetricReportDefinitionType::Periodic, "Periodic"},
490ec8b83dSEd Tanous     {MetricReportDefinitionType::OnChange, "OnChange"},
500ec8b83dSEd Tanous     {MetricReportDefinitionType::OnRequest, "OnRequest"},
510ec8b83dSEd Tanous });
520ec8b83dSEd Tanous 
530ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ReportActionsEnum, {
540ec8b83dSEd Tanous     {ReportActionsEnum::Invalid, "Invalid"},
550ec8b83dSEd Tanous     {ReportActionsEnum::LogToMetricReportsCollection, "LogToMetricReportsCollection"},
560ec8b83dSEd Tanous     {ReportActionsEnum::RedfishEvent, "RedfishEvent"},
570ec8b83dSEd Tanous });
580ec8b83dSEd Tanous 
590ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ReportUpdatesEnum, {
600ec8b83dSEd Tanous     {ReportUpdatesEnum::Invalid, "Invalid"},
610ec8b83dSEd Tanous     {ReportUpdatesEnum::Overwrite, "Overwrite"},
620ec8b83dSEd Tanous     {ReportUpdatesEnum::AppendWrapsWhenFull, "AppendWrapsWhenFull"},
630ec8b83dSEd Tanous     {ReportUpdatesEnum::AppendStopsWhenFull, "AppendStopsWhenFull"},
640ec8b83dSEd Tanous     {ReportUpdatesEnum::NewReport, "NewReport"},
650ec8b83dSEd Tanous });
660ec8b83dSEd Tanous 
670ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(CalculationAlgorithmEnum, {
680ec8b83dSEd Tanous     {CalculationAlgorithmEnum::Invalid, "Invalid"},
690ec8b83dSEd Tanous     {CalculationAlgorithmEnum::Average, "Average"},
700ec8b83dSEd Tanous     {CalculationAlgorithmEnum::Maximum, "Maximum"},
710ec8b83dSEd Tanous     {CalculationAlgorithmEnum::Minimum, "Minimum"},
720ec8b83dSEd Tanous     {CalculationAlgorithmEnum::Summation, "Summation"},
730ec8b83dSEd Tanous });
740ec8b83dSEd Tanous 
750ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(CollectionTimeScope, {
760ec8b83dSEd Tanous     {CollectionTimeScope::Invalid, "Invalid"},
770ec8b83dSEd Tanous     {CollectionTimeScope::Point, "Point"},
780ec8b83dSEd Tanous     {CollectionTimeScope::Interval, "Interval"},
790ec8b83dSEd Tanous     {CollectionTimeScope::StartupInterval, "StartupInterval"},
800ec8b83dSEd Tanous });
810ec8b83dSEd Tanous 
820ec8b83dSEd Tanous }
830ec8b83dSEd Tanous // clang-format on
84