blob: fe4554bf32118d37971d14ee81fca47805bad352 [file] [log] [blame]
PatrikBuhr1122b012021-01-20 12:21:52 +01001{
2 "basePath": "/",
3 "paths": {
4 "/policy_types": {"get": {
5 "summary": "Query policy type names",
6 "deprecated": false,
7 "produces": ["*/*"],
8 "operationId": "getPolicyTypesUsingGET_1",
9 "responses": {
10 "200": {
11 "schema": {
12 "type": "array",
13 "items": {"type": "string"}
14 },
15 "description": "Policy type names"
16 },
17 "401": {"description": "Unauthorized"},
18 "403": {"description": "Forbidden"},
19 "404": {
20 "schema": {"$ref": "#/definitions/error_information"},
21 "description": "Near-RT RIC is not found"
22 }
23 },
24 "parameters": [{
25 "in": "query",
26 "allowEmptyValue": false,
27 "name": "ric",
28 "description": "The name of the Near-RT RIC to get types for.",
29 "type": "string",
30 "required": false
31 }],
32 "tags": ["A1 Policy Management Version 1.0 (deprecated)"]
33 }},
34 "/a1-policy/v2/policy-instances": {"get": {
35 "summary": "Query for A1 policy instances",
36 "deprecated": false,
37 "produces": ["application/json"],
38 "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.",
39 "operationId": "getPolicyInstancesUsingGET",
40 "responses": {
41 "200": {
42 "schema": {"$ref": "#/definitions/policy_info_list_v2"},
43 "description": "Policies"
44 },
45 "401": {"description": "Unauthorized"},
46 "403": {"description": "Forbidden"},
47 "404": {
48 "schema": {"$ref": "#/definitions/error_information"},
49 "description": "Near-RT RIC, policy type or service not found"
50 }
51 },
52 "parameters": [
53 {
54 "in": "query",
55 "allowEmptyValue": false,
56 "name": "policytype_id",
57 "description": "The identity of the policy type to get policies for.",
58 "type": "string",
59 "required": false
60 },
61 {
62 "in": "query",
63 "allowEmptyValue": false,
64 "name": "ric_id",
65 "description": "The identity of the Near-RT RIC to get policies for.",
66 "type": "string",
67 "required": false
68 },
69 {
70 "in": "query",
71 "allowEmptyValue": false,
72 "name": "service_id",
73 "description": "The identity of the service to get policies for.",
74 "type": "string",
75 "required": false
76 }
77 ],
78 "tags": ["A1 Policy Management Version 2.0"]
79 }},
80 "/a1-policy/v2/status": {"get": {
81 "summary": "Returns status and statistics of this service",
82 "deprecated": false,
83 "produces": ["application/json"],
84 "operationId": "getStatusUsingGET",
85 "responses": {
86 "200": {
87 "schema": {"$ref": "#/definitions/status_info_v2"},
88 "description": "Service is living"
89 },
90 "401": {"description": "Unauthorized"},
91 "403": {"description": "Forbidden"},
92 "404": {"description": "Not Found"}
93 },
94 "tags": ["A1 Policy Management Version 2.0"]
95 }},
96 "/services": {
97 "get": {
98 "summary": "Returns service information",
99 "deprecated": false,
100 "produces": ["*/*"],
101 "operationId": "getServicesUsingGET_1",
102 "responses": {
103 "200": {
104 "schema": {
105 "type": "array",
106 "items": {"$ref": "#/definitions/service_status_v1"}
107 },
108 "description": "OK"
109 },
110 "401": {"description": "Unauthorized"},
111 "403": {"description": "Forbidden"},
112 "404": {
113 "schema": {"type": "string"},
114 "description": "Service is not found"
115 }
116 },
117 "parameters": [{
118 "in": "query",
119 "allowEmptyValue": false,
120 "name": "name",
121 "description": "The name of the service",
122 "type": "string",
123 "required": false
124 }],
125 "tags": ["A1 Policy Management Version 1.0 (deprecated)"]
126 },
127 "delete": {
128 "summary": "Delete a service",
129 "deprecated": false,
130 "produces": ["*/*"],
131 "operationId": "deleteServiceUsingDELETE_1",
132 "responses": {
133 "200": {
134 "schema": {"type": "string"},
135 "description": "OK"
136 },
137 "401": {"description": "Unauthorized"},
138 "204": {
139 "schema": {"type": "string"},
140 "description": "Service deleted"
141 },
142 "403": {"description": "Forbidden"},
143 "404": {
144 "schema": {"type": "string"},
145 "description": "Service not found"
146 }
147 },
148 "parameters": [{
149 "in": "query",
150 "allowEmptyValue": false,
151 "name": "name",
152 "description": "The name of the service",
153 "type": "string",
154 "required": true
155 }],
156 "tags": ["A1 Policy Management Version 1.0 (deprecated)"]
157 }
158 },
159 "/a1-policy/v2/rics/ric": {"get": {
160 "summary": "Returns info for one Near-RT RIC",
161 "deprecated": false,
162 "produces": ["application/json"],
163 "description": "Either a Near-RT RIC identity or a Mananged Element identity can be specified.<br>The intention with Mananged Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).",
164 "operationId": "getRicUsingGET_1",
165 "responses": {
166 "200": {
167 "schema": {"$ref": "#/definitions/ric_info_v2"},
168 "description": "Near-RT RIC is found"
169 },
170 "401": {"description": "Unauthorized"},
171 "403": {"description": "Forbidden"},
172 "404": {
173 "schema": {"$ref": "#/definitions/error_information"},
174 "description": "Near-RT RIC is not found"
175 }
176 },
177 "parameters": [
178 {
179 "in": "query",
180 "allowEmptyValue": false,
181 "name": "managed_element_id",
182 "description": "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
183 "type": "string",
184 "required": false
185 },
186 {
187 "in": "query",
188 "allowEmptyValue": false,
189 "name": "ric_id",
190 "description": "The identity of a Near-RT RIC to get information for.",
191 "type": "string",
192 "required": false
193 }
194 ],
195 "tags": ["A1 Policy Management Version 2.0"]
196 }},
197 "/a1-policy/v2/policies/{policy_id}": {
198 "get": {
199 "summary": "Returns a policy",
200 "deprecated": false,
201 "produces": ["application/json"],
202 "operationId": "getPolicyUsingGET",
203 "responses": {
204 "200": {
205 "schema": {"$ref": "#/definitions/policy_info_v2"},
206 "description": "Policy found"
207 },
208 "401": {"description": "Unauthorized"},
209 "403": {"description": "Forbidden"},
210 "404": {
211 "schema": {"$ref": "#/definitions/error_information"},
212 "description": "Policy is not found"
213 }
214 },
215 "parameters": [{
216 "in": "path",
217 "name": "policy_id",
218 "description": "policy_id",
219 "type": "string",
220 "required": true
221 }],
222 "tags": ["A1 Policy Management Version 2.0"]
223 },
224 "delete": {
225 "summary": "Delete a policy",
226 "deprecated": false,
227 "produces": ["*/*"],
228 "operationId": "deletePolicyUsingDELETE",
229 "responses": {
230 "200": {"description": "Not used"},
231 "401": {"description": "Unauthorized"},
232 "423": {
233 "schema": {"$ref": "#/definitions/error_information"},
234 "description": "Near-RT RIC is not operational"
235 },
236 "204": {"description": "Policy deleted"},
237 "403": {"description": "Forbidden"},
238 "404": {
239 "schema": {"$ref": "#/definitions/error_information"},
240 "description": "Policy is not found"
241 }
242 },
243 "parameters": [{
244 "in": "path",
245 "name": "policy_id",
246 "description": "policy_id",
247 "type": "string",
248 "required": true
249 }],
250 "tags": ["A1 Policy Management Version 2.0"]
251 }
252 },
253 "/a1-policy/v2/policy-types": {"get": {
254 "summary": "Query policy type identities",
255 "deprecated": false,
256 "produces": ["application/json"],
257 "operationId": "getPolicyTypesUsingGET",
258 "responses": {
259 "200": {
260 "schema": {"$ref": "#/definitions/policytype_id_list_v2"},
261 "description": "Policy type IDs"
262 },
263 "401": {"description": "Unauthorized"},
264 "403": {"description": "Forbidden"},
265 "404": {
266 "schema": {"$ref": "#/definitions/error_information"},
267 "description": "Near-RT RIC is not found"
268 }
269 },
270 "parameters": [{
271 "in": "query",
272 "allowEmptyValue": false,
273 "name": "ric_id",
274 "description": "The identity of the Near-RT RIC to get types for.",
275 "type": "string",
276 "required": false
277 }],
278 "tags": ["A1 Policy Management Version 2.0"]
279 }},
280 "/a1-policy/v2/configuration": {
281 "get": {
282 "summary": "Returns the contents of the configuration file",
283 "deprecated": false,
284 "produces": ["application/json"],
285 "description": "Note that the file contents is not relevant if the Consul is used.",
286 "operationId": "getConfigurationUsingGET",
287 "responses": {
288 "200": {
289 "schema": {"type": "object"},
290 "description": "Configuration"
291 },
292 "401": {"description": "Unauthorized"},
293 "403": {"description": "Forbidden"},
294 "404": {
295 "schema": {"$ref": "#/definitions/error_information"},
296 "description": "File is not found or readable"
297 }
298 },
299 "tags": ["Component Configuration"]
300 },
301 "put": {
302 "summary": "Replace the current configuration file with the given configuration",
303 "deprecated": false,
304 "produces": ["*/*"],
305 "description": "Note that the file is ignored if the Consul is used.",
306 "operationId": "putConfigurationUsingPUT",
307 "responses": {
308 "200": {"description": "Configuration updated"},
309 "201": {"description": "Created"},
310 "400": {
311 "schema": {"$ref": "#/definitions/error_information"},
312 "description": "Invalid configuration provided"
313 },
314 "401": {"description": "Unauthorized"},
315 "500": {
316 "schema": {"$ref": "#/definitions/error_information"},
317 "description": "Something went wrong when replacing the configuration. Try again."
318 },
319 "403": {"description": "Forbidden"},
320 "404": {"description": "Not Found"}
321 },
322 "parameters": [{
323 "schema": {"type": "object"},
324 "in": "body",
325 "name": "configuration",
326 "description": "configuration",
327 "required": true
328 }],
329 "tags": ["Component Configuration"],
330 "consumes": ["application/json"]
331 }
332 },
333 "/policy": {
334 "get": {
335 "summary": "Returns a policy configuration",
336 "deprecated": false,
337 "produces": ["*/*"],
338 "operationId": "getPolicyUsingGET_1",
339 "responses": {
340 "200": {
341 "schema": {"type": "object"},
342 "description": "Policy found"
343 },
344 "401": {"description": "Unauthorized"},
345 "403": {"description": "Forbidden"},
346 "404": {
347 "schema": {"$ref": "#/definitions/error_information"},
348 "description": "Policy is not found"
349 }
350 },
351 "parameters": [{
352 "in": "query",
353 "allowEmptyValue": false,
354 "name": "id",
355 "description": "The identity of the policy instance.",
356 "type": "string",
357 "required": true
358 }],
359 "tags": ["A1 Policy Management Version 1.0 (deprecated)"]
360 },
361 "delete": {
362 "summary": "Delete a policy",
363 "deprecated": false,
364 "produces": ["*/*"],
365 "operationId": "deletePolicyUsingDELETE_1",
366 "responses": {
367 "200": {"description": "Not used"},
368 "401": {"description": "Unauthorized"},
369 "423": {
370 "schema": {"type": "string"},
371 "description": "Near-RT RIC is not operational"
372 },
373 "204": {"description": "Policy deleted"},
374 "403": {"description": "Forbidden"},
375 "404": {
376 "schema": {"type": "string"},
377 "description": "Policy is not found"
378 }
379 },
380 "parameters": [{
381 "in": "query",
382 "allowEmptyValue": false,
383 "name": "id",
384 "description": "The identity of the policy instance.",
385 "type": "string",
386 "required": true
387 }],
388 "tags": ["A1 Policy Management Version 1.0 (deprecated)"]
389 },
390 "put": {
391 "summary": "Put a policy",
392 "deprecated": false,
393 "produces": ["*/*"],
394 "operationId": "putPolicyUsingPUT_1",
395 "responses": {
396 "200": {"description": "Policy updated"},
397 "201": {"description": "Policy created"},
398 "401": {"description": "Unauthorized"},
399 "423": {
400 "schema": {"type": "string"},
401 "description": "Near-RT RIC is not operational"
402 },
403 "403": {"description": "Forbidden"},
404 "404": {
405 "schema": {"type": "string"},
406 "description": "Near-RT RIC or policy type is not found"
407 }
408 },
409 "parameters": [
410 {
411 "in": "query",
412 "allowEmptyValue": false,
413 "name": "id",
414 "description": "The identity of the policy instance.",
415 "type": "string",
416 "required": true
417 },
418 {
419 "schema": {"type": "object"},
420 "in": "body",
421 "name": "jsonBody",
422 "description": "jsonBody",
423 "required": true
424 },
425 {
426 "in": "query",
427 "allowEmptyValue": false,
428 "name": "ric",
429 "description": "The name of the Near-RT RIC where the policy will be created.",
430 "type": "string",
431 "required": true
432 },
433 {
434 "in": "query",
435 "allowEmptyValue": false,
436 "name": "service",
437 "description": "The name of the service creating the policy.",
438 "type": "string",
439 "required": true
440 },
441 {
442 "default": false,
443 "in": "query",
444 "allowEmptyValue": false,
445 "name": "transient",
446 "x-example": false,
447 "description": "If the policy is transient or not (boolean defaulted to false). A policy is transient if it will be forgotten when the service needs to reconnect to the Near-RT RIC.",
448 "type": "boolean",
449 "required": false
450 },
451 {
452 "in": "query",
453 "allowEmptyValue": false,
454 "name": "type",
455 "description": "The name of the policy type.",
456 "type": "string",
457 "required": false
458 }
459 ],
460 "tags": ["A1 Policy Management Version 1.0 (deprecated)"],
461 "consumes": ["application/json"]
462 }
463 },
464 "/policies": {"get": {
465 "summary": "Query policies",
466 "deprecated": false,
467 "produces": ["*/*"],
468 "operationId": "getPoliciesUsingGET",
469 "responses": {
470 "200": {
471 "schema": {
472 "type": "array",
473 "items": {"$ref": "#/definitions/policy_info_v1"}
474 },
475 "description": "Policies"
476 },
477 "401": {"description": "Unauthorized"},
478 "403": {"description": "Forbidden"},
479 "404": {
480 "schema": {"type": "string"},
481 "description": "Near-RT RIC or type not found"
482 }
483 },
484 "parameters": [
485 {
486 "in": "query",
487 "allowEmptyValue": false,
488 "name": "ric",
489 "description": "The name of the Near-RT RIC to get policies for.",
490 "type": "string",
491 "required": false
492 },
493 {
494 "in": "query",
495 "allowEmptyValue": false,
496 "name": "service",
497 "description": "The name of the service to get policies for.",
498 "type": "string",
499 "required": false
500 },
501 {
502 "in": "query",
503 "allowEmptyValue": false,
504 "name": "type",
505 "description": "The name of the policy type to get policies for.",
506 "type": "string",
507 "required": false
508 }
509 ],
510 "tags": ["A1 Policy Management Version 1.0 (deprecated)"]
511 }},
512 "/a1-policy/v2/services/{service_id}/keepalive": {"put": {
513 "summary": "Heartbeat indicates that the service is running",
514 "deprecated": false,
515 "produces": ["*/*"],
516 "operationId": "keepAliveServiceUsingPUT",
517 "responses": {
518 "200": {
519 "schema": {"type": "object"},
520 "description": "Service supervision timer refreshed, OK"
521 },
522 "201": {"description": "Created"},
523 "401": {"description": "Unauthorized"},
524 "403": {"description": "Forbidden"},
525 "404": {
526 "schema": {"$ref": "#/definitions/error_information"},
527 "description": "The service is not found, needs re-registration"
528 }
529 },
530 "parameters": [{
531 "in": "path",
532 "name": "service_id",
533 "description": "service_id",
534 "type": "string",
535 "required": true
536 }],
537 "tags": ["A1 Policy Management Version 2.0"],
538 "consumes": ["application/json"]
539 }},
540 "/policy_schema": {"get": {
541 "summary": "Returns one policy type schema definition",
542 "deprecated": false,
543 "produces": ["*/*"],
544 "operationId": "getPolicySchemaUsingGET",
545 "responses": {
546 "200": {
547 "schema": {"type": "object"},
548 "description": "Policy schema"
549 },
550 "401": {"description": "Unauthorized"},
551 "403": {"description": "Forbidden"},
552 "404": {
553 "schema": {"$ref": "#/definitions/error_information"},
554 "description": "The policy type is not found"
555 }
556 },
557 "parameters": [{
558 "in": "query",
559 "allowEmptyValue": false,
560 "name": "id",
561 "description": "The identity of the policy type to get the definition for.",
562 "type": "string",
563 "required": true
564 }],
565 "tags": ["A1 Policy Management Version 1.0 (deprecated)"]
566 }},
567 "/rics": {"get": {
568 "summary": "Query Near-RT RIC information",
569 "deprecated": false,
570 "produces": ["*/*"],
571 "operationId": "getRicsUsingGET",
572 "responses": {
573 "200": {
574 "schema": {
575 "type": "array",
576 "items": {"$ref": "#/definitions/ric_info_v1"}
577 },
578 "description": "OK"
579 },
580 "401": {"description": "Unauthorized"},
581 "403": {"description": "Forbidden"},
582 "404": {
583 "schema": {"type": "string"},
584 "description": "Policy type is not found"
585 }
586 },
587 "parameters": [{
588 "in": "query",
589 "allowEmptyValue": false,
590 "name": "policyType",
591 "description": "The name of the policy type",
592 "type": "string",
593 "required": false
594 }],
595 "tags": ["A1 Policy Management Version 1.0 (deprecated)"]
596 }},
597 "/policy_status": {"get": {
598 "summary": "Returns a policy status",
599 "deprecated": false,
600 "produces": ["*/*"],
601 "operationId": "getPolicyStatusUsingGET_1",
602 "responses": {
603 "200": {
604 "schema": {"type": "object"},
605 "description": "Policy status"
606 },
607 "401": {"description": "Unauthorized"},
608 "403": {"description": "Forbidden"},
609 "404": {
610 "schema": {"type": "string"},
611 "description": "Policy is not found"
612 }
613 },
614 "parameters": [{
615 "in": "query",
616 "allowEmptyValue": false,
617 "name": "id",
618 "description": "The identity of the policy.",
619 "type": "string",
620 "required": true
621 }],
622 "tags": ["A1 Policy Management Version 1.0 (deprecated)"]
623 }},
624 "/a1-policy/v2/rics": {"get": {
625 "summary": "Query Near-RT RIC information",
626 "deprecated": false,
627 "produces": ["application/json"],
628 "description": "The call returns all Near-RT RICs that supports a given policy type identity",
629 "operationId": "getRicsUsingGET_1",
630 "responses": {
631 "200": {
632 "schema": {"$ref": "#/definitions/ric_info_list_v2"},
633 "description": "OK"
634 },
635 "401": {"description": "Unauthorized"},
636 "403": {"description": "Forbidden"},
637 "404": {
638 "schema": {"$ref": "#/definitions/error_information"},
639 "description": "Policy type is not found"
640 }
641 },
642 "parameters": [{
643 "in": "query",
644 "allowEmptyValue": false,
645 "name": "policytype_id",
646 "description": "The identity of a policy type. If given, all Near-RT RICs supporteing the policy type are returned",
647 "type": "string",
648 "required": false
649 }],
650 "tags": ["A1 Policy Management Version 2.0"]
651 }},
652 "/policy_ids": {"get": {
653 "summary": "Query policies, only policy identities returned",
654 "deprecated": false,
655 "produces": ["*/*"],
656 "operationId": "getPolicyIdsUsingGET_1",
657 "responses": {
658 "200": {
659 "schema": {
660 "type": "array",
661 "items": {"type": "string"}
662 },
663 "description": "Policy identitiess"
664 },
665 "401": {"description": "Unauthorized"},
666 "403": {"description": "Forbidden"},
667 "404": {
668 "schema": {"type": "string"},
669 "description": "Near-RT RIC or type not found"
670 }
671 },
672 "parameters": [
673 {
674 "in": "query",
675 "allowEmptyValue": false,
676 "name": "ric",
677 "description": "The name of the Near-RT RIC to get policies for.",
678 "type": "string",
679 "required": false
680 },
681 {
682 "in": "query",
683 "allowEmptyValue": false,
684 "name": "service",
685 "description": "The name of the service to get policies for.",
686 "type": "string",
687 "required": false
688 },
689 {
690 "in": "query",
691 "allowEmptyValue": false,
692 "name": "type",
693 "description": "The name of the policy type to get policies for.",
694 "type": "string",
695 "required": false
696 }
697 ],
698 "tags": ["A1 Policy Management Version 1.0 (deprecated)"]
699 }},
700 "/policy_schemas": {"get": {
701 "summary": "Returns policy type schema definitions",
702 "deprecated": false,
703 "produces": ["*/*"],
704 "operationId": "getPolicySchemasUsingGET",
705 "responses": {
706 "200": {
707 "schema": {
708 "type": "array",
709 "items": {"type": "object"}
710 },
711 "description": "Policy schemas"
712 },
713 "401": {"description": "Unauthorized"},
714 "403": {"description": "Forbidden"},
715 "404": {
716 "schema": {"$ref": "#/definitions/error_information"},
717 "description": "Near-RT RIC is not found"
718 }
719 },
720 "parameters": [{
721 "in": "query",
722 "allowEmptyValue": false,
723 "name": "ric",
724 "description": "The name of the Near-RT RIC to get the definitions for.",
725 "type": "string",
726 "required": false
727 }],
728 "tags": ["A1 Policy Management Version 1.0 (deprecated)"]
729 }},
730 "/a1-policy/v2/services": {
731 "get": {
732 "summary": "Returns service information",
733 "deprecated": false,
734 "produces": ["application/json"],
735 "description": "Either information about a registered service with given identity or all registered services are returned.",
736 "operationId": "getServicesUsingGET",
737 "responses": {
738 "200": {
739 "schema": {"$ref": "#/definitions/service_list_v2"},
740 "description": "OK"
741 },
742 "401": {"description": "Unauthorized"},
743 "403": {"description": "Forbidden"},
744 "404": {
745 "schema": {"$ref": "#/definitions/error_information"},
746 "description": "Service is not found"
747 }
748 },
749 "parameters": [{
750 "in": "query",
751 "allowEmptyValue": false,
752 "name": "service_id",
753 "description": "The identity of the service",
754 "type": "string",
755 "required": false
756 }],
757 "tags": ["A1 Policy Management Version 2.0"]
758 },
759 "put": {
760 "summary": "Register a service",
761 "deprecated": false,
762 "produces": ["*/*"],
763 "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>",
764 "operationId": "putServiceUsingPUT",
765 "responses": {
766 "200": {
767 "schema": {"type": "object"},
768 "description": "Service updated"
769 },
770 "201": {
771 "schema": {"type": "object"},
772 "description": "Service created"
773 },
774 "400": {
775 "schema": {"$ref": "#/definitions/error_information"},
776 "description": "The ServiceRegistrationInfo is not accepted"
777 },
778 "401": {"description": "Unauthorized"},
779 "403": {"description": "Forbidden"},
780 "404": {"description": "Not Found"}
781 },
782 "parameters": [{
783 "schema": {"$ref": "#/definitions/service_registration_info_v2"},
784 "in": "body",
785 "name": "registrationInfo",
786 "description": "registrationInfo",
787 "required": true
788 }],
789 "tags": ["A1 Policy Management Version 2.0"],
790 "consumes": ["application/json"]
791 }
792 },
793 "/ric": {"get": {
794 "summary": "Returns the name of a RIC managing one Mananged Element",
795 "deprecated": false,
796 "produces": ["*/*"],
797 "operationId": "getRicUsingGET",
798 "responses": {
799 "200": {
800 "schema": {"type": "string"},
801 "description": "Near-RT RIC is found"
802 },
803 "401": {"description": "Unauthorized"},
804 "403": {"description": "Forbidden"},
805 "404": {
806 "schema": {"type": "string"},
807 "description": "Near-RT RIC is not found"
808 }
809 },
810 "parameters": [{
811 "in": "query",
812 "allowEmptyValue": false,
813 "name": "managedElementId",
814 "description": "The identity of the Managed Element",
815 "type": "string",
816 "required": true
817 }],
818 "tags": ["A1 Policy Management Version 1.0 (deprecated)"]
819 }},
820 "/services/keepalive": {"put": {
821 "summary": "Heartbeat from a service",
822 "deprecated": false,
823 "produces": ["*/*"],
824 "operationId": "keepAliveServiceUsingPUT_1",
825 "responses": {
826 "200": {
827 "schema": {"type": "string"},
828 "description": "Service supervision timer refreshed, OK"
829 },
830 "201": {"description": "Created"},
831 "401": {"description": "Unauthorized"},
832 "403": {"description": "Forbidden"},
833 "404": {"description": "The service is not found, needs re-registration"}
834 },
835 "parameters": [{
836 "in": "query",
837 "allowEmptyValue": false,
838 "name": "name",
839 "description": "The name of the service",
840 "type": "string",
841 "required": true
842 }],
843 "tags": ["A1 Policy Management Version 1.0 (deprecated)"],
844 "consumes": ["application/json"]
845 }},
846 "/a1-policy/v2/policy-types/{policytype_id}": {"get": {
847 "summary": "Returns a policy type definition",
848 "deprecated": false,
849 "produces": ["application/json"],
850 "operationId": "getPolicyTypeUsingGET",
851 "responses": {
852 "200": {
853 "schema": {"$ref": "#/definitions/policytype_v2"},
854 "description": "Policy type"
855 },
856 "401": {"description": "Unauthorized"},
857 "403": {"description": "Forbidden"},
858 "404": {
859 "schema": {"$ref": "#/definitions/error_information"},
860 "description": "Policy type is not found"
861 }
862 },
863 "parameters": [{
864 "in": "path",
865 "name": "policytype_id",
866 "description": "policytype_id",
867 "type": "string",
868 "required": true
869 }],
870 "tags": ["A1 Policy Management Version 2.0"]
871 }},
872 "/status": {"get": {
873 "summary": "Returns status and statistics of this service",
874 "deprecated": false,
875 "produces": ["*/*"],
876 "operationId": "getStatusUsingGET_1",
877 "responses": {
878 "200": {
879 "schema": {"type": "string"},
880 "description": "Service is living"
881 },
882 "401": {"description": "Unauthorized"},
883 "403": {"description": "Forbidden"},
884 "404": {"description": "Not Found"}
885 },
886 "tags": ["A1 Policy Management Version 1.0 (deprecated)"]
887 }},
888 "/a1-policy/v2/policies": {
889 "get": {
890 "summary": "Query policy identities",
891 "deprecated": false,
892 "produces": ["application/json"],
893 "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.",
894 "operationId": "getPolicyIdsUsingGET",
895 "responses": {
896 "200": {
897 "schema": {"$ref": "#/definitions/policy_id_list_v2"},
898 "description": "Policy identities"
899 },
900 "401": {"description": "Unauthorized"},
901 "403": {"description": "Forbidden"},
902 "404": {
903 "schema": {"$ref": "#/definitions/error_information"},
904 "description": "Near-RT RIC or type not found"
905 }
906 },
907 "parameters": [
908 {
909 "in": "query",
910 "allowEmptyValue": false,
911 "name": "policytype_id",
912 "description": "The identity of the policy type to get policies for.",
913 "type": "string",
914 "required": false
915 },
916 {
917 "in": "query",
918 "allowEmptyValue": false,
919 "name": "ric_id",
920 "description": "The identity of the Near-RT RIC to get policies for.",
921 "type": "string",
922 "required": false
923 },
924 {
925 "in": "query",
926 "allowEmptyValue": false,
927 "name": "service_id",
928 "description": "The identity of the service to get policies for.",
929 "type": "string",
930 "required": false
931 }
932 ],
933 "tags": ["A1 Policy Management Version 2.0"]
934 },
935 "put": {
936 "summary": "Create or update a policy",
937 "deprecated": false,
938 "produces": ["application/json"],
939 "operationId": "putPolicyUsingPUT",
940 "responses": {
941 "200": {"description": "Policy updated"},
942 "201": {"description": "Policy created"},
943 "401": {"description": "Unauthorized"},
944 "423": {
945 "schema": {"$ref": "#/definitions/error_information"},
946 "description": "Near-RT RIC is not operational"
947 },
948 "403": {"description": "Forbidden"},
949 "404": {
950 "schema": {"$ref": "#/definitions/error_information"},
951 "description": "Near-RT RIC or policy type is not found"
952 }
953 },
954 "parameters": [{
955 "schema": {"$ref": "#/definitions/policy_info_v2"},
956 "in": "body",
957 "name": "policyInfo",
958 "description": "policyInfo",
959 "required": true
960 }],
961 "tags": ["A1 Policy Management Version 2.0"],
962 "consumes": ["application/json"]
963 }
964 },
965 "/r-app/pms-callback": {"post": {
966 "summary": "Callback for Near-RT RIC status",
967 "deprecated": false,
968 "produces": ["application/json"],
969 "description": "The URL to this call is registerred at Service registration.",
970 "operationId": "jobStatusCallbackUsingPOST",
971 "responses": {
972 "200": {"description": "OK"},
973 "201": {"description": "Created"},
974 "401": {"description": "Unauthorized"},
975 "403": {"description": "Forbidden"},
976 "404": {"description": "Not Found"}
977 },
978 "parameters": [{
979 "schema": {"$ref": "#/definitions/service_callback_info_v2"},
980 "in": "body",
981 "name": "body",
982 "description": "body",
983 "required": true
984 }],
985 "tags": ["R-App Callbacks"],
986 "consumes": ["application/json"]
987 }},
988 "/a1-policy/v2/services/{service_id}": {"delete": {
989 "summary": "Unregister a service",
990 "deprecated": false,
991 "produces": ["*/*"],
992 "operationId": "deleteServiceUsingDELETE",
993 "responses": {
994 "200": {"description": "Not used"},
995 "401": {"description": "Unauthorized"},
996 "204": {
997 "schema": {"type": "object"},
998 "description": "Service unregistered"
999 },
1000 "403": {"description": "Forbidden"},
1001 "404": {
1002 "schema": {"$ref": "#/definitions/error_information"},
1003 "description": "Service not found"
1004 }
1005 },
1006 "parameters": [{
1007 "in": "path",
1008 "name": "service_id",
1009 "description": "service_id",
1010 "type": "string",
1011 "required": true
1012 }],
1013 "tags": ["A1 Policy Management Version 2.0"]
1014 }},
1015 "/service": {"put": {
1016 "summary": "Register a service",
1017 "deprecated": false,
1018 "produces": ["*/*"],
1019 "operationId": "putServiceUsingPUT_1",
1020 "responses": {
1021 "200": {
1022 "schema": {"type": "string"},
1023 "description": "Service updated"
1024 },
1025 "201": {
1026 "schema": {"type": "string"},
1027 "description": "Service created"
1028 },
1029 "400": {
1030 "schema": {"type": "string"},
1031 "description": "The ServiceRegistrationInfo is not accepted"
1032 },
1033 "401": {"description": "Unauthorized"},
1034 "403": {"description": "Forbidden"},
1035 "404": {"description": "Not Found"}
1036 },
1037 "parameters": [{
1038 "schema": {"$ref": "#/definitions/service_registration_info_v1"},
1039 "in": "body",
1040 "name": "registrationInfo",
1041 "description": "registrationInfo",
1042 "required": true
1043 }],
1044 "tags": ["A1 Policy Management Version 1.0 (deprecated)"],
1045 "consumes": ["application/json"]
1046 }},
1047 "/a1-policy/v2/policies/{policy_id}/status": {"get": {
1048 "summary": "Returns a policy status",
1049 "deprecated": false,
1050 "produces": ["application/json"],
1051 "operationId": "getPolicyStatusUsingGET",
1052 "responses": {
1053 "200": {
1054 "schema": {"$ref": "#/definitions/policy_status_info_v2"},
1055 "description": "Policy status"
1056 },
1057 "401": {"description": "Unauthorized"},
1058 "403": {"description": "Forbidden"},
1059 "404": {
1060 "schema": {"$ref": "#/definitions/error_information"},
1061 "description": "Policy is not found"
1062 }
1063 },
1064 "parameters": [{
1065 "in": "path",
1066 "name": "policy_id",
1067 "description": "policy_id",
1068 "type": "string",
1069 "required": true
1070 }],
1071 "tags": ["A1 Policy Management Version 2.0"]
1072 }}
1073 },
1074 "definitions": {
1075 "error_information": {
1076 "description": "Problem as defined in https://tools.ietf.org/html/rfc7807",
1077 "type": "object",
1078 "title": "error_information",
1079 "properties": {
1080 "detail": {
1081 "description": " A human-readable explanation specific to this occurrence of the problem.",
1082 "type": "string",
1083 "example": "Policy type not found"
1084 },
1085 "status": {
1086 "format": "int32",
1087 "description": "The HTTP status code generated by the origin server for this occurrence of the problem. ",
1088 "type": "integer",
1089 "example": 503
1090 }
1091 }
1092 },
1093 "status_info_v2": {
1094 "type": "object",
1095 "title": "status_info_v2",
1096 "properties": {"status": {
1097 "description": "status text",
1098 "type": "string"
1099 }}
1100 },
1101 "policy_info_v1": {
1102 "type": "object",
1103 "title": "policy_info_v1",
1104 "properties": {
1105 "service": {
1106 "description": "the name of the service owning the policy",
1107 "type": "string"
1108 },
1109 "json": {
1110 "description": "the configuration of the policy",
1111 "type": "object"
1112 },
1113 "id": {
1114 "description": "identity of the policy",
1115 "type": "string"
1116 },
1117 "lastModified": {
1118 "description": "timestamp, last modification time",
1119 "type": "string"
1120 },
1121 "type": {
1122 "description": "name of the policy type",
1123 "type": "string"
1124 },
1125 "ric": {
1126 "description": "identity of the target Near-RT RIC",
1127 "type": "string"
1128 }
1129 }
1130 },
1131 "ric_info_v2": {
1132 "description": "Information for a Near-RT RIC",
1133 "type": "object",
1134 "title": "ric_info_v2",
1135 "properties": {
1136 "ric_id": {
1137 "description": "identity of the Near-RT RIC",
1138 "type": "string"
1139 },
1140 "managed_element_ids": {
1141 "description": "O1 identities for managed entities",
1142 "type": "array",
1143 "items": {"type": "string"}
1144 },
1145 "state": {
1146 "description": "State for the Near-RT RIC, values: \nUNAVAILABLE: The Near-RT RIC is not avialable, information may be inconsistent \nAVAILABLE: The normal state. Policies can be configured. +\nSYNCHRONIZING: The Policy Management Service is synchronizing the view of the Near-RT RIC. Policies cannot be configured. \nCONSISTENCY_CHECK: A consistency check between the Policy Management Service and the Near-RT RIC. Policies cannot be configured.",
1147 "type": "string",
1148 "enum": [
1149 "UNAVAILABLE",
1150 "AVAILABLE",
1151 "SYNCHRONIZING",
1152 "CONSISTENCY_CHECK"
1153 ]
1154 },
1155 "policytype_ids": {
1156 "description": "supported policy types",
1157 "type": "array",
1158 "items": {"type": "string"}
1159 }
1160 }
1161 },
1162 "service_registration_info_v1": {
1163 "type": "object",
1164 "title": "service_registration_info_v1",
1165 "properties": {
1166 "keepAliveIntervalSeconds": {
1167 "format": "int64",
1168 "description": "keep alive interval for the service. This is a heartbeat supervision of the service, which in regular intevals must invoke a 'keepAlive' REST call. When a service does not invoke this call within the given time, it is considered unavailble. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means no timeout supervision.",
1169 "type": "integer"
1170 },
1171 "callbackUrl": {
1172 "description": "callback for notifying of RIC synchronization",
1173 "type": "string"
1174 },
1175 "serviceName": {"type": "string"}
1176 }
1177 },
1178 "policy_info_list_v2": {
1179 "description": "List of policy information",
1180 "type": "object",
1181 "title": "policy_info_list_v2",
1182 "properties": {"policies": {
1183 "description": "List of policy information",
1184 "type": "array",
1185 "items": {"$ref": "#/definitions/policy_info_v2"}
1186 }}
1187 },
1188 "service_registration_info_v2": {
1189 "description": "Information for one service",
1190 "type": "object",
1191 "title": "service_registration_info_v2",
1192 "required": ["service_id"],
1193 "properties": {
1194 "callback_url": {
1195 "description": "callback for notifying of Near-RT RIC state changes",
1196 "type": "string"
1197 },
1198 "service_id": {
1199 "description": "identity of the service",
1200 "type": "string"
1201 },
1202 "keep_alive_interval_seconds": {
1203 "format": "int64",
1204 "description": "keep alive interval for the service. This is a heartbeat supervision of the service, which in regular intevals must invoke a 'keepAlive' REST call. When a service does not invoke this call within the given time, it is considered unavailble. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means no timeout supervision.",
1205 "type": "integer"
1206 }
1207 }
1208 },
1209 "ric_info_v1": {
1210 "type": "object",
1211 "title": "ric_info_v1",
1212 "properties": {
1213 "managedElementIds": {
1214 "description": "O1 identities for managed entities",
1215 "type": "array",
1216 "items": {"type": "string"}
1217 },
1218 "policyTypes": {
1219 "description": "supported policy types",
1220 "type": "array",
1221 "items": {"type": "string"}
1222 },
1223 "state": {
1224 "description": "state info",
1225 "type": "string"
1226 },
1227 "ricName": {
1228 "description": "identity of the Near-RT RIC",
1229 "type": "string"
1230 }
1231 }
1232 },
1233 "policy_status_info_v2": {
1234 "description": "Status for one A1-P Policy",
1235 "type": "object",
1236 "title": "policy_status_info_v2",
1237 "properties": {
1238 "last_modified": {
1239 "description": "timestamp, last modification time",
1240 "type": "string"
1241 },
1242 "status": {
1243 "description": "the Policy status",
1244 "type": "object"
1245 }
1246 }
1247 },
1248 "service_status_v1": {
1249 "type": "object",
1250 "title": "service_status_v1",
1251 "properties": {
1252 "keepAliveIntervalSeconds": {
1253 "format": "int64",
1254 "description": "policy keep alive timeout",
1255 "type": "integer"
1256 },
1257 "callbackUrl": {
1258 "description": "callback for notifying of RIC synchronization",
1259 "type": "string"
1260 },
1261 "timeSinceLastActivitySeconds": {
1262 "format": "int64",
1263 "description": "time since last invocation by the service",
1264 "type": "integer"
1265 },
1266 "serviceName": {
1267 "description": "identity of the service",
1268 "type": "string"
1269 }
1270 }
1271 },
1272 "service_status_v2": {
1273 "type": "object",
1274 "title": "service_status_v2",
1275 "properties": {
1276 "callback_url": {
1277 "description": "callback for notifying of RIC synchronization",
1278 "type": "string"
1279 },
1280 "service_id": {
1281 "description": "identity of the service",
1282 "type": "string"
1283 },
1284 "keep_alive_interval_seconds": {
1285 "format": "int64",
1286 "description": "policy keep alive timeout",
1287 "type": "integer"
1288 },
1289 "time_since_last_activity_seconds": {
1290 "format": "int64",
1291 "description": "time since last invocation by the service",
1292 "type": "integer"
1293 }
1294 }
1295 },
1296 "policytype_v2": {
1297 "description": "Policy type",
1298 "type": "object",
1299 "title": "policytype_v2",
1300 "properties": {"policy_schema": {
1301 "description": "Policy type json scema. The schema is a json object following http://json-schema.org/draft-07/schema",
1302 "type": "object"
1303 }}
1304 },
1305 "ric_info_list_v2": {
1306 "description": "List of Near-RT RIC information",
1307 "type": "object",
1308 "title": "ric_info_list_v2",
1309 "properties": {"rics": {
1310 "description": "List of Near-RT RIC information",
1311 "type": "array",
1312 "items": {"$ref": "#/definitions/ric_info_v2"}
1313 }}
1314 },
1315 "policytype_id_list_v2": {
1316 "description": "Information about policy types",
1317 "type": "object",
1318 "title": "policytype_id_list_v2",
1319 "properties": {"policytype_ids": {
1320 "description": "Policy type identities",
1321 "type": "array",
1322 "items": {"type": "string"}
1323 }}
1324 },
1325 "policy_id_list_v2": {
1326 "description": "A list of policy identities",
1327 "type": "object",
1328 "title": "policy_id_list_v2",
1329 "properties": {"policy_ids": {
1330 "description": "Policy identities",
1331 "type": "array",
1332 "items": {"type": "string"}
1333 }}
1334 },
1335 "policy_info_v2": {
1336 "description": "Information for one A1-P Policy",
1337 "type": "object",
1338 "title": "policy_info_v2",
1339 "required": [
1340 "policy_data",
1341 "policy_id",
1342 "policytype_id",
1343 "ric_id",
1344 "service_id"
1345 ],
1346 "properties": {
1347 "ric_id": {
1348 "description": "identity of the target Near-RT RIC",
1349 "type": "string"
1350 },
1351 "policy_id": {
1352 "description": "identity of the policy",
1353 "type": "string"
1354 },
1355 "transient": {
1356 "description": "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
1357 "type": "boolean"
1358 },
1359 "service_id": {
1360 "description": "the name of the service owning the policy",
1361 "type": "string"
1362 },
1363 "policy_data": {
1364 "description": "the configuration of the policy",
1365 "type": "object"
1366 },
1367 "status_notification_uri": {
1368 "description": "Callback URI for policy status updates",
1369 "type": "string"
1370 },
1371 "policytype_id": {
1372 "description": "identity of the policy type",
1373 "type": "string"
1374 }
1375 }
1376 },
1377 "service_list_v2": {
1378 "description": "List of service information",
1379 "type": "object",
1380 "title": "service_list_v2",
1381 "properties": {"service_list": {
1382 "description": "List of service information",
1383 "type": "array",
1384 "items": {"$ref": "#/definitions/service_status_v2"}
1385 }}
1386 },
1387 "service_callback_info_v2": {
1388 "description": "Information transferred as in Service callbacks (callback_url)",
1389 "type": "object",
1390 "title": "service_callback_info_v2",
1391 "required": [
1392 "event_type",
1393 "ric_id"
1394 ],
1395 "properties": {
1396 "ric_id": {
1397 "description": "identity of a Near-RT RIC",
1398 "type": "string"
1399 },
1400 "event_type": {
1401 "description": "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
1402 "type": "string",
1403 "enum": ["AVAILABLE"]
1404 }
1405 }
1406 }
1407 },
1408 "swagger": "2.0",
1409 "info": {
1410 "x-audience": "external-partner",
1411 "x-api-id": "60f9a0e7-343f-43bf-9194-d8d65688d465",
1412 "contact": {
1413 "name": "Ericsson Software Technology",
1414 "email": "nonrtric@est.tech"
1415 },
1416 "description": "The O-RAN Non-RT RIC Policy Management Service provides a REST API for management of A1 policices. \nIt provides support for:<ul><li>A1 Policy creation and modification.<\/li><li>Maintaining a view of supported Near-RT RIC policy types <\/li><li>Supervision of using services (R-APPs). When a service is unavailble, its policies are removed. <\/li> <li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs <\/li><\/ul>",
1417 "title": "A1 Policy management service",
1418 "version": "1.1.0"
1419 },
1420 "tags": [
1421 {
1422 "name": "A1 Policy Management Version 1.0 (deprecated)",
1423 "description": "Policy Controller"
1424 },
1425 {
1426 "name": "A1 Policy Management Version 2.0",
1427 "description": "Policy Controller"
1428 },
1429 {
1430 "name": "Component Configuration",
1431 "description": "Configuration Controller"
1432 },
1433 {
1434 "name": "R-App Callbacks",
1435 "description": "Rapp Simulator Controller"
1436 }
1437 ]
1438}