1*88d16c9aSLewanczyk, Dawid /* 2*88d16c9aSLewanczyk, Dawid // Copyright (c) 2018 Intel Corporation 3*88d16c9aSLewanczyk, Dawid // 4*88d16c9aSLewanczyk, Dawid // Licensed under the Apache License, Version 2.0 (the "License"); 5*88d16c9aSLewanczyk, Dawid // you may not use this file except in compliance with the License. 6*88d16c9aSLewanczyk, Dawid // You may obtain a copy of the License at 7*88d16c9aSLewanczyk, Dawid // 8*88d16c9aSLewanczyk, Dawid // http://www.apache.org/licenses/LICENSE-2.0 9*88d16c9aSLewanczyk, Dawid // 10*88d16c9aSLewanczyk, Dawid // Unless required by applicable law or agreed to in writing, software 11*88d16c9aSLewanczyk, Dawid // distributed under the License is distributed on an "AS IS" BASIS, 12*88d16c9aSLewanczyk, Dawid // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*88d16c9aSLewanczyk, Dawid // See the License for the specific language governing permissions and 14*88d16c9aSLewanczyk, Dawid // limitations under the License. 15*88d16c9aSLewanczyk, Dawid */ 16*88d16c9aSLewanczyk, Dawid #pragma once 17*88d16c9aSLewanczyk, Dawid 18*88d16c9aSLewanczyk, Dawid #include "node.hpp" 19*88d16c9aSLewanczyk, Dawid 20*88d16c9aSLewanczyk, Dawid namespace redfish { 21*88d16c9aSLewanczyk, Dawid 22*88d16c9aSLewanczyk, Dawid class AccountService : public Node { 23*88d16c9aSLewanczyk, Dawid public: 24*88d16c9aSLewanczyk, Dawid template <typename CrowApp, typename PrivilegeProvider> 25*88d16c9aSLewanczyk, Dawid AccountService(CrowApp& app, PrivilegeProvider& provider) 26*88d16c9aSLewanczyk, Dawid : Node(app, provider, "#AccountService.v1_1_0.AccountService", 27*88d16c9aSLewanczyk, Dawid "/redfish/v1/AccountService/") { 28*88d16c9aSLewanczyk, Dawid nodeJson["@odata.id"] = "/redfish/v1/AccountService"; 29*88d16c9aSLewanczyk, Dawid nodeJson["@odata.type"] = "#AccountService.v1_1_0.AccountService"; 30*88d16c9aSLewanczyk, Dawid nodeJson["@odata.context"] = 31*88d16c9aSLewanczyk, Dawid "/redfish/v1/$metadata#AccountService.AccountService"; 32*88d16c9aSLewanczyk, Dawid nodeJson["Id"] = "AccountService"; 33*88d16c9aSLewanczyk, Dawid nodeJson["Description"] = "BMC User Accounts"; 34*88d16c9aSLewanczyk, Dawid nodeJson["Name"] = "Account Service"; 35*88d16c9aSLewanczyk, Dawid nodeJson["Status"]["State"] = "Enabled"; 36*88d16c9aSLewanczyk, Dawid nodeJson["Status"]["Health"] = "OK"; 37*88d16c9aSLewanczyk, Dawid nodeJson["Status"]["HealthRollup"] = "OK"; 38*88d16c9aSLewanczyk, Dawid nodeJson["ServiceEnabled"] = true; 39*88d16c9aSLewanczyk, Dawid nodeJson["MinPasswordLength"] = 1; 40*88d16c9aSLewanczyk, Dawid nodeJson["MaxPasswordLength"] = 20; 41*88d16c9aSLewanczyk, Dawid nodeJson["Accounts"]["@odata.id"] = "/redfish/v1/AccountService/Accounts"; 42*88d16c9aSLewanczyk, Dawid nodeJson["Roles"]["@odata.id"] = "/redfish/v1/AccountService/Roles"; 43*88d16c9aSLewanczyk, Dawid } 44*88d16c9aSLewanczyk, Dawid 45*88d16c9aSLewanczyk, Dawid private: 46*88d16c9aSLewanczyk, Dawid void doGet(crow::response& res, const crow::request& req, 47*88d16c9aSLewanczyk, Dawid const std::vector<std::string>& params) override { 48*88d16c9aSLewanczyk, Dawid res.json_value = nodeJson; 49*88d16c9aSLewanczyk, Dawid res.end(); 50*88d16c9aSLewanczyk, Dawid } 51*88d16c9aSLewanczyk, Dawid 52*88d16c9aSLewanczyk, Dawid nlohmann::json nodeJson; 53*88d16c9aSLewanczyk, Dawid }; 54*88d16c9aSLewanczyk, Dawid 55*88d16c9aSLewanczyk, Dawid } // namespace redfish 56