xref: /openbmc/bmcweb/features/redfish/lib/trigger.hpp (revision 07148cf2fcaf7c255fe6a21acd4e7b2134fb1d92)
1*07148cf2SLukasz Kazmierczak #pragma once
2*07148cf2SLukasz Kazmierczak 
3*07148cf2SLukasz Kazmierczak #include "utils/collection.hpp"
4*07148cf2SLukasz Kazmierczak #include "utils/telemetry_utils.hpp"
5*07148cf2SLukasz Kazmierczak 
6*07148cf2SLukasz Kazmierczak #include <app.hpp>
7*07148cf2SLukasz Kazmierczak #include <registries/privilege_registry.hpp>
8*07148cf2SLukasz Kazmierczak 
9*07148cf2SLukasz Kazmierczak namespace redfish
10*07148cf2SLukasz Kazmierczak {
11*07148cf2SLukasz Kazmierczak namespace telemetry
12*07148cf2SLukasz Kazmierczak {
13*07148cf2SLukasz Kazmierczak constexpr const char* triggerInterface =
14*07148cf2SLukasz Kazmierczak     "xyz.openbmc_project.Telemetry.Trigger";
15*07148cf2SLukasz Kazmierczak constexpr const char* triggerUri = "/redfish/v1/TelemetryService/Triggers";
16*07148cf2SLukasz Kazmierczak 
17*07148cf2SLukasz Kazmierczak } // namespace telemetry
18*07148cf2SLukasz Kazmierczak 
19*07148cf2SLukasz Kazmierczak inline void requestRoutesTriggerCollection(App& app)
20*07148cf2SLukasz Kazmierczak {
21*07148cf2SLukasz Kazmierczak     BMCWEB_ROUTE(app, "/redfish/v1/TelemetryService/Triggers/")
22*07148cf2SLukasz Kazmierczak         .privileges(redfish::privileges::getTriggersCollection)
23*07148cf2SLukasz Kazmierczak         .methods(boost::beast::http::verb::get)(
24*07148cf2SLukasz Kazmierczak             [](const crow::Request&,
25*07148cf2SLukasz Kazmierczak                const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
26*07148cf2SLukasz Kazmierczak                 asyncResp->res.jsonValue["@odata.type"] =
27*07148cf2SLukasz Kazmierczak                     "#TriggersCollection.TriggersCollection";
28*07148cf2SLukasz Kazmierczak                 asyncResp->res.jsonValue["@odata.id"] =
29*07148cf2SLukasz Kazmierczak                     "/redfish/v1/TelemetryService/Triggers";
30*07148cf2SLukasz Kazmierczak                 asyncResp->res.jsonValue["Name"] = "Triggers Collection";
31*07148cf2SLukasz Kazmierczak                 const std::vector<const char*> interfaces{
32*07148cf2SLukasz Kazmierczak                     telemetry::triggerInterface};
33*07148cf2SLukasz Kazmierczak                 collection_util::getCollectionMembers(
34*07148cf2SLukasz Kazmierczak                     asyncResp, telemetry::triggerUri, interfaces,
35*07148cf2SLukasz Kazmierczak                     "/xyz/openbmc_project/Telemetry/Triggers/TelemetryService");
36*07148cf2SLukasz Kazmierczak             });
37*07148cf2SLukasz Kazmierczak }
38*07148cf2SLukasz Kazmierczak 
39*07148cf2SLukasz Kazmierczak } // namespace redfish
40