xref: /openbmc/bmcweb/features/redfish/src/error_messages.cpp (revision 6be832e2963e9d720dd95543358eca380c5e52d2)
1f4c4dcf4SKowalski, Kamil /*
2*6be832e2SEd Tanous Copyright (c) 2018 Intel Corporation
3*6be832e2SEd Tanous 
4*6be832e2SEd Tanous Licensed under the Apache License, Version 2.0 (the "License");
5*6be832e2SEd Tanous you may not use this file except in compliance with the License.
6*6be832e2SEd Tanous You may obtain a copy of the License at
7*6be832e2SEd Tanous 
8*6be832e2SEd Tanous       http://www.apache.org/licenses/LICENSE-2.0
9*6be832e2SEd Tanous 
10*6be832e2SEd Tanous Unless required by applicable law or agreed to in writing, software
11*6be832e2SEd Tanous distributed under the License is distributed on an "AS IS" BASIS,
12*6be832e2SEd Tanous WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*6be832e2SEd Tanous See the License for the specific language governing permissions and
14*6be832e2SEd Tanous limitations under the License.
15f4c4dcf4SKowalski, Kamil */
160442ef92SNan Zhou #include "error_messages.hpp"
179ea15c35SEd Tanous 
180442ef92SNan Zhou #include "http_response.hpp"
190442ef92SNan Zhou #include "logging.hpp"
200442ef92SNan Zhou #include "registries.hpp"
210442ef92SNan Zhou #include "registries/base_message_registry.hpp"
220442ef92SNan Zhou 
230442ef92SNan Zhou #include <boost/beast/http/field.hpp>
249ea15c35SEd Tanous #include <boost/beast/http/status.hpp>
254a7fbefdSEd Tanous #include <boost/url/url_view_base.hpp>
26faf100f9SEd Tanous #include <nlohmann/json.hpp>
27f4c4dcf4SKowalski, Kamil 
281668ce6dSEd Tanous #include <array>
290442ef92SNan Zhou #include <cstddef>
30f0b59af4SEd Tanous #include <cstdint>
31d85418e3SPatrick Williams #include <source_location>
320442ef92SNan Zhou #include <span>
330442ef92SNan Zhou #include <string>
34f0b59af4SEd Tanous #include <string_view>
350442ef92SNan Zhou #include <utility>
360442ef92SNan Zhou 
371abe55efSEd Tanous namespace redfish
381abe55efSEd Tanous {
391abe55efSEd Tanous 
401abe55efSEd Tanous namespace messages
411abe55efSEd Tanous {
42f4c4dcf4SKowalski, Kamil 
43f12894f8SJason M. Bills static void addMessageToErrorJson(nlohmann::json& target,
441abe55efSEd Tanous                                   const nlohmann::json& message)
451abe55efSEd Tanous {
46f4c4dcf4SKowalski, Kamil     auto& error = target["error"];
47f4c4dcf4SKowalski, Kamil 
481abe55efSEd Tanous     // If this is the first error message, fill in the information from the
491abe55efSEd Tanous     // first error message to the top level struct
501abe55efSEd Tanous     if (!error.is_object())
511abe55efSEd Tanous     {
52c074230bSJason M. Bills         auto messageIdIterator = message.find("MessageId");
53c074230bSJason M. Bills         if (messageIdIterator == message.end())
541abe55efSEd Tanous         {
5562598e31SEd Tanous             BMCWEB_LOG_CRITICAL(
5662598e31SEd Tanous                 "Attempt to add error message without MessageId");
57f4c4dcf4SKowalski, Kamil             return;
58f4c4dcf4SKowalski, Kamil         }
59f4c4dcf4SKowalski, Kamil 
60c074230bSJason M. Bills         auto messageFieldIterator = message.find("Message");
61c074230bSJason M. Bills         if (messageFieldIterator == message.end())
621abe55efSEd Tanous         {
6362598e31SEd Tanous             BMCWEB_LOG_CRITICAL("Attempt to add error message without Message");
64f4c4dcf4SKowalski, Kamil             return;
65f4c4dcf4SKowalski, Kamil         }
661476687dSEd Tanous         error["code"] = *messageIdIterator;
671476687dSEd Tanous         error["message"] = *messageFieldIterator;
681abe55efSEd Tanous     }
691abe55efSEd Tanous     else
701abe55efSEd Tanous     {
71f4c4dcf4SKowalski, Kamil         // More than 1 error occurred, so the message has to be generic
7255c7b7a2SEd Tanous         error["code"] = std::string(messageVersionPrefix) + "GeneralError";
73cc9139ecSJason M. Bills         error["message"] = "A general error has occurred. See Resolution for "
74cc9139ecSJason M. Bills                            "information on how to resolve the error.";
75f4c4dcf4SKowalski, Kamil     }
76f4c4dcf4SKowalski, Kamil 
773590bd1dSNan Zhou     // This check could technically be done in the default construction
78f4c4dcf4SKowalski, Kamil     // branch above, but because we need the pointer to the extended info field
79f4c4dcf4SKowalski, Kamil     // anyway, it's more efficient to do it here.
80c074230bSJason M. Bills     auto& extendedInfo = error[messages::messageAnnotation];
81c074230bSJason M. Bills     if (!extendedInfo.is_array())
821abe55efSEd Tanous     {
83c074230bSJason M. Bills         extendedInfo = nlohmann::json::array();
84f4c4dcf4SKowalski, Kamil     }
85f4c4dcf4SKowalski, Kamil 
86c074230bSJason M. Bills     extendedInfo.push_back(message);
87f4c4dcf4SKowalski, Kamil }
88f4c4dcf4SKowalski, Kamil 
893590bd1dSNan Zhou void moveErrorsToErrorJson(nlohmann::json& target, nlohmann::json& source)
903590bd1dSNan Zhou {
913590bd1dSNan Zhou     if (!source.is_object())
923590bd1dSNan Zhou     {
933590bd1dSNan Zhou         return;
943590bd1dSNan Zhou     }
953590bd1dSNan Zhou     auto errorIt = source.find("error");
963590bd1dSNan Zhou     if (errorIt == source.end())
973590bd1dSNan Zhou     {
983590bd1dSNan Zhou         // caller puts error message in root
993590bd1dSNan Zhou         messages::addMessageToErrorJson(target, source);
1003590bd1dSNan Zhou         source.clear();
1013590bd1dSNan Zhou         return;
1023590bd1dSNan Zhou     }
1033590bd1dSNan Zhou     auto extendedInfoIt = errorIt->find(messages::messageAnnotation);
1043590bd1dSNan Zhou     if (extendedInfoIt == errorIt->end())
1053590bd1dSNan Zhou     {
1063590bd1dSNan Zhou         return;
1073590bd1dSNan Zhou     }
1083590bd1dSNan Zhou     const nlohmann::json::array_t* extendedInfo =
1093590bd1dSNan Zhou         (*extendedInfoIt).get_ptr<const nlohmann::json::array_t*>();
1103590bd1dSNan Zhou     if (extendedInfo == nullptr)
1113590bd1dSNan Zhou     {
1123590bd1dSNan Zhou         source.erase(errorIt);
1133590bd1dSNan Zhou         return;
1143590bd1dSNan Zhou     }
1153590bd1dSNan Zhou     for (const nlohmann::json& message : *extendedInfo)
1163590bd1dSNan Zhou     {
1173590bd1dSNan Zhou         addMessageToErrorJson(target, message);
1183590bd1dSNan Zhou     }
1193590bd1dSNan Zhou     source.erase(errorIt);
1203590bd1dSNan Zhou }
1213590bd1dSNan Zhou 
122f12894f8SJason M. Bills static void addMessageToJsonRoot(nlohmann::json& target,
123f12894f8SJason M. Bills                                  const nlohmann::json& message)
1241abe55efSEd Tanous {
1251abe55efSEd Tanous     if (!target[messages::messageAnnotation].is_array())
1261abe55efSEd Tanous     {
127f4c4dcf4SKowalski, Kamil         // Force object to be an array
12855c7b7a2SEd Tanous         target[messages::messageAnnotation] = nlohmann::json::array();
129f4c4dcf4SKowalski, Kamil     }
130f4c4dcf4SKowalski, Kamil 
13155c7b7a2SEd Tanous     target[messages::messageAnnotation].push_back(message);
132f4c4dcf4SKowalski, Kamil }
133f4c4dcf4SKowalski, Kamil 
134f12894f8SJason M. Bills static void addMessageToJson(nlohmann::json& target,
135f12894f8SJason M. Bills                              const nlohmann::json& message,
1361668ce6dSEd Tanous                              std::string_view fieldPath)
1371abe55efSEd Tanous {
1381668ce6dSEd Tanous     std::string extendedInfo(fieldPath);
1391668ce6dSEd Tanous     extendedInfo += messages::messageAnnotation;
140f4c4dcf4SKowalski, Kamil 
1411668ce6dSEd Tanous     nlohmann::json& field = target[extendedInfo];
1421668ce6dSEd Tanous     if (!field.is_array())
1431abe55efSEd Tanous     {
144f4c4dcf4SKowalski, Kamil         // Force object to be an array
1451668ce6dSEd Tanous         field = nlohmann::json::array();
146f4c4dcf4SKowalski, Kamil     }
147f4c4dcf4SKowalski, Kamil 
148f4c4dcf4SKowalski, Kamil     // Object exists and it is an array so we can just push in the message
1491668ce6dSEd Tanous     field.push_back(message);
150f4c4dcf4SKowalski, Kamil }
151f4c4dcf4SKowalski, Kamil 
152f7725d79SEd Tanous static nlohmann::json getLog(redfish::registries::base::Index name,
153b6cd31e1SEd Tanous                              std::span<const std::string_view> args)
154b6cd31e1SEd Tanous {
155b6cd31e1SEd Tanous     size_t index = static_cast<size_t>(name);
156fffb8c1fSEd Tanous     if (index >= redfish::registries::base::registry.size())
157b6cd31e1SEd Tanous     {
158b6cd31e1SEd Tanous         return {};
159b6cd31e1SEd Tanous     }
16065e4f1f7SEd Tanous     return getLogFromRegistry(redfish::registries::base::header,
16165e4f1f7SEd Tanous                               redfish::registries::base::registry, index, args);
162b6cd31e1SEd Tanous }
163b6cd31e1SEd Tanous 
164f4c4dcf4SKowalski, Kamil /**
165f4c4dcf4SKowalski, Kamil  * @internal
166f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceInUse message into JSON
167f4c4dcf4SKowalski, Kamil  *
168f4c4dcf4SKowalski, Kamil  * See header file for more information
169f4c4dcf4SKowalski, Kamil  * @endinternal
170f4c4dcf4SKowalski, Kamil  */
171d9fcfcc1SEd Tanous nlohmann::json resourceInUse()
1721abe55efSEd Tanous {
173fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceInUse, {});
174b5c07418SJames Feist }
175b5c07418SJames Feist 
176b5c07418SJames Feist void resourceInUse(crow::Response& res)
177b5c07418SJames Feist {
178b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
179b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceInUse());
180f4c4dcf4SKowalski, Kamil }
181f4c4dcf4SKowalski, Kamil 
182f4c4dcf4SKowalski, Kamil /**
183f4c4dcf4SKowalski, Kamil  * @internal
184f4c4dcf4SKowalski, Kamil  * @brief Formats MalformedJSON message into JSON
185f4c4dcf4SKowalski, Kamil  *
186f4c4dcf4SKowalski, Kamil  * See header file for more information
187f4c4dcf4SKowalski, Kamil  * @endinternal
188f4c4dcf4SKowalski, Kamil  */
189d9fcfcc1SEd Tanous nlohmann::json malformedJSON()
1901abe55efSEd Tanous {
191fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::malformedJSON, {});
192b5c07418SJames Feist }
193b5c07418SJames Feist 
194b5c07418SJames Feist void malformedJSON(crow::Response& res)
195b5c07418SJames Feist {
196b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
197b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, malformedJSON());
198f4c4dcf4SKowalski, Kamil }
199f4c4dcf4SKowalski, Kamil 
200f4c4dcf4SKowalski, Kamil /**
201f4c4dcf4SKowalski, Kamil  * @internal
202f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceMissingAtURI message into JSON
203f4c4dcf4SKowalski, Kamil  *
204f4c4dcf4SKowalski, Kamil  * See header file for more information
205f4c4dcf4SKowalski, Kamil  * @endinternal
206f4c4dcf4SKowalski, Kamil  */
2074a7fbefdSEd Tanous nlohmann::json resourceMissingAtURI(const boost::urls::url_view_base& arg1)
2081abe55efSEd Tanous {
209079360aeSEd Tanous     std::array<std::string_view, 1> args{arg1.buffer()};
210fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceMissingAtURI, args);
211b5c07418SJames Feist }
212b5c07418SJames Feist 
2134a7fbefdSEd Tanous void resourceMissingAtURI(crow::Response& res,
2144a7fbefdSEd Tanous                           const boost::urls::url_view_base& arg1)
215b5c07418SJames Feist {
216b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
217b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceMissingAtURI(arg1));
218f4c4dcf4SKowalski, Kamil }
219f4c4dcf4SKowalski, Kamil 
220f4c4dcf4SKowalski, Kamil /**
221f4c4dcf4SKowalski, Kamil  * @internal
222f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterValueFormatError message into JSON
223f4c4dcf4SKowalski, Kamil  *
224f4c4dcf4SKowalski, Kamil  * See header file for more information
225f4c4dcf4SKowalski, Kamil  * @endinternal
226f4c4dcf4SKowalski, Kamil  */
227bd79bce8SPatrick Williams nlohmann::json actionParameterValueFormatError(
228bd79bce8SPatrick Williams     const nlohmann::json& arg1, std::string_view arg2, std::string_view arg3)
2291abe55efSEd Tanous {
230bd79bce8SPatrick Williams     std::string arg1Str =
231bd79bce8SPatrick Williams         arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
232fffb8c1fSEd Tanous     return getLog(
233fffb8c1fSEd Tanous         redfish::registries::base::Index::actionParameterValueFormatError,
23495b3ad73SEd Tanous         std::to_array<std::string_view>({arg1Str, arg2, arg3}));
235b5c07418SJames Feist }
236b5c07418SJames Feist 
237bd79bce8SPatrick Williams void actionParameterValueFormatError(
238bd79bce8SPatrick Williams     crow::Response& res, const nlohmann::json& arg1, std::string_view arg2,
2391668ce6dSEd Tanous     std::string_view arg3)
240b5c07418SJames Feist {
241b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
242b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
243b5c07418SJames Feist                           actionParameterValueFormatError(arg1, arg2, arg3));
244f4c4dcf4SKowalski, Kamil }
245f4c4dcf4SKowalski, Kamil 
246f4c4dcf4SKowalski, Kamil /**
247f4c4dcf4SKowalski, Kamil  * @internal
2484ef82a15SAlex Schendel  * @brief Formats ActionParameterValueNotInList message into JSON
2494ef82a15SAlex Schendel  *
2504ef82a15SAlex Schendel  * See header file for more information
2514ef82a15SAlex Schendel  * @endinternal
2524ef82a15SAlex Schendel  */
253bd79bce8SPatrick Williams nlohmann::json actionParameterValueNotInList(
254bd79bce8SPatrick Williams     std::string_view arg1, std::string_view arg2, std::string_view arg3)
2554ef82a15SAlex Schendel {
2564ef82a15SAlex Schendel     return getLog(
2574ef82a15SAlex Schendel         redfish::registries::base::Index::actionParameterValueNotInList,
2584ef82a15SAlex Schendel         std::to_array({arg1, arg2, arg3}));
2594ef82a15SAlex Schendel }
2604ef82a15SAlex Schendel 
2614ef82a15SAlex Schendel void actionParameterValueNotInList(crow::Response& res, std::string_view arg1,
2624ef82a15SAlex Schendel                                    std::string_view arg2, std::string_view arg3)
2634ef82a15SAlex Schendel {
2644ef82a15SAlex Schendel     res.result(boost::beast::http::status::bad_request);
2654ef82a15SAlex Schendel     addMessageToErrorJson(res.jsonValue,
2664ef82a15SAlex Schendel                           actionParameterValueNotInList(arg1, arg2, arg3));
2674ef82a15SAlex Schendel }
2684ef82a15SAlex Schendel 
2694ef82a15SAlex Schendel /**
2704ef82a15SAlex Schendel  * @internal
271f4c4dcf4SKowalski, Kamil  * @brief Formats InternalError message into JSON
272f4c4dcf4SKowalski, Kamil  *
273f4c4dcf4SKowalski, Kamil  * See header file for more information
274f4c4dcf4SKowalski, Kamil  * @endinternal
275f4c4dcf4SKowalski, Kamil  */
276d9fcfcc1SEd Tanous nlohmann::json internalError()
2771abe55efSEd Tanous {
278fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::internalError, {});
279b5c07418SJames Feist }
280b5c07418SJames Feist 
281d85418e3SPatrick Williams void internalError(crow::Response& res, const std::source_location location)
282b5c07418SJames Feist {
28362598e31SEd Tanous     BMCWEB_LOG_CRITICAL("Internal Error {}({}:{}) `{}`: ", location.file_name(),
28462598e31SEd Tanous                         location.line(), location.column(),
28562598e31SEd Tanous                         location.function_name());
286b5c07418SJames Feist     res.result(boost::beast::http::status::internal_server_error);
287b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, internalError());
288f12894f8SJason M. Bills }
289f12894f8SJason M. Bills 
290f12894f8SJason M. Bills /**
291f12894f8SJason M. Bills  * @internal
292f4c4dcf4SKowalski, Kamil  * @brief Formats UnrecognizedRequestBody message into JSON
293f4c4dcf4SKowalski, Kamil  *
294f4c4dcf4SKowalski, Kamil  * See header file for more information
295f4c4dcf4SKowalski, Kamil  * @endinternal
296f4c4dcf4SKowalski, Kamil  */
297d9fcfcc1SEd Tanous nlohmann::json unrecognizedRequestBody()
2981abe55efSEd Tanous {
299fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::unrecognizedRequestBody,
300fffb8c1fSEd Tanous                   {});
301b5c07418SJames Feist }
302b5c07418SJames Feist 
303b5c07418SJames Feist void unrecognizedRequestBody(crow::Response& res)
304b5c07418SJames Feist {
305b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
306b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, unrecognizedRequestBody());
307f4c4dcf4SKowalski, Kamil }
308f4c4dcf4SKowalski, Kamil 
309f4c4dcf4SKowalski, Kamil /**
310f4c4dcf4SKowalski, Kamil  * @internal
311f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceAtUriUnauthorized message into JSON
312f4c4dcf4SKowalski, Kamil  *
313f4c4dcf4SKowalski, Kamil  * See header file for more information
314f4c4dcf4SKowalski, Kamil  * @endinternal
315f4c4dcf4SKowalski, Kamil  */
3164a7fbefdSEd Tanous nlohmann::json resourceAtUriUnauthorized(const boost::urls::url_view_base& arg1,
3171668ce6dSEd Tanous                                          std::string_view arg2)
3181abe55efSEd Tanous {
319079360aeSEd Tanous     return getLog(redfish::registries::base::Index::resourceAtUriUnauthorized,
320079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer(), arg2}));
321b5c07418SJames Feist }
322b5c07418SJames Feist 
3234a7fbefdSEd Tanous void resourceAtUriUnauthorized(crow::Response& res,
3244a7fbefdSEd Tanous                                const boost::urls::url_view_base& arg1,
3251668ce6dSEd Tanous                                std::string_view arg2)
326b5c07418SJames Feist {
327b5c07418SJames Feist     res.result(boost::beast::http::status::unauthorized);
328b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceAtUriUnauthorized(arg1, arg2));
329f4c4dcf4SKowalski, Kamil }
330f4c4dcf4SKowalski, Kamil 
331f4c4dcf4SKowalski, Kamil /**
332f4c4dcf4SKowalski, Kamil  * @internal
333f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterUnknown message into JSON
334f4c4dcf4SKowalski, Kamil  *
335f4c4dcf4SKowalski, Kamil  * See header file for more information
336f4c4dcf4SKowalski, Kamil  * @endinternal
337f4c4dcf4SKowalski, Kamil  */
3381668ce6dSEd Tanous nlohmann::json actionParameterUnknown(std::string_view arg1,
3391668ce6dSEd Tanous                                       std::string_view arg2)
340b5c07418SJames Feist {
341fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::actionParameterUnknown,
3421668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
343b5c07418SJames Feist }
344b5c07418SJames Feist 
3451668ce6dSEd Tanous void actionParameterUnknown(crow::Response& res, std::string_view arg1,
3461668ce6dSEd Tanous                             std::string_view arg2)
3471abe55efSEd Tanous {
348f12894f8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
349b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, actionParameterUnknown(arg1, arg2));
350f4c4dcf4SKowalski, Kamil }
351f4c4dcf4SKowalski, Kamil 
352f4c4dcf4SKowalski, Kamil /**
353f4c4dcf4SKowalski, Kamil  * @internal
354f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceCannotBeDeleted message into JSON
355f4c4dcf4SKowalski, Kamil  *
356f4c4dcf4SKowalski, Kamil  * See header file for more information
357f4c4dcf4SKowalski, Kamil  * @endinternal
358f4c4dcf4SKowalski, Kamil  */
359d9fcfcc1SEd Tanous nlohmann::json resourceCannotBeDeleted()
3601abe55efSEd Tanous {
361fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceCannotBeDeleted,
362fffb8c1fSEd Tanous                   {});
363b5c07418SJames Feist }
364b5c07418SJames Feist 
365b5c07418SJames Feist void resourceCannotBeDeleted(crow::Response& res)
366b5c07418SJames Feist {
36744c70412SEd Tanous     res.result(boost::beast::http::status::method_not_allowed);
368b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceCannotBeDeleted());
369f4c4dcf4SKowalski, Kamil }
370f4c4dcf4SKowalski, Kamil 
371f4c4dcf4SKowalski, Kamil /**
372f4c4dcf4SKowalski, Kamil  * @internal
373f4c4dcf4SKowalski, Kamil  * @brief Formats PropertyDuplicate message into JSON
374f4c4dcf4SKowalski, Kamil  *
375f4c4dcf4SKowalski, Kamil  * See header file for more information
376f4c4dcf4SKowalski, Kamil  * @endinternal
377f4c4dcf4SKowalski, Kamil  */
3781668ce6dSEd Tanous nlohmann::json propertyDuplicate(std::string_view arg1)
3791abe55efSEd Tanous {
380fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyDuplicate,
3811668ce6dSEd Tanous                   std::to_array({arg1}));
382b5c07418SJames Feist }
383b5c07418SJames Feist 
3841668ce6dSEd Tanous void propertyDuplicate(crow::Response& res, std::string_view arg1)
385b5c07418SJames Feist {
386b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
387b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyDuplicate(arg1), arg1);
388f4c4dcf4SKowalski, Kamil }
389f4c4dcf4SKowalski, Kamil 
390f4c4dcf4SKowalski, Kamil /**
391f4c4dcf4SKowalski, Kamil  * @internal
392f4c4dcf4SKowalski, Kamil  * @brief Formats ServiceTemporarilyUnavailable message into JSON
393f4c4dcf4SKowalski, Kamil  *
394f4c4dcf4SKowalski, Kamil  * See header file for more information
395f4c4dcf4SKowalski, Kamil  * @endinternal
396f4c4dcf4SKowalski, Kamil  */
3971668ce6dSEd Tanous nlohmann::json serviceTemporarilyUnavailable(std::string_view arg1)
3981abe55efSEd Tanous {
399b6cd31e1SEd Tanous     return getLog(
400fffb8c1fSEd Tanous         redfish::registries::base::Index::serviceTemporarilyUnavailable,
4011668ce6dSEd Tanous         std::to_array({arg1}));
402b5c07418SJames Feist }
403b5c07418SJames Feist 
4041668ce6dSEd Tanous void serviceTemporarilyUnavailable(crow::Response& res, std::string_view arg1)
405b5c07418SJames Feist {
406d9f6c621SEd Tanous     res.addHeader(boost::beast::http::field::retry_after, arg1);
407b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
408b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, serviceTemporarilyUnavailable(arg1));
409f4c4dcf4SKowalski, Kamil }
410f4c4dcf4SKowalski, Kamil 
411f4c4dcf4SKowalski, Kamil /**
412f4c4dcf4SKowalski, Kamil  * @internal
413f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceAlreadyExists message into JSON
414f4c4dcf4SKowalski, Kamil  *
415f4c4dcf4SKowalski, Kamil  * See header file for more information
416f4c4dcf4SKowalski, Kamil  * @endinternal
417f4c4dcf4SKowalski, Kamil  */
418bd79bce8SPatrick Williams nlohmann::json resourceAlreadyExists(
419bd79bce8SPatrick Williams     std::string_view arg1, std::string_view arg2, std::string_view arg3)
4201abe55efSEd Tanous {
421fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceAlreadyExists,
4221668ce6dSEd Tanous                   std::to_array({arg1, arg2, arg3}));
423b5c07418SJames Feist }
424b5c07418SJames Feist 
4251668ce6dSEd Tanous void resourceAlreadyExists(crow::Response& res, std::string_view arg1,
4261668ce6dSEd Tanous                            std::string_view arg2, std::string_view arg3)
427b5c07418SJames Feist {
428b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
429b5c07418SJames Feist     addMessageToJson(res.jsonValue, resourceAlreadyExists(arg1, arg2, arg3),
430a08b46ccSJason M. Bills                      arg2);
431f4c4dcf4SKowalski, Kamil }
432f4c4dcf4SKowalski, Kamil 
433f4c4dcf4SKowalski, Kamil /**
434f4c4dcf4SKowalski, Kamil  * @internal
435f4c4dcf4SKowalski, Kamil  * @brief Formats AccountForSessionNoLongerExists message into JSON
436f4c4dcf4SKowalski, Kamil  *
437f4c4dcf4SKowalski, Kamil  * See header file for more information
438f4c4dcf4SKowalski, Kamil  * @endinternal
439f4c4dcf4SKowalski, Kamil  */
440d9fcfcc1SEd Tanous nlohmann::json accountForSessionNoLongerExists()
4411abe55efSEd Tanous {
442fffb8c1fSEd Tanous     return getLog(
443fffb8c1fSEd Tanous         redfish::registries::base::Index::accountForSessionNoLongerExists, {});
444b5c07418SJames Feist }
445b5c07418SJames Feist 
446b5c07418SJames Feist void accountForSessionNoLongerExists(crow::Response& res)
447b5c07418SJames Feist {
448b5c07418SJames Feist     res.result(boost::beast::http::status::forbidden);
449b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, accountForSessionNoLongerExists());
450f4c4dcf4SKowalski, Kamil }
451f4c4dcf4SKowalski, Kamil 
452f4c4dcf4SKowalski, Kamil /**
453f4c4dcf4SKowalski, Kamil  * @internal
454f4c4dcf4SKowalski, Kamil  * @brief Formats CreateFailedMissingReqProperties message into JSON
455f4c4dcf4SKowalski, Kamil  *
456f4c4dcf4SKowalski, Kamil  * See header file for more information
457f4c4dcf4SKowalski, Kamil  * @endinternal
458f4c4dcf4SKowalski, Kamil  */
4591668ce6dSEd Tanous nlohmann::json createFailedMissingReqProperties(std::string_view arg1)
4601abe55efSEd Tanous {
461fffb8c1fSEd Tanous     return getLog(
462fffb8c1fSEd Tanous         redfish::registries::base::Index::createFailedMissingReqProperties,
4631668ce6dSEd Tanous         std::to_array({arg1}));
464b5c07418SJames Feist }
465b5c07418SJames Feist 
466b5c07418SJames Feist void createFailedMissingReqProperties(crow::Response& res,
4671668ce6dSEd Tanous                                       std::string_view arg1)
468b5c07418SJames Feist {
469b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
470b5c07418SJames Feist     addMessageToJson(res.jsonValue, createFailedMissingReqProperties(arg1),
471a08b46ccSJason M. Bills                      arg1);
472f12894f8SJason M. Bills }
473f12894f8SJason M. Bills 
474f12894f8SJason M. Bills /**
475f12894f8SJason M. Bills  * @internal
476f12894f8SJason M. Bills  * @brief Formats PropertyValueFormatError message into JSON for the specified
477f12894f8SJason M. Bills  * property
478f12894f8SJason M. Bills  *
479f12894f8SJason M. Bills  * See header file for more information
480f12894f8SJason M. Bills  * @endinternal
481f12894f8SJason M. Bills  */
482f818b04dSEd Tanous nlohmann::json propertyValueFormatError(const nlohmann::json& arg1,
4831668ce6dSEd Tanous                                         std::string_view arg2)
484f12894f8SJason M. Bills {
485bd79bce8SPatrick Williams     std::string arg1Str =
486bd79bce8SPatrick Williams         arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
487fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyValueFormatError,
488f818b04dSEd Tanous                   std::to_array<std::string_view>({arg1Str, arg2}));
489b5c07418SJames Feist }
490b5c07418SJames Feist 
491f818b04dSEd Tanous void propertyValueFormatError(crow::Response& res, const nlohmann::json& arg1,
4921668ce6dSEd Tanous                               std::string_view arg2)
493b5c07418SJames Feist {
494b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
495b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyValueFormatError(arg1, arg2), arg2);
496f12894f8SJason M. Bills }
497f12894f8SJason M. Bills 
498f12894f8SJason M. Bills /**
499f12894f8SJason M. Bills  * @internal
500f12894f8SJason M. Bills  * @brief Formats PropertyValueNotInList message into JSON for the specified
501f12894f8SJason M. Bills  * property
502f12894f8SJason M. Bills  *
503f12894f8SJason M. Bills  * See header file for more information
504f12894f8SJason M. Bills  * @endinternal
505f12894f8SJason M. Bills  */
506e2616cc5SEd Tanous 
507e2616cc5SEd Tanous nlohmann::json propertyValueNotInList(const nlohmann::json& arg1,
5081668ce6dSEd Tanous                                       std::string_view arg2)
509f12894f8SJason M. Bills {
510bd79bce8SPatrick Williams     std::string arg1Str =
511bd79bce8SPatrick Williams         arg1.dump(-1, ' ', true, nlohmann::json::error_handler_t::replace);
512fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyValueNotInList,
513e2616cc5SEd Tanous                   std::to_array<std::string_view>({arg1Str, arg2}));
514b5c07418SJames Feist }
515b5c07418SJames Feist 
516e2616cc5SEd Tanous void propertyValueNotInList(crow::Response& res, const nlohmann::json& arg1,
5171668ce6dSEd Tanous                             std::string_view arg2)
518b5c07418SJames Feist {
519b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
520b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyValueNotInList(arg1, arg2), arg2);
521f4c4dcf4SKowalski, Kamil }
522f4c4dcf4SKowalski, Kamil 
523f4c4dcf4SKowalski, Kamil /**
524f4c4dcf4SKowalski, Kamil  * @internal
525227a2b0aSJiaqing Zhao  * @brief Formats PropertyValueOutOfRange message into JSON
526227a2b0aSJiaqing Zhao  *
527227a2b0aSJiaqing Zhao  * See header file for more information
528227a2b0aSJiaqing Zhao  * @endinternal
529227a2b0aSJiaqing Zhao  */
53095b3ad73SEd Tanous nlohmann::json propertyValueOutOfRange(const nlohmann::json& arg1,
531227a2b0aSJiaqing Zhao                                        std::string_view arg2)
532227a2b0aSJiaqing Zhao {
533bd79bce8SPatrick Williams     std::string arg1Str =
534bd79bce8SPatrick Williams         arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
535227a2b0aSJiaqing Zhao     return getLog(redfish::registries::base::Index::propertyValueOutOfRange,
53695b3ad73SEd Tanous                   std::to_array<std::string_view>({arg1Str, arg2}));
537227a2b0aSJiaqing Zhao }
538227a2b0aSJiaqing Zhao 
53995b3ad73SEd Tanous void propertyValueOutOfRange(crow::Response& res, const nlohmann::json& arg1,
540227a2b0aSJiaqing Zhao                              std::string_view arg2)
541227a2b0aSJiaqing Zhao {
542227a2b0aSJiaqing Zhao     res.result(boost::beast::http::status::bad_request);
543227a2b0aSJiaqing Zhao     addMessageToErrorJson(res.jsonValue, propertyValueOutOfRange(arg1, arg2));
544227a2b0aSJiaqing Zhao }
545227a2b0aSJiaqing Zhao 
546227a2b0aSJiaqing Zhao /**
547227a2b0aSJiaqing Zhao  * @internal
548f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceAtUriInUnknownFormat message into JSON
549f4c4dcf4SKowalski, Kamil  *
550f4c4dcf4SKowalski, Kamil  * See header file for more information
551f4c4dcf4SKowalski, Kamil  * @endinternal
552f4c4dcf4SKowalski, Kamil  */
5534a7fbefdSEd Tanous nlohmann::json
5544a7fbefdSEd Tanous     resourceAtUriInUnknownFormat(const boost::urls::url_view_base& arg1)
5551abe55efSEd Tanous {
556b6cd31e1SEd Tanous     return getLog(
557fffb8c1fSEd Tanous         redfish::registries::base::Index::resourceAtUriInUnknownFormat,
558079360aeSEd Tanous         std::to_array<std::string_view>({arg1.buffer()}));
559b5c07418SJames Feist }
560b5c07418SJames Feist 
561ace85d60SEd Tanous void resourceAtUriInUnknownFormat(crow::Response& res,
5624a7fbefdSEd Tanous                                   const boost::urls::url_view_base& arg1)
563b5c07418SJames Feist {
564b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
565b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceAtUriInUnknownFormat(arg1));
566f4c4dcf4SKowalski, Kamil }
567f4c4dcf4SKowalski, Kamil 
568f4c4dcf4SKowalski, Kamil /**
569f4c4dcf4SKowalski, Kamil  * @internal
57081856681SAsmitha Karunanithi  * @brief Formats ServiceDisabled message into JSON
57181856681SAsmitha Karunanithi  *
57281856681SAsmitha Karunanithi  * See header file for more information
57381856681SAsmitha Karunanithi  * @endinternal
57481856681SAsmitha Karunanithi  */
5751668ce6dSEd Tanous nlohmann::json serviceDisabled(std::string_view arg1)
57681856681SAsmitha Karunanithi {
577fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::serviceDisabled,
5781668ce6dSEd Tanous                   std::to_array({arg1}));
57981856681SAsmitha Karunanithi }
58081856681SAsmitha Karunanithi 
5811668ce6dSEd Tanous void serviceDisabled(crow::Response& res, std::string_view arg1)
58281856681SAsmitha Karunanithi {
58381856681SAsmitha Karunanithi     res.result(boost::beast::http::status::service_unavailable);
58481856681SAsmitha Karunanithi     addMessageToErrorJson(res.jsonValue, serviceDisabled(arg1));
58581856681SAsmitha Karunanithi }
58681856681SAsmitha Karunanithi 
58781856681SAsmitha Karunanithi /**
58881856681SAsmitha Karunanithi  * @internal
589f4c4dcf4SKowalski, Kamil  * @brief Formats ServiceInUnknownState message into JSON
590f4c4dcf4SKowalski, Kamil  *
591f4c4dcf4SKowalski, Kamil  * See header file for more information
592f4c4dcf4SKowalski, Kamil  * @endinternal
593f4c4dcf4SKowalski, Kamil  */
594d9fcfcc1SEd Tanous nlohmann::json serviceInUnknownState()
5951abe55efSEd Tanous {
596fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::serviceInUnknownState, {});
597b5c07418SJames Feist }
598b5c07418SJames Feist 
599b5c07418SJames Feist void serviceInUnknownState(crow::Response& res)
600b5c07418SJames Feist {
601b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
602b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, serviceInUnknownState());
603f4c4dcf4SKowalski, Kamil }
604f4c4dcf4SKowalski, Kamil 
605f4c4dcf4SKowalski, Kamil /**
606f4c4dcf4SKowalski, Kamil  * @internal
607f4c4dcf4SKowalski, Kamil  * @brief Formats EventSubscriptionLimitExceeded message into JSON
608f4c4dcf4SKowalski, Kamil  *
609f4c4dcf4SKowalski, Kamil  * See header file for more information
610f4c4dcf4SKowalski, Kamil  * @endinternal
611f4c4dcf4SKowalski, Kamil  */
612d9fcfcc1SEd Tanous nlohmann::json eventSubscriptionLimitExceeded()
6131abe55efSEd Tanous {
614fffb8c1fSEd Tanous     return getLog(
615fffb8c1fSEd Tanous         redfish::registries::base::Index::eventSubscriptionLimitExceeded, {});
616b5c07418SJames Feist }
617b5c07418SJames Feist 
618b5c07418SJames Feist void eventSubscriptionLimitExceeded(crow::Response& res)
619b5c07418SJames Feist {
620789fdab3SEd Tanous     res.result(boost::beast::http::status::service_unavailable);
621b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, eventSubscriptionLimitExceeded());
622f4c4dcf4SKowalski, Kamil }
623f4c4dcf4SKowalski, Kamil 
624f4c4dcf4SKowalski, Kamil /**
625f4c4dcf4SKowalski, Kamil  * @internal
626f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterMissing message into JSON
627f4c4dcf4SKowalski, Kamil  *
628f4c4dcf4SKowalski, Kamil  * See header file for more information
629f4c4dcf4SKowalski, Kamil  * @endinternal
630f4c4dcf4SKowalski, Kamil  */
6311668ce6dSEd Tanous nlohmann::json actionParameterMissing(std::string_view arg1,
6321668ce6dSEd Tanous                                       std::string_view arg2)
6331abe55efSEd Tanous {
634fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::actionParameterMissing,
6351668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
636b5c07418SJames Feist }
637b5c07418SJames Feist 
6381668ce6dSEd Tanous void actionParameterMissing(crow::Response& res, std::string_view arg1,
6391668ce6dSEd Tanous                             std::string_view arg2)
640b5c07418SJames Feist {
641b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
642b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, actionParameterMissing(arg1, arg2));
643f4c4dcf4SKowalski, Kamil }
644f4c4dcf4SKowalski, Kamil 
645f4c4dcf4SKowalski, Kamil /**
646f4c4dcf4SKowalski, Kamil  * @internal
647f4c4dcf4SKowalski, Kamil  * @brief Formats StringValueTooLong message into JSON
648f4c4dcf4SKowalski, Kamil  *
649f4c4dcf4SKowalski, Kamil  * See header file for more information
650f4c4dcf4SKowalski, Kamil  * @endinternal
651f4c4dcf4SKowalski, Kamil  */
6521668ce6dSEd Tanous nlohmann::json stringValueTooLong(std::string_view arg1, int arg2)
6531abe55efSEd Tanous {
654b6cd31e1SEd Tanous     std::string arg2String = std::to_string(arg2);
655fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::stringValueTooLong,
6561668ce6dSEd Tanous                   std::to_array({arg1, std::string_view(arg2String)}));
657b5c07418SJames Feist }
658b5c07418SJames Feist 
6591668ce6dSEd Tanous void stringValueTooLong(crow::Response& res, std::string_view arg1, int arg2)
660b5c07418SJames Feist {
661b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
662b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, stringValueTooLong(arg1, arg2));
663f4c4dcf4SKowalski, Kamil }
664f4c4dcf4SKowalski, Kamil 
665f4c4dcf4SKowalski, Kamil /**
666f4c4dcf4SKowalski, Kamil  * @internal
667cc9139ecSJason M. Bills  * @brief Formats SessionTerminated message into JSON
668cc9139ecSJason M. Bills  *
669cc9139ecSJason M. Bills  * See header file for more information
670cc9139ecSJason M. Bills  * @endinternal
671cc9139ecSJason M. Bills  */
672d9fcfcc1SEd Tanous nlohmann::json sessionTerminated()
673cc9139ecSJason M. Bills {
674fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::sessionTerminated, {});
675b5c07418SJames Feist }
676b5c07418SJames Feist 
677b5c07418SJames Feist void sessionTerminated(crow::Response& res)
678b5c07418SJames Feist {
679b5c07418SJames Feist     res.result(boost::beast::http::status::ok);
680b5c07418SJames Feist     addMessageToJsonRoot(res.jsonValue, sessionTerminated());
681cc9139ecSJason M. Bills }
682cc9139ecSJason M. Bills 
683cc9139ecSJason M. Bills /**
684cc9139ecSJason M. Bills  * @internal
685684bb4b8SJason M. Bills  * @brief Formats SubscriptionTerminated message into JSON
686684bb4b8SJason M. Bills  *
687684bb4b8SJason M. Bills  * See header file for more information
688684bb4b8SJason M. Bills  * @endinternal
689684bb4b8SJason M. Bills  */
690d9fcfcc1SEd Tanous nlohmann::json subscriptionTerminated()
691684bb4b8SJason M. Bills {
692fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::subscriptionTerminated, {});
693684bb4b8SJason M. Bills }
694684bb4b8SJason M. Bills 
695684bb4b8SJason M. Bills void subscriptionTerminated(crow::Response& res)
696684bb4b8SJason M. Bills {
697684bb4b8SJason M. Bills     res.result(boost::beast::http::status::ok);
698684bb4b8SJason M. Bills     addMessageToJsonRoot(res.jsonValue, subscriptionTerminated());
699684bb4b8SJason M. Bills }
700684bb4b8SJason M. Bills 
701684bb4b8SJason M. Bills /**
702684bb4b8SJason M. Bills  * @internal
703cc9139ecSJason M. Bills  * @brief Formats ResourceTypeIncompatible message into JSON
704cc9139ecSJason M. Bills  *
705cc9139ecSJason M. Bills  * See header file for more information
706cc9139ecSJason M. Bills  * @endinternal
707cc9139ecSJason M. Bills  */
7081668ce6dSEd Tanous nlohmann::json resourceTypeIncompatible(std::string_view arg1,
7091668ce6dSEd Tanous                                         std::string_view arg2)
710cc9139ecSJason M. Bills {
711fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceTypeIncompatible,
7121668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
713b5c07418SJames Feist }
714b5c07418SJames Feist 
7151668ce6dSEd Tanous void resourceTypeIncompatible(crow::Response& res, std::string_view arg1,
7161668ce6dSEd Tanous                               std::string_view arg2)
717b5c07418SJames Feist {
718b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
719b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceTypeIncompatible(arg1, arg2));
720cc9139ecSJason M. Bills }
721cc9139ecSJason M. Bills 
722cc9139ecSJason M. Bills /**
723cc9139ecSJason M. Bills  * @internal
724684bb4b8SJason M. Bills  * @brief Formats ResetRequired message into JSON
725684bb4b8SJason M. Bills  *
726684bb4b8SJason M. Bills  * See header file for more information
727684bb4b8SJason M. Bills  * @endinternal
728684bb4b8SJason M. Bills  */
7294a7fbefdSEd Tanous nlohmann::json resetRequired(const boost::urls::url_view_base& arg1,
7304a7fbefdSEd Tanous                              std::string_view arg2)
731684bb4b8SJason M. Bills {
732fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resetRequired,
733079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer(), arg2}));
734684bb4b8SJason M. Bills }
735684bb4b8SJason M. Bills 
7364a7fbefdSEd Tanous void resetRequired(crow::Response& res, const boost::urls::url_view_base& arg1,
7371668ce6dSEd Tanous                    std::string_view arg2)
738684bb4b8SJason M. Bills {
739684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
740684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, resetRequired(arg1, arg2));
741684bb4b8SJason M. Bills }
742684bb4b8SJason M. Bills 
743684bb4b8SJason M. Bills /**
744684bb4b8SJason M. Bills  * @internal
745684bb4b8SJason M. Bills  * @brief Formats ChassisPowerStateOnRequired message into JSON
746684bb4b8SJason M. Bills  *
747684bb4b8SJason M. Bills  * See header file for more information
748684bb4b8SJason M. Bills  * @endinternal
749684bb4b8SJason M. Bills  */
7501668ce6dSEd Tanous nlohmann::json chassisPowerStateOnRequired(std::string_view arg1)
751684bb4b8SJason M. Bills {
752fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resetRequired,
7531668ce6dSEd Tanous                   std::to_array({arg1}));
754684bb4b8SJason M. Bills }
755684bb4b8SJason M. Bills 
7561668ce6dSEd Tanous void chassisPowerStateOnRequired(crow::Response& res, std::string_view arg1)
757684bb4b8SJason M. Bills {
758684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
759684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, chassisPowerStateOnRequired(arg1));
760684bb4b8SJason M. Bills }
761684bb4b8SJason M. Bills 
762684bb4b8SJason M. Bills /**
763684bb4b8SJason M. Bills  * @internal
764684bb4b8SJason M. Bills  * @brief Formats ChassisPowerStateOffRequired message into JSON
765684bb4b8SJason M. Bills  *
766684bb4b8SJason M. Bills  * See header file for more information
767684bb4b8SJason M. Bills  * @endinternal
768684bb4b8SJason M. Bills  */
7691668ce6dSEd Tanous nlohmann::json chassisPowerStateOffRequired(std::string_view arg1)
770684bb4b8SJason M. Bills {
771b6cd31e1SEd Tanous     return getLog(
772fffb8c1fSEd Tanous         redfish::registries::base::Index::chassisPowerStateOffRequired,
7731668ce6dSEd Tanous         std::to_array({arg1}));
774684bb4b8SJason M. Bills }
775684bb4b8SJason M. Bills 
7761668ce6dSEd Tanous void chassisPowerStateOffRequired(crow::Response& res, std::string_view arg1)
777684bb4b8SJason M. Bills {
778684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
779684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, chassisPowerStateOffRequired(arg1));
780684bb4b8SJason M. Bills }
781684bb4b8SJason M. Bills 
782684bb4b8SJason M. Bills /**
783684bb4b8SJason M. Bills  * @internal
784684bb4b8SJason M. Bills  * @brief Formats PropertyValueConflict message into JSON
785684bb4b8SJason M. Bills  *
786684bb4b8SJason M. Bills  * See header file for more information
787684bb4b8SJason M. Bills  * @endinternal
788684bb4b8SJason M. Bills  */
7891668ce6dSEd Tanous nlohmann::json propertyValueConflict(std::string_view arg1,
7901668ce6dSEd Tanous                                      std::string_view arg2)
791684bb4b8SJason M. Bills {
792fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyValueConflict,
7931668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
794684bb4b8SJason M. Bills }
795684bb4b8SJason M. Bills 
7961668ce6dSEd Tanous void propertyValueConflict(crow::Response& res, std::string_view arg1,
7971668ce6dSEd Tanous                            std::string_view arg2)
798684bb4b8SJason M. Bills {
799684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
800684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, propertyValueConflict(arg1, arg2));
801684bb4b8SJason M. Bills }
802684bb4b8SJason M. Bills 
803684bb4b8SJason M. Bills /**
804684bb4b8SJason M. Bills  * @internal
8052a6af81cSRamesh Iyyar  * @brief Formats PropertyValueResourceConflict message into JSON
8062a6af81cSRamesh Iyyar  *
8072a6af81cSRamesh Iyyar  * See header file for more information
8082a6af81cSRamesh Iyyar  * @endinternal
8092a6af81cSRamesh Iyyar  */
810bd79bce8SPatrick Williams nlohmann::json propertyValueResourceConflict(
811bd79bce8SPatrick Williams     std::string_view arg1, const nlohmann::json& arg2,
8124a7fbefdSEd Tanous     const boost::urls::url_view_base& arg3)
8132a6af81cSRamesh Iyyar {
814bd79bce8SPatrick Williams     std::string arg2Str =
815bd79bce8SPatrick Williams         arg2.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
81695b3ad73SEd Tanous 
8172a6af81cSRamesh Iyyar     return getLog(
8182a6af81cSRamesh Iyyar         redfish::registries::base::Index::propertyValueResourceConflict,
81995b3ad73SEd Tanous         std::to_array<std::string_view>({arg1, arg2Str, arg3.buffer()}));
8202a6af81cSRamesh Iyyar }
8212a6af81cSRamesh Iyyar 
8222a6af81cSRamesh Iyyar void propertyValueResourceConflict(crow::Response& res, std::string_view arg1,
82395b3ad73SEd Tanous                                    const nlohmann::json& arg2,
8244a7fbefdSEd Tanous                                    const boost::urls::url_view_base& arg3)
8252a6af81cSRamesh Iyyar {
8262a6af81cSRamesh Iyyar     res.result(boost::beast::http::status::conflict);
8272a6af81cSRamesh Iyyar     addMessageToErrorJson(res.jsonValue,
8282a6af81cSRamesh Iyyar                           propertyValueResourceConflict(arg1, arg2, arg3));
8292a6af81cSRamesh Iyyar }
8302a6af81cSRamesh Iyyar 
8312a6af81cSRamesh Iyyar /**
8322a6af81cSRamesh Iyyar  * @internal
83324861a28SRamesh Iyyar  * @brief Formats PropertyValueExternalConflict message into JSON
83424861a28SRamesh Iyyar  *
83524861a28SRamesh Iyyar  * See header file for more information
83624861a28SRamesh Iyyar  * @endinternal
83724861a28SRamesh Iyyar  */
83824861a28SRamesh Iyyar nlohmann::json propertyValueExternalConflict(std::string_view arg1,
83995b3ad73SEd Tanous                                              const nlohmann::json& arg2)
84024861a28SRamesh Iyyar {
841bd79bce8SPatrick Williams     std::string arg2Str =
842bd79bce8SPatrick Williams         arg2.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
84395b3ad73SEd Tanous 
84424861a28SRamesh Iyyar     return getLog(
84524861a28SRamesh Iyyar         redfish::registries::base::Index::propertyValueExternalConflict,
84695b3ad73SEd Tanous         std::to_array<std::string_view>({arg1, arg2Str}));
84724861a28SRamesh Iyyar }
84824861a28SRamesh Iyyar 
84924861a28SRamesh Iyyar void propertyValueExternalConflict(crow::Response& res, std::string_view arg1,
85095b3ad73SEd Tanous                                    const nlohmann::json& arg2)
85124861a28SRamesh Iyyar {
85224861a28SRamesh Iyyar     res.result(boost::beast::http::status::conflict);
85324861a28SRamesh Iyyar     addMessageToErrorJson(res.jsonValue,
85424861a28SRamesh Iyyar                           propertyValueExternalConflict(arg1, arg2));
85524861a28SRamesh Iyyar }
85624861a28SRamesh Iyyar 
85724861a28SRamesh Iyyar /**
85824861a28SRamesh Iyyar  * @internal
859684bb4b8SJason M. Bills  * @brief Formats PropertyValueIncorrect message into JSON
860684bb4b8SJason M. Bills  *
861684bb4b8SJason M. Bills  * See header file for more information
862684bb4b8SJason M. Bills  * @endinternal
863684bb4b8SJason M. Bills  */
864367b3dceSGinu George nlohmann::json propertyValueIncorrect(std::string_view arg1,
865367b3dceSGinu George                                       const nlohmann::json& arg2)
866684bb4b8SJason M. Bills {
867bd79bce8SPatrick Williams     std::string arg2Str =
868bd79bce8SPatrick Williams         arg2.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
869fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyValueIncorrect,
870367b3dceSGinu George                   std::to_array<std::string_view>({arg1, arg2Str}));
871684bb4b8SJason M. Bills }
872684bb4b8SJason M. Bills 
873367b3dceSGinu George void propertyValueIncorrect(crow::Response& res, std::string_view arg1,
874367b3dceSGinu George                             const nlohmann::json& arg2)
875684bb4b8SJason M. Bills {
876684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
877684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, propertyValueIncorrect(arg1, arg2));
878684bb4b8SJason M. Bills }
879684bb4b8SJason M. Bills 
880684bb4b8SJason M. Bills /**
881684bb4b8SJason M. Bills  * @internal
882684bb4b8SJason M. Bills  * @brief Formats ResourceCreationConflict message into JSON
883684bb4b8SJason M. Bills  *
884684bb4b8SJason M. Bills  * See header file for more information
885684bb4b8SJason M. Bills  * @endinternal
886684bb4b8SJason M. Bills  */
8874a7fbefdSEd Tanous nlohmann::json resourceCreationConflict(const boost::urls::url_view_base& arg1)
888684bb4b8SJason M. Bills {
889fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceCreationConflict,
890079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer()}));
891684bb4b8SJason M. Bills }
892684bb4b8SJason M. Bills 
8934a7fbefdSEd Tanous void resourceCreationConflict(crow::Response& res,
8944a7fbefdSEd Tanous                               const boost::urls::url_view_base& arg1)
895684bb4b8SJason M. Bills {
896684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
897684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, resourceCreationConflict(arg1));
898684bb4b8SJason M. Bills }
899684bb4b8SJason M. Bills 
900684bb4b8SJason M. Bills /**
901684bb4b8SJason M. Bills  * @internal
902684bb4b8SJason M. Bills  * @brief Formats MaximumErrorsExceeded message into JSON
903684bb4b8SJason M. Bills  *
904684bb4b8SJason M. Bills  * See header file for more information
905684bb4b8SJason M. Bills  * @endinternal
906684bb4b8SJason M. Bills  */
907d9fcfcc1SEd Tanous nlohmann::json maximumErrorsExceeded()
908684bb4b8SJason M. Bills {
909fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::maximumErrorsExceeded, {});
910684bb4b8SJason M. Bills }
911684bb4b8SJason M. Bills 
912684bb4b8SJason M. Bills void maximumErrorsExceeded(crow::Response& res)
913684bb4b8SJason M. Bills {
914684bb4b8SJason M. Bills     res.result(boost::beast::http::status::internal_server_error);
915684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, maximumErrorsExceeded());
916684bb4b8SJason M. Bills }
917684bb4b8SJason M. Bills 
918684bb4b8SJason M. Bills /**
919684bb4b8SJason M. Bills  * @internal
920684bb4b8SJason M. Bills  * @brief Formats PreconditionFailed message into JSON
921684bb4b8SJason M. Bills  *
922684bb4b8SJason M. Bills  * See header file for more information
923684bb4b8SJason M. Bills  * @endinternal
924684bb4b8SJason M. Bills  */
925d9fcfcc1SEd Tanous nlohmann::json preconditionFailed()
926684bb4b8SJason M. Bills {
927fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::preconditionFailed, {});
928684bb4b8SJason M. Bills }
929684bb4b8SJason M. Bills 
930684bb4b8SJason M. Bills void preconditionFailed(crow::Response& res)
931684bb4b8SJason M. Bills {
9324df1bee0SEd Tanous     res.result(boost::beast::http::status::precondition_failed);
933684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, preconditionFailed());
934684bb4b8SJason M. Bills }
935684bb4b8SJason M. Bills 
936684bb4b8SJason M. Bills /**
937684bb4b8SJason M. Bills  * @internal
938684bb4b8SJason M. Bills  * @brief Formats PreconditionRequired message into JSON
939684bb4b8SJason M. Bills  *
940684bb4b8SJason M. Bills  * See header file for more information
941684bb4b8SJason M. Bills  * @endinternal
942684bb4b8SJason M. Bills  */
943d9fcfcc1SEd Tanous nlohmann::json preconditionRequired()
944684bb4b8SJason M. Bills {
945fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::preconditionRequired, {});
946684bb4b8SJason M. Bills }
947684bb4b8SJason M. Bills 
948684bb4b8SJason M. Bills void preconditionRequired(crow::Response& res)
949684bb4b8SJason M. Bills {
950684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
951684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, preconditionRequired());
952684bb4b8SJason M. Bills }
953684bb4b8SJason M. Bills 
954684bb4b8SJason M. Bills /**
955684bb4b8SJason M. Bills  * @internal
956684bb4b8SJason M. Bills  * @brief Formats OperationFailed message into JSON
957684bb4b8SJason M. Bills  *
958684bb4b8SJason M. Bills  * See header file for more information
959684bb4b8SJason M. Bills  * @endinternal
960684bb4b8SJason M. Bills  */
961d9fcfcc1SEd Tanous nlohmann::json operationFailed()
962684bb4b8SJason M. Bills {
963fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::operationFailed, {});
964684bb4b8SJason M. Bills }
965684bb4b8SJason M. Bills 
966684bb4b8SJason M. Bills void operationFailed(crow::Response& res)
967684bb4b8SJason M. Bills {
9688868776eSEd Tanous     res.result(boost::beast::http::status::bad_gateway);
969684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, operationFailed());
970684bb4b8SJason M. Bills }
971684bb4b8SJason M. Bills 
972684bb4b8SJason M. Bills /**
973684bb4b8SJason M. Bills  * @internal
974684bb4b8SJason M. Bills  * @brief Formats OperationTimeout message into JSON
975684bb4b8SJason M. Bills  *
976684bb4b8SJason M. Bills  * See header file for more information
977684bb4b8SJason M. Bills  * @endinternal
978684bb4b8SJason M. Bills  */
979d9fcfcc1SEd Tanous nlohmann::json operationTimeout()
980684bb4b8SJason M. Bills {
981fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::operationTimeout, {});
982684bb4b8SJason M. Bills }
983684bb4b8SJason M. Bills 
984684bb4b8SJason M. Bills void operationTimeout(crow::Response& res)
985684bb4b8SJason M. Bills {
986684bb4b8SJason M. Bills     res.result(boost::beast::http::status::internal_server_error);
987684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, operationTimeout());
988684bb4b8SJason M. Bills }
989684bb4b8SJason M. Bills 
990684bb4b8SJason M. Bills /**
991684bb4b8SJason M. Bills  * @internal
992f12894f8SJason M. Bills  * @brief Formats PropertyValueTypeError message into JSON for the specified
993f12894f8SJason M. Bills  * property
994f12894f8SJason M. Bills  *
995f12894f8SJason M. Bills  * See header file for more information
996f12894f8SJason M. Bills  * @endinternal
997f12894f8SJason M. Bills  */
9982e8c4bdaSEd Tanous nlohmann::json propertyValueTypeError(const nlohmann::json& arg1,
9991668ce6dSEd Tanous                                       std::string_view arg2)
1000f12894f8SJason M. Bills {
1001bd79bce8SPatrick Williams     std::string arg1Str =
1002bd79bce8SPatrick Williams         arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
1003fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyValueTypeError,
10042e8c4bdaSEd Tanous                   std::to_array<std::string_view>({arg1Str, arg2}));
1005b5c07418SJames Feist }
1006b5c07418SJames Feist 
10072e8c4bdaSEd Tanous void propertyValueTypeError(crow::Response& res, const nlohmann::json& arg1,
10081668ce6dSEd Tanous                             std::string_view arg2)
1009b5c07418SJames Feist {
1010b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1011b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyValueTypeError(arg1, arg2), arg2);
1012f4c4dcf4SKowalski, Kamil }
1013f4c4dcf4SKowalski, Kamil 
1014f4c4dcf4SKowalski, Kamil /**
1015f4c4dcf4SKowalski, Kamil  * @internal
1016b54eb49fSEd Tanous  * @brief Formats PropertyValueError message into JSON for the specified
1017b54eb49fSEd Tanous  * property
1018b54eb49fSEd Tanous  *
1019b54eb49fSEd Tanous  * See header file for more information
1020b54eb49fSEd Tanous  * @endinternal
1021b54eb49fSEd Tanous  */
1022b54eb49fSEd Tanous nlohmann::json propertyValueError(std::string_view arg1)
1023b54eb49fSEd Tanous {
1024b54eb49fSEd Tanous     return getLog(redfish::registries::base::Index::propertyValueError,
1025b54eb49fSEd Tanous                   std::to_array<std::string_view>({arg1}));
1026b54eb49fSEd Tanous }
1027b54eb49fSEd Tanous 
1028b54eb49fSEd Tanous void propertyValueError(crow::Response& res, std::string_view arg1)
1029b54eb49fSEd Tanous {
1030b54eb49fSEd Tanous     res.result(boost::beast::http::status::bad_request);
1031b54eb49fSEd Tanous     addMessageToJson(res.jsonValue, propertyValueError(arg1), arg1);
1032b54eb49fSEd Tanous }
1033b54eb49fSEd Tanous 
1034b54eb49fSEd Tanous /**
1035b54eb49fSEd Tanous  * @internal
1036b6cd31e1SEd Tanous  * @brief Formats ResourceNotFound message into JSONd
1037f4c4dcf4SKowalski, Kamil  *
1038f4c4dcf4SKowalski, Kamil  * See header file for more information
1039f4c4dcf4SKowalski, Kamil  * @endinternal
1040f4c4dcf4SKowalski, Kamil  */
10411668ce6dSEd Tanous nlohmann::json resourceNotFound(std::string_view arg1, std::string_view arg2)
10421abe55efSEd Tanous {
1043fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceNotFound,
10441668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
1045b5c07418SJames Feist }
1046b5c07418SJames Feist 
10471668ce6dSEd Tanous void resourceNotFound(crow::Response& res, std::string_view arg1,
10481668ce6dSEd Tanous                       std::string_view arg2)
1049b5c07418SJames Feist {
1050b5c07418SJames Feist     res.result(boost::beast::http::status::not_found);
1051b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceNotFound(arg1, arg2));
1052f4c4dcf4SKowalski, Kamil }
1053f4c4dcf4SKowalski, Kamil 
1054f4c4dcf4SKowalski, Kamil /**
1055f4c4dcf4SKowalski, Kamil  * @internal
1056f4c4dcf4SKowalski, Kamil  * @brief Formats CouldNotEstablishConnection message into JSON
1057f4c4dcf4SKowalski, Kamil  *
1058f4c4dcf4SKowalski, Kamil  * See header file for more information
1059f4c4dcf4SKowalski, Kamil  * @endinternal
1060f4c4dcf4SKowalski, Kamil  */
10614a7fbefdSEd Tanous nlohmann::json
10624a7fbefdSEd Tanous     couldNotEstablishConnection(const boost::urls::url_view_base& arg1)
10631abe55efSEd Tanous {
1064fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::couldNotEstablishConnection,
1065079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer()}));
1066b5c07418SJames Feist }
1067b5c07418SJames Feist 
1068ace85d60SEd Tanous void couldNotEstablishConnection(crow::Response& res,
10694a7fbefdSEd Tanous                                  const boost::urls::url_view_base& arg1)
1070b5c07418SJames Feist {
1071b5c07418SJames Feist     res.result(boost::beast::http::status::not_found);
1072b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, couldNotEstablishConnection(arg1));
1073f4c4dcf4SKowalski, Kamil }
1074f4c4dcf4SKowalski, Kamil 
1075f4c4dcf4SKowalski, Kamil /**
1076f4c4dcf4SKowalski, Kamil  * @internal
1077f12894f8SJason M. Bills  * @brief Formats PropertyNotWritable message into JSON for the specified
1078f12894f8SJason M. Bills  * property
1079f12894f8SJason M. Bills  *
1080f12894f8SJason M. Bills  * See header file for more information
1081f12894f8SJason M. Bills  * @endinternal
1082f12894f8SJason M. Bills  */
10831668ce6dSEd Tanous nlohmann::json propertyNotWritable(std::string_view arg1)
1084f12894f8SJason M. Bills {
1085fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyNotWritable,
10861668ce6dSEd Tanous                   std::to_array({arg1}));
1087b5c07418SJames Feist }
1088b5c07418SJames Feist 
10891668ce6dSEd Tanous void propertyNotWritable(crow::Response& res, std::string_view arg1)
1090b5c07418SJames Feist {
1091b5c07418SJames Feist     res.result(boost::beast::http::status::forbidden);
1092b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyNotWritable(arg1), arg1);
1093f4c4dcf4SKowalski, Kamil }
1094f4c4dcf4SKowalski, Kamil 
1095f4c4dcf4SKowalski, Kamil /**
1096f4c4dcf4SKowalski, Kamil  * @internal
1097f4c4dcf4SKowalski, Kamil  * @brief Formats QueryParameterValueTypeError message into JSON
1098f4c4dcf4SKowalski, Kamil  *
1099f4c4dcf4SKowalski, Kamil  * See header file for more information
1100f4c4dcf4SKowalski, Kamil  * @endinternal
1101f4c4dcf4SKowalski, Kamil  */
110295b3ad73SEd Tanous nlohmann::json queryParameterValueTypeError(const nlohmann::json& arg1,
11031668ce6dSEd Tanous                                             std::string_view arg2)
11041abe55efSEd Tanous {
1105bd79bce8SPatrick Williams     std::string arg1Str =
1106bd79bce8SPatrick Williams         arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
1107b6cd31e1SEd Tanous     return getLog(
1108fffb8c1fSEd Tanous         redfish::registries::base::Index::queryParameterValueTypeError,
110995b3ad73SEd Tanous         std::to_array<std::string_view>({arg1Str, arg2}));
1110b5c07418SJames Feist }
1111b5c07418SJames Feist 
1112bd79bce8SPatrick Williams void queryParameterValueTypeError(
1113bd79bce8SPatrick Williams     crow::Response& res, const nlohmann::json& arg1, std::string_view arg2)
1114b5c07418SJames Feist {
1115b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1116b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
1117b5c07418SJames Feist                           queryParameterValueTypeError(arg1, arg2));
1118f4c4dcf4SKowalski, Kamil }
1119f4c4dcf4SKowalski, Kamil 
1120f4c4dcf4SKowalski, Kamil /**
1121f4c4dcf4SKowalski, Kamil  * @internal
1122f4c4dcf4SKowalski, Kamil  * @brief Formats ServiceShuttingDown message into JSON
1123f4c4dcf4SKowalski, Kamil  *
1124f4c4dcf4SKowalski, Kamil  * See header file for more information
1125f4c4dcf4SKowalski, Kamil  * @endinternal
1126f4c4dcf4SKowalski, Kamil  */
1127d9fcfcc1SEd Tanous nlohmann::json serviceShuttingDown()
11281abe55efSEd Tanous {
1129fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::serviceShuttingDown, {});
1130b5c07418SJames Feist }
1131b5c07418SJames Feist 
1132b5c07418SJames Feist void serviceShuttingDown(crow::Response& res)
1133b5c07418SJames Feist {
1134b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
1135b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, serviceShuttingDown());
1136f4c4dcf4SKowalski, Kamil }
1137f4c4dcf4SKowalski, Kamil 
1138f4c4dcf4SKowalski, Kamil /**
1139f4c4dcf4SKowalski, Kamil  * @internal
1140f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterDuplicate message into JSON
1141f4c4dcf4SKowalski, Kamil  *
1142f4c4dcf4SKowalski, Kamil  * See header file for more information
1143f4c4dcf4SKowalski, Kamil  * @endinternal
1144f4c4dcf4SKowalski, Kamil  */
11451668ce6dSEd Tanous nlohmann::json actionParameterDuplicate(std::string_view arg1,
11461668ce6dSEd Tanous                                         std::string_view arg2)
11471abe55efSEd Tanous {
1148fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::actionParameterDuplicate,
11491668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
1150b5c07418SJames Feist }
1151b5c07418SJames Feist 
11521668ce6dSEd Tanous void actionParameterDuplicate(crow::Response& res, std::string_view arg1,
11531668ce6dSEd Tanous                               std::string_view arg2)
1154b5c07418SJames Feist {
1155b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1156b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, actionParameterDuplicate(arg1, arg2));
1157f4c4dcf4SKowalski, Kamil }
1158f4c4dcf4SKowalski, Kamil 
1159f4c4dcf4SKowalski, Kamil /**
1160f4c4dcf4SKowalski, Kamil  * @internal
1161f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterNotSupported message into JSON
1162f4c4dcf4SKowalski, Kamil  *
1163f4c4dcf4SKowalski, Kamil  * See header file for more information
1164f4c4dcf4SKowalski, Kamil  * @endinternal
1165f4c4dcf4SKowalski, Kamil  */
11661668ce6dSEd Tanous nlohmann::json actionParameterNotSupported(std::string_view arg1,
11671668ce6dSEd Tanous                                            std::string_view arg2)
11681abe55efSEd Tanous {
1169fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::actionParameterNotSupported,
11701668ce6dSEd Tanous                   std::to_array({arg1, arg2}));
1171b5c07418SJames Feist }
1172b5c07418SJames Feist 
11731668ce6dSEd Tanous void actionParameterNotSupported(crow::Response& res, std::string_view arg1,
11741668ce6dSEd Tanous                                  std::string_view arg2)
1175b5c07418SJames Feist {
1176b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1177b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
1178b5c07418SJames Feist                           actionParameterNotSupported(arg1, arg2));
1179f4c4dcf4SKowalski, Kamil }
1180f4c4dcf4SKowalski, Kamil 
1181f4c4dcf4SKowalski, Kamil /**
1182f4c4dcf4SKowalski, Kamil  * @internal
1183f4c4dcf4SKowalski, Kamil  * @brief Formats SourceDoesNotSupportProtocol message into JSON
1184f4c4dcf4SKowalski, Kamil  *
1185f4c4dcf4SKowalski, Kamil  * See header file for more information
1186f4c4dcf4SKowalski, Kamil  * @endinternal
1187f4c4dcf4SKowalski, Kamil  */
1188bd79bce8SPatrick Williams nlohmann::json sourceDoesNotSupportProtocol(
1189bd79bce8SPatrick Williams     const boost::urls::url_view_base& arg1, std::string_view arg2)
11901abe55efSEd Tanous {
1191b6cd31e1SEd Tanous     return getLog(
1192fffb8c1fSEd Tanous         redfish::registries::base::Index::sourceDoesNotSupportProtocol,
1193079360aeSEd Tanous         std::to_array<std::string_view>({arg1.buffer(), arg2}));
1194b5c07418SJames Feist }
1195b5c07418SJames Feist 
1196ace85d60SEd Tanous void sourceDoesNotSupportProtocol(crow::Response& res,
11974a7fbefdSEd Tanous                                   const boost::urls::url_view_base& arg1,
11981668ce6dSEd Tanous                                   std::string_view arg2)
1199b5c07418SJames Feist {
1200b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1201b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
1202b5c07418SJames Feist                           sourceDoesNotSupportProtocol(arg1, arg2));
1203f4c4dcf4SKowalski, Kamil }
1204f4c4dcf4SKowalski, Kamil 
1205f4c4dcf4SKowalski, Kamil /**
1206f4c4dcf4SKowalski, Kamil  * @internal
1207b4ad4c05SShantappa Teekappanavar  * @brief Formats StrictAccountTypes message into JSON
1208b4ad4c05SShantappa Teekappanavar  *
1209b4ad4c05SShantappa Teekappanavar  * See header file for more information
1210b4ad4c05SShantappa Teekappanavar  * @endinternal
1211b4ad4c05SShantappa Teekappanavar  */
1212b4ad4c05SShantappa Teekappanavar nlohmann::json strictAccountTypes(std::string_view arg1)
1213b4ad4c05SShantappa Teekappanavar {
1214b4ad4c05SShantappa Teekappanavar     return getLog(redfish::registries::base::Index::strictAccountTypes,
1215b4ad4c05SShantappa Teekappanavar                   std::to_array({arg1}));
1216b4ad4c05SShantappa Teekappanavar }
1217b4ad4c05SShantappa Teekappanavar 
1218b4ad4c05SShantappa Teekappanavar void strictAccountTypes(crow::Response& res, std::string_view arg1)
1219b4ad4c05SShantappa Teekappanavar {
1220b4ad4c05SShantappa Teekappanavar     res.result(boost::beast::http::status::bad_request);
1221b4ad4c05SShantappa Teekappanavar     addMessageToErrorJson(res.jsonValue, strictAccountTypes(arg1));
1222b4ad4c05SShantappa Teekappanavar }
1223b4ad4c05SShantappa Teekappanavar 
1224b4ad4c05SShantappa Teekappanavar /**
1225b4ad4c05SShantappa Teekappanavar  * @internal
1226f4c4dcf4SKowalski, Kamil  * @brief Formats AccountRemoved message into JSON
1227f4c4dcf4SKowalski, Kamil  *
1228f4c4dcf4SKowalski, Kamil  * See header file for more information
1229f4c4dcf4SKowalski, Kamil  * @endinternal
1230f4c4dcf4SKowalski, Kamil  */
1231d9fcfcc1SEd Tanous nlohmann::json accountRemoved()
12321abe55efSEd Tanous {
1233fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::accountRemoved, {});
1234b5c07418SJames Feist }
1235b5c07418SJames Feist 
1236b5c07418SJames Feist void accountRemoved(crow::Response& res)
1237b5c07418SJames Feist {
1238b5c07418SJames Feist     res.result(boost::beast::http::status::ok);
1239b5c07418SJames Feist     addMessageToJsonRoot(res.jsonValue, accountRemoved());
1240f4c4dcf4SKowalski, Kamil }
1241f4c4dcf4SKowalski, Kamil 
1242f4c4dcf4SKowalski, Kamil /**
1243f4c4dcf4SKowalski, Kamil  * @internal
1244f4c4dcf4SKowalski, Kamil  * @brief Formats AccessDenied message into JSON
1245f4c4dcf4SKowalski, Kamil  *
1246f4c4dcf4SKowalski, Kamil  * See header file for more information
1247f4c4dcf4SKowalski, Kamil  * @endinternal
1248f4c4dcf4SKowalski, Kamil  */
12494a7fbefdSEd Tanous nlohmann::json accessDenied(const boost::urls::url_view_base& arg1)
12501abe55efSEd Tanous {
1251fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::accessDenied,
1252079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer()}));
1253b5c07418SJames Feist }
1254b5c07418SJames Feist 
12554a7fbefdSEd Tanous void accessDenied(crow::Response& res, const boost::urls::url_view_base& arg1)
1256b5c07418SJames Feist {
1257b5c07418SJames Feist     res.result(boost::beast::http::status::forbidden);
1258b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, accessDenied(arg1));
1259f4c4dcf4SKowalski, Kamil }
1260f4c4dcf4SKowalski, Kamil 
1261f4c4dcf4SKowalski, Kamil /**
1262f4c4dcf4SKowalski, Kamil  * @internal
1263f4c4dcf4SKowalski, Kamil  * @brief Formats QueryNotSupported message into JSON
1264f4c4dcf4SKowalski, Kamil  *
1265f4c4dcf4SKowalski, Kamil  * See header file for more information
1266f4c4dcf4SKowalski, Kamil  * @endinternal
1267f4c4dcf4SKowalski, Kamil  */
1268d9fcfcc1SEd Tanous nlohmann::json queryNotSupported()
12691abe55efSEd Tanous {
1270fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::queryNotSupported, {});
1271b5c07418SJames Feist }
1272b5c07418SJames Feist 
1273b5c07418SJames Feist void queryNotSupported(crow::Response& res)
1274b5c07418SJames Feist {
1275b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1276b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, queryNotSupported());
1277f4c4dcf4SKowalski, Kamil }
1278f4c4dcf4SKowalski, Kamil 
1279f4c4dcf4SKowalski, Kamil /**
1280f4c4dcf4SKowalski, Kamil  * @internal
1281f4c4dcf4SKowalski, Kamil  * @brief Formats CreateLimitReachedForResource message into JSON
1282f4c4dcf4SKowalski, Kamil  *
1283f4c4dcf4SKowalski, Kamil  * See header file for more information
1284f4c4dcf4SKowalski, Kamil  * @endinternal
1285f4c4dcf4SKowalski, Kamil  */
1286d9fcfcc1SEd Tanous nlohmann::json createLimitReachedForResource()
12871abe55efSEd Tanous {
1288b6cd31e1SEd Tanous     return getLog(
1289fffb8c1fSEd Tanous         redfish::registries::base::Index::createLimitReachedForResource, {});
1290b5c07418SJames Feist }
1291b5c07418SJames Feist 
1292b5c07418SJames Feist void createLimitReachedForResource(crow::Response& res)
1293b5c07418SJames Feist {
1294b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1295b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, createLimitReachedForResource());
1296f4c4dcf4SKowalski, Kamil }
1297f4c4dcf4SKowalski, Kamil 
1298f4c4dcf4SKowalski, Kamil /**
1299f4c4dcf4SKowalski, Kamil  * @internal
1300f4c4dcf4SKowalski, Kamil  * @brief Formats GeneralError message into JSON
1301f4c4dcf4SKowalski, Kamil  *
1302f4c4dcf4SKowalski, Kamil  * See header file for more information
1303f4c4dcf4SKowalski, Kamil  * @endinternal
1304f4c4dcf4SKowalski, Kamil  */
1305d9fcfcc1SEd Tanous nlohmann::json generalError()
13061abe55efSEd Tanous {
1307fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::generalError, {});
1308b5c07418SJames Feist }
1309b5c07418SJames Feist 
1310b5c07418SJames Feist void generalError(crow::Response& res)
1311b5c07418SJames Feist {
1312b5c07418SJames Feist     res.result(boost::beast::http::status::internal_server_error);
1313b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, generalError());
1314f4c4dcf4SKowalski, Kamil }
1315f4c4dcf4SKowalski, Kamil 
1316f4c4dcf4SKowalski, Kamil /**
1317f4c4dcf4SKowalski, Kamil  * @internal
1318f4c4dcf4SKowalski, Kamil  * @brief Formats Success message into JSON
1319f4c4dcf4SKowalski, Kamil  *
1320f4c4dcf4SKowalski, Kamil  * See header file for more information
1321f4c4dcf4SKowalski, Kamil  * @endinternal
1322f4c4dcf4SKowalski, Kamil  */
1323d9fcfcc1SEd Tanous nlohmann::json success()
13241abe55efSEd Tanous {
1325fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::success, {});
1326b5c07418SJames Feist }
1327b5c07418SJames Feist 
1328b5c07418SJames Feist void success(crow::Response& res)
1329b5c07418SJames Feist {
1330b5c07418SJames Feist     // don't set res.result here because success is the default and any
1331b5c07418SJames Feist     // error should overwrite the default
1332b5c07418SJames Feist     addMessageToJsonRoot(res.jsonValue, success());
1333f12894f8SJason M. Bills }
1334f12894f8SJason M. Bills 
1335f12894f8SJason M. Bills /**
1336f12894f8SJason M. Bills  * @internal
1337f4c4dcf4SKowalski, Kamil  * @brief Formats Created message into JSON
1338f4c4dcf4SKowalski, Kamil  *
1339f4c4dcf4SKowalski, Kamil  * See header file for more information
1340f4c4dcf4SKowalski, Kamil  * @endinternal
1341f4c4dcf4SKowalski, Kamil  */
1342d9fcfcc1SEd Tanous nlohmann::json created()
13431abe55efSEd Tanous {
1344fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::created, {});
1345b5c07418SJames Feist }
1346b5c07418SJames Feist 
1347b5c07418SJames Feist void created(crow::Response& res)
1348b5c07418SJames Feist {
1349b5c07418SJames Feist     res.result(boost::beast::http::status::created);
1350b5c07418SJames Feist     addMessageToJsonRoot(res.jsonValue, created());
1351f4c4dcf4SKowalski, Kamil }
1352f4c4dcf4SKowalski, Kamil 
1353f4c4dcf4SKowalski, Kamil /**
1354f4c4dcf4SKowalski, Kamil  * @internal
1355cc9139ecSJason M. Bills  * @brief Formats NoOperation message into JSON
1356cc9139ecSJason M. Bills  *
1357cc9139ecSJason M. Bills  * See header file for more information
1358cc9139ecSJason M. Bills  * @endinternal
1359cc9139ecSJason M. Bills  */
1360d9fcfcc1SEd Tanous nlohmann::json noOperation()
1361cc9139ecSJason M. Bills {
1362fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::noOperation, {});
1363b5c07418SJames Feist }
1364b5c07418SJames Feist 
1365b5c07418SJames Feist void noOperation(crow::Response& res)
1366b5c07418SJames Feist {
1367b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1368b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, noOperation());
1369cc9139ecSJason M. Bills }
1370cc9139ecSJason M. Bills 
1371cc9139ecSJason M. Bills /**
1372cc9139ecSJason M. Bills  * @internal
1373b5c07418SJames Feist  * @brief Formats PropertyUnknown message into JSON for the specified
1374b5c07418SJames Feist  * property
1375f12894f8SJason M. Bills  *
1376f12894f8SJason M. Bills  * See header file for more information
1377f12894f8SJason M. Bills  * @endinternal
1378f12894f8SJason M. Bills  */
13791668ce6dSEd Tanous nlohmann::json propertyUnknown(std::string_view arg1)
1380b5c07418SJames Feist {
1381fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyUnknown,
13821668ce6dSEd Tanous                   std::to_array({arg1}));
1383b5c07418SJames Feist }
1384b5c07418SJames Feist 
13851668ce6dSEd Tanous void propertyUnknown(crow::Response& res, std::string_view arg1)
1386f12894f8SJason M. Bills {
1387f12894f8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
13887b1dd2f9SEd Tanous     addMessageToErrorJson(res.jsonValue, propertyUnknown(arg1));
1389f4c4dcf4SKowalski, Kamil }
1390f4c4dcf4SKowalski, Kamil 
1391f4c4dcf4SKowalski, Kamil /**
1392f4c4dcf4SKowalski, Kamil  * @internal
1393f4c4dcf4SKowalski, Kamil  * @brief Formats NoValidSession message into JSON
1394f4c4dcf4SKowalski, Kamil  *
1395f4c4dcf4SKowalski, Kamil  * See header file for more information
1396f4c4dcf4SKowalski, Kamil  * @endinternal
1397f4c4dcf4SKowalski, Kamil  */
1398d9fcfcc1SEd Tanous nlohmann::json noValidSession()
13991abe55efSEd Tanous {
1400fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::noValidSession, {});
1401b5c07418SJames Feist }
1402b5c07418SJames Feist 
1403b5c07418SJames Feist void noValidSession(crow::Response& res)
1404b5c07418SJames Feist {
1405b5c07418SJames Feist     res.result(boost::beast::http::status::forbidden);
1406b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, noValidSession());
1407f4c4dcf4SKowalski, Kamil }
1408f4c4dcf4SKowalski, Kamil 
1409f4c4dcf4SKowalski, Kamil /**
1410f4c4dcf4SKowalski, Kamil  * @internal
1411f4c4dcf4SKowalski, Kamil  * @brief Formats InvalidObject message into JSON
1412f4c4dcf4SKowalski, Kamil  *
1413f4c4dcf4SKowalski, Kamil  * See header file for more information
1414f4c4dcf4SKowalski, Kamil  * @endinternal
1415f4c4dcf4SKowalski, Kamil  */
14164a7fbefdSEd Tanous nlohmann::json invalidObject(const boost::urls::url_view_base& arg1)
14171abe55efSEd Tanous {
1418fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::invalidObject,
1419079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer()}));
1420b5c07418SJames Feist }
1421b5c07418SJames Feist 
14224a7fbefdSEd Tanous void invalidObject(crow::Response& res, const boost::urls::url_view_base& arg1)
1423b5c07418SJames Feist {
1424b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1425b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, invalidObject(arg1));
1426f4c4dcf4SKowalski, Kamil }
1427f4c4dcf4SKowalski, Kamil 
1428f4c4dcf4SKowalski, Kamil /**
1429f4c4dcf4SKowalski, Kamil  * @internal
1430f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceInStandby message into JSON
1431f4c4dcf4SKowalski, Kamil  *
1432f4c4dcf4SKowalski, Kamil  * See header file for more information
1433f4c4dcf4SKowalski, Kamil  * @endinternal
1434f4c4dcf4SKowalski, Kamil  */
1435d9fcfcc1SEd Tanous nlohmann::json resourceInStandby()
14361abe55efSEd Tanous {
1437fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceInStandby, {});
1438b5c07418SJames Feist }
1439b5c07418SJames Feist 
1440b5c07418SJames Feist void resourceInStandby(crow::Response& res)
1441b5c07418SJames Feist {
1442b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
1443b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceInStandby());
1444f4c4dcf4SKowalski, Kamil }
1445f4c4dcf4SKowalski, Kamil 
1446f4c4dcf4SKowalski, Kamil /**
1447f4c4dcf4SKowalski, Kamil  * @internal
1448f4c4dcf4SKowalski, Kamil  * @brief Formats ActionParameterValueTypeError message into JSON
1449f4c4dcf4SKowalski, Kamil  *
1450f4c4dcf4SKowalski, Kamil  * See header file for more information
1451f4c4dcf4SKowalski, Kamil  * @endinternal
1452f4c4dcf4SKowalski, Kamil  */
1453bd79bce8SPatrick Williams nlohmann::json actionParameterValueTypeError(
1454bd79bce8SPatrick Williams     const nlohmann::json& arg1, std::string_view arg2, std::string_view arg3)
14551abe55efSEd Tanous {
1456bd79bce8SPatrick Williams     std::string arg1Str =
1457bd79bce8SPatrick Williams         arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
1458b6cd31e1SEd Tanous     return getLog(
1459fffb8c1fSEd Tanous         redfish::registries::base::Index::actionParameterValueTypeError,
146095b3ad73SEd Tanous         std::to_array<std::string_view>({arg1Str, arg2, arg3}));
1461b5c07418SJames Feist }
1462b5c07418SJames Feist 
146395b3ad73SEd Tanous void actionParameterValueTypeError(crow::Response& res,
146495b3ad73SEd Tanous                                    const nlohmann::json& arg1,
14651668ce6dSEd Tanous                                    std::string_view arg2, std::string_view arg3)
1466b5c07418SJames Feist {
1467b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1468b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
1469b5c07418SJames Feist                           actionParameterValueTypeError(arg1, arg2, arg3));
1470f4c4dcf4SKowalski, Kamil }
1471f4c4dcf4SKowalski, Kamil 
1472f4c4dcf4SKowalski, Kamil /**
1473f4c4dcf4SKowalski, Kamil  * @internal
14741827b4f1SAsmitha Karunanithi  * @brief Formats actionParameterValueError message into JSON
14751827b4f1SAsmitha Karunanithi  *
14761827b4f1SAsmitha Karunanithi  * See header file for more information
14771827b4f1SAsmitha Karunanithi  * @endinternal
14781827b4f1SAsmitha Karunanithi  */
14791827b4f1SAsmitha Karunanithi nlohmann::json actionParameterValueError(const nlohmann::json& arg1,
14801827b4f1SAsmitha Karunanithi                                          std::string_view arg2)
14811827b4f1SAsmitha Karunanithi {
1482bd79bce8SPatrick Williams     std::string arg1Str =
1483bd79bce8SPatrick Williams         arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
14841827b4f1SAsmitha Karunanithi     return getLog(redfish::registries::base::Index::actionParameterValueError,
14851827b4f1SAsmitha Karunanithi                   std::to_array<std::string_view>({arg1Str, arg2}));
14861827b4f1SAsmitha Karunanithi }
14871827b4f1SAsmitha Karunanithi 
14881827b4f1SAsmitha Karunanithi void actionParameterValueError(crow::Response& res, const nlohmann::json& arg1,
14891827b4f1SAsmitha Karunanithi                                std::string_view arg2)
14901827b4f1SAsmitha Karunanithi {
14911827b4f1SAsmitha Karunanithi     res.result(boost::beast::http::status::bad_request);
14921827b4f1SAsmitha Karunanithi     addMessageToErrorJson(res.jsonValue, actionParameterValueError(arg1, arg2));
14931827b4f1SAsmitha Karunanithi }
14941827b4f1SAsmitha Karunanithi 
14951827b4f1SAsmitha Karunanithi /**
14961827b4f1SAsmitha Karunanithi  * @internal
1497f4c4dcf4SKowalski, Kamil  * @brief Formats SessionLimitExceeded message into JSON
1498f4c4dcf4SKowalski, Kamil  *
1499f4c4dcf4SKowalski, Kamil  * See header file for more information
1500f4c4dcf4SKowalski, Kamil  * @endinternal
1501f4c4dcf4SKowalski, Kamil  */
1502d9fcfcc1SEd Tanous nlohmann::json sessionLimitExceeded()
15031abe55efSEd Tanous {
1504fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::sessionLimitExceeded, {});
1505b5c07418SJames Feist }
1506b5c07418SJames Feist 
1507b5c07418SJames Feist void sessionLimitExceeded(crow::Response& res)
1508b5c07418SJames Feist {
1509b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
1510b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, sessionLimitExceeded());
1511f4c4dcf4SKowalski, Kamil }
1512f4c4dcf4SKowalski, Kamil 
1513f4c4dcf4SKowalski, Kamil /**
1514f4c4dcf4SKowalski, Kamil  * @internal
1515f4c4dcf4SKowalski, Kamil  * @brief Formats ActionNotSupported message into JSON
1516f4c4dcf4SKowalski, Kamil  *
1517f4c4dcf4SKowalski, Kamil  * See header file for more information
1518f4c4dcf4SKowalski, Kamil  * @endinternal
1519f4c4dcf4SKowalski, Kamil  */
15201668ce6dSEd Tanous nlohmann::json actionNotSupported(std::string_view arg1)
15211abe55efSEd Tanous {
1522fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::actionNotSupported,
15231668ce6dSEd Tanous                   std::to_array({arg1}));
1524b5c07418SJames Feist }
1525b5c07418SJames Feist 
15261668ce6dSEd Tanous void actionNotSupported(crow::Response& res, std::string_view arg1)
1527b5c07418SJames Feist {
1528b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1529b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, actionNotSupported(arg1));
1530f4c4dcf4SKowalski, Kamil }
1531f4c4dcf4SKowalski, Kamil 
1532f4c4dcf4SKowalski, Kamil /**
1533f4c4dcf4SKowalski, Kamil  * @internal
1534f4c4dcf4SKowalski, Kamil  * @brief Formats InvalidIndex message into JSON
1535f4c4dcf4SKowalski, Kamil  *
1536f4c4dcf4SKowalski, Kamil  * See header file for more information
1537f4c4dcf4SKowalski, Kamil  * @endinternal
1538f4c4dcf4SKowalski, Kamil  */
15395187e09bSJosh Lehan nlohmann::json invalidIndex(int64_t arg1)
15401abe55efSEd Tanous {
1541b6cd31e1SEd Tanous     std::string arg1Str = std::to_string(arg1);
1542fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::invalidIndex,
15431668ce6dSEd Tanous                   std::to_array<std::string_view>({arg1Str}));
1544b5c07418SJames Feist }
1545b5c07418SJames Feist 
15465187e09bSJosh Lehan void invalidIndex(crow::Response& res, int64_t arg1)
1547b5c07418SJames Feist {
1548b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1549b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, invalidIndex(arg1));
1550f4c4dcf4SKowalski, Kamil }
1551f4c4dcf4SKowalski, Kamil 
1552f4c4dcf4SKowalski, Kamil /**
1553f4c4dcf4SKowalski, Kamil  * @internal
1554f4c4dcf4SKowalski, Kamil  * @brief Formats EmptyJSON message into JSON
1555f4c4dcf4SKowalski, Kamil  *
1556f4c4dcf4SKowalski, Kamil  * See header file for more information
1557f4c4dcf4SKowalski, Kamil  * @endinternal
1558f4c4dcf4SKowalski, Kamil  */
1559d9fcfcc1SEd Tanous nlohmann::json emptyJSON()
15601abe55efSEd Tanous {
1561fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::emptyJSON, {});
1562b5c07418SJames Feist }
1563b5c07418SJames Feist 
1564b5c07418SJames Feist void emptyJSON(crow::Response& res)
1565b5c07418SJames Feist {
1566b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1567b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, emptyJSON());
1568f4c4dcf4SKowalski, Kamil }
1569f4c4dcf4SKowalski, Kamil 
1570f4c4dcf4SKowalski, Kamil /**
1571f4c4dcf4SKowalski, Kamil  * @internal
1572f4c4dcf4SKowalski, Kamil  * @brief Formats QueryNotSupportedOnResource message into JSON
1573f4c4dcf4SKowalski, Kamil  *
1574f4c4dcf4SKowalski, Kamil  * See header file for more information
1575f4c4dcf4SKowalski, Kamil  * @endinternal
1576f4c4dcf4SKowalski, Kamil  */
1577d9fcfcc1SEd Tanous nlohmann::json queryNotSupportedOnResource()
15781abe55efSEd Tanous {
1579fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::queryNotSupportedOnResource,
1580b6cd31e1SEd Tanous                   {});
1581b5c07418SJames Feist }
1582b5c07418SJames Feist 
1583b5c07418SJames Feist void queryNotSupportedOnResource(crow::Response& res)
1584b5c07418SJames Feist {
15856a409c12SEd Tanous     res.result(boost::beast::http::status::bad_request);
1586b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, queryNotSupportedOnResource());
1587f4c4dcf4SKowalski, Kamil }
1588f4c4dcf4SKowalski, Kamil 
1589f4c4dcf4SKowalski, Kamil /**
1590f4c4dcf4SKowalski, Kamil  * @internal
1591684bb4b8SJason M. Bills  * @brief Formats QueryNotSupportedOnOperation message into JSON
1592684bb4b8SJason M. Bills  *
1593684bb4b8SJason M. Bills  * See header file for more information
1594684bb4b8SJason M. Bills  * @endinternal
1595684bb4b8SJason M. Bills  */
1596d9fcfcc1SEd Tanous nlohmann::json queryNotSupportedOnOperation()
1597684bb4b8SJason M. Bills {
1598b6cd31e1SEd Tanous     return getLog(
1599fffb8c1fSEd Tanous         redfish::registries::base::Index::queryNotSupportedOnOperation, {});
1600684bb4b8SJason M. Bills }
1601684bb4b8SJason M. Bills 
1602684bb4b8SJason M. Bills void queryNotSupportedOnOperation(crow::Response& res)
1603684bb4b8SJason M. Bills {
16046a409c12SEd Tanous     res.result(boost::beast::http::status::bad_request);
1605684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, queryNotSupportedOnOperation());
1606684bb4b8SJason M. Bills }
1607684bb4b8SJason M. Bills 
1608684bb4b8SJason M. Bills /**
1609684bb4b8SJason M. Bills  * @internal
1610684bb4b8SJason M. Bills  * @brief Formats QueryCombinationInvalid message into JSON
1611684bb4b8SJason M. Bills  *
1612684bb4b8SJason M. Bills  * See header file for more information
1613684bb4b8SJason M. Bills  * @endinternal
1614684bb4b8SJason M. Bills  */
1615d9fcfcc1SEd Tanous nlohmann::json queryCombinationInvalid()
1616684bb4b8SJason M. Bills {
1617fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::queryCombinationInvalid,
1618fffb8c1fSEd Tanous                   {});
1619684bb4b8SJason M. Bills }
1620684bb4b8SJason M. Bills 
1621684bb4b8SJason M. Bills void queryCombinationInvalid(crow::Response& res)
1622684bb4b8SJason M. Bills {
1623684bb4b8SJason M. Bills     res.result(boost::beast::http::status::bad_request);
1624684bb4b8SJason M. Bills     addMessageToErrorJson(res.jsonValue, queryCombinationInvalid());
1625684bb4b8SJason M. Bills }
1626684bb4b8SJason M. Bills 
1627684bb4b8SJason M. Bills /**
1628684bb4b8SJason M. Bills  * @internal
1629fa345c78SEd Tanous  * @brief Formats EventBufferExceeded message into JSON
1630fa345c78SEd Tanous  *
1631fa345c78SEd Tanous  * See header file for more information
1632fa345c78SEd Tanous  * @endinternal
1633fa345c78SEd Tanous  */
1634fa345c78SEd Tanous nlohmann::json eventBufferExceeded()
1635fa345c78SEd Tanous {
1636fa345c78SEd Tanous     return getLog(redfish::registries::base::Index::eventBufferExceeded, {});
1637fa345c78SEd Tanous }
1638fa345c78SEd Tanous 
1639fa345c78SEd Tanous void eventBufferExceeded(crow::Response& res)
1640fa345c78SEd Tanous {
1641fa345c78SEd Tanous     res.result(boost::beast::http::status::bad_request);
1642fa345c78SEd Tanous     addMessageToErrorJson(res.jsonValue, eventBufferExceeded());
1643fa345c78SEd Tanous }
1644fa345c78SEd Tanous 
1645fa345c78SEd Tanous /**
1646fa345c78SEd Tanous  * @internal
1647f4c4dcf4SKowalski, Kamil  * @brief Formats InsufficientPrivilege message into JSON
1648f4c4dcf4SKowalski, Kamil  *
1649f4c4dcf4SKowalski, Kamil  * See header file for more information
1650f4c4dcf4SKowalski, Kamil  * @endinternal
1651f4c4dcf4SKowalski, Kamil  */
1652d9fcfcc1SEd Tanous nlohmann::json insufficientPrivilege()
16531abe55efSEd Tanous {
1654fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::insufficientPrivilege, {});
1655b5c07418SJames Feist }
1656b5c07418SJames Feist 
1657b5c07418SJames Feist void insufficientPrivilege(crow::Response& res)
1658b5c07418SJames Feist {
1659b5c07418SJames Feist     res.result(boost::beast::http::status::forbidden);
1660b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, insufficientPrivilege());
1661f4c4dcf4SKowalski, Kamil }
1662f4c4dcf4SKowalski, Kamil 
1663f4c4dcf4SKowalski, Kamil /**
1664f4c4dcf4SKowalski, Kamil  * @internal
1665f4c4dcf4SKowalski, Kamil  * @brief Formats PropertyValueModified message into JSON
1666f4c4dcf4SKowalski, Kamil  *
1667f4c4dcf4SKowalski, Kamil  * See header file for more information
1668f4c4dcf4SKowalski, Kamil  * @endinternal
1669f4c4dcf4SKowalski, Kamil  */
16701668ce6dSEd Tanous nlohmann::json propertyValueModified(std::string_view arg1,
167195b3ad73SEd Tanous                                      const nlohmann::json& arg2)
1672b5c07418SJames Feist {
1673bd79bce8SPatrick Williams     std::string arg2Str =
1674bd79bce8SPatrick Williams         arg2.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
1675fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyValueModified,
167695b3ad73SEd Tanous                   std::to_array<std::string_view>({arg1, arg2Str}));
1677b5c07418SJames Feist }
1678b5c07418SJames Feist 
16791668ce6dSEd Tanous void propertyValueModified(crow::Response& res, std::string_view arg1,
168095b3ad73SEd Tanous                            const nlohmann::json& arg2)
16811abe55efSEd Tanous {
1682f12894f8SJason M. Bills     res.result(boost::beast::http::status::ok);
1683b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyValueModified(arg1, arg2), arg1);
1684f4c4dcf4SKowalski, Kamil }
1685f4c4dcf4SKowalski, Kamil 
1686f4c4dcf4SKowalski, Kamil /**
1687f4c4dcf4SKowalski, Kamil  * @internal
1688f4c4dcf4SKowalski, Kamil  * @brief Formats AccountNotModified message into JSON
1689f4c4dcf4SKowalski, Kamil  *
1690f4c4dcf4SKowalski, Kamil  * See header file for more information
1691f4c4dcf4SKowalski, Kamil  * @endinternal
1692f4c4dcf4SKowalski, Kamil  */
1693d9fcfcc1SEd Tanous nlohmann::json accountNotModified()
16941abe55efSEd Tanous {
1695fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::accountNotModified, {});
1696b5c07418SJames Feist }
1697b5c07418SJames Feist 
1698b5c07418SJames Feist void accountNotModified(crow::Response& res)
1699b5c07418SJames Feist {
1700b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1701b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, accountNotModified());
1702f4c4dcf4SKowalski, Kamil }
1703f4c4dcf4SKowalski, Kamil 
1704f4c4dcf4SKowalski, Kamil /**
1705f4c4dcf4SKowalski, Kamil  * @internal
1706f4c4dcf4SKowalski, Kamil  * @brief Formats QueryParameterValueFormatError message into JSON
1707f4c4dcf4SKowalski, Kamil  *
1708f4c4dcf4SKowalski, Kamil  * See header file for more information
1709f4c4dcf4SKowalski, Kamil  * @endinternal
1710f4c4dcf4SKowalski, Kamil  */
171195b3ad73SEd Tanous nlohmann::json queryParameterValueFormatError(const nlohmann::json& arg1,
17121668ce6dSEd Tanous                                               std::string_view arg2)
17131abe55efSEd Tanous {
1714bd79bce8SPatrick Williams     std::string arg1Str =
1715bd79bce8SPatrick Williams         arg1.dump(2, ' ', true, nlohmann::json::error_handler_t::replace);
1716fffb8c1fSEd Tanous     return getLog(
1717fffb8c1fSEd Tanous         redfish::registries::base::Index::queryParameterValueFormatError,
171895b3ad73SEd Tanous         std::to_array<std::string_view>({arg1Str, arg2}));
1719b5c07418SJames Feist }
1720b5c07418SJames Feist 
1721bd79bce8SPatrick Williams void queryParameterValueFormatError(
1722bd79bce8SPatrick Williams     crow::Response& res, const nlohmann::json& arg1, std::string_view arg2)
1723b5c07418SJames Feist {
1724b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1725b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
1726b5c07418SJames Feist                           queryParameterValueFormatError(arg1, arg2));
1727f4c4dcf4SKowalski, Kamil }
1728f4c4dcf4SKowalski, Kamil 
1729f4c4dcf4SKowalski, Kamil /**
1730f4c4dcf4SKowalski, Kamil  * @internal
1731b5c07418SJames Feist  * @brief Formats PropertyMissing message into JSON for the specified
1732b5c07418SJames Feist  * property
1733f12894f8SJason M. Bills  *
1734f12894f8SJason M. Bills  * See header file for more information
1735f12894f8SJason M. Bills  * @endinternal
1736f12894f8SJason M. Bills  */
17371668ce6dSEd Tanous nlohmann::json propertyMissing(std::string_view arg1)
1738f12894f8SJason M. Bills {
1739fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::propertyMissing,
17401668ce6dSEd Tanous                   std::to_array({arg1}));
1741b5c07418SJames Feist }
1742b5c07418SJames Feist 
17431668ce6dSEd Tanous void propertyMissing(crow::Response& res, std::string_view arg1)
1744b5c07418SJames Feist {
1745b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1746b5c07418SJames Feist     addMessageToJson(res.jsonValue, propertyMissing(arg1), arg1);
1747f4c4dcf4SKowalski, Kamil }
1748f4c4dcf4SKowalski, Kamil 
1749f4c4dcf4SKowalski, Kamil /**
1750f4c4dcf4SKowalski, Kamil  * @internal
1751f4c4dcf4SKowalski, Kamil  * @brief Formats ResourceExhaustion message into JSON
1752f4c4dcf4SKowalski, Kamil  *
1753f4c4dcf4SKowalski, Kamil  * See header file for more information
1754f4c4dcf4SKowalski, Kamil  * @endinternal
1755f4c4dcf4SKowalski, Kamil  */
17561668ce6dSEd Tanous nlohmann::json resourceExhaustion(std::string_view arg1)
17571abe55efSEd Tanous {
1758fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::resourceExhaustion,
17591668ce6dSEd Tanous                   std::to_array({arg1}));
1760b5c07418SJames Feist }
1761b5c07418SJames Feist 
17621668ce6dSEd Tanous void resourceExhaustion(crow::Response& res, std::string_view arg1)
1763b5c07418SJames Feist {
1764b5c07418SJames Feist     res.result(boost::beast::http::status::service_unavailable);
1765b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, resourceExhaustion(arg1));
1766f4c4dcf4SKowalski, Kamil }
1767f4c4dcf4SKowalski, Kamil 
1768f4c4dcf4SKowalski, Kamil /**
1769f4c4dcf4SKowalski, Kamil  * @internal
1770f4c4dcf4SKowalski, Kamil  * @brief Formats AccountModified message into JSON
1771f4c4dcf4SKowalski, Kamil  *
1772f4c4dcf4SKowalski, Kamil  * See header file for more information
1773f4c4dcf4SKowalski, Kamil  * @endinternal
1774f4c4dcf4SKowalski, Kamil  */
1775d9fcfcc1SEd Tanous nlohmann::json accountModified()
17761abe55efSEd Tanous {
1777fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::accountModified, {});
1778b5c07418SJames Feist }
1779b5c07418SJames Feist 
1780b5c07418SJames Feist void accountModified(crow::Response& res)
1781b5c07418SJames Feist {
1782b5c07418SJames Feist     res.result(boost::beast::http::status::ok);
1783b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue, accountModified());
1784f4c4dcf4SKowalski, Kamil }
1785f4c4dcf4SKowalski, Kamil 
1786f4c4dcf4SKowalski, Kamil /**
1787f4c4dcf4SKowalski, Kamil  * @internal
1788f4c4dcf4SKowalski, Kamil  * @brief Formats QueryParameterOutOfRange message into JSON
1789f4c4dcf4SKowalski, Kamil  *
1790f4c4dcf4SKowalski, Kamil  * See header file for more information
1791f4c4dcf4SKowalski, Kamil  * @endinternal
1792f4c4dcf4SKowalski, Kamil  */
1793bd79bce8SPatrick Williams nlohmann::json queryParameterOutOfRange(
1794bd79bce8SPatrick Williams     std::string_view arg1, std::string_view arg2, std::string_view arg3)
17951abe55efSEd Tanous {
1796fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::queryParameterOutOfRange,
17971668ce6dSEd Tanous                   std::to_array({arg1, arg2, arg3}));
1798b5c07418SJames Feist }
1799b5c07418SJames Feist 
18001668ce6dSEd Tanous void queryParameterOutOfRange(crow::Response& res, std::string_view arg1,
18011668ce6dSEd Tanous                               std::string_view arg2, std::string_view arg3)
1802b5c07418SJames Feist {
1803b5c07418SJames Feist     res.result(boost::beast::http::status::bad_request);
1804b5c07418SJames Feist     addMessageToErrorJson(res.jsonValue,
1805b5c07418SJames Feist                           queryParameterOutOfRange(arg1, arg2, arg3));
1806f4c4dcf4SKowalski, Kamil }
1807f4c4dcf4SKowalski, Kamil 
18084a7fbefdSEd Tanous nlohmann::json passwordChangeRequired(const boost::urls::url_view_base& arg1)
1809b6cd31e1SEd Tanous {
1810fffb8c1fSEd Tanous     return getLog(redfish::registries::base::Index::passwordChangeRequired,
1811079360aeSEd Tanous                   std::to_array<std::string_view>({arg1.buffer()}));
1812b6cd31e1SEd Tanous }
1813b6cd31e1SEd Tanous 
18143bf4e632SJoseph Reynolds /**
18153bf4e632SJoseph Reynolds  * @internal
18163bf4e632SJoseph Reynolds  * @brief Formats PasswordChangeRequired message into JSON
18173bf4e632SJoseph Reynolds  *
18183bf4e632SJoseph Reynolds  * See header file for more information
18193bf4e632SJoseph Reynolds  * @endinternal
18203bf4e632SJoseph Reynolds  */
18214a7fbefdSEd Tanous void passwordChangeRequired(crow::Response& res,
18224a7fbefdSEd Tanous                             const boost::urls::url_view_base& arg1)
18233bf4e632SJoseph Reynolds {
1824b6cd31e1SEd Tanous     messages::addMessageToJsonRoot(res.jsonValue, passwordChangeRequired(arg1));
18253bf4e632SJoseph Reynolds }
18263bf4e632SJoseph Reynolds 
18274cde5d90SJames Feist /**
18284cde5d90SJames Feist  * @internal
1829ae688313SNan Zhou  * @brief Formats InsufficientStorage message into JSON
1830ae688313SNan Zhou  *
1831ae688313SNan Zhou  * See header file for more information
1832ae688313SNan Zhou  * @endinternal
1833ae688313SNan Zhou  */
1834ae688313SNan Zhou nlohmann::json insufficientStorage()
1835ae688313SNan Zhou {
1836ae688313SNan Zhou     return getLog(redfish::registries::base::Index::insufficientStorage, {});
1837ae688313SNan Zhou }
1838ae688313SNan Zhou 
1839ae688313SNan Zhou void insufficientStorage(crow::Response& res)
1840ae688313SNan Zhou {
1841ae688313SNan Zhou     res.result(boost::beast::http::status::insufficient_storage);
1842ae688313SNan Zhou     addMessageToErrorJson(res.jsonValue, insufficientStorage());
1843ae688313SNan Zhou }
1844ae688313SNan Zhou 
1845ae688313SNan Zhou /**
1846ae688313SNan Zhou  * @internal
184744c70412SEd Tanous  * @brief Formats OperationNotAllowed message into JSON
184844c70412SEd Tanous  *
184944c70412SEd Tanous  * See header file for more information
185044c70412SEd Tanous  * @endinternal
185144c70412SEd Tanous  */
185244c70412SEd Tanous nlohmann::json operationNotAllowed()
185344c70412SEd Tanous {
185444c70412SEd Tanous     return getLog(redfish::registries::base::Index::operationNotAllowed, {});
185544c70412SEd Tanous }
185644c70412SEd Tanous 
185744c70412SEd Tanous void operationNotAllowed(crow::Response& res)
185844c70412SEd Tanous {
185944c70412SEd Tanous     res.result(boost::beast::http::status::method_not_allowed);
186044c70412SEd Tanous     addMessageToErrorJson(res.jsonValue, operationNotAllowed());
186144c70412SEd Tanous }
186244c70412SEd Tanous 
1863600af5f1SAppaRao Puli /**
1864600af5f1SAppaRao Puli  * @internal
1865600af5f1SAppaRao Puli  * @brief Formats ArraySizeTooLong message into JSON
1866600af5f1SAppaRao Puli  *
1867600af5f1SAppaRao Puli  * See header file for more information
1868600af5f1SAppaRao Puli  * @endinternal
1869600af5f1SAppaRao Puli  */
1870600af5f1SAppaRao Puli nlohmann::json arraySizeTooLong(std::string_view property, uint64_t length)
1871600af5f1SAppaRao Puli {
1872600af5f1SAppaRao Puli     std::string valStr = std::to_string(length);
1873600af5f1SAppaRao Puli     return getLog(redfish::registries::base::Index::arraySizeTooLong,
1874600af5f1SAppaRao Puli                   std::to_array<std::string_view>({property, valStr}));
1875600af5f1SAppaRao Puli }
1876600af5f1SAppaRao Puli 
1877600af5f1SAppaRao Puli void arraySizeTooLong(crow::Response& res, std::string_view property,
1878600af5f1SAppaRao Puli                       uint64_t length)
1879600af5f1SAppaRao Puli {
188099bf0262SDivya Jyoti     res.result(boost::beast::http::status::bad_request);
1881600af5f1SAppaRao Puli     addMessageToErrorJson(res.jsonValue, arraySizeTooLong(property, length));
1882600af5f1SAppaRao Puli }
1883600af5f1SAppaRao Puli 
188444c70412SEd Tanous void invalidUpload(crow::Response& res, std::string_view arg1,
188544c70412SEd Tanous                    std::string_view arg2)
188644c70412SEd Tanous {
188744c70412SEd Tanous     res.result(boost::beast::http::status::bad_request);
188844c70412SEd Tanous     addMessageToErrorJson(res.jsonValue, invalidUpload(arg1, arg2));
188944c70412SEd Tanous }
189044c70412SEd Tanous 
189144c70412SEd Tanous /**
189244c70412SEd Tanous  * @internal
18934cde5d90SJames Feist  * @brief Formats Invalid File message into JSON
18944cde5d90SJames Feist  *
18954cde5d90SJames Feist  * See header file for more information
18964cde5d90SJames Feist  * @endinternal
18974cde5d90SJames Feist  */
18981668ce6dSEd Tanous nlohmann::json invalidUpload(std::string_view arg1, std::string_view arg2)
18994cde5d90SJames Feist {
19001668ce6dSEd Tanous     std::string msg = "Invalid file uploaded to ";
19011668ce6dSEd Tanous     msg += arg1;
19021668ce6dSEd Tanous     msg += ": ";
19031668ce6dSEd Tanous     msg += arg2;
19041668ce6dSEd Tanous     msg += ".";
1905613dabeaSEd Tanous 
1906613dabeaSEd Tanous     nlohmann::json::object_t ret;
1907613dabeaSEd Tanous     ret["@odata.type"] = "/redfish/v1/$metadata#Message.v1_1_1.Message";
1908613dabeaSEd Tanous     ret["MessageId"] = "OpenBMC.0.2.InvalidUpload";
1909613dabeaSEd Tanous     ret["Message"] = std::move(msg);
1910613dabeaSEd Tanous     nlohmann::json::array_t args;
1911ad539545SPatrick Williams     args.emplace_back(arg1);
1912ad539545SPatrick Williams     args.emplace_back(arg2);
1913613dabeaSEd Tanous     ret["MessageArgs"] = std::move(args);
1914613dabeaSEd Tanous     ret["MessageSeverity"] = "Warning";
1915613dabeaSEd Tanous     ret["Resolution"] = "None.";
1916613dabeaSEd Tanous     return ret;
19174cde5d90SJames Feist }
1918ae688313SNan Zhou 
1919f4c4dcf4SKowalski, Kamil } // namespace messages
1920f4c4dcf4SKowalski, Kamil 
1921d425c6f6SEd Tanous } // namespace redfish
1922