16 #define RAPIDJSON_HAS_STDSTRING 1
17 #include "InterfaceFieldType.h"
18 #include "InterfaceMessageType.h"
20 #include <rapidjson/fwd.h>
60 virtual std::string
to_json(
bool pretty =
false)
const;
65 virtual void to_json_value(rapidjson::Document &d, rapidjson::Value &v)
const;
71 virtual void from_json(
const std::string &json);
87 virtual void validate(
bool subcall =
false)
const;
94 std::optional<std::string>
111 std::optional<std::string>
128 std::optional<std::string>
138 set_id(
const std::string &
id)
145 std::optional<std::string>
162 std::optional<std::string>
179 std::optional<std::string>
196 std::vector<std::string>
216 readers_.push_back(std::move(
readers));
231 std::vector<std::shared_ptr<InterfaceFieldType>>
251 fields_.push_back(std::move(
fields));
261 fields_.push_back(
fields);
269 fields_.push_back(std::make_shared<InterfaceFieldType>(std::move(
fields)));
274 std::vector<std::shared_ptr<InterfaceMessageType>>
277 return message_types_;
312 message_types_.push_back(std::make_shared<InterfaceMessageType>(std::move(
message_types)));
316 std::optional<std::string> kind_;
317 std::optional<std::string> apiVersion_;
318 std::optional<std::string> id_;
319 std::optional<std::string> type_;
320 std::optional<std::string> hash_;
321 std::optional<std::string> writer_;
322 std::vector<std::string> readers_;
323 std::vector<std::shared_ptr<InterfaceFieldType>> fields_;
324 std::vector<std::shared_ptr<InterfaceMessageType>> message_types_;