blob: a81070f77420faf7055781f6ee6ba263fd48565b [file] [log] [blame]
elinuxhenrikf28594d2020-12-07 14:54:19 +01001{
PatrikBuhrfee99552021-02-02 14:06:44 +01002 "components": {"schemas": {
elinuxhenrikf28594d2020-12-07 14:54:19 +01003 "error_information": {
4 "description": "Problem as defined in https://tools.ietf.org/html/rfc7807",
5 "type": "object",
elinuxhenrikf28594d2020-12-07 14:54:19 +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
elinuxhenrikf28594d2020-12-07 14:54:19 +010017 }
JohnKeeneyc9778a72022-11-01 18:49:15 +000018 },
19 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +010020 },
PatrikBuhrfee99552021-02-02 14:06:44 +010021 "void": {
22 "description": "Void/empty",
JohnKeeneyc9778a72022-11-01 18:49:15 +000023 "type": "object",
24 "example": null
PatrikBuhrfee99552021-02-02 14:06:44 +010025 },
elinuxhenrikf28594d2020-12-07 14:54:19 +010026 "status_info_v2": {
27 "type": "object",
elinuxhenrikf28594d2020-12-07 14:54:19 +010028 "properties": {"status": {
29 "description": "status text",
JohnKeeneyc9778a72022-11-01 18:49:15 +000030 "type": "string",
31 "example": null
32 }},
33 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +010034 },
PatrikBuhrfee99552021-02-02 14:06:44 +010035 "ric_info_v2": {
36 "description": "Information for a Near-RT RIC",
elinuxhenrikf28594d2020-12-07 14:54:19 +010037 "type": "object",
PatrikBuhrfee99552021-02-02 14:06:44 +010038 "properties": {
39 "ric_id": {
40 "description": "identity of the Near-RT RIC",
JohnKeeneyc9778a72022-11-01 18:49:15 +000041 "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",
JohnKeeneyc9778a72022-11-01 18:49:15 +000049 "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"
JohnKeeneyc9778a72022-11-01 18:49:15 +000062 ],
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",
JohnKeeneyc9778a72022-11-01 18:49:15 +000070 "type": "string",
71 "example": null
72 },
73 "example": null
PatrikBuhrfee99552021-02-02 14:06:44 +010074 }
JohnKeeneyc9778a72022-11-01 18:49:15 +000075 },
76 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +010077 },
78 "service_registration_info_v2": {
79 "description": "Information for one service",
80 "type": "object",
elinuxhenrikf28594d2020-12-07 14:54:19 +010081 "required": ["service_id"],
82 "properties": {
83 "callback_url": {
84 "description": "callback for notifying of Near-RT RIC state changes",
JohnKeeneyc9778a72022-11-01 18:49:15 +000085 "type": "string",
86 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +010087 },
88 "service_id": {
89 "description": "identity of the service",
JohnKeeneyc9778a72022-11-01 18:49:15 +000090 "type": "string",
91 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +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.",
JohnKeeneyc9778a72022-11-01 18:49:15 +000096 "type": "integer",
97 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +010098 }
JohnKeeneyc9778a72022-11-01 18:49:15 +000099 },
100 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +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",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000108 "items": {"$ref": "#/components/schemas/policy_info_v2"},
109 "example": null
110 }},
111 "example": null
PatrikBuhrfee99552021-02-02 14:06:44 +0100112 },
elinuxhenrikf28594d2020-12-07 14:54:19 +0100113 "policy_status_info_v2": {
114 "description": "Status for one A1-P Policy",
115 "type": "object",
elinuxhenrikf28594d2020-12-07 14:54:19 +0100116 "properties": {
117 "last_modified": {
118 "description": "timestamp, last modification time",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000119 "type": "string",
120 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +0100121 },
122 "status": {
123 "description": "the Policy status",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000124 "type": "object",
125 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +0100126 }
JohnKeeneyc9778a72022-11-01 18:49:15 +0000127 },
128 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +0100129 },
elinuxhenrikf28594d2020-12-07 14:54:19 +0100130 "service_status_v2": {
PatrikBuhrfee99552021-02-02 14:06:44 +0100131 "description": "List of service information",
elinuxhenrikf28594d2020-12-07 14:54:19 +0100132 "type": "object",
elinuxhenrikf28594d2020-12-07 14:54:19 +0100133 "properties": {
134 "callback_url": {
135 "description": "callback for notifying of RIC synchronization",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000136 "type": "string",
137 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +0100138 },
139 "service_id": {
140 "description": "identity of the service",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000141 "type": "string",
142 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +0100143 },
144 "keep_alive_interval_seconds": {
145 "format": "int64",
146 "description": "policy keep alive timeout",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000147 "type": "integer",
148 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +0100149 },
150 "time_since_last_activity_seconds": {
151 "format": "int64",
152 "description": "time since last invocation by the service",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000153 "type": "integer",
154 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +0100155 }
JohnKeeneyc9778a72022-11-01 18:49:15 +0000156 },
157 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +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",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000165 "items": {"$ref": "#/components/schemas/ric_info_v2"},
166 "example": null
167 }},
168 "example": null
PatrikBuhrfee99552021-02-02 14:06:44 +0100169 },
elinuxhenrikf28594d2020-12-07 14:54:19 +0100170 "policytype_v2": {
171 "description": "Policy type",
172 "type": "object",
elinuxhenrikf28594d2020-12-07 14:54:19 +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",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000175 "type": "object",
176 "example": null
177 }},
178 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +0100179 },
elinuxhenrikf28594d2020-12-07 14:54:19 +0100180 "policytype_id_list_v2": {
181 "description": "Information about policy types",
182 "type": "object",
elinuxhenrikf28594d2020-12-07 14:54:19 +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",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000188 "type": "string",
189 "example": null
190 },
191 "example": null
192 }},
193 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +0100194 },
195 "policy_info_v2": {
196 "description": "Information for one A1-P Policy",
197 "type": "object",
elinuxhenrikf28594d2020-12-07 14:54:19 +0100198 "required": [
199 "policy_data",
200 "policy_id",
201 "policytype_id",
202 "ric_id",
203 "service_id"
204 ],
205 "properties": {
206 "ric_id": {
207 "description": "identity of the target Near-RT RIC",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000208 "type": "string",
209 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +0100210 },
211 "policy_id": {
212 "description": "identity of the policy",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000213 "type": "string",
214 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +0100215 },
216 "transient": {
217 "description": "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000218 "type": "boolean",
219 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +0100220 },
221 "service_id": {
PatrikBuhr3b916e42021-10-07 18:03:53 +0200222 "description": "the identity of the service owning the policy",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000223 "type": "string",
224 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +0100225 },
226 "policy_data": {
227 "description": "the configuration of the policy",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000228 "type": "object",
229 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +0100230 },
231 "status_notification_uri": {
232 "description": "Callback URI for policy status updates",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000233 "type": "string",
234 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +0100235 },
236 "policytype_id": {
237 "description": "identity of the policy type",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000238 "type": "string",
239 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +0100240 }
JohnKeeneyc9778a72022-11-01 18:49:15 +0000241 },
242 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +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",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000252 "type": "string",
253 "example": null
254 },
255 "example": null
256 }},
257 "example": null
PatrikBuhrfee99552021-02-02 14:06:44 +0100258 },
elinuxhenrikf28594d2020-12-07 14:54:19 +0100259 "service_list_v2": {
260 "description": "List of service information",
261 "type": "object",
elinuxhenrikf28594d2020-12-07 14:54:19 +0100262 "properties": {"service_list": {
263 "description": "List of service information",
264 "type": "array",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000265 "items": {"$ref": "#/components/schemas/service_status_v2"},
266 "example": null
267 }},
268 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +0100269 },
270 "service_callback_info_v2": {
271 "description": "Information transferred as in Service callbacks (callback_url)",
272 "type": "object",
elinuxhenrikf28594d2020-12-07 14:54:19 +0100273 "required": [
274 "event_type",
275 "ric_id"
276 ],
277 "properties": {
278 "ric_id": {
279 "description": "identity of a Near-RT RIC",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000280 "type": "string",
281 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +0100282 },
283 "event_type": {
284 "description": "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
285 "type": "string",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000286 "enum": ["AVAILABLE"],
287 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +0100288 }
JohnKeeneyc9778a72022-11-01 18:49:15 +0000289 },
290 "example": null
PatrikBuhr6e318742021-11-30 11:25:17 +0100291 },
292 "Link": {
293 "type": "object",
294 "properties": {
JohnKeeneyc9778a72022-11-01 18:49:15 +0000295 "templated": {
296 "type": "boolean",
297 "example": null
298 },
299 "href": {
300 "type": "string",
301 "example": null
302 }
303 },
304 "example": null
elinuxhenrikf28594d2020-12-07 14:54:19 +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",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000316 "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",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000323 "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 {
JohnKeeneyc9778a72022-11-01 18:49:15 +0000331 "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 {
JohnKeeneyc9778a72022-11-01 18:49:15 +0000341 "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 {
JohnKeeneyc9778a72022-11-01 18:49:15 +0000351 "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 {
JohnKeeneyc9778a72022-11-01 18:49:15 +0000361 "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 }},
PatrikBuhr62c25962022-03-25 15:39:06 +0100373 "/actuator/threaddump": {"get": {
374 "summary": "Actuator web endpoint 'threaddump'",
375 "operationId": "threaddump_2",
376 "responses": {"200": {
377 "description": "OK",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000378 "content": {"*/*": {
379 "schema": {
380 "type": "object",
381 "example": null
382 },
383 "example": null
384 }}
PatrikBuhr62c25962022-03-25 15:39:06 +0100385 }},
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",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000393 "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 }},
PatrikBuhr62c25962022-03-25 15:39:06 +0100400 "/actuator/loggers": {"get": {
401 "summary": "Actuator web endpoint 'loggers'",
402 "operationId": "loggers",
403 "responses": {"200": {
404 "description": "OK",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000405 "content": {"*/*": {
406 "schema": {
407 "type": "object",
408 "example": null
409 },
410 "example": null
411 }}
PatrikBuhr62c25962022-03-25 15:39:06 +0100412 }},
413 "tags": ["Actuator"]
414 }},
415 "/actuator/health/**": {"get": {
416 "summary": "Actuator web endpoint 'health-path'",
417 "operationId": "health-path",
PatrikBuhr6e318742021-11-30 11:25:17 +0100418 "responses": {"200": {
419 "description": "OK",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000420 "content": {"*/*": {
421 "schema": {
422 "type": "object",
423 "example": null
424 },
425 "example": null
426 }}
PatrikBuhr6e318742021-11-30 11:25:17 +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",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000437 "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",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000444 "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 {
JohnKeeneyc9778a72022-11-01 18:49:15 +0000452 "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 {
JohnKeeneyc9778a72022-11-01 18:49:15 +0000462 "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 }},
474 "/a1-policy/v2/policy-types": {"get": {
475 "summary": "Query policy type identities",
PatrikBuhr2a56cf72021-12-28 13:14:46 +0100476 "operationId": "getPolicyTypes",
PatrikBuhrfee99552021-02-02 14:06:44 +0100477 "responses": {
478 "200": {
479 "description": "Policy type IDs",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000480 "content": {"application/json": {
481 "schema": {"$ref": "#/components/schemas/policytype_id_list_v2"},
482 "example": null
483 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100484 },
485 "404": {
486 "description": "Near-RT RIC is not found",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000487 "content": {"application/json": {
488 "schema": {"$ref": "#/components/schemas/error_information"},
489 "example": null
490 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100491 }
492 },
PatrikBuhr3b916e42021-10-07 18:03:53 +0200493 "parameters": [
494 {
JohnKeeneyc9778a72022-11-01 18:49:15 +0000495 "schema": {
496 "type": "string",
497 "example": null
498 },
PatrikBuhr3b916e42021-10-07 18:03:53 +0200499 "in": "query",
500 "name": "ric_id",
501 "description": "Select types for the given Near-RT RIC identity.",
502 "required": false
503 },
504 {
JohnKeeneyc9778a72022-11-01 18:49:15 +0000505 "schema": {
506 "type": "string",
507 "example": null
508 },
PatrikBuhr3b916e42021-10-07 18:03:53 +0200509 "in": "query",
510 "name": "type_name",
511 "description": "Select types with the given type name (type identity has the format <typename_version>)",
512 "required": false
513 },
514 {
JohnKeeneyc9778a72022-11-01 18:49:15 +0000515 "schema": {
516 "type": "string",
517 "example": null
518 },
PatrikBuhr3b916e42021-10-07 18:03:53 +0200519 "in": "query",
PatrikBuhr3b916e42021-10-07 18:03:53 +0200520 "name": "compatible_with_version",
PatrikBuhrc1b62222021-12-28 13:07:14 +0100521 "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 +0200522 "required": false
523 }
524 ],
PatrikBuhrfee99552021-02-02 14:06:44 +0100525 "tags": ["A1 Policy Management"]
526 }},
527 "/a1-policy/v2/policies/{policy_id}": {
528 "get": {
529 "summary": "Returns a policy",
PatrikBuhr2a56cf72021-12-28 13:14:46 +0100530 "operationId": "getPolicy",
PatrikBuhrfee99552021-02-02 14:06:44 +0100531 "responses": {
532 "200": {
533 "description": "Policy found",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000534 "content": {"application/json": {
535 "schema": {"$ref": "#/components/schemas/policy_info_v2"},
536 "example": null
537 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100538 },
539 "404": {
540 "description": "Policy is not found",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000541 "content": {"application/json": {
542 "schema": {"$ref": "#/components/schemas/error_information"},
543 "example": null
544 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100545 }
546 },
547 "parameters": [{
JohnKeeneyc9778a72022-11-01 18:49:15 +0000548 "schema": {
549 "type": "string",
550 "example": null
551 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100552 "in": "path",
553 "name": "policy_id",
554 "required": true
555 }],
556 "tags": ["A1 Policy Management"]
557 },
558 "delete": {
559 "summary": "Delete a policy",
PatrikBuhr2a56cf72021-12-28 13:14:46 +0100560 "operationId": "deletePolicy",
PatrikBuhrfee99552021-02-02 14:06:44 +0100561 "responses": {
562 "200": {
563 "description": "Not used",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000564 "content": {"*/*": {
565 "schema": {"$ref": "#/components/schemas/void"},
566 "example": null
567 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100568 },
569 "423": {
570 "description": "Near-RT RIC is not operational",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000571 "content": {"*/*": {
572 "schema": {"$ref": "#/components/schemas/error_information"},
573 "example": null
574 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100575 },
576 "204": {
577 "description": "Policy deleted",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000578 "content": {"*/*": {
579 "schema": {"$ref": "#/components/schemas/void"},
580 "example": null
581 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100582 },
583 "404": {
584 "description": "Policy is not found",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000585 "content": {"*/*": {
586 "schema": {"$ref": "#/components/schemas/error_information"},
587 "example": null
588 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100589 }
590 },
591 "parameters": [{
JohnKeeneyc9778a72022-11-01 18:49:15 +0000592 "schema": {
593 "type": "string",
594 "example": null
595 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100596 "in": "path",
597 "name": "policy_id",
598 "required": true
599 }],
600 "tags": ["A1 Policy Management"]
601 }
602 },
PatrikBuhr6e318742021-11-30 11:25:17 +0100603 "/actuator/metrics/{requiredMetricName}": {"get": {
604 "summary": "Actuator web endpoint 'metrics-requiredMetricName'",
PatrikBuhr62c25962022-03-25 15:39:06 +0100605 "operationId": "metrics-requiredMetricName",
PatrikBuhr6e318742021-11-30 11:25:17 +0100606 "responses": {"200": {
607 "description": "OK",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000608 "content": {"*/*": {
609 "schema": {
610 "type": "object",
611 "example": null
612 },
613 "example": null
614 }}
PatrikBuhr6e318742021-11-30 11:25:17 +0100615 }},
616 "parameters": [{
JohnKeeneyc9778a72022-11-01 18:49:15 +0000617 "schema": {
618 "type": "string",
619 "example": null
620 },
PatrikBuhr6e318742021-11-30 11:25:17 +0100621 "in": "path",
622 "name": "requiredMetricName",
623 "required": true
624 }],
625 "tags": ["Actuator"]
626 }},
PatrikBuhrfee99552021-02-02 14:06:44 +0100627 "/a1-policy/v2/configuration": {
628 "get": {
PatrikBuhr0f8b2052021-12-20 13:40:14 +0100629 "summary": "Returns the contents of the application configuration file",
PatrikBuhrfee99552021-02-02 14:06:44 +0100630 "operationId": "getConfiguration",
631 "responses": {
632 "200": {
633 "description": "Configuration",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000634 "content": {"application/json": {
635 "schema": {
636 "type": "object",
637 "example": null
638 },
639 "example": null
640 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100641 },
642 "404": {
643 "description": "File is not found or readable",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000644 "content": {"application/json": {
645 "schema": {"$ref": "#/components/schemas/error_information"},
646 "example": null
647 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100648 }
649 },
650 "tags": ["Management of configuration"]
651 },
652 "put": {
653 "summary": "Replace the current configuration file with the given configuration",
654 "requestBody": {
JohnKeeneyc9778a72022-11-01 18:49:15 +0000655 "content": {"application/json": {
656 "schema": {
657 "type": "object",
658 "example": null
659 },
660 "example": null
661 }},
PatrikBuhrfee99552021-02-02 14:06:44 +0100662 "required": true
663 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100664 "operationId": "putConfiguration",
665 "responses": {
666 "200": {
667 "description": "Configuration updated",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000668 "content": {"*/*": {
669 "schema": {"$ref": "#/components/schemas/void"},
670 "example": null
671 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100672 },
673 "400": {
674 "description": "Invalid configuration provided",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000675 "content": {"*/*": {
676 "schema": {"$ref": "#/components/schemas/error_information"},
677 "example": null
678 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100679 },
680 "500": {
681 "description": "Something went wrong when replacing the configuration. Try again.",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000682 "content": {"*/*": {
683 "schema": {"$ref": "#/components/schemas/error_information"},
684 "example": null
685 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100686 }
687 },
688 "tags": ["Management of configuration"]
689 }
690 },
PatrikBuhr6e318742021-11-30 11:25:17 +0100691 "/actuator": {"get": {
692 "summary": "Actuator root web endpoint",
PatrikBuhr62c25962022-03-25 15:39:06 +0100693 "operationId": "links",
PatrikBuhr6e318742021-11-30 11:25:17 +0100694 "responses": {"200": {
695 "description": "OK",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000696 "content": {"*/*": {
697 "schema": {
698 "additionalProperties": {
699 "additionalProperties": {"$ref": "#/components/schemas/Link"},
700 "type": "object",
701 "example": null
702 },
703 "type": "object",
704 "example": null
PatrikBuhr6e318742021-11-30 11:25:17 +0100705 },
JohnKeeneyc9778a72022-11-01 18:49:15 +0000706 "example": null
707 }}
PatrikBuhr6e318742021-11-30 11:25:17 +0100708 }},
709 "tags": ["Actuator"]
710 }},
PatrikBuhr6e318742021-11-30 11:25:17 +0100711 "/actuator/loggers/{name}": {
712 "post": {
713 "summary": "Actuator web endpoint 'loggers-name'",
PatrikBuhr62c25962022-03-25 15:39:06 +0100714 "operationId": "loggers-name",
PatrikBuhr6e318742021-11-30 11:25:17 +0100715 "responses": {"200": {
716 "description": "OK",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000717 "content": {"*/*": {
718 "schema": {
719 "type": "object",
720 "example": null
721 },
722 "example": null
723 }}
PatrikBuhr6e318742021-11-30 11:25:17 +0100724 }},
725 "parameters": [{
JohnKeeneyc9778a72022-11-01 18:49:15 +0000726 "schema": {
727 "type": "string",
728 "example": null
729 },
PatrikBuhr6e318742021-11-30 11:25:17 +0100730 "in": "path",
731 "name": "name",
732 "required": true
733 }],
734 "tags": ["Actuator"]
735 },
736 "get": {
737 "summary": "Actuator web endpoint 'loggers-name'",
PatrikBuhr62c25962022-03-25 15:39:06 +0100738 "operationId": "loggers-name_2",
PatrikBuhr6e318742021-11-30 11:25:17 +0100739 "responses": {"200": {
740 "description": "OK",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000741 "content": {"*/*": {
742 "schema": {
743 "type": "object",
744 "example": null
745 },
746 "example": null
747 }}
PatrikBuhr6e318742021-11-30 11:25:17 +0100748 }},
749 "parameters": [{
JohnKeeneyc9778a72022-11-01 18:49:15 +0000750 "schema": {
751 "type": "string",
752 "example": null
753 },
PatrikBuhr6e318742021-11-30 11:25:17 +0100754 "in": "path",
755 "name": "name",
756 "required": true
757 }],
758 "tags": ["Actuator"]
759 }
760 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100761 "/a1-policy/v2/services/{service_id}/keepalive": {"put": {
762 "summary": "Heartbeat indicates that the service is running",
JohnKeeney08486cf2022-05-24 12:34:49 +0100763 "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 +0100764 "operationId": "keepAliveService",
PatrikBuhrfee99552021-02-02 14:06:44 +0100765 "responses": {
766 "200": {
767 "description": "Service supervision timer refreshed, OK",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000768 "content": {"*/*": {
769 "schema": {
770 "type": "object",
771 "example": null
772 },
773 "example": null
774 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100775 },
776 "404": {
777 "description": "The service is not found, needs re-registration",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000778 "content": {"*/*": {
779 "schema": {"$ref": "#/components/schemas/error_information"},
780 "example": null
781 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100782 }
783 },
784 "parameters": [{
JohnKeeneyc9778a72022-11-01 18:49:15 +0000785 "schema": {
786 "type": "string",
787 "example": null
788 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100789 "in": "path",
790 "name": "service_id",
791 "required": true
792 }],
793 "tags": ["Service Registry and Supervision"]
794 }},
PatrikBuhr6e318742021-11-30 11:25:17 +0100795 "/actuator/metrics": {"get": {
796 "summary": "Actuator web endpoint 'metrics'",
PatrikBuhr62c25962022-03-25 15:39:06 +0100797 "operationId": "metrics",
PatrikBuhr6e318742021-11-30 11:25:17 +0100798 "responses": {"200": {
799 "description": "OK",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000800 "content": {"*/*": {
801 "schema": {
802 "type": "object",
803 "example": null
804 },
805 "example": null
806 }}
PatrikBuhr6e318742021-11-30 11:25:17 +0100807 }},
808 "tags": ["Actuator"]
809 }},
PatrikBuhrfee99552021-02-02 14:06:44 +0100810 "/a1-policy/v2/rics": {"get": {
811 "summary": "Query Near-RT RIC information",
812 "description": "The call returns all Near-RT RICs that supports a given policy type identity",
PatrikBuhr2a56cf72021-12-28 13:14:46 +0100813 "operationId": "getRics",
PatrikBuhrfee99552021-02-02 14:06:44 +0100814 "responses": {
815 "200": {
816 "description": "OK",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000817 "content": {"application/json": {
818 "schema": {"$ref": "#/components/schemas/ric_info_list_v2"},
819 "example": null
820 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100821 },
822 "404": {
823 "description": "Policy type is not found",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000824 "content": {"application/json": {
825 "schema": {"$ref": "#/components/schemas/error_information"},
826 "example": null
827 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100828 }
829 },
830 "parameters": [{
JohnKeeneyc9778a72022-11-01 18:49:15 +0000831 "schema": {
832 "type": "string",
833 "example": null
834 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100835 "in": "query",
836 "name": "policytype_id",
PatrikBuhr0f8b2052021-12-20 13:40:14 +0100837 "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 +0100838 "required": false
839 }],
840 "tags": ["NearRT-RIC Repository"]
841 }},
PatrikBuhrfee99552021-02-02 14:06:44 +0100842 "/a1-policy/v2/services": {
843 "get": {
844 "summary": "Returns service information",
845 "description": "Either information about a registered service with given identity or all registered services are returned.",
PatrikBuhr2a56cf72021-12-28 13:14:46 +0100846 "operationId": "getServices",
PatrikBuhrfee99552021-02-02 14:06:44 +0100847 "responses": {
848 "200": {
849 "description": "OK",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000850 "content": {"application/json": {
851 "schema": {"$ref": "#/components/schemas/service_list_v2"},
852 "example": null
853 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100854 },
855 "404": {
856 "description": "Service is not found",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000857 "content": {"application/json": {
858 "schema": {"$ref": "#/components/schemas/error_information"},
859 "example": null
860 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100861 }
862 },
863 "parameters": [{
JohnKeeneyc9778a72022-11-01 18:49:15 +0000864 "schema": {
865 "type": "string",
866 "example": null
867 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100868 "in": "query",
869 "name": "service_id",
870 "description": "The identity of the service",
871 "required": false
872 }],
873 "tags": ["Service Registry and Supervision"]
874 },
875 "put": {
876 "summary": "Register a service",
877 "requestBody": {
JohnKeeneyc9778a72022-11-01 18:49:15 +0000878 "content": {"application/json": {
879 "schema": {"$ref": "#/components/schemas/service_registration_info_v2"},
880 "example": null
881 }},
PatrikBuhrfee99552021-02-02 14:06:44 +0100882 "required": true
883 },
884 "description": "Registering a service is needed to:<ul><li>Get callbacks.<\/li><li>Activate supervision of the service. If a service is inactive, its policies will be deleted.<\/li><\/ul>",
PatrikBuhr2a56cf72021-12-28 13:14:46 +0100885 "operationId": "putService",
PatrikBuhrfee99552021-02-02 14:06:44 +0100886 "responses": {
887 "200": {
888 "description": "Service updated",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000889 "content": {"*/*": {
890 "schema": {
891 "type": "object",
892 "example": null
893 },
894 "example": null
895 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100896 },
897 "201": {
898 "description": "Service created",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000899 "content": {"*/*": {
900 "schema": {
901 "type": "object",
902 "example": null
903 },
904 "example": null
905 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100906 },
907 "400": {
908 "description": "The ServiceRegistrationInfo is not accepted",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000909 "content": {"*/*": {
910 "schema": {"$ref": "#/components/schemas/error_information"},
911 "example": null
912 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100913 }
914 },
915 "tags": ["Service Registry and Supervision"]
916 }
917 },
PatrikBuhr6e318742021-11-30 11:25:17 +0100918 "/actuator/info": {"get": {
919 "summary": "Actuator web endpoint 'info'",
PatrikBuhr62c25962022-03-25 15:39:06 +0100920 "operationId": "info",
PatrikBuhr6e318742021-11-30 11:25:17 +0100921 "responses": {"200": {
922 "description": "OK",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000923 "content": {"*/*": {
924 "schema": {
925 "type": "object",
926 "example": null
927 },
928 "example": null
929 }}
PatrikBuhr6e318742021-11-30 11:25:17 +0100930 }},
931 "tags": ["Actuator"]
932 }},
PatrikBuhrfee99552021-02-02 14:06:44 +0100933 "/status": {"get": {
934 "summary": "Returns status and statistics of this service",
PatrikBuhr2a56cf72021-12-28 13:14:46 +0100935 "operationId": "getStatusV1",
PatrikBuhrfee99552021-02-02 14:06:44 +0100936 "responses": {"200": {
937 "description": "Service is living",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000938 "content": {"*/*": {
939 "schema": {
940 "type": "string",
941 "example": null
942 },
943 "example": null
944 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100945 }},
PatrikBuhr2a56cf72021-12-28 13:14:46 +0100946 "tags": ["Health Check"]
PatrikBuhrfee99552021-02-02 14:06:44 +0100947 }},
948 "/a1-policy/v2/policy-types/{policytype_id}": {"get": {
949 "summary": "Returns a policy type definition",
950 "operationId": "getPolicyType",
951 "responses": {
952 "200": {
953 "description": "Policy type",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000954 "content": {"*/*": {
955 "schema": {"$ref": "#/components/schemas/policytype_v2"},
956 "example": null
957 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100958 },
959 "404": {
960 "description": "Policy type is not found",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000961 "content": {"*/*": {
962 "schema": {"$ref": "#/components/schemas/error_information"},
963 "example": null
964 }}
PatrikBuhrfee99552021-02-02 14:06:44 +0100965 }
966 },
967 "parameters": [{
JohnKeeneyc9778a72022-11-01 18:49:15 +0000968 "schema": {
969 "type": "string",
970 "example": null
971 },
PatrikBuhrfee99552021-02-02 14:06:44 +0100972 "in": "path",
973 "name": "policytype_id",
974 "required": true
975 }],
976 "tags": ["A1 Policy Management"]
977 }},
PatrikBuhr6e318742021-11-30 11:25:17 +0100978 "/actuator/logfile": {"get": {
979 "summary": "Actuator web endpoint 'logfile'",
PatrikBuhr62c25962022-03-25 15:39:06 +0100980 "operationId": "logfile",
PatrikBuhr6e318742021-11-30 11:25:17 +0100981 "responses": {"200": {
982 "description": "OK",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000983 "content": {"*/*": {
984 "schema": {
985 "type": "object",
986 "example": null
987 },
988 "example": null
989 }}
PatrikBuhr6e318742021-11-30 11:25:17 +0100990 }},
991 "tags": ["Actuator"]
992 }},
993 "/actuator/health": {"get": {
994 "summary": "Actuator web endpoint 'health'",
PatrikBuhr62c25962022-03-25 15:39:06 +0100995 "operationId": "health",
PatrikBuhr6e318742021-11-30 11:25:17 +0100996 "responses": {"200": {
997 "description": "OK",
JohnKeeneyc9778a72022-11-01 18:49:15 +0000998 "content": {"*/*": {
999 "schema": {
1000 "type": "object",
1001 "example": null
1002 },
1003 "example": null
1004 }}
PatrikBuhr6e318742021-11-30 11:25:17 +01001005 }},
1006 "tags": ["Actuator"]
1007 }},
PatrikBuhrfee99552021-02-02 14:06:44 +01001008 "/a1-policy/v2/policies": {
1009 "get": {
1010 "summary": "Query policy identities",
1011 "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 +01001012 "operationId": "getPolicyIds",
PatrikBuhrfee99552021-02-02 14:06:44 +01001013 "responses": {
1014 "200": {
1015 "description": "Policy identities",
JohnKeeneyc9778a72022-11-01 18:49:15 +00001016 "content": {"application/json": {
1017 "schema": {"$ref": "#/components/schemas/policy_id_list_v2"},
1018 "example": null
1019 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001020 },
1021 "404": {
1022 "description": "Near-RT RIC or type not found",
JohnKeeneyc9778a72022-11-01 18:49:15 +00001023 "content": {"application/json": {
1024 "schema": {"$ref": "#/components/schemas/error_information"},
1025 "example": null
1026 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001027 }
1028 },
1029 "parameters": [
1030 {
JohnKeeneyc9778a72022-11-01 18:49:15 +00001031 "schema": {
1032 "type": "string",
1033 "example": null
1034 },
PatrikBuhrfee99552021-02-02 14:06:44 +01001035 "in": "query",
1036 "name": "policytype_id",
PatrikBuhr3b916e42021-10-07 18:03:53 +02001037 "description": "Select policies of a given policy type identity.",
PatrikBuhrfee99552021-02-02 14:06:44 +01001038 "required": false
1039 },
1040 {
JohnKeeneyc9778a72022-11-01 18:49:15 +00001041 "schema": {
1042 "type": "string",
1043 "example": null
1044 },
PatrikBuhrfee99552021-02-02 14:06:44 +01001045 "in": "query",
1046 "name": "ric_id",
PatrikBuhr3b916e42021-10-07 18:03:53 +02001047 "description": "Select policies of a given Near-RT RIC identity.",
PatrikBuhrfee99552021-02-02 14:06:44 +01001048 "required": false
1049 },
1050 {
JohnKeeneyc9778a72022-11-01 18:49:15 +00001051 "schema": {
1052 "type": "string",
1053 "example": null
1054 },
PatrikBuhrfee99552021-02-02 14:06:44 +01001055 "in": "query",
1056 "name": "service_id",
PatrikBuhr3b916e42021-10-07 18:03:53 +02001057 "description": "Select policies owned by a given service.",
1058 "required": false
1059 },
1060 {
JohnKeeneyc9778a72022-11-01 18:49:15 +00001061 "schema": {
1062 "type": "string",
1063 "example": null
1064 },
PatrikBuhr3b916e42021-10-07 18:03:53 +02001065 "in": "query",
1066 "name": "type_name",
1067 "description": "Select policies of types with the given type name (type identity has the format <typename_version>)",
PatrikBuhrfee99552021-02-02 14:06:44 +01001068 "required": false
1069 }
1070 ],
1071 "tags": ["A1 Policy Management"]
1072 },
1073 "put": {
1074 "summary": "Create or update a policy",
1075 "requestBody": {
JohnKeeneyc9778a72022-11-01 18:49:15 +00001076 "content": {"application/json": {
1077 "schema": {"$ref": "#/components/schemas/policy_info_v2"},
1078 "example": null
1079 }},
PatrikBuhrfee99552021-02-02 14:06:44 +01001080 "required": true
1081 },
PatrikBuhr2a56cf72021-12-28 13:14:46 +01001082 "operationId": "putPolicy",
PatrikBuhrfee99552021-02-02 14:06:44 +01001083 "responses": {
1084 "200": {
1085 "description": "Policy updated",
JohnKeeneyc9778a72022-11-01 18:49:15 +00001086 "content": {"application/json": {
1087 "schema": {"$ref": "#/components/schemas/void"},
1088 "example": null
1089 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001090 },
1091 "201": {
1092 "description": "Policy created",
JohnKeeneyc9778a72022-11-01 18:49:15 +00001093 "content": {"application/json": {
1094 "schema": {"$ref": "#/components/schemas/void"},
1095 "example": null
1096 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001097 },
1098 "423": {
1099 "description": "Near-RT RIC is not operational",
JohnKeeneyc9778a72022-11-01 18:49:15 +00001100 "content": {"application/json": {
1101 "schema": {"$ref": "#/components/schemas/error_information"},
1102 "example": null
1103 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001104 },
1105 "404": {
1106 "description": "Near-RT RIC or policy type is not found",
JohnKeeneyc9778a72022-11-01 18:49:15 +00001107 "content": {"application/json": {
1108 "schema": {"$ref": "#/components/schemas/error_information"},
1109 "example": null
1110 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001111 }
1112 },
1113 "tags": ["A1 Policy Management"]
1114 }
1115 },
1116 "/r-app/near-rt-ric-status": {"post": {
1117 "summary": "Callback for Near-RT RIC status",
1118 "requestBody": {
JohnKeeneyc9778a72022-11-01 18:49:15 +00001119 "content": {"application/json": {
1120 "schema": {"$ref": "#/components/schemas/service_callback_info_v2"},
1121 "example": null
1122 }},
PatrikBuhrfee99552021-02-02 14:06:44 +01001123 "required": true
1124 },
JohnKeeney069b4692022-05-12 22:15:14 +01001125 "description": "The URL to this call is registered at Service registration.",
PatrikBuhr25d78502021-04-28 08:42:13 +02001126 "operationId": "serviceCallback",
PatrikBuhrfee99552021-02-02 14:06:44 +01001127 "responses": {"200": {
1128 "description": "OK",
JohnKeeneyc9778a72022-11-01 18:49:15 +00001129 "content": {"application/json": {
1130 "schema": {"$ref": "#/components/schemas/void"},
1131 "example": null
1132 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001133 }},
1134 "tags": ["Callbacks"]
1135 }},
PatrikBuhrfee99552021-02-02 14:06:44 +01001136 "/a1-policy/v2/services/{service_id}": {"delete": {
1137 "summary": "Unregister a service",
PatrikBuhr2a56cf72021-12-28 13:14:46 +01001138 "operationId": "deleteService",
PatrikBuhrfee99552021-02-02 14:06:44 +01001139 "responses": {
1140 "200": {
1141 "description": "Not used",
JohnKeeneyc9778a72022-11-01 18:49:15 +00001142 "content": {"*/*": {
1143 "schema": {"$ref": "#/components/schemas/void"},
1144 "example": null
1145 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001146 },
1147 "204": {
1148 "description": "Service unregistered",
JohnKeeneyc9778a72022-11-01 18:49:15 +00001149 "content": {"*/*": {
1150 "schema": {
1151 "type": "object",
1152 "example": null
1153 },
1154 "example": null
1155 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001156 },
1157 "404": {
1158 "description": "Service not found",
JohnKeeneyc9778a72022-11-01 18:49:15 +00001159 "content": {"*/*": {
1160 "schema": {"$ref": "#/components/schemas/error_information"},
1161 "example": null
1162 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001163 }
1164 },
1165 "parameters": [{
JohnKeeneyc9778a72022-11-01 18:49:15 +00001166 "schema": {
1167 "type": "string",
1168 "example": null
1169 },
PatrikBuhrfee99552021-02-02 14:06:44 +01001170 "in": "path",
1171 "name": "service_id",
1172 "required": true
1173 }],
1174 "tags": ["Service Registry and Supervision"]
1175 }},
PatrikBuhr62c25962022-03-25 15:39:06 +01001176 "/actuator/heapdump": {"get": {
1177 "summary": "Actuator web endpoint 'heapdump'",
1178 "operationId": "heapdump",
1179 "responses": {"200": {
1180 "description": "OK",
JohnKeeneyc9778a72022-11-01 18:49:15 +00001181 "content": {"*/*": {
1182 "schema": {
1183 "type": "object",
1184 "example": null
1185 },
1186 "example": null
1187 }}
PatrikBuhr62c25962022-03-25 15:39:06 +01001188 }},
1189 "tags": ["Actuator"]
1190 }},
PatrikBuhrfee99552021-02-02 14:06:44 +01001191 "/a1-policy/v2/policies/{policy_id}/status": {"get": {
1192 "summary": "Returns a policy status",
PatrikBuhr2a56cf72021-12-28 13:14:46 +01001193 "operationId": "getPolicyStatus",
PatrikBuhrfee99552021-02-02 14:06:44 +01001194 "responses": {
1195 "200": {
1196 "description": "Policy status",
JohnKeeneyc9778a72022-11-01 18:49:15 +00001197 "content": {"application/json": {
1198 "schema": {"$ref": "#/components/schemas/policy_status_info_v2"},
1199 "example": null
1200 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001201 },
1202 "404": {
1203 "description": "Policy is not found",
JohnKeeneyc9778a72022-11-01 18:49:15 +00001204 "content": {"application/json": {
1205 "schema": {"$ref": "#/components/schemas/error_information"},
1206 "example": null
1207 }}
PatrikBuhrfee99552021-02-02 14:06:44 +01001208 }
1209 },
1210 "parameters": [{
JohnKeeneyc9778a72022-11-01 18:49:15 +00001211 "schema": {
1212 "type": "string",
1213 "example": null
1214 },
PatrikBuhrfee99552021-02-02 14:06:44 +01001215 "in": "path",
1216 "name": "policy_id",
1217 "required": true
1218 }],
1219 "tags": ["A1 Policy Management"]
1220 }}
1221 },
1222 "info": {
1223 "license": {
PatrikBuhr2a56cf72021-12-28 13:14:46 +01001224 "name": "Copyright (C) 2020-2022 Nordix Foundation. Licensed under the Apache License.",
PatrikBuhrfee99552021-02-02 14:06:44 +01001225 "url": "http://www.apache.org/licenses/LICENSE-2.0"
1226 },
JohnKeeney069b4692022-05-12 22:15:14 +01001227 "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 owned by a service. PMS can supervise each registered service and will automatically remove policies for unavailable services.<\/p>",
JohnKeeney08486cf2022-05-24 12:34:49 +01001228 "title": "A1 Policy Management Service",
elinuxhenrikf28594d2020-12-07 14:54:19 +01001229 "version": "1.1.0"
1230 },
1231 "tags": [
PatrikBuhrc6cca202022-01-04 17:10:12 +01001232 {"name": "Service Registry and Supervision"},
1233 {"name": "A1 Policy Management"},
PatrikBuhrc6cca202022-01-04 17:10:12 +01001234 {"name": "NearRT-RIC Repository"},
1235 {"name": "Callbacks"},
1236 {"name": "Health Check"},
PatrikBuhr6e318742021-11-30 11:25:17 +01001237 {
1238 "name": "Actuator",
1239 "description": "Monitor and interact",
1240 "externalDocs": {
1241 "description": "Spring Boot Actuator Web API Documentation",
1242 "url": "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"
1243 }
PatrikBuhr62c25962022-03-25 15:39:06 +01001244 },
1245 {"name": "Management of configuration"}
elinuxhenrikf28594d2020-12-07 14:54:19 +01001246 ]
1247}