/* # ================================================================================== # Copyright (c) 2020 HCL Technologies Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ================================================================================== */ #ifndef XAPP_MODEL_SubscriptionParams_H #define XAPP_MODEL_SubscriptionParams_H #include"SubscriptionDetail.h" #include"SubscriptionParams_ClientEndpoint.h" #include"SubscriptionParams_E2SubscriptionDirectives.h" namespace xapp { namespace model { struct SubscriptionParams:public ModelBase { std::string Host{ "" }; int HTTPPort{ 0 }; int RMRPort{ 0 }; SubscriptionParams_ClientEndpoint ClientEndpoint; std::string Meid{ "" }; int RANFunctionID{ 0 }; std::string SubscriptionId{ "" }; std::vector Data; SubscriptionParams_E2SubscriptionDirectives E2SubscriptionDirectives; nlohmann::json validator_schema = R"( { "$schema": "http://json-schema.org/draft-07/schema#", "title": "SubscriptionParams", "properties": { "SubscriptionId": { "description": "Optional subscription ID '(Submgr allocates if not given)'", "type": "string" }, "Meid": { "type": "string" }, "RANFunctionID": { "type": "integer", "minimum": 0, "maximum": 4095 }, "ClientEndpoint":{ "type": "object" }, "E2SubscriptionDirectives":{ "type": "object" }, "SubscriptionDetails":{ "type": "array" } }, "required": [ "ClientEndpoint", "Meid", "RANFunctionID", "SubscriptionDetails" ], "type": "object" })"_json; virtual nlohmann::json get_validator_schema() const { return validator_schema; } }; void from_json(const nlohmann::json& j, SubscriptionParams& ref); void to_json(nlohmann::json& j, const SubscriptionParams& ref); } } #endif /*XAPP_MODEL_SubscriptionParams_H*/