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>
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_;
InterfaceFieldType representation for JSON transfer.
InterfaceInfo representation for JSON transfer.
void addto_readers(const std::string &readers)
Add element to readers array.
void set_fields(const std::vector< std::shared_ptr< InterfaceFieldType >> &fields)
Set fields value.
void set_type(const std::string &type)
Set type value.
virtual std::string to_json(bool pretty=false) const
Render object to JSON.
std::optional< std::string > kind() const
Get kind value.
void set_hash(const std::string &hash)
Set hash value.
std::vector< std::shared_ptr< InterfaceMessageType > > message_types() const
Get message_types value.
std::vector< std::shared_ptr< InterfaceFieldType > > fields() const
Get fields value.
std::optional< std::string > id() const
Get id value.
void set_apiVersion(const std::string &apiVersion)
Set apiVersion value.
std::optional< std::string > apiVersion() const
Get apiVersion value.
void set_readers(const std::vector< std::string > &readers)
Set readers value.
void addto_message_types(const InterfaceMessageType &&message_types)
Add element to message_types array.
void addto_fields(const InterfaceFieldType &&fields)
Add element to fields array.
virtual void from_json_value(const rapidjson::Value &v)
Retrieve data from JSON string.
void addto_message_types(const std::shared_ptr< InterfaceMessageType > &&message_types)
Add element to message_types array.
std::optional< std::string > hash() const
Get hash value.
virtual ~InterfaceInfo()
Destructor.
void addto_message_types(const std::shared_ptr< InterfaceMessageType > &message_types)
Add element to message_types array.
void set_id(const std::string &id)
Set id value.
InterfaceInfo()
Constructor.
void set_message_types(const std::vector< std::shared_ptr< InterfaceMessageType >> &message_types)
Set message_types value.
void addto_fields(const std::shared_ptr< InterfaceFieldType > &fields)
Add element to fields array.
std::optional< std::string > type() const
Get type value.
virtual void validate(bool subcall=false) const
Validate if all required fields have been set.
void addto_readers(const std::string &&readers)
Add element to readers array.
void set_kind(const std::string &kind)
Set kind value.
static std::string api_version()
Get version of implemented API.
void set_writer(const std::string &writer)
Set writer value.
virtual void from_json(const std::string &json)
Retrieve data from JSON string.
std::optional< std::string > writer() const
Get writer value.
virtual void to_json_value(rapidjson::Document &d, rapidjson::Value &v) const
Render object to JSON.
std::vector< std::string > readers() const
Get readers value.
void addto_fields(const std::shared_ptr< InterfaceFieldType > &&fields)
Add element to fields array.
InterfaceMessageType representation for JSON transfer.