#ifndef XAPP_MODEL_ActionToBeSetup_H #define XAPP_MODEL_ActionToBeSetup_H #include "ModelBase.h" #include "SubsequentAction.h" namespace xapp { namespace model { using namespace xapp::model; using ActionDefinition = std::vector; struct ActionToBeSetup: ModelBase { ActionDefinition m_ActionDefinition; int ActionID; std::string ActionType; SubsequentAction m_SubsequentAction; json validator_schema = R"( { "$schema": "http://json-schema.org/draft-07/schema#", "title": "SubsequentAction", "properties": { "ActionDefinition": { "description": "Action Definition", "type": "array", "items": { "type": "integer" } }, "ActionID": { "description": "Identification of Action", "type": "integer", "minimum": 0, "maximum": 255 }, "ActionType": { "description": "Type of Action", "type": "string", "enum": ["policy", "insert", "report"] }, "SubsequentAction": { "description": "Subsequent Action", "type": "object" } }, "required": [ "ActionDefinition", "ActionID", "ActionType", "SubsequentAction" ], "type": "object" })"_json; virtual json get_validator_schema() const { return validator_schema; } }; void from_json(const json& j, ActionToBeSetup& ref) { std::cout << __PRETTY_FUNCTION__ << std::endl; ref.validate_json(j); j.at("ActionDefinition").get_to(ref.m_ActionDefinition); j.at("ActionID").get_to(ref.ActionID); j.at("ActionType").get_to(ref.ActionType); j.at("SubsequentAction").get_to(ref.m_SubsequentAction); } void to_json(json& j, const ActionToBeSetup& ref) { j = json { {"ActionDefinition", ref.m_ActionDefinition}, {"ActionID", ref.ActionID}, {"ActionType", ref.ActionType}, {"SubsequentAction", ref.m_SubsequentAction} }; } using ActionsToBeSetup = std::vector; } /*namespace model*/ } /*namespace xapp*/ #endif /* XAPP_MODEL_ActionToBeSetup_H */