blob: b8a9b955afb57181e4ef0ad8fcf3028d796343b1 [file] [log] [blame]
PatrikBuhr1122b012021-01-20 12:21:52 +01001{
PatrikBuhrfee99552021-02-02 14:06:44 +01002 "components": {"schemas": {
PatrikBuhr1122b012021-01-20 12:21:52 +01003 "error_information": {
4 "description": "Problem as defined in https://tools.ietf.org/html/rfc7807",
5 "type": "object",
PatrikBuhr1122b012021-01-20 12:21:52 +01006 "properties": {
7 "detail": {
8 "description": " A human-readable explanation specific to this occurrence of the problem.",
9 "type": "string",
10 "example": "Policy type not found"
11 },
12 "status": {
13 "format": "int32",
14 "description": "The HTTP status code generated by the origin server for this occurrence of the problem. ",
15 "type": "integer",
PatrikBuhr3b916e42021-10-07 18:03:53 +020016 "example": 404
PatrikBuhr1122b012021-01-20 12:21:52 +010017 }
PatrikBuhre3693cf2022-10-14 11:38:22 +020018 },
19 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +010020 },
PatrikBuhrfee99552021-02-02 14:06:44 +010021 "void": {
22 "description": "Void/empty",
PatrikBuhre3693cf2022-10-14 11:38:22 +020023 "type": "object",
24 "example": null
PatrikBuhrfee99552021-02-02 14:06:44 +010025 },
PatrikBuhr1122b012021-01-20 12:21:52 +010026 "status_info_v2": {
27 "type": "object",
PatrikBuhr1122b012021-01-20 12:21:52 +010028 "properties": {"status": {
29 "description": "status text",
PatrikBuhre3693cf2022-10-14 11:38:22 +020030 "type": "string",
31 "example": null
32 }},
33 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +010034 },
PatrikBuhrfee99552021-02-02 14:06:44 +010035 "ric_info_v2": {
36 "description": "Information for a Near-RT RIC",
PatrikBuhr1122b012021-01-20 12:21:52 +010037 "type": "object",
PatrikBuhrfee99552021-02-02 14:06:44 +010038 "properties": {
39 "ric_id": {
40 "description": "identity of the Near-RT RIC",
PatrikBuhre3693cf2022-10-14 11:38:22 +020041 "type": "string",
42 "example": null
PatrikBuhrfee99552021-02-02 14:06:44 +010043 },
44 "managed_element_ids": {
45 "description": "O1 identities for managed entities",
46 "type": "array",
47 "items": {
48 "description": "O1 identities for managed entities",
PatrikBuhre3693cf2022-10-14 11:38:22 +020049 "type": "string",
50 "example": null
51 },
52 "example": null
PatrikBuhrfee99552021-02-02 14:06:44 +010053 },
54 "state": {
55 "description": "Represents the states for a Near-RT RIC",
56 "type": "string",
57 "enum": [
58 "UNAVAILABLE",
59 "AVAILABLE",
60 "SYNCHRONIZING",
61 "CONSISTENCY_CHECK"
PatrikBuhre3693cf2022-10-14 11:38:22 +020062 ],
63 "example": null
PatrikBuhrfee99552021-02-02 14:06:44 +010064 },
65 "policytype_ids": {
66 "description": "supported policy types",
67 "type": "array",
68 "items": {
69 "description": "supported policy types",
PatrikBuhre3693cf2022-10-14 11:38:22 +020070 "type": "string",
71 "example": null
72 },
73 "example": null
PatrikBuhrfee99552021-02-02 14:06:44 +010074 }
PatrikBuhre3693cf2022-10-14 11:38:22 +020075 },
76 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +010077 },
78 "service_registration_info_v2": {
79 "description": "Information for one service",
80 "type": "object",
PatrikBuhr1122b012021-01-20 12:21:52 +010081 "required": ["service_id"],
82 "properties": {
83 "callback_url": {
84 "description": "callback for notifying of Near-RT RIC state changes",
PatrikBuhre3693cf2022-10-14 11:38:22 +020085 "type": "string",
86 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +010087 },
88 "service_id": {
89 "description": "identity of the service",
PatrikBuhre3693cf2022-10-14 11:38:22 +020090 "type": "string",
91 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +010092 },
93 "keep_alive_interval_seconds": {
94 "format": "int64",
JohnKeeney08486cf2022-05-24 12:34:49 +010095 "description": "keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.",
PatrikBuhre3693cf2022-10-14 11:38:22 +020096 "type": "integer",
97 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +010098 }
PatrikBuhre3693cf2022-10-14 11:38:22 +020099 },
100 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100101 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100102 "policy_info_list_v2": {
103 "description": "List of policy information",
104 "type": "object",
105 "properties": {"policies": {
106 "description": "List of policy information",
107 "type": "array",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200108 "items": {"$ref": "#/components/schemas/policy_info_v2"},
109 "example": null
110 }},
111 "example": null
PatrikBuhrfee99552021-02-02 14:06:44 +0100112 },
PatrikBuhr1122b012021-01-20 12:21:52 +0100113 "policy_status_info_v2": {
114 "description": "Status for one A1-P Policy",
115 "type": "object",
PatrikBuhr1122b012021-01-20 12:21:52 +0100116 "properties": {
117 "last_modified": {
118 "description": "timestamp, last modification time",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200119 "type": "string",
120 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100121 },
122 "status": {
123 "description": "the Policy status",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200124 "type": "object",
125 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100126 }
PatrikBuhre3693cf2022-10-14 11:38:22 +0200127 },
128 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100129 },
PatrikBuhr1122b012021-01-20 12:21:52 +0100130 "service_status_v2": {
PatrikBuhrfee99552021-02-02 14:06:44 +0100131 "description": "List of service information",
PatrikBuhr1122b012021-01-20 12:21:52 +0100132 "type": "object",
PatrikBuhr1122b012021-01-20 12:21:52 +0100133 "properties": {
134 "callback_url": {
135 "description": "callback for notifying of RIC synchronization",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200136 "type": "string",
137 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100138 },
139 "service_id": {
140 "description": "identity of the service",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200141 "type": "string",
142 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100143 },
144 "keep_alive_interval_seconds": {
145 "format": "int64",
146 "description": "policy keep alive timeout",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200147 "type": "integer",
148 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100149 },
150 "time_since_last_activity_seconds": {
151 "format": "int64",
152 "description": "time since last invocation by the service",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200153 "type": "integer",
154 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100155 }
PatrikBuhre3693cf2022-10-14 11:38:22 +0200156 },
157 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100158 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100159 "ric_info_list_v2": {
160 "description": "List of Near-RT RIC information",
161 "type": "object",
162 "properties": {"rics": {
163 "description": "List of Near-RT RIC information",
164 "type": "array",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200165 "items": {"$ref": "#/components/schemas/ric_info_v2"},
166 "example": null
167 }},
168 "example": null
PatrikBuhrfee99552021-02-02 14:06:44 +0100169 },
PatrikBuhr1122b012021-01-20 12:21:52 +0100170 "policytype_v2": {
171 "description": "Policy type",
172 "type": "object",
PatrikBuhr1122b012021-01-20 12:21:52 +0100173 "properties": {"policy_schema": {
JohnKeeney069b4692022-05-12 22:15:14 +0100174 "description": "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200175 "type": "object",
176 "example": null
177 }},
178 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100179 },
PatrikBuhr1122b012021-01-20 12:21:52 +0100180 "policytype_id_list_v2": {
181 "description": "Information about policy types",
182 "type": "object",
PatrikBuhr1122b012021-01-20 12:21:52 +0100183 "properties": {"policytype_ids": {
184 "description": "Policy type identities",
185 "type": "array",
PatrikBuhrfee99552021-02-02 14:06:44 +0100186 "items": {
187 "description": "Policy type identities",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200188 "type": "string",
189 "example": null
190 },
191 "example": null
192 }},
193 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100194 },
195 "policy_info_v2": {
196 "description": "Information for one A1-P Policy",
197 "type": "object",
PatrikBuhr1122b012021-01-20 12:21:52 +0100198 "required": [
199 "policy_data",
200 "policy_id",
201 "policytype_id",
PatrikBuhrc7f757e2022-11-28 09:40:36 +0100202 "ric_id"
PatrikBuhr1122b012021-01-20 12:21:52 +0100203 ],
204 "properties": {
205 "ric_id": {
206 "description": "identity of the target Near-RT RIC",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200207 "type": "string",
208 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100209 },
210 "policy_id": {
211 "description": "identity of the policy",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200212 "type": "string",
213 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100214 },
215 "transient": {
PatrikBuhrc7f757e2022-11-28 09:40:36 +0100216 "default": false,
PatrikBuhr1122b012021-01-20 12:21:52 +0100217 "description": "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200218 "type": "boolean",
PatrikBuhrc7f757e2022-11-28 09:40:36 +0100219 "example": false
PatrikBuhr1122b012021-01-20 12:21:52 +0100220 },
221 "service_id": {
PatrikBuhrc7f757e2022-11-28 09:40:36 +0100222 "description": "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registerred.",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200223 "type": "string",
224 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100225 },
226 "policy_data": {
227 "description": "the configuration of the policy",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200228 "type": "object",
229 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100230 },
231 "status_notification_uri": {
232 "description": "Callback URI for policy status updates",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200233 "type": "string",
234 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100235 },
236 "policytype_id": {
237 "description": "identity of the policy type",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200238 "type": "string",
239 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100240 }
PatrikBuhre3693cf2022-10-14 11:38:22 +0200241 },
242 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100243 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100244 "policy_id_list_v2": {
245 "description": "A list of policy identities",
246 "type": "object",
247 "properties": {"policy_ids": {
248 "description": "Policy identities",
249 "type": "array",
250 "items": {
251 "description": "Policy identities",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200252 "type": "string",
253 "example": null
254 },
255 "example": null
256 }},
257 "example": null
PatrikBuhrfee99552021-02-02 14:06:44 +0100258 },
PatrikBuhr1122b012021-01-20 12:21:52 +0100259 "service_list_v2": {
260 "description": "List of service information",
261 "type": "object",
PatrikBuhr1122b012021-01-20 12:21:52 +0100262 "properties": {"service_list": {
263 "description": "List of service information",
264 "type": "array",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200265 "items": {"$ref": "#/components/schemas/service_status_v2"},
266 "example": null
267 }},
268 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100269 },
270 "service_callback_info_v2": {
271 "description": "Information transferred as in Service callbacks (callback_url)",
272 "type": "object",
PatrikBuhr1122b012021-01-20 12:21:52 +0100273 "required": [
274 "event_type",
275 "ric_id"
276 ],
277 "properties": {
278 "ric_id": {
279 "description": "identity of a Near-RT RIC",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200280 "type": "string",
281 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100282 },
283 "event_type": {
284 "description": "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
285 "type": "string",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200286 "enum": ["AVAILABLE"],
287 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100288 }
PatrikBuhre3693cf2022-10-14 11:38:22 +0200289 },
290 "example": null
PatrikBuhr2b277642021-12-27 11:32:58 +0100291 },
292 "Link": {
293 "type": "object",
294 "properties": {
PatrikBuhre3693cf2022-10-14 11:38:22 +0200295 "templated": {
296 "type": "boolean",
297 "example": null
298 },
299 "href": {
300 "type": "string",
301 "example": null
302 }
303 },
304 "example": null
PatrikBuhr1122b012021-01-20 12:21:52 +0100305 }
PatrikBuhrfee99552021-02-02 14:06:44 +0100306 }},
307 "openapi": "3.0.1",
308 "paths": {
PatrikBuhrfee99552021-02-02 14:06:44 +0100309 "/a1-policy/v2/policy-instances": {"get": {
310 "summary": "Query for A1 policy instances",
311 "description": "Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.",
312 "operationId": "getPolicyInstances",
313 "responses": {
314 "200": {
315 "description": "Policies",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200316 "content": {"application/json": {
317 "schema": {"$ref": "#/components/schemas/policy_info_list_v2"},
318 "example": null
319 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100320 },
321 "404": {
322 "description": "Near-RT RIC, policy type or service not found",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200323 "content": {"application/json": {
324 "schema": {"$ref": "#/components/schemas/error_information"},
325 "example": null
326 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100327 }
328 },
329 "parameters": [
330 {
PatrikBuhre3693cf2022-10-14 11:38:22 +0200331 "schema": {
332 "type": "string",
333 "example": null
334 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100335 "in": "query",
336 "name": "policytype_id",
PatrikBuhr3b916e42021-10-07 18:03:53 +0200337 "description": "Select policies with a given type identity.",
PatrikBuhrfee99552021-02-02 14:06:44 +0100338 "required": false
339 },
340 {
PatrikBuhre3693cf2022-10-14 11:38:22 +0200341 "schema": {
342 "type": "string",
343 "example": null
344 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100345 "in": "query",
346 "name": "ric_id",
PatrikBuhr3b916e42021-10-07 18:03:53 +0200347 "description": "Select policies for a given Near-RT RIC identity.",
PatrikBuhrfee99552021-02-02 14:06:44 +0100348 "required": false
349 },
350 {
PatrikBuhre3693cf2022-10-14 11:38:22 +0200351 "schema": {
352 "type": "string",
353 "example": null
354 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100355 "in": "query",
356 "name": "service_id",
PatrikBuhr3b916e42021-10-07 18:03:53 +0200357 "description": "Select policies owned by a given service.",
358 "required": false
359 },
360 {
PatrikBuhre3693cf2022-10-14 11:38:22 +0200361 "schema": {
362 "type": "string",
363 "example": null
364 },
PatrikBuhr3b916e42021-10-07 18:03:53 +0200365 "in": "query",
366 "name": "type_name",
367 "description": "Select policies of a given type name (type identity has the format <typename_version>)",
PatrikBuhrfee99552021-02-02 14:06:44 +0100368 "required": false
369 }
370 ],
371 "tags": ["A1 Policy Management"]
372 }},
PatrikBuhrde7a5732022-03-31 12:08:56 +0200373 "/actuator/threaddump": {"get": {
374 "summary": "Actuator web endpoint 'threaddump'",
375 "operationId": "threaddump_2",
376 "responses": {"200": {
377 "description": "OK",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200378 "content": {"*/*": {
379 "schema": {
380 "type": "object",
381 "example": null
382 },
383 "example": null
384 }}
PatrikBuhrde7a5732022-03-31 12:08:56 +0200385 }},
386 "tags": ["Actuator"]
387 }},
PatrikBuhrfee99552021-02-02 14:06:44 +0100388 "/a1-policy/v2/status": {"get": {
389 "summary": "Returns status and statistics of this service",
PatrikBuhr2a56cf72021-12-28 13:14:46 +0100390 "operationId": "getStatus",
PatrikBuhrfee99552021-02-02 14:06:44 +0100391 "responses": {"200": {
392 "description": "Service is living",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200393 "content": {"application/json": {
394 "schema": {"$ref": "#/components/schemas/status_info_v2"},
395 "example": null
396 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100397 }},
398 "tags": ["Health Check"]
399 }},
PatrikBuhrde7a5732022-03-31 12:08:56 +0200400 "/actuator/loggers": {"get": {
401 "summary": "Actuator web endpoint 'loggers'",
402 "operationId": "loggers",
403 "responses": {"200": {
404 "description": "OK",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200405 "content": {"*/*": {
406 "schema": {
407 "type": "object",
408 "example": null
409 },
410 "example": null
411 }}
PatrikBuhrde7a5732022-03-31 12:08:56 +0200412 }},
413 "tags": ["Actuator"]
414 }},
415 "/actuator/health/**": {"get": {
416 "summary": "Actuator web endpoint 'health-path'",
417 "operationId": "health-path",
PatrikBuhr2b277642021-12-27 11:32:58 +0100418 "responses": {"200": {
419 "description": "OK",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200420 "content": {"*/*": {
421 "schema": {
422 "type": "object",
423 "example": null
424 },
425 "example": null
426 }}
PatrikBuhr2b277642021-12-27 11:32:58 +0100427 }},
428 "tags": ["Actuator"]
429 }},
PatrikBuhrfee99552021-02-02 14:06:44 +0100430 "/a1-policy/v2/rics/ric": {"get": {
431 "summary": "Returns info for one Near-RT RIC",
JohnKeeney069b4692022-05-12 22:15:14 +0100432 "description": "Either a Near-RT RIC identity or a Managed Element identity can be specified.<br>The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).",
PatrikBuhr2a56cf72021-12-28 13:14:46 +0100433 "operationId": "getRic",
PatrikBuhrfee99552021-02-02 14:06:44 +0100434 "responses": {
435 "200": {
436 "description": "Near-RT RIC is found",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200437 "content": {"application/json": {
438 "schema": {"$ref": "#/components/schemas/ric_info_v2"},
439 "example": null
440 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100441 },
442 "404": {
443 "description": "Near-RT RIC is not found",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200444 "content": {"application/json": {
445 "schema": {"$ref": "#/components/schemas/error_information"},
446 "example": null
447 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100448 }
449 },
450 "parameters": [
451 {
PatrikBuhre3693cf2022-10-14 11:38:22 +0200452 "schema": {
453 "type": "string",
454 "example": null
455 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100456 "in": "query",
457 "name": "managed_element_id",
458 "description": "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
459 "required": false
460 },
461 {
PatrikBuhre3693cf2022-10-14 11:38:22 +0200462 "schema": {
463 "type": "string",
464 "example": null
465 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100466 "in": "query",
467 "name": "ric_id",
468 "description": "The identity of a Near-RT RIC to get information for.",
469 "required": false
470 }
471 ],
472 "tags": ["NearRT-RIC Repository"]
473 }},
PatrikBuhrc0218ad2022-11-28 09:40:36 +0100474 "/actuator/shutdown": {"post": {
475 "summary": "Actuator web endpoint 'shutdown'",
476 "operationId": "shutdown",
477 "responses": {"200": {
478 "description": "OK",
479 "content": {"*/*": {
480 "schema": {
481 "type": "object",
482 "example": null
483 },
484 "example": null
485 }}
486 }},
487 "tags": ["Actuator"]
488 }},
PatrikBuhrfee99552021-02-02 14:06:44 +0100489 "/a1-policy/v2/policy-types": {"get": {
490 "summary": "Query policy type identities",
PatrikBuhr2a56cf72021-12-28 13:14:46 +0100491 "operationId": "getPolicyTypes",
PatrikBuhrfee99552021-02-02 14:06:44 +0100492 "responses": {
493 "200": {
494 "description": "Policy type IDs",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200495 "content": {"application/json": {
496 "schema": {"$ref": "#/components/schemas/policytype_id_list_v2"},
497 "example": null
498 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100499 },
500 "404": {
501 "description": "Near-RT RIC is not found",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200502 "content": {"application/json": {
503 "schema": {"$ref": "#/components/schemas/error_information"},
504 "example": null
505 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100506 }
507 },
PatrikBuhr3b916e42021-10-07 18:03:53 +0200508 "parameters": [
509 {
PatrikBuhre3693cf2022-10-14 11:38:22 +0200510 "schema": {
511 "type": "string",
512 "example": null
513 },
PatrikBuhr3b916e42021-10-07 18:03:53 +0200514 "in": "query",
515 "name": "ric_id",
516 "description": "Select types for the given Near-RT RIC identity.",
517 "required": false
518 },
519 {
PatrikBuhre3693cf2022-10-14 11:38:22 +0200520 "schema": {
521 "type": "string",
522 "example": null
523 },
PatrikBuhr3b916e42021-10-07 18:03:53 +0200524 "in": "query",
525 "name": "type_name",
526 "description": "Select types with the given type name (type identity has the format <typename_version>)",
527 "required": false
528 },
529 {
PatrikBuhre3693cf2022-10-14 11:38:22 +0200530 "schema": {
531 "type": "string",
532 "example": null
533 },
PatrikBuhr3b916e42021-10-07 18:03:53 +0200534 "in": "query",
PatrikBuhr3b916e42021-10-07 18:03:53 +0200535 "name": "compatible_with_version",
PatrikBuhrc1b62222021-12-28 13:07:14 +0100536 "description": "Select types that are compatible with the given version. This parameter is only applicable in conjunction with type_name. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order.",
PatrikBuhr3b916e42021-10-07 18:03:53 +0200537 "required": false
538 }
539 ],
PatrikBuhrfee99552021-02-02 14:06:44 +0100540 "tags": ["A1 Policy Management"]
541 }},
542 "/a1-policy/v2/policies/{policy_id}": {
543 "get": {
544 "summary": "Returns a policy",
PatrikBuhr2a56cf72021-12-28 13:14:46 +0100545 "operationId": "getPolicy",
PatrikBuhrfee99552021-02-02 14:06:44 +0100546 "responses": {
547 "200": {
548 "description": "Policy found",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200549 "content": {"application/json": {
550 "schema": {"$ref": "#/components/schemas/policy_info_v2"},
551 "example": null
552 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100553 },
554 "404": {
555 "description": "Policy is not found",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200556 "content": {"application/json": {
557 "schema": {"$ref": "#/components/schemas/error_information"},
558 "example": null
559 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100560 }
561 },
562 "parameters": [{
PatrikBuhre3693cf2022-10-14 11:38:22 +0200563 "schema": {
564 "type": "string",
565 "example": null
566 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100567 "in": "path",
568 "name": "policy_id",
569 "required": true
570 }],
571 "tags": ["A1 Policy Management"]
572 },
573 "delete": {
574 "summary": "Delete a policy",
PatrikBuhr2a56cf72021-12-28 13:14:46 +0100575 "operationId": "deletePolicy",
PatrikBuhrfee99552021-02-02 14:06:44 +0100576 "responses": {
577 "200": {
578 "description": "Not used",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200579 "content": {"*/*": {
580 "schema": {"$ref": "#/components/schemas/void"},
581 "example": null
582 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100583 },
584 "423": {
585 "description": "Near-RT RIC is not operational",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200586 "content": {"*/*": {
587 "schema": {"$ref": "#/components/schemas/error_information"},
588 "example": null
589 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100590 },
591 "204": {
592 "description": "Policy deleted",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200593 "content": {"*/*": {
594 "schema": {"$ref": "#/components/schemas/void"},
595 "example": null
596 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100597 },
598 "404": {
599 "description": "Policy is not found",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200600 "content": {"*/*": {
601 "schema": {"$ref": "#/components/schemas/error_information"},
602 "example": null
603 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100604 }
605 },
606 "parameters": [{
PatrikBuhre3693cf2022-10-14 11:38:22 +0200607 "schema": {
608 "type": "string",
609 "example": null
610 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100611 "in": "path",
612 "name": "policy_id",
613 "required": true
614 }],
615 "tags": ["A1 Policy Management"]
616 }
617 },
PatrikBuhr2b277642021-12-27 11:32:58 +0100618 "/actuator/metrics/{requiredMetricName}": {"get": {
619 "summary": "Actuator web endpoint 'metrics-requiredMetricName'",
PatrikBuhrde7a5732022-03-31 12:08:56 +0200620 "operationId": "metrics-requiredMetricName",
PatrikBuhr2b277642021-12-27 11:32:58 +0100621 "responses": {"200": {
622 "description": "OK",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200623 "content": {"*/*": {
624 "schema": {
625 "type": "object",
626 "example": null
627 },
628 "example": null
629 }}
PatrikBuhr2b277642021-12-27 11:32:58 +0100630 }},
631 "parameters": [{
PatrikBuhre3693cf2022-10-14 11:38:22 +0200632 "schema": {
633 "type": "string",
634 "example": null
635 },
PatrikBuhr2b277642021-12-27 11:32:58 +0100636 "in": "path",
637 "name": "requiredMetricName",
638 "required": true
639 }],
640 "tags": ["Actuator"]
641 }},
PatrikBuhrfee99552021-02-02 14:06:44 +0100642 "/a1-policy/v2/configuration": {
643 "get": {
PatrikBuhr0f8b2052021-12-20 13:40:14 +0100644 "summary": "Returns the contents of the application configuration file",
PatrikBuhrfee99552021-02-02 14:06:44 +0100645 "operationId": "getConfiguration",
646 "responses": {
647 "200": {
648 "description": "Configuration",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200649 "content": {"application/json": {
650 "schema": {
651 "type": "object",
652 "example": null
653 },
654 "example": null
655 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100656 },
657 "404": {
658 "description": "File is not found or readable",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200659 "content": {"application/json": {
660 "schema": {"$ref": "#/components/schemas/error_information"},
661 "example": null
662 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100663 }
664 },
665 "tags": ["Management of configuration"]
666 },
667 "put": {
668 "summary": "Replace the current configuration file with the given configuration",
669 "requestBody": {
PatrikBuhre3693cf2022-10-14 11:38:22 +0200670 "content": {"application/json": {
671 "schema": {
672 "type": "object",
673 "example": null
674 },
675 "example": null
676 }},
PatrikBuhrfee99552021-02-02 14:06:44 +0100677 "required": true
678 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100679 "operationId": "putConfiguration",
680 "responses": {
681 "200": {
682 "description": "Configuration updated",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200683 "content": {"*/*": {
684 "schema": {"$ref": "#/components/schemas/void"},
685 "example": null
686 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100687 },
688 "400": {
689 "description": "Invalid configuration provided",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200690 "content": {"*/*": {
691 "schema": {"$ref": "#/components/schemas/error_information"},
692 "example": null
693 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100694 },
695 "500": {
696 "description": "Something went wrong when replacing the configuration. Try again.",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200697 "content": {"*/*": {
698 "schema": {"$ref": "#/components/schemas/error_information"},
699 "example": null
700 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100701 }
702 },
703 "tags": ["Management of configuration"]
704 }
705 },
PatrikBuhr2b277642021-12-27 11:32:58 +0100706 "/actuator": {"get": {
707 "summary": "Actuator root web endpoint",
PatrikBuhrde7a5732022-03-31 12:08:56 +0200708 "operationId": "links",
PatrikBuhr2b277642021-12-27 11:32:58 +0100709 "responses": {"200": {
710 "description": "OK",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200711 "content": {"*/*": {
712 "schema": {
713 "additionalProperties": {
714 "additionalProperties": {"$ref": "#/components/schemas/Link"},
715 "type": "object",
716 "example": null
717 },
718 "type": "object",
719 "example": null
PatrikBuhr2b277642021-12-27 11:32:58 +0100720 },
PatrikBuhre3693cf2022-10-14 11:38:22 +0200721 "example": null
722 }}
PatrikBuhr2b277642021-12-27 11:32:58 +0100723 }},
724 "tags": ["Actuator"]
725 }},
PatrikBuhr2b277642021-12-27 11:32:58 +0100726 "/actuator/loggers/{name}": {
727 "post": {
728 "summary": "Actuator web endpoint 'loggers-name'",
PatrikBuhrde7a5732022-03-31 12:08:56 +0200729 "operationId": "loggers-name",
PatrikBuhr2b277642021-12-27 11:32:58 +0100730 "responses": {"200": {
731 "description": "OK",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200732 "content": {"*/*": {
733 "schema": {
734 "type": "object",
735 "example": null
736 },
737 "example": null
738 }}
PatrikBuhr2b277642021-12-27 11:32:58 +0100739 }},
740 "parameters": [{
PatrikBuhre3693cf2022-10-14 11:38:22 +0200741 "schema": {
742 "type": "string",
743 "example": null
744 },
PatrikBuhr2b277642021-12-27 11:32:58 +0100745 "in": "path",
746 "name": "name",
747 "required": true
748 }],
749 "tags": ["Actuator"]
750 },
751 "get": {
752 "summary": "Actuator web endpoint 'loggers-name'",
PatrikBuhrde7a5732022-03-31 12:08:56 +0200753 "operationId": "loggers-name_2",
PatrikBuhr2b277642021-12-27 11:32:58 +0100754 "responses": {"200": {
755 "description": "OK",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200756 "content": {"*/*": {
757 "schema": {
758 "type": "object",
759 "example": null
760 },
761 "example": null
762 }}
PatrikBuhr2b277642021-12-27 11:32:58 +0100763 }},
764 "parameters": [{
PatrikBuhre3693cf2022-10-14 11:38:22 +0200765 "schema": {
766 "type": "string",
767 "example": null
768 },
PatrikBuhr2b277642021-12-27 11:32:58 +0100769 "in": "path",
770 "name": "name",
771 "required": true
772 }],
773 "tags": ["Actuator"]
774 }
775 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100776 "/a1-policy/v2/services/{service_id}/keepalive": {"put": {
777 "summary": "Heartbeat indicates that the service is running",
JohnKeeney08486cf2022-05-24 12:34:49 +0100778 "description": "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke this operation before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. (This timeout can be set or disabled when each service is initially registered)",
PatrikBuhr2a56cf72021-12-28 13:14:46 +0100779 "operationId": "keepAliveService",
PatrikBuhrfee99552021-02-02 14:06:44 +0100780 "responses": {
781 "200": {
782 "description": "Service supervision timer refreshed, OK",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200783 "content": {"*/*": {
784 "schema": {
785 "type": "object",
786 "example": null
787 },
788 "example": null
789 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100790 },
791 "404": {
792 "description": "The service is not found, needs re-registration",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200793 "content": {"*/*": {
794 "schema": {"$ref": "#/components/schemas/error_information"},
795 "example": null
796 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100797 }
798 },
799 "parameters": [{
PatrikBuhre3693cf2022-10-14 11:38:22 +0200800 "schema": {
801 "type": "string",
802 "example": null
803 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100804 "in": "path",
805 "name": "service_id",
806 "required": true
807 }],
808 "tags": ["Service Registry and Supervision"]
809 }},
PatrikBuhr2b277642021-12-27 11:32:58 +0100810 "/actuator/metrics": {"get": {
811 "summary": "Actuator web endpoint 'metrics'",
PatrikBuhrde7a5732022-03-31 12:08:56 +0200812 "operationId": "metrics",
PatrikBuhr2b277642021-12-27 11:32:58 +0100813 "responses": {"200": {
814 "description": "OK",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200815 "content": {"*/*": {
816 "schema": {
817 "type": "object",
818 "example": null
819 },
820 "example": null
821 }}
PatrikBuhr2b277642021-12-27 11:32:58 +0100822 }},
823 "tags": ["Actuator"]
824 }},
PatrikBuhrfee99552021-02-02 14:06:44 +0100825 "/a1-policy/v2/rics": {"get": {
826 "summary": "Query Near-RT RIC information",
827 "description": "The call returns all Near-RT RICs that supports a given policy type identity",
PatrikBuhr2a56cf72021-12-28 13:14:46 +0100828 "operationId": "getRics",
PatrikBuhrfee99552021-02-02 14:06:44 +0100829 "responses": {
830 "200": {
831 "description": "OK",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200832 "content": {"application/json": {
833 "schema": {"$ref": "#/components/schemas/ric_info_list_v2"},
834 "example": null
835 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100836 },
837 "404": {
838 "description": "Policy type is not found",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200839 "content": {"application/json": {
840 "schema": {"$ref": "#/components/schemas/error_information"},
841 "example": null
842 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100843 }
844 },
845 "parameters": [{
PatrikBuhre3693cf2022-10-14 11:38:22 +0200846 "schema": {
847 "type": "string",
848 "example": null
849 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100850 "in": "query",
851 "name": "policytype_id",
PatrikBuhr0f8b2052021-12-20 13:40:14 +0100852 "description": "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned",
PatrikBuhrfee99552021-02-02 14:06:44 +0100853 "required": false
854 }],
855 "tags": ["NearRT-RIC Repository"]
856 }},
PatrikBuhrfee99552021-02-02 14:06:44 +0100857 "/a1-policy/v2/services": {
858 "get": {
859 "summary": "Returns service information",
860 "description": "Either information about a registered service with given identity or all registered services are returned.",
PatrikBuhr2a56cf72021-12-28 13:14:46 +0100861 "operationId": "getServices",
PatrikBuhrfee99552021-02-02 14:06:44 +0100862 "responses": {
863 "200": {
864 "description": "OK",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200865 "content": {"application/json": {
866 "schema": {"$ref": "#/components/schemas/service_list_v2"},
867 "example": null
868 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100869 },
870 "404": {
871 "description": "Service is not found",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200872 "content": {"application/json": {
873 "schema": {"$ref": "#/components/schemas/error_information"},
874 "example": null
875 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100876 }
877 },
878 "parameters": [{
PatrikBuhre3693cf2022-10-14 11:38:22 +0200879 "schema": {
880 "type": "string",
881 "example": null
882 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100883 "in": "query",
884 "name": "service_id",
885 "description": "The identity of the service",
886 "required": false
887 }],
888 "tags": ["Service Registry and Supervision"]
889 },
890 "put": {
891 "summary": "Register a service",
892 "requestBody": {
PatrikBuhre3693cf2022-10-14 11:38:22 +0200893 "content": {"application/json": {
894 "schema": {"$ref": "#/components/schemas/service_registration_info_v2"},
895 "example": null
896 }},
PatrikBuhrfee99552021-02-02 14:06:44 +0100897 "required": true
898 },
PatrikBuhrc7f757e2022-11-28 09:40:36 +0100899 "description": "Registering a service is needed to:<ul><li>Get callbacks about available NearRT RICs.<\/li><li>Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.<\/li><\/ul>Policies can be created even if the service is not registerred. This is a feature which it is optional to use.",
PatrikBuhr2a56cf72021-12-28 13:14:46 +0100900 "operationId": "putService",
PatrikBuhrfee99552021-02-02 14:06:44 +0100901 "responses": {
902 "200": {
903 "description": "Service updated",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200904 "content": {"*/*": {
905 "schema": {
906 "type": "object",
907 "example": null
908 },
909 "example": null
910 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100911 },
912 "201": {
913 "description": "Service created",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200914 "content": {"*/*": {
915 "schema": {
916 "type": "object",
917 "example": null
918 },
919 "example": null
920 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100921 },
922 "400": {
923 "description": "The ServiceRegistrationInfo is not accepted",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200924 "content": {"*/*": {
925 "schema": {"$ref": "#/components/schemas/error_information"},
926 "example": null
927 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100928 }
929 },
930 "tags": ["Service Registry and Supervision"]
931 }
932 },
PatrikBuhr2b277642021-12-27 11:32:58 +0100933 "/actuator/info": {"get": {
934 "summary": "Actuator web endpoint 'info'",
PatrikBuhrde7a5732022-03-31 12:08:56 +0200935 "operationId": "info",
PatrikBuhr2b277642021-12-27 11:32:58 +0100936 "responses": {"200": {
937 "description": "OK",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200938 "content": {"*/*": {
939 "schema": {
940 "type": "object",
941 "example": null
942 },
943 "example": null
944 }}
PatrikBuhr2b277642021-12-27 11:32:58 +0100945 }},
946 "tags": ["Actuator"]
947 }},
PatrikBuhrfee99552021-02-02 14:06:44 +0100948 "/status": {"get": {
949 "summary": "Returns status and statistics of this service",
PatrikBuhr2a56cf72021-12-28 13:14:46 +0100950 "operationId": "getStatusV1",
PatrikBuhrfee99552021-02-02 14:06:44 +0100951 "responses": {"200": {
952 "description": "Service is living",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200953 "content": {"*/*": {
954 "schema": {
955 "type": "string",
956 "example": null
957 },
958 "example": null
959 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100960 }},
PatrikBuhr2a56cf72021-12-28 13:14:46 +0100961 "tags": ["Health Check"]
PatrikBuhrfee99552021-02-02 14:06:44 +0100962 }},
963 "/a1-policy/v2/policy-types/{policytype_id}": {"get": {
964 "summary": "Returns a policy type definition",
965 "operationId": "getPolicyType",
966 "responses": {
967 "200": {
968 "description": "Policy type",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200969 "content": {"*/*": {
970 "schema": {"$ref": "#/components/schemas/policytype_v2"},
971 "example": null
972 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100973 },
974 "404": {
975 "description": "Policy type is not found",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200976 "content": {"*/*": {
977 "schema": {"$ref": "#/components/schemas/error_information"},
978 "example": null
979 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100980 }
981 },
982 "parameters": [{
PatrikBuhre3693cf2022-10-14 11:38:22 +0200983 "schema": {
984 "type": "string",
985 "example": null
986 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100987 "in": "path",
988 "name": "policytype_id",
989 "required": true
990 }],
991 "tags": ["A1 Policy Management"]
992 }},
PatrikBuhr2b277642021-12-27 11:32:58 +0100993 "/actuator/logfile": {"get": {
994 "summary": "Actuator web endpoint 'logfile'",
PatrikBuhrde7a5732022-03-31 12:08:56 +0200995 "operationId": "logfile",
PatrikBuhr2b277642021-12-27 11:32:58 +0100996 "responses": {"200": {
997 "description": "OK",
PatrikBuhre3693cf2022-10-14 11:38:22 +0200998 "content": {"*/*": {
999 "schema": {
1000 "type": "object",
1001 "example": null
1002 },
1003 "example": null
1004 }}
PatrikBuhr2b277642021-12-27 11:32:58 +01001005 }},
1006 "tags": ["Actuator"]
1007 }},
1008 "/actuator/health": {"get": {
1009 "summary": "Actuator web endpoint 'health'",
PatrikBuhrde7a5732022-03-31 12:08:56 +02001010 "operationId": "health",
PatrikBuhr2b277642021-12-27 11:32:58 +01001011 "responses": {"200": {
1012 "description": "OK",
PatrikBuhre3693cf2022-10-14 11:38:22 +02001013 "content": {"*/*": {
1014 "schema": {
1015 "type": "object",
1016 "example": null
1017 },
1018 "example": null
1019 }}
PatrikBuhr2b277642021-12-27 11:32:58 +01001020 }},
1021 "tags": ["Actuator"]
1022 }},
PatrikBuhrfee99552021-02-02 14:06:44 +01001023 "/a1-policy/v2/policies": {
1024 "get": {
1025 "summary": "Query policy identities",
1026 "description": "Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.",
PatrikBuhr2a56cf72021-12-28 13:14:46 +01001027 "operationId": "getPolicyIds",
PatrikBuhrfee99552021-02-02 14:06:44 +01001028 "responses": {
1029 "200": {
1030 "description": "Policy identities",
PatrikBuhre3693cf2022-10-14 11:38:22 +02001031 "content": {"application/json": {
1032 "schema": {"$ref": "#/components/schemas/policy_id_list_v2"},
1033 "example": null
1034 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001035 },
1036 "404": {
1037 "description": "Near-RT RIC or type not found",
PatrikBuhre3693cf2022-10-14 11:38:22 +02001038 "content": {"application/json": {
1039 "schema": {"$ref": "#/components/schemas/error_information"},
1040 "example": null
1041 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001042 }
1043 },
1044 "parameters": [
1045 {
PatrikBuhre3693cf2022-10-14 11:38:22 +02001046 "schema": {
1047 "type": "string",
1048 "example": null
1049 },
PatrikBuhrfee99552021-02-02 14:06:44 +01001050 "in": "query",
1051 "name": "policytype_id",
PatrikBuhr3b916e42021-10-07 18:03:53 +02001052 "description": "Select policies of a given policy type identity.",
PatrikBuhrfee99552021-02-02 14:06:44 +01001053 "required": false
1054 },
1055 {
PatrikBuhre3693cf2022-10-14 11:38:22 +02001056 "schema": {
1057 "type": "string",
1058 "example": null
1059 },
PatrikBuhrfee99552021-02-02 14:06:44 +01001060 "in": "query",
1061 "name": "ric_id",
PatrikBuhr3b916e42021-10-07 18:03:53 +02001062 "description": "Select policies of a given Near-RT RIC identity.",
PatrikBuhrfee99552021-02-02 14:06:44 +01001063 "required": false
1064 },
1065 {
PatrikBuhre3693cf2022-10-14 11:38:22 +02001066 "schema": {
1067 "type": "string",
1068 "example": null
1069 },
PatrikBuhrfee99552021-02-02 14:06:44 +01001070 "in": "query",
1071 "name": "service_id",
PatrikBuhr3b916e42021-10-07 18:03:53 +02001072 "description": "Select policies owned by a given service.",
1073 "required": false
1074 },
1075 {
PatrikBuhre3693cf2022-10-14 11:38:22 +02001076 "schema": {
1077 "type": "string",
1078 "example": null
1079 },
PatrikBuhr3b916e42021-10-07 18:03:53 +02001080 "in": "query",
1081 "name": "type_name",
1082 "description": "Select policies of types with the given type name (type identity has the format <typename_version>)",
PatrikBuhrfee99552021-02-02 14:06:44 +01001083 "required": false
1084 }
1085 ],
1086 "tags": ["A1 Policy Management"]
1087 },
1088 "put": {
1089 "summary": "Create or update a policy",
1090 "requestBody": {
PatrikBuhre3693cf2022-10-14 11:38:22 +02001091 "content": {"application/json": {
1092 "schema": {"$ref": "#/components/schemas/policy_info_v2"},
1093 "example": null
1094 }},
PatrikBuhrfee99552021-02-02 14:06:44 +01001095 "required": true
1096 },
PatrikBuhr2a56cf72021-12-28 13:14:46 +01001097 "operationId": "putPolicy",
PatrikBuhrfee99552021-02-02 14:06:44 +01001098 "responses": {
1099 "200": {
1100 "description": "Policy updated",
PatrikBuhre3693cf2022-10-14 11:38:22 +02001101 "content": {"application/json": {
1102 "schema": {"$ref": "#/components/schemas/void"},
1103 "example": null
1104 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001105 },
1106 "201": {
1107 "description": "Policy created",
PatrikBuhre3693cf2022-10-14 11:38:22 +02001108 "content": {"application/json": {
1109 "schema": {"$ref": "#/components/schemas/void"},
1110 "example": null
1111 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001112 },
1113 "423": {
1114 "description": "Near-RT RIC is not operational",
PatrikBuhre3693cf2022-10-14 11:38:22 +02001115 "content": {"application/json": {
1116 "schema": {"$ref": "#/components/schemas/error_information"},
1117 "example": null
1118 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001119 },
1120 "404": {
1121 "description": "Near-RT RIC or policy type is not found",
PatrikBuhre3693cf2022-10-14 11:38:22 +02001122 "content": {"application/json": {
1123 "schema": {"$ref": "#/components/schemas/error_information"},
1124 "example": null
1125 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001126 }
1127 },
1128 "tags": ["A1 Policy Management"]
1129 }
1130 },
1131 "/r-app/near-rt-ric-status": {"post": {
1132 "summary": "Callback for Near-RT RIC status",
1133 "requestBody": {
PatrikBuhre3693cf2022-10-14 11:38:22 +02001134 "content": {"application/json": {
1135 "schema": {"$ref": "#/components/schemas/service_callback_info_v2"},
1136 "example": null
1137 }},
PatrikBuhrfee99552021-02-02 14:06:44 +01001138 "required": true
1139 },
JohnKeeney069b4692022-05-12 22:15:14 +01001140 "description": "The URL to this call is registered at Service registration.",
PatrikBuhr25d78502021-04-28 08:42:13 +02001141 "operationId": "serviceCallback",
PatrikBuhrfee99552021-02-02 14:06:44 +01001142 "responses": {"200": {
1143 "description": "OK",
PatrikBuhre3693cf2022-10-14 11:38:22 +02001144 "content": {"application/json": {
1145 "schema": {"$ref": "#/components/schemas/void"},
1146 "example": null
1147 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001148 }},
1149 "tags": ["Callbacks"]
1150 }},
PatrikBuhrfee99552021-02-02 14:06:44 +01001151 "/a1-policy/v2/services/{service_id}": {"delete": {
1152 "summary": "Unregister a service",
PatrikBuhr2a56cf72021-12-28 13:14:46 +01001153 "operationId": "deleteService",
PatrikBuhrfee99552021-02-02 14:06:44 +01001154 "responses": {
1155 "200": {
1156 "description": "Not used",
PatrikBuhre3693cf2022-10-14 11:38:22 +02001157 "content": {"*/*": {
1158 "schema": {"$ref": "#/components/schemas/void"},
1159 "example": null
1160 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001161 },
1162 "204": {
1163 "description": "Service unregistered",
PatrikBuhre3693cf2022-10-14 11:38:22 +02001164 "content": {"*/*": {
1165 "schema": {
1166 "type": "object",
1167 "example": null
1168 },
1169 "example": null
1170 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001171 },
1172 "404": {
1173 "description": "Service not found",
PatrikBuhre3693cf2022-10-14 11:38:22 +02001174 "content": {"*/*": {
1175 "schema": {"$ref": "#/components/schemas/error_information"},
1176 "example": null
1177 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001178 }
1179 },
1180 "parameters": [{
PatrikBuhre3693cf2022-10-14 11:38:22 +02001181 "schema": {
1182 "type": "string",
1183 "example": null
1184 },
PatrikBuhrfee99552021-02-02 14:06:44 +01001185 "in": "path",
1186 "name": "service_id",
1187 "required": true
1188 }],
1189 "tags": ["Service Registry and Supervision"]
1190 }},
PatrikBuhrde7a5732022-03-31 12:08:56 +02001191 "/actuator/heapdump": {"get": {
1192 "summary": "Actuator web endpoint 'heapdump'",
1193 "operationId": "heapdump",
1194 "responses": {"200": {
1195 "description": "OK",
PatrikBuhre3693cf2022-10-14 11:38:22 +02001196 "content": {"*/*": {
1197 "schema": {
1198 "type": "object",
1199 "example": null
1200 },
1201 "example": null
1202 }}
PatrikBuhrde7a5732022-03-31 12:08:56 +02001203 }},
1204 "tags": ["Actuator"]
1205 }},
PatrikBuhrfee99552021-02-02 14:06:44 +01001206 "/a1-policy/v2/policies/{policy_id}/status": {"get": {
1207 "summary": "Returns a policy status",
PatrikBuhr2a56cf72021-12-28 13:14:46 +01001208 "operationId": "getPolicyStatus",
PatrikBuhrfee99552021-02-02 14:06:44 +01001209 "responses": {
1210 "200": {
1211 "description": "Policy status",
PatrikBuhre3693cf2022-10-14 11:38:22 +02001212 "content": {"application/json": {
1213 "schema": {"$ref": "#/components/schemas/policy_status_info_v2"},
1214 "example": null
1215 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001216 },
1217 "404": {
1218 "description": "Policy is not found",
PatrikBuhre3693cf2022-10-14 11:38:22 +02001219 "content": {"application/json": {
1220 "schema": {"$ref": "#/components/schemas/error_information"},
1221 "example": null
1222 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001223 }
1224 },
1225 "parameters": [{
PatrikBuhre3693cf2022-10-14 11:38:22 +02001226 "schema": {
1227 "type": "string",
1228 "example": null
1229 },
PatrikBuhrfee99552021-02-02 14:06:44 +01001230 "in": "path",
1231 "name": "policy_id",
1232 "required": true
1233 }],
1234 "tags": ["A1 Policy Management"]
1235 }}
1236 },
1237 "info": {
1238 "license": {
PatrikBuhrc0218ad2022-11-28 09:40:36 +01001239 "name": "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.",
PatrikBuhrfee99552021-02-02 14:06:44 +01001240 "url": "http://www.apache.org/licenses/LICENSE-2.0"
1241 },
PatrikBuhrc0218ad2022-11-28 09:40:36 +01001242 "description": "<h2>General<\/h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for management of A1 policies. <br/>The main tasks of the service are:<\/p><ul><li>A1 Policy creation, modification and deletion.<\/li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs<\/li><li>Maintaining a view of supported Near-RT RIC policy types<\/li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.<\/li><\/ul><h2>APIs provided by the service<\/h2><h3>A1 Policy Management<\/h3><p>This is an API for management of A1 Policies.<\/p><ul><li>A1 Policy retrieval, creation, modification and deletion.<\/li><li>Retrieval of supported A1 Policy types for a Near-RT RIC<\/li><li>Retrieval of status for existing A1 policies<\/li><\/ul><h3>Management of configuration<\/h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.<\/p><h3>Callbacks<\/h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.<\/p><h3>NearRT-RIC Repository<\/h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.<\/p><h3>Health Check<\/h3><p>API used for supervision of the PMS component.<\/p><h3>Service Registry and Supervision<\/h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.<\/p><h3>Spring Boot Actuator<\/h3><p>Provides generic functions used to monitor and manage the Spring web application.<\/p>",
JohnKeeney08486cf2022-05-24 12:34:49 +01001243 "title": "A1 Policy Management Service",
PatrikBuhr1122b012021-01-20 12:21:52 +01001244 "version": "1.1.0"
1245 },
1246 "tags": [
PatrikBuhr2a56cf72021-12-28 13:14:46 +01001247 {"name": "Service Registry and Supervision"},
PatrikBuhrfee99552021-02-02 14:06:44 +01001248 {"name": "A1 Policy Management"},
1249 {"name": "NearRT-RIC Repository"},
PatrikBuhr2b277642021-12-27 11:32:58 +01001250 {"name": "Callbacks"},
PatrikBuhr2a56cf72021-12-28 13:14:46 +01001251 {"name": "Health Check"},
PatrikBuhr2b277642021-12-27 11:32:58 +01001252 {
1253 "name": "Actuator",
1254 "description": "Monitor and interact",
1255 "externalDocs": {
1256 "description": "Spring Boot Actuator Web API Documentation",
1257 "url": "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"
1258 }
PatrikBuhrde7a5732022-03-31 12:08:56 +02001259 },
1260 {"name": "Management of configuration"}
PatrikBuhr1122b012021-01-20 12:21:52 +01001261 ]
1262}