Updating RMR version to 4.8.5
[ric-plt/xapp-frame-cpp.git] / src / rest / model / SubscriptionParams_E2SubscriptionDirectives.h
1 #ifndef XAPP_MODEL_SubscriptionParams_E2SubscriptionDirectives_H
2 #define XAPP_MODEL_SubscriptionParams_E2SubscriptionDirectives_H
3 #include "ModelBase.h"
4
5 namespace xapp {
6 namespace model {
7
8 struct SubscriptionParams_E2SubscriptionDirectives: ModelBase {
9     int E2RetryCount;
10     int E2TimeoutTimerValue;
11     bool RMRRoutingNeeded;
12     json validator_schema = R"(
13     {
14     "$schema": "http://json-schema.org/draft-07/schema#",
15     "title": "SubscriptionParams_E2SubscriptionDirectives",
16     "description": "Optional. If not set Submgr uses its default values",
17     "properties": {
18         "E2RetryCount": {
19             "description": "How many times E2 subscription request is retried",
20             "type": "integer",
21             "minimum": 0,
22             "maximum": 10
23         },
24         "E2TimeoutTimerValue": {
25             "description": "How long time response is waited from E2 node",
26             "type": "integer",
27             "minimum": 0,
28             "maximum": 10
29         },
30         "RMRRoutingNeeded": {
31             "description": "Subscription needs RMR route from E2Term to xApp",
32             "type": "boolean"
33         }
34     },
35     "required": [
36                  "E2TimeoutTimerValue",
37                  "E2RetryCount",
38                  "RMRRoutingNeeded"
39                 ],
40     "type": "object"
41     })"_json;
42
43     virtual json get_validator_schema() const { return validator_schema; }
44 };
45
46 void from_json(const json& j, SubscriptionParams_E2SubscriptionDirectives& ref) {
47
48     std::cout << __PRETTY_FUNCTION__ << std::endl;
49
50     j.at("E2RetryCount").get_to(ref.E2RetryCount);
51     j.at("E2TimeoutTimerValue").get_to(ref.E2TimeoutTimerValue);
52     j.at("RMRRoutingNeeded").get_to(ref.RMRRoutingNeeded);
53 }
54
55 void to_json(json& j, const SubscriptionParams_E2SubscriptionDirectives& ref) {
56
57     j = json {
58         {"E2RetryCount", ref.E2RetryCount},
59         {"E2TimeoutTimerValue", ref.E2TimeoutTimerValue},
60         {"RMRRoutingNeeded", ref.RMRRoutingNeeded},
61     };
62 }
63
64 } /*namespace model*/
65 } /*namespace xapp*/
66 #endif /*XAPP_MODEL_SubscriptionParams_ClientEndpoint_H*/