blob: c844073a93fe21184510222140586e502f6d119c [file] [log] [blame]
raviteja.karumuri89097842024-09-20 14:06:44 +01001{
2 "openapi" : "3.0.3",
3 "info" : {
4 "contact" : {
5 "email" : "discuss-list@onap.com",
6 "url" : "https://www.onap.org/"
7 },
8 "description" : "<h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt 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 or defined 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>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p>",
9 "license" : {
10 "name" : "Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License.",
11 "url" : "http://www.apache.org/licenses/LICENSE-2.0"
12 },
13 "title" : "A1 policy management API",
14 "version" : "1.0.0",
15 "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8",
16 "x-audience" : "external-public"
17 },
18 "servers" : [ {
19 "url" : "{apiRoot}/a1-policy-management/v1",
20 "variables" : {
21 "apiRoot" : {
22 "default" : "https://example.com",
23 "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed"
24 }
25 }
26 } ],
27 "tags" : [ {
28 "description" : "API used to create polices, Policy Instances and get them as individual using an ID or get all policies/Instances.",
29 "name" : "A1 Policy Management"
30 }, {
31 "description" : "API used to get the NearRT-RIC for the managed element.",
32 "name" : "NearRT-RIC Repository"
33 }, {
34 "description" : "API used to keep the service Alive with in the timeout period",
35 "name" : "Service Registry and Supervision"
36 }, {
37 "description" : "API used to get the health status and statistics of this service",
38 "name" : "Health Check"
39 }, {
40 "name" : "Service callbacks"
41 }, {
42 "description" : "API used to create or fetch the application configuration.",
43 "name" : "Configuration"
44 } ],
45 "paths" : {
46 "/status" : {
47 "get" : {
48 "description" : "Returns status and statistics of this service",
49 "operationId" : "getStatus",
50 "responses" : {
51 "200" : {
52 "content" : {
53 "application/json" : {
54 "examples" : {
55 "status_info" : {
56 "$ref" : "#/components/examples/StatusInfo"
57 }
58 },
59 "schema" : {
60 "$ref" : "#/components/schemas/StatusInfo"
61 }
62 }
63 },
64 "description" : "OK- Service is living Ok"
65 }
66 },
67 "tags" : [ "Health Check" ]
68 }
69 },
70 "/rics/ric" : {
71 "get" : {
72 "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).",
73 "operationId" : "getRic",
74 "parameters" : [ {
75 "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
76 "explode" : true,
77 "in" : "query",
78 "name" : "managedElementId",
79 "required" : false,
80 "schema" : {
81 "type" : "string"
82 },
83 "style" : "form"
84 }, {
85 "description" : "The identity of a Near-RT RIC to get information for.",
86 "explode" : true,
87 "in" : "query",
88 "name" : "ricId",
89 "required" : false,
90 "schema" : {
91 "type" : "string"
92 },
93 "style" : "form"
94 }, {
95 "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
96 "explode" : false,
97 "in" : "header",
98 "name" : "Accept",
99 "required" : false,
100 "schema" : {
101 "example" : "application/json",
102 "type" : "string"
103 },
104 "style" : "simple"
105 } ],
106 "responses" : {
107 "200" : {
108 "content" : {
109 "application/json" : {
110 "examples" : {
111 "ric_info" : {
112 "$ref" : "#/components/examples/RicInfo"
113 }
114 },
115 "schema" : {
116 "$ref" : "#/components/schemas/RicInfo"
117 }
118 }
119 },
120 "description" : "OK - Near-RT RIC is found OK"
121 },
122 "404" : {
123 "content" : {
124 "application/problem+json" : {
125 "schema" : {
126 "$ref" : "#/components/schemas/ProblemDetails"
127 }
128 }
129 },
130 "description" : "Not Found"
131 }
132 },
133 "summary" : "Returns info for one Near-RT RIC",
134 "tags" : [ "NearRT-RIC Repository" ]
135 }
136 },
137 "/rics" : {
138 "get" : {
139 "description" : "The call returns all Near-RT RICs that supports a given policy type identity",
140 "operationId" : "getRics",
141 "parameters" : [ {
142 "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned",
143 "explode" : true,
144 "in" : "query",
145 "name" : "policyTypeId",
146 "required" : false,
147 "schema" : {
148 "type" : "string"
149 },
150 "style" : "form"
151 }, {
152 "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
153 "explode" : false,
154 "in" : "header",
155 "name" : "Accept",
156 "required" : false,
157 "schema" : {
158 "example" : "application/json",
159 "type" : "string"
160 },
161 "style" : "simple"
162 } ],
163 "responses" : {
164 "200" : {
165 "content" : {
166 "application/json" : {
167 "examples" : {
168 "ric_info_list" : {
169 "$ref" : "#/components/examples/RicInfoList"
170 }
171 },
172 "schema" : {
173 "$ref" : "#/components/schemas/RicInfoList"
174 }
175 }
176 },
177 "description" : "OK"
178 },
179 "404" : {
180 "content" : {
181 "application/problem+json" : {
182 "schema" : {
183 "$ref" : "#/components/schemas/ProblemDetails"
184 }
185 }
186 },
187 "description" : "Not Found"
188 }
189 },
190 "summary" : "Query Near-RT RIC information",
191 "tags" : [ "NearRT-RIC Repository" ]
192 }
193 },
194 "/policy-types" : {
195 "get" : {
196 "description" : "Query policy type identities",
197 "operationId" : "getPolicyTypes",
198 "parameters" : [ {
199 "description" : "Select types for the given Near-RT RIC identity.",
200 "explode" : true,
201 "in" : "query",
202 "name" : "nearRtRicId",
203 "required" : false,
204 "schema" : {
205 "type" : "string"
206 },
207 "style" : "form"
208 }, {
209 "description" : "Select types with the given type name (type identity has the format <typename_version>)",
210 "explode" : true,
211 "in" : "query",
212 "name" : "typeName",
213 "required" : false,
214 "schema" : {
215 "type" : "string"
216 },
217 "style" : "form"
218 }, {
219 "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.",
220 "explode" : true,
221 "in" : "query",
222 "name" : "compatibleWithVersion",
223 "required" : false,
224 "schema" : {
225 "type" : "string"
226 },
227 "style" : "form"
228 }, {
229 "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
230 "explode" : false,
231 "in" : "header",
232 "name" : "Accept",
233 "required" : false,
234 "schema" : {
235 "example" : "application/json",
236 "type" : "string"
237 },
238 "style" : "simple"
239 } ],
240 "responses" : {
241 "200" : {
242 "content" : {
243 "application/json" : {
244 "schema" : {
245 "items" : {
246 "$ref" : "#/components/schemas/PolicyTypeInformation"
247 },
248 "type" : "array"
249 }
250 }
251 },
252 "description" : "OK - Policy Type IDs found Ok"
253 },
254 "400" : {
255 "content" : {
256 "application/problem+json" : {
257 "schema" : {
258 "$ref" : "#/components/schemas/ProblemDetails"
259 }
260 }
261 },
262 "description" : "Bad Request"
263 },
264 "401" : {
265 "content" : {
266 "application/problem+json" : {
267 "schema" : {
268 "$ref" : "#/components/schemas/ProblemDetails"
269 }
270 }
271 },
272 "description" : "Unauthorized"
273 },
274 "403" : {
275 "content" : {
276 "application/problem+json" : {
277 "schema" : {
278 "$ref" : "#/components/schemas/ProblemDetails"
279 }
280 }
281 },
282 "description" : "Forbidden"
283 },
284 "404" : {
285 "content" : {
286 "application/problem+json" : {
287 "schema" : {
288 "$ref" : "#/components/schemas/ProblemDetails"
289 }
290 }
291 },
292 "description" : "Not Found"
293 },
294 "406" : {
295 "content" : {
296 "application/problem+json" : {
297 "schema" : {
298 "$ref" : "#/components/schemas/ProblemDetails"
299 }
300 }
301 },
302 "description" : "Not Acceptable"
303 },
304 "429" : {
305 "content" : {
306 "application/problem+json" : {
307 "schema" : {
308 "$ref" : "#/components/schemas/ProblemDetails"
309 }
310 }
311 },
312 "description" : "Too Many Request"
313 },
314 "500" : {
315 "content" : {
316 "application/problem+json" : {
317 "schema" : {
318 "$ref" : "#/components/schemas/ProblemDetails"
319 }
320 }
321 },
322 "description" : "Internal Server Error"
323 },
324 "502" : {
325 "content" : {
326 "application/problem+json" : {
327 "schema" : {
328 "$ref" : "#/components/schemas/ProblemDetails"
329 }
330 }
331 },
332 "description" : "Bad Gateway"
333 },
334 "503" : {
335 "content" : {
336 "application/problem+json" : {
337 "schema" : {
338 "$ref" : "#/components/schemas/ProblemDetails"
339 }
340 }
341 },
342 "description" : "Service Unavailable"
343 }
344 },
345 "tags" : [ "A1 Policy Management" ]
346 }
347 },
348 "/policy-types/{policyTypeId}" : {
349 "get" : {
350 "description" : "Returns a policy type definition",
351 "operationId" : "getPolicyTypeDefinition",
352 "parameters" : [ {
353 "explode" : false,
354 "in" : "path",
355 "name" : "policyTypeId",
356 "required" : true,
357 "schema" : {
358 "type" : "string"
359 },
360 "style" : "simple"
361 }, {
362 "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
363 "explode" : false,
364 "in" : "header",
365 "name" : "Accept",
366 "required" : false,
367 "schema" : {
368 "example" : "application/json",
369 "type" : "string"
370 },
371 "style" : "simple"
372 } ],
373 "responses" : {
374 "200" : {
375 "content" : {
376 "application/json" : {
377 "examples" : {
378 "policyObject" : {
379 "$ref" : "#/components/examples/PolicyObject"
380 }
381 },
382 "schema" : {
383 "$ref" : "#/components/schemas/PolicyObject"
384 }
385 }
386 },
387 "description" : "OK - schema of the given policy type"
388 },
389 "400" : {
390 "content" : {
391 "application/problem+json" : {
392 "schema" : {
393 "$ref" : "#/components/schemas/ProblemDetails"
394 }
395 }
396 },
397 "description" : "Bad Request"
398 },
399 "401" : {
400 "content" : {
401 "application/problem+json" : {
402 "schema" : {
403 "$ref" : "#/components/schemas/ProblemDetails"
404 }
405 }
406 },
407 "description" : "Unauthorized"
408 },
409 "403" : {
410 "content" : {
411 "application/problem+json" : {
412 "schema" : {
413 "$ref" : "#/components/schemas/ProblemDetails"
414 }
415 }
416 },
417 "description" : "Forbidden"
418 },
419 "404" : {
420 "content" : {
421 "application/problem+json" : {
422 "schema" : {
423 "$ref" : "#/components/schemas/ProblemDetails"
424 }
425 }
426 },
427 "description" : "Not Found"
428 },
429 "406" : {
430 "content" : {
431 "application/problem+json" : {
432 "schema" : {
433 "$ref" : "#/components/schemas/ProblemDetails"
434 }
435 }
436 },
437 "description" : "Not Acceptable"
438 },
439 "429" : {
440 "content" : {
441 "application/problem+json" : {
442 "schema" : {
443 "$ref" : "#/components/schemas/ProblemDetails"
444 }
445 }
446 },
447 "description" : "Too Many Request"
448 },
449 "500" : {
450 "content" : {
451 "application/problem+json" : {
452 "schema" : {
453 "$ref" : "#/components/schemas/ProblemDetails"
454 }
455 }
456 },
457 "description" : "Internal Server Error"
458 },
459 "502" : {
460 "content" : {
461 "application/problem+json" : {
462 "schema" : {
463 "$ref" : "#/components/schemas/ProblemDetails"
464 }
465 }
466 },
467 "description" : "Bad Gateway"
468 },
469 "503" : {
470 "content" : {
471 "application/problem+json" : {
472 "schema" : {
473 "$ref" : "#/components/schemas/ProblemDetails"
474 }
475 }
476 },
477 "description" : "Service Unavailable"
478 }
479 },
480 "tags" : [ "A1 Policy Management" ]
481 }
482 },
483 "/policies/{policyId}" : {
484 "delete" : {
485 "description" : "Deleting the policy using policyId.",
486 "operationId" : "deletePolicy",
487 "parameters" : [ {
488 "explode" : false,
489 "in" : "path",
490 "name" : "policyId",
491 "required" : true,
492 "schema" : {
493 "type" : "string"
494 },
495 "style" : "simple"
496 }, {
497 "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
498 "explode" : false,
499 "in" : "header",
500 "name" : "Accept",
501 "required" : false,
502 "schema" : {
503 "example" : "application/json",
504 "type" : "string"
505 },
506 "style" : "simple"
507 } ],
508 "responses" : {
509 "204" : {
510 "description" : "The created A1 policy was deleted"
511 },
512 "400" : {
513 "content" : {
514 "application/problem+json" : {
515 "schema" : {
516 "$ref" : "#/components/schemas/ProblemDetails"
517 }
518 }
519 },
520 "description" : "Bad Request"
521 },
522 "401" : {
523 "content" : {
524 "application/problem+json" : {
525 "schema" : {
526 "$ref" : "#/components/schemas/ProblemDetails"
527 }
528 }
529 },
530 "description" : "Unauthorized"
531 },
532 "403" : {
533 "content" : {
534 "application/problem+json" : {
535 "schema" : {
536 "$ref" : "#/components/schemas/ProblemDetails"
537 }
538 }
539 },
540 "description" : "Forbidden"
541 },
542 "404" : {
543 "content" : {
544 "application/problem+json" : {
545 "schema" : {
546 "$ref" : "#/components/schemas/ProblemDetails"
547 }
548 }
549 },
550 "description" : "Not Found"
551 },
552 "423" : {
553 "content" : {
554 "application/problem+json" : {
555 "example" : {
556 "status" : 423,
557 "title" : "Locked",
558 "detail" : "State is Locked in the provided request."
559 },
560 "schema" : {
561 "$ref" : "#/components/schemas/ErrorInformation"
562 }
563 }
564 },
565 "description" : "Locked - HTTP Status code which can be used when the state is Locked"
566 },
567 "429" : {
568 "content" : {
569 "application/problem+json" : {
570 "schema" : {
571 "$ref" : "#/components/schemas/ProblemDetails"
572 }
573 }
574 },
575 "description" : "Too Many Request"
576 },
577 "500" : {
578 "content" : {
579 "application/problem+json" : {
580 "schema" : {
581 "$ref" : "#/components/schemas/ProblemDetails"
582 }
583 }
584 },
585 "description" : "Internal Server Error"
586 },
587 "502" : {
588 "content" : {
589 "application/problem+json" : {
590 "schema" : {
591 "$ref" : "#/components/schemas/ProblemDetails"
592 }
593 }
594 },
595 "description" : "Bad Gateway"
596 },
597 "503" : {
598 "content" : {
599 "application/problem+json" : {
600 "schema" : {
601 "$ref" : "#/components/schemas/ProblemDetails"
602 }
603 }
604 },
605 "description" : "Service Unavailable"
606 }
607 },
608 "summary" : "Delete a policy",
609 "tags" : [ "A1 Policy Management" ]
610 },
611 "get" : {
612 "description" : "Returns a policy",
613 "operationId" : "getPolicy",
614 "parameters" : [ {
615 "explode" : false,
616 "in" : "path",
617 "name" : "policyId",
618 "required" : true,
619 "schema" : {
620 "type" : "string"
621 },
622 "style" : "simple"
623 }, {
624 "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
625 "explode" : false,
626 "in" : "header",
627 "name" : "Accept",
628 "required" : false,
629 "schema" : {
630 "example" : "application/json",
631 "type" : "string"
632 },
633 "style" : "simple"
634 } ],
635 "responses" : {
636 "200" : {
637 "content" : {
638 "application/json" : {
639 "examples" : {
640 "policyObject" : {
641 "$ref" : "#/components/examples/PolicyObject"
642 }
643 },
644 "schema" : {
645 "$ref" : "#/components/schemas/PolicyObject"
646 }
647 }
648 },
649 "description" : "OK - Policy found"
650 },
651 "400" : {
652 "content" : {
653 "application/problem+json" : {
654 "schema" : {
655 "$ref" : "#/components/schemas/ProblemDetails"
656 }
657 }
658 },
659 "description" : "Bad Request"
660 },
661 "401" : {
662 "content" : {
663 "application/problem+json" : {
664 "schema" : {
665 "$ref" : "#/components/schemas/ProblemDetails"
666 }
667 }
668 },
669 "description" : "Unauthorized"
670 },
671 "403" : {
672 "content" : {
673 "application/problem+json" : {
674 "schema" : {
675 "$ref" : "#/components/schemas/ProblemDetails"
676 }
677 }
678 },
679 "description" : "Forbidden"
680 },
681 "404" : {
682 "content" : {
683 "application/problem+json" : {
684 "schema" : {
685 "$ref" : "#/components/schemas/ProblemDetails"
686 }
687 }
688 },
689 "description" : "Not Found"
690 },
691 "406" : {
692 "content" : {
693 "application/problem+json" : {
694 "schema" : {
695 "$ref" : "#/components/schemas/ProblemDetails"
696 }
697 }
698 },
699 "description" : "Not Acceptable"
700 },
701 "429" : {
702 "content" : {
703 "application/problem+json" : {
704 "schema" : {
705 "$ref" : "#/components/schemas/ProblemDetails"
706 }
707 }
708 },
709 "description" : "Too Many Request"
710 },
711 "500" : {
712 "content" : {
713 "application/problem+json" : {
714 "schema" : {
715 "$ref" : "#/components/schemas/ProblemDetails"
716 }
717 }
718 },
719 "description" : "Internal Server Error"
720 },
721 "502" : {
722 "content" : {
723 "application/problem+json" : {
724 "schema" : {
725 "$ref" : "#/components/schemas/ProblemDetails"
726 }
727 }
728 },
729 "description" : "Bad Gateway"
730 },
731 "503" : {
732 "content" : {
733 "application/problem+json" : {
734 "schema" : {
735 "$ref" : "#/components/schemas/ProblemDetails"
736 }
737 }
738 },
739 "description" : "Service Unavailable"
740 }
741 },
742 "tags" : [ "A1 Policy Management" ]
743 },
744 "put" : {
745 "description" : "update a policy",
746 "operationId" : "putPolicy",
747 "parameters" : [ {
748 "explode" : false,
749 "in" : "path",
750 "name" : "policyId",
751 "required" : true,
752 "schema" : {
753 "type" : "string"
754 },
755 "style" : "simple"
756 } ],
757 "requestBody" : {
758 "content" : {
759 "application/json" : {
760 "examples" : {
761 "policyObject" : {
762 "$ref" : "#/components/examples/PolicyObject"
763 }
764 },
765 "schema" : {
766 "$ref" : "#/components/schemas/PolicyObject"
767 }
768 }
769 },
770 "required" : true
771 },
772 "responses" : {
773 "200" : {
774 "content" : {
775 "application/json" : {
776 "schema" : {
777 "$ref" : "#/components/schemas/PolicyObject"
778 }
779 }
780 },
781 "description" : "OK - Policy updated"
782 },
783 "400" : {
784 "content" : {
785 "application/problem+json" : {
786 "schema" : {
787 "$ref" : "#/components/schemas/ProblemDetails"
788 }
789 }
790 },
791 "description" : "Bad Request"
792 },
793 "401" : {
794 "content" : {
795 "application/problem+json" : {
796 "schema" : {
797 "$ref" : "#/components/schemas/ProblemDetails"
798 }
799 }
800 },
801 "description" : "Unauthorized"
802 },
803 "403" : {
804 "content" : {
805 "application/problem+json" : {
806 "schema" : {
807 "$ref" : "#/components/schemas/ProblemDetails"
808 }
809 }
810 },
811 "description" : "Forbidden"
812 },
813 "404" : {
814 "content" : {
815 "application/problem+json" : {
816 "schema" : {
817 "$ref" : "#/components/schemas/ProblemDetails"
818 }
819 }
820 },
821 "description" : "Not Found"
822 },
823 "406" : {
824 "content" : {
825 "application/problem+json" : {
826 "schema" : {
827 "$ref" : "#/components/schemas/ProblemDetails"
828 }
829 }
830 },
831 "description" : "Not Acceptable"
832 },
833 "411" : {
834 "content" : {
835 "application/problem+json" : {
836 "schema" : {
837 "$ref" : "#/components/schemas/ProblemDetails"
838 }
839 }
840 },
841 "description" : "Length Required"
842 },
843 "413" : {
844 "content" : {
845 "application/problem+json" : {
846 "schema" : {
847 "$ref" : "#/components/schemas/ProblemDetails"
848 }
849 }
850 },
851 "description" : "Payload Too Large"
852 },
853 "415" : {
854 "content" : {
855 "application/problem+json" : {
856 "schema" : {
857 "$ref" : "#/components/schemas/ProblemDetails"
858 }
859 }
860 },
861 "description" : "Unsupported Media Type"
862 },
863 "423" : {
864 "content" : {
865 "application/problem+json" : {
866 "example" : {
867 "status" : 423,
868 "title" : "Locked",
869 "detail" : "State is Locked in the provided request."
870 },
871 "schema" : {
872 "$ref" : "#/components/schemas/ErrorInformation"
873 }
874 }
875 },
876 "description" : "Locked - HTTP Status code which can be used when the state is Locked"
877 },
878 "429" : {
879 "content" : {
880 "application/problem+json" : {
881 "schema" : {
882 "$ref" : "#/components/schemas/ProblemDetails"
883 }
884 }
885 },
886 "description" : "Too Many Request"
887 },
888 "500" : {
889 "content" : {
890 "application/problem+json" : {
891 "schema" : {
892 "$ref" : "#/components/schemas/ProblemDetails"
893 }
894 }
895 },
896 "description" : "Internal Server Error"
897 },
898 "502" : {
899 "content" : {
900 "application/problem+json" : {
901 "schema" : {
902 "$ref" : "#/components/schemas/ProblemDetails"
903 }
904 }
905 },
906 "description" : "Bad Gateway"
907 },
908 "503" : {
909 "content" : {
910 "application/problem+json" : {
911 "schema" : {
912 "$ref" : "#/components/schemas/ProblemDetails"
913 }
914 }
915 },
916 "description" : "Service Unavailable"
917 }
918 },
919 "tags" : [ "A1 Policy Management" ]
920 }
921 },
922 "/policies" : {
923 "get" : {
924 "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.",
925 "operationId" : "getAllPolicies",
926 "parameters" : [ {
927 "description" : "Select policies of a given policy type identity.",
928 "explode" : true,
929 "in" : "query",
930 "name" : "policyTypeId",
931 "required" : false,
932 "schema" : {
933 "type" : "string"
934 },
935 "style" : "form"
936 }, {
937 "description" : "Select policies of a given Near-RT RIC identity.",
938 "explode" : true,
939 "in" : "query",
940 "name" : "nearRtRicId",
941 "required" : false,
942 "schema" : {
943 "type" : "string"
944 },
945 "style" : "form"
946 }, {
947 "description" : "Select policies owned by a given service.",
948 "explode" : true,
949 "in" : "query",
950 "name" : "serviceId",
951 "required" : false,
952 "schema" : {
953 "type" : "string"
954 },
955 "style" : "form"
956 }, {
957 "description" : "Select policies of types with the given type name (type identity has the format <typename_version>)",
958 "explode" : true,
959 "in" : "query",
960 "name" : "typeName",
961 "required" : false,
962 "schema" : {
963 "type" : "string"
964 },
965 "style" : "form"
966 }, {
967 "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
968 "explode" : false,
969 "in" : "header",
970 "name" : "Accept",
971 "required" : false,
972 "schema" : {
973 "example" : "application/json",
974 "type" : "string"
975 },
976 "style" : "simple"
977 } ],
978 "responses" : {
979 "200" : {
980 "content" : {
981 "application/json" : {
982 "schema" : {
983 "items" : {
984 "$ref" : "#/components/schemas/PolicyInformation"
985 },
986 "type" : "array"
987 }
988 }
989 },
990 "description" : "OK - Policy identities"
991 },
992 "400" : {
993 "content" : {
994 "application/problem+json" : {
995 "schema" : {
996 "$ref" : "#/components/schemas/ProblemDetails"
997 }
998 }
999 },
1000 "description" : "Bad Request"
1001 },
1002 "401" : {
1003 "content" : {
1004 "application/problem+json" : {
1005 "schema" : {
1006 "$ref" : "#/components/schemas/ProblemDetails"
1007 }
1008 }
1009 },
1010 "description" : "Unauthorized"
1011 },
1012 "403" : {
1013 "content" : {
1014 "application/problem+json" : {
1015 "schema" : {
1016 "$ref" : "#/components/schemas/ProblemDetails"
1017 }
1018 }
1019 },
1020 "description" : "Forbidden"
1021 },
1022 "404" : {
1023 "content" : {
1024 "application/problem+json" : {
1025 "schema" : {
1026 "$ref" : "#/components/schemas/ProblemDetails"
1027 }
1028 }
1029 },
1030 "description" : "Not Found"
1031 },
1032 "406" : {
1033 "content" : {
1034 "application/problem+json" : {
1035 "schema" : {
1036 "$ref" : "#/components/schemas/ProblemDetails"
1037 }
1038 }
1039 },
1040 "description" : "Not Acceptable"
1041 },
1042 "429" : {
1043 "content" : {
1044 "application/problem+json" : {
1045 "schema" : {
1046 "$ref" : "#/components/schemas/ProblemDetails"
1047 }
1048 }
1049 },
1050 "description" : "Too Many Request"
1051 },
1052 "500" : {
1053 "content" : {
1054 "application/problem+json" : {
1055 "schema" : {
1056 "$ref" : "#/components/schemas/ProblemDetails"
1057 }
1058 }
1059 },
1060 "description" : "Internal Server Error"
1061 },
1062 "502" : {
1063 "content" : {
1064 "application/problem+json" : {
1065 "schema" : {
1066 "$ref" : "#/components/schemas/ProblemDetails"
1067 }
1068 }
1069 },
1070 "description" : "Bad Gateway"
1071 },
1072 "503" : {
1073 "content" : {
1074 "application/problem+json" : {
1075 "schema" : {
1076 "$ref" : "#/components/schemas/ProblemDetails"
1077 }
1078 }
1079 },
1080 "description" : "Service Unavailable"
1081 }
1082 },
1083 "summary" : "Query policy identities",
1084 "tags" : [ "A1 Policy Management" ]
1085 },
1086 "post" : {
1087 "description" : "To create A1 policies",
1088 "operationId" : "createPolicy",
1089 "requestBody" : {
1090 "content" : {
1091 "application/json" : {
1092 "schema" : {
1093 "$ref" : "#/components/schemas/PolicyObjectInformation"
1094 }
1095 }
1096 },
1097 "required" : true
1098 },
1099 "responses" : {
1100 "201" : {
1101 "content" : {
1102 "application/json" : {
1103 "schema" : {
1104 "$ref" : "#/components/schemas/PolicyObjectInformation"
1105 }
1106 }
1107 },
1108 "description" : "Success case 201 created",
1109 "headers" : {
1110 "Location" : {
1111 "description" : "Contains the URI of the newly created resource",
1112 "explode" : false,
1113 "required" : true,
1114 "schema" : {
1115 "type" : "string"
1116 },
1117 "style" : "simple"
1118 }
1119 }
1120 },
1121 "400" : {
1122 "content" : {
1123 "application/problem+json" : {
1124 "schema" : {
1125 "$ref" : "#/components/schemas/ProblemDetails"
1126 }
1127 }
1128 },
1129 "description" : "Bad Request"
1130 },
1131 "401" : {
1132 "content" : {
1133 "application/problem+json" : {
1134 "schema" : {
1135 "$ref" : "#/components/schemas/ProblemDetails"
1136 }
1137 }
1138 },
1139 "description" : "Unauthorized"
1140 },
1141 "403" : {
1142 "content" : {
1143 "application/problem+json" : {
1144 "schema" : {
1145 "$ref" : "#/components/schemas/ProblemDetails"
1146 }
1147 }
1148 },
1149 "description" : "Forbidden"
1150 },
1151 "404" : {
1152 "content" : {
1153 "application/problem+json" : {
1154 "schema" : {
1155 "$ref" : "#/components/schemas/ProblemDetails"
1156 }
1157 }
1158 },
1159 "description" : "Not Found"
1160 },
1161 "406" : {
1162 "content" : {
1163 "application/problem+json" : {
1164 "schema" : {
1165 "$ref" : "#/components/schemas/ProblemDetails"
1166 }
1167 }
1168 },
1169 "description" : "Not Acceptable"
1170 },
1171 "423" : {
1172 "content" : {
1173 "application/problem+json" : {
1174 "example" : {
1175 "status" : 423,
1176 "title" : "Locked",
1177 "detail" : "State is Locked in the provided request."
1178 },
1179 "schema" : {
1180 "$ref" : "#/components/schemas/ErrorInformation"
1181 }
1182 }
1183 },
1184 "description" : "Locked - HTTP Status code which can be used when the state is Locked"
1185 },
1186 "429" : {
1187 "content" : {
1188 "application/problem+json" : {
1189 "schema" : {
1190 "$ref" : "#/components/schemas/ProblemDetails"
1191 }
1192 }
1193 },
1194 "description" : "Too Many Request"
1195 },
1196 "500" : {
1197 "content" : {
1198 "application/problem+json" : {
1199 "schema" : {
1200 "$ref" : "#/components/schemas/ProblemDetails"
1201 }
1202 }
1203 },
1204 "description" : "Internal Server Error"
1205 },
1206 "502" : {
1207 "content" : {
1208 "application/problem+json" : {
1209 "schema" : {
1210 "$ref" : "#/components/schemas/ProblemDetails"
1211 }
1212 }
1213 },
1214 "description" : "Bad Gateway"
1215 },
1216 "503" : {
1217 "content" : {
1218 "application/problem+json" : {
1219 "schema" : {
1220 "$ref" : "#/components/schemas/ProblemDetails"
1221 }
1222 }
1223 },
1224 "description" : "Service Unavailable"
1225 }
1226 },
1227 "tags" : [ "A1 Policy Management" ]
1228 }
1229 },
1230 "/configuration" : {
1231 "get" : {
1232 "description" : "Returns the contents of the application configuration",
1233 "operationId" : "getConfiguration",
1234 "responses" : {
1235 "200" : {
1236 "content" : {
1237 "application/json" : {
1238 "schema" : {
1239 "type" : "string"
1240 }
1241 }
1242 },
1243 "description" : "OK - Application configuration received"
1244 },
1245 "404" : {
1246 "content" : {
1247 "application/problem+json" : {
1248 "schema" : {
1249 "$ref" : "#/components/schemas/ProblemDetails"
1250 }
1251 }
1252 },
1253 "description" : "Not Found"
1254 }
1255 },
1256 "tags" : [ "Configuration" ]
1257 },
1258 "put" : {
1259 "description" : "Replace the current configuration file with the given configuration",
1260 "operationId" : "putConfiguration",
1261 "requestBody" : {
1262 "content" : {
1263 "application/json" : {
1264 "schema" : {
1265 "type" : "object"
1266 }
1267 }
1268 },
1269 "required" : true
1270 },
1271 "responses" : {
1272 "200" : {
1273 "content" : {
1274 "*/*" : {
1275 "schema" : {
1276 "$ref" : "#/components/schemas/void"
1277 }
1278 }
1279 },
1280 "description" : "OK - Configuration updated"
1281 },
1282 "400" : {
1283 "content" : {
1284 "application/problem+json" : {
1285 "schema" : {
1286 "$ref" : "#/components/schemas/ProblemDetails"
1287 }
1288 }
1289 },
1290 "description" : "Bad Request"
1291 }
1292 },
1293 "tags" : [ "Configuration" ]
1294 }
1295 },
1296 "/services/{serviceId}/keepalive" : {
1297 "put" : {
1298 "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)",
1299 "operationId" : "keepAliveService",
1300 "parameters" : [ {
1301 "explode" : false,
1302 "in" : "path",
1303 "name" : "serviceId",
1304 "required" : true,
1305 "schema" : {
1306 "type" : "string"
1307 },
1308 "style" : "simple"
1309 }, {
1310 "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
1311 "explode" : false,
1312 "in" : "header",
1313 "name" : "Accept",
1314 "required" : false,
1315 "schema" : {
1316 "example" : "application/json",
1317 "type" : "string"
1318 },
1319 "style" : "simple"
1320 } ],
1321 "requestBody" : {
1322 "content" : {
1323 "application/json" : {
1324 "schema" : {
1325 "type" : "string"
1326 }
1327 }
1328 },
1329 "required" : false
1330 },
1331 "responses" : {
1332 "200" : {
1333 "content" : {
1334 "*/*" : {
1335 "schema" : {
1336 "type" : "object"
1337 }
1338 }
1339 },
1340 "description" : "OK - Service supervision timer refreshed, OK"
1341 },
1342 "404" : {
1343 "content" : {
1344 "application/problem+json" : {
1345 "schema" : {
1346 "$ref" : "#/components/schemas/ProblemDetails"
1347 }
1348 }
1349 },
1350 "description" : "Not Found"
1351 }
1352 },
1353 "summary" : "Heartbeat indicates that the service is running",
1354 "tags" : [ "Service Registry and Supervision" ]
1355 }
1356 },
1357 "/services" : {
1358 "get" : {
1359 "description" : "Either information about a registered service with given identity or all registered services are returned.",
1360 "operationId" : "getServices",
1361 "parameters" : [ {
1362 "description" : "The identity of the service",
1363 "explode" : true,
1364 "in" : "query",
1365 "name" : "serviceId",
1366 "required" : false,
1367 "schema" : {
1368 "type" : "string"
1369 },
1370 "style" : "form"
1371 }, {
1372 "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
1373 "explode" : false,
1374 "in" : "header",
1375 "name" : "Accept",
1376 "required" : false,
1377 "schema" : {
1378 "example" : "application/json",
1379 "type" : "string"
1380 },
1381 "style" : "simple"
1382 } ],
1383 "responses" : {
1384 "200" : {
1385 "content" : {
1386 "application/json" : {
1387 "examples" : {
1388 "service_status_list" : {
1389 "$ref" : "#/components/examples/ServiceStatusList"
1390 }
1391 },
1392 "schema" : {
1393 "$ref" : "#/components/schemas/ServiceStatusList"
1394 }
1395 }
1396 },
1397 "description" : "OK"
1398 },
1399 "404" : {
1400 "content" : {
1401 "application/problem+json" : {
1402 "schema" : {
1403 "$ref" : "#/components/schemas/ProblemDetails"
1404 }
1405 }
1406 },
1407 "description" : "Not Found"
1408 }
1409 },
1410 "summary" : "Returns service information",
1411 "tags" : [ "Service Registry and Supervision" ]
1412 },
1413 "put" : {
1414 "callbacks" : {
1415 "RICStatus" : {
1416 "{$request.body#/callback_url}" : {
1417 "post" : {
1418 "description" : "The URL to this call is registered at Service registration.",
1419 "operationId" : "serviceCallback",
1420 "requestBody" : {
1421 "content" : {
1422 "application/json" : {
1423 "schema" : {
1424 "$ref" : "#/components/schemas/ServiceCallbackInfo"
1425 }
1426 }
1427 },
1428 "required" : true
1429 },
1430 "responses" : {
1431 "200" : {
1432 "content" : {
1433 "application/json" : {
1434 "schema" : {
1435 "$ref" : "#/components/schemas/void"
1436 }
1437 }
1438 },
1439 "description" : "OK"
1440 },
1441 "404" : {
1442 "content" : {
1443 "application/problem+json" : {
1444 "schema" : {
1445 "$ref" : "#/components/schemas/ProblemDetails"
1446 }
1447 }
1448 },
1449 "description" : "Not Found"
1450 }
1451 },
1452 "summary" : "Callback for Near-RT RIC status",
1453 "tags" : [ "Service callbacks" ]
1454 }
1455 }
1456 }
1457 },
1458 "description" : "Registering a service is needed to:<ul><li>Get callbacks about available NearRT RICs.</li><li>Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.</li></ul>Policies can be created even if the service is not registerred. This is a feature which it is optional to use.",
1459 "operationId" : "putService",
1460 "requestBody" : {
1461 "content" : {
1462 "application/json" : {
1463 "schema" : {
1464 "$ref" : "#/components/schemas/ServiceRegistrationInfo"
1465 }
1466 }
1467 },
1468 "required" : true
1469 },
1470 "responses" : {
1471 "200" : {
1472 "content" : {
1473 "*/*" : {
1474 "schema" : {
1475 "type" : "object"
1476 }
1477 }
1478 },
1479 "description" : "OK - Service updated"
1480 },
1481 "201" : {
1482 "content" : {
1483 "*/*" : {
1484 "schema" : {
1485 "type" : "object"
1486 }
1487 }
1488 },
1489 "description" : "Created - Service created"
1490 },
1491 "400" : {
1492 "content" : {
1493 "application/problem+json" : {
1494 "schema" : {
1495 "$ref" : "#/components/schemas/ProblemDetails"
1496 }
1497 }
1498 },
1499 "description" : "Bad Request"
1500 }
1501 },
1502 "summary" : "Register a service",
1503 "tags" : [ "Service Registry and Supervision" ]
1504 }
1505 },
1506 "/services/{serviceId}" : {
1507 "delete" : {
1508 "description" : "Unregister a service",
1509 "operationId" : "deleteService",
1510 "parameters" : [ {
1511 "explode" : false,
1512 "in" : "path",
1513 "name" : "serviceId",
1514 "required" : true,
1515 "schema" : {
1516 "type" : "string"
1517 },
1518 "style" : "simple"
1519 }, {
1520 "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
1521 "explode" : false,
1522 "in" : "header",
1523 "name" : "Accept",
1524 "required" : false,
1525 "schema" : {
1526 "example" : "application/json",
1527 "type" : "string"
1528 },
1529 "style" : "simple"
1530 } ],
1531 "responses" : {
1532 "204" : {
1533 "content" : {
1534 "*/*" : {
1535 "schema" : {
1536 "type" : "object"
1537 }
1538 }
1539 },
1540 "description" : "No Content - Service unregistered"
1541 },
1542 "404" : {
1543 "content" : {
1544 "application/problem+json" : {
1545 "schema" : {
1546 "$ref" : "#/components/schemas/ProblemDetails"
1547 }
1548 }
1549 },
1550 "description" : "Not Found"
1551 }
1552 },
1553 "tags" : [ "Service Registry and Supervision" ]
1554 }
1555 }
1556 },
1557 "components" : {
1558 "examples" : {
1559 "ServiceStatusList" : {
1560 "description" : "List of service information",
1561 "value" : {
1562 "serviceList" : [ {
1563 "callbackUrl" : "callbackUrl",
1564 "serviceId" : "serviceId",
1565 "keepAliveIntervalSeconds" : 0,
1566 "timeSinceLastActivitySeconds" : 6
1567 }, {
1568 "callbackUrl" : "callbackUrl",
1569 "serviceId" : "serviceId",
1570 "keepAliveIntervalSeconds" : 0,
1571 "timeSinceLastActivitySeconds" : 6
1572 } ]
1573 }
1574 },
1575 "PolicyStatusInfo" : {
1576 "description" : "Status for one A1-P Policy",
1577 "value" : {
1578 "lastModified" : "last_modified",
1579 "status" : {
1580 "value" : {
1581 "status" : "status"
1582 }
1583 }
1584 }
1585 },
1586 "StatusInfo" : {
1587 "value" : {
1588 "status" : "status"
1589 }
1590 },
1591 "RicInfo" : {
1592 "value" : {
1593 "ricId" : "ricId",
1594 "managedElementIds" : [ "managedElementId", "managedElementId" ],
1595 "state" : "UNAVAILABLE",
1596 "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
1597 }
1598 },
1599 "RicInfoList" : {
1600 "value" : {
1601 "rics" : [ {
1602 "ricId" : "ricId",
1603 "managedElementIds" : [ "managedElementId", "managedElementId" ],
1604 "state" : "UNAVAILABLE",
1605 "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
1606 }, {
1607 "ricId" : "ricId",
1608 "managedElementIds" : [ "managedElementId", "managedElementId" ],
1609 "state" : "UNAVAILABLE",
1610 "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
1611 } ]
1612 }
1613 },
1614 "PolicyObject" : {
1615 "value" : {
1616 "scope" : {
1617 "ueId" : {
1618 "guRanUeId" : {
1619 "globalGnbId" : {
1620 "plmnId" : {
1621 "mcc" : "123",
1622 "mnc" : "45"
1623 },
1624 "gnbId" : {
1625 "gnbIdLength" : 24,
1626 "gnbIdValue" : 12345678
1627 }
1628 },
1629 "RanUeId" : "a31c510b20e64a74"
1630 }
1631 },
1632 "groupId" : {
1633 "spId" : 123
1634 },
1635 "qosId" : {
1636 "5qI" : 1
1637 },
1638 "cellId" : {
1639 "plmnId" : {
1640 "mcc" : "123",
1641 "mnc" : "45"
1642 },
1643 "cId" : {
1644 "ncI" : 123
1645 }
1646 }
1647 },
1648 "qosObjectives" : {
1649 "gfbr" : 100,
1650 "mfbr" : 200,
1651 "priorityLevel" : 3,
1652 "pdb" : 50
1653 }
1654 }
1655 }
1656 },
1657 "responses" : {
1658 "400" : {
1659 "content" : {
1660 "application/problem+json" : {
1661 "schema" : {
1662 "$ref" : "#/components/schemas/ProblemDetails"
1663 }
1664 }
1665 },
1666 "description" : "Bad Request"
1667 },
1668 "401" : {
1669 "content" : {
1670 "application/problem+json" : {
1671 "schema" : {
1672 "$ref" : "#/components/schemas/ProblemDetails"
1673 }
1674 }
1675 },
1676 "description" : "Unauthorized"
1677 },
1678 "403" : {
1679 "content" : {
1680 "application/problem+json" : {
1681 "schema" : {
1682 "$ref" : "#/components/schemas/ProblemDetails"
1683 }
1684 }
1685 },
1686 "description" : "Forbidden"
1687 },
1688 "404" : {
1689 "content" : {
1690 "application/problem+json" : {
1691 "schema" : {
1692 "$ref" : "#/components/schemas/ProblemDetails"
1693 }
1694 }
1695 },
1696 "description" : "Not Found"
1697 },
1698 "405" : {
1699 "content" : {
1700 "application/problem+json" : {
1701 "schema" : {
1702 "$ref" : "#/components/schemas/ProblemDetails"
1703 }
1704 }
1705 },
1706 "description" : "Method Not Allowed"
1707 },
1708 "406" : {
1709 "content" : {
1710 "application/problem+json" : {
1711 "schema" : {
1712 "$ref" : "#/components/schemas/ProblemDetails"
1713 }
1714 }
1715 },
1716 "description" : "Not Acceptable"
1717 },
1718 "409" : {
1719 "content" : {
1720 "application/problem+json" : {
1721 "schema" : {
1722 "$ref" : "#/components/schemas/ProblemDetails"
1723 }
1724 }
1725 },
1726 "description" : "Conflict"
1727 },
1728 "411" : {
1729 "content" : {
1730 "application/problem+json" : {
1731 "schema" : {
1732 "$ref" : "#/components/schemas/ProblemDetails"
1733 }
1734 }
1735 },
1736 "description" : "Length Required"
1737 },
1738 "413" : {
1739 "content" : {
1740 "application/problem+json" : {
1741 "schema" : {
1742 "$ref" : "#/components/schemas/ProblemDetails"
1743 }
1744 }
1745 },
1746 "description" : "Payload Too Large"
1747 },
1748 "415" : {
1749 "content" : {
1750 "application/problem+json" : {
1751 "schema" : {
1752 "$ref" : "#/components/schemas/ProblemDetails"
1753 }
1754 }
1755 },
1756 "description" : "Unsupported Media Type"
1757 },
1758 "429" : {
1759 "content" : {
1760 "application/problem+json" : {
1761 "schema" : {
1762 "$ref" : "#/components/schemas/ProblemDetails"
1763 }
1764 }
1765 },
1766 "description" : "Too Many Request"
1767 },
1768 "500" : {
1769 "content" : {
1770 "application/problem+json" : {
1771 "schema" : {
1772 "$ref" : "#/components/schemas/ProblemDetails"
1773 }
1774 }
1775 },
1776 "description" : "Internal Server Error"
1777 },
1778 "502" : {
1779 "content" : {
1780 "application/problem+json" : {
1781 "schema" : {
1782 "$ref" : "#/components/schemas/ProblemDetails"
1783 }
1784 }
1785 },
1786 "description" : "Bad Gateway"
1787 },
1788 "503" : {
1789 "content" : {
1790 "application/problem+json" : {
1791 "schema" : {
1792 "$ref" : "#/components/schemas/ProblemDetails"
1793 }
1794 }
1795 },
1796 "description" : "Service Unavailable"
1797 },
1798 "Locked" : {
1799 "content" : {
1800 "application/problem+json" : {
1801 "example" : {
1802 "status" : 423,
1803 "title" : "Locked",
1804 "detail" : "State is Locked in the provided request."
1805 },
1806 "schema" : {
1807 "$ref" : "#/components/schemas/ErrorInformation"
1808 }
1809 }
1810 },
1811 "description" : "Locked - HTTP Status code which can be used when the state is Locked"
1812 }
1813 },
1814 "schemas" : {
1815 "PolicyTypeInformation" : {
1816 "description" : "Available policy types and for each policy type identifier the Near-RT RIC identifiers of those Near-RT RICs that support the related A1 policy type",
1817 "properties" : {
1818 "policyTypeId" : {
1819 "description" : "Identity of the policy type",
1820 "type" : "string"
1821 },
1822 "nearRtRicId" : {
1823 "$ref" : "#/components/schemas/NearRtRicId"
1824 }
1825 },
1826 "required" : [ "nearRtRicId", "policyTypeId" ],
1827 "type" : "object"
1828 },
1829 "PolicyObjectInformation" : {
1830 "description" : "Information related to the creation of the policy",
1831 "properties" : {
1832 "nearRtRicId" : {
1833 "description" : "identity of the target Near-RT RIC",
1834 "example" : "Near-RT-Ric-ID",
1835 "type" : "string"
1836 },
1837 "transient" : {
1838 "default" : false,
1839 "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
1840 "nullable" : false,
1841 "type" : "boolean"
1842 },
1843 "policyId" : {
1844 "description" : "identity of the Policy",
1845 "example" : "POLICY-ID",
1846 "type" : "string"
1847 },
1848 "serviceId" : {
1849 "description" : "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered.",
1850 "example" : "rApp ID",
1851 "type" : "string"
1852 },
1853 "policyObject" : {
1854 "$ref" : "#/components/schemas/PolicyObject"
1855 },
1856 "policyTypeId" : {
1857 "description" : "identity of the policy type",
1858 "example" : "ORAN_QOS_1.0.0(typeName_SemVersion)",
1859 "type" : "string"
1860 }
1861 },
1862 "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ],
1863 "type" : "object"
1864 },
1865 "ErrorInformation" : {
1866 "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807",
1867 "properties" : {
1868 "detail" : {
1869 "description" : " A human-readable explanation specific to this occurrence of the problem.",
1870 "example" : "Policy type not found",
1871 "type" : "string"
1872 },
1873 "title" : {
1874 "description" : "A specific error name",
1875 "example" : "Not Found",
1876 "type" : "string"
1877 },
1878 "status" : {
1879 "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
1880 "example" : 404,
1881 "format" : "int32",
1882 "type" : "integer"
1883 }
1884 },
1885 "type" : "object"
1886 },
1887 "PolicyObject" : {
1888 "description" : "Policy Object is a JSON representation of an A1 policy",
1889 "type" : "object"
1890 },
1891 "void" : {
1892 "description" : "Void/empty",
1893 "type" : "object"
1894 },
1895 "StatusInfo" : {
1896 "properties" : {
1897 "status" : {
1898 "description" : "status text",
1899 "type" : "string"
1900 }
1901 },
1902 "type" : "object"
1903 },
1904 "AuthorizationResult" : {
1905 "description" : "Result of authorization",
1906 "example" : {
1907 "result" : true
1908 },
1909 "properties" : {
1910 "result" : {
1911 "description" : "If true, the access is granted",
1912 "type" : "boolean"
1913 }
1914 },
1915 "required" : [ "result" ],
1916 "type" : "object"
1917 },
1918 "RicInfo" : {
1919 "description" : "Information for a Near-RT RIC",
1920 "properties" : {
1921 "ricId" : {
1922 "description" : "identity of the Near-RT RIC",
1923 "type" : "string"
1924 },
1925 "managedElementIds" : {
1926 "description" : "O1 identities for managed entities",
1927 "items" : {
1928 "description" : "O1 identities for managed entities",
1929 "type" : "string"
1930 },
1931 "type" : "array"
1932 },
1933 "state" : {
1934 "description" : "Represents the states for a Near-RT RIC",
1935 "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ],
1936 "type" : "string"
1937 },
1938 "policyTypeIds" : {
1939 "description" : "supported policy types",
1940 "items" : {
1941 "description" : "supported policy types",
1942 "type" : "string"
1943 },
1944 "type" : "array"
1945 }
1946 },
1947 "type" : "object"
1948 },
1949 "ServiceRegistrationInfo" : {
1950 "description" : "Information for one service",
1951 "properties" : {
1952 "callbackUrl" : {
1953 "description" : "callback for notifying of Near-RT RIC state changes",
1954 "type" : "string"
1955 },
1956 "serviceId" : {
1957 "description" : "identity of the service",
1958 "type" : "string"
1959 },
1960 "keepAliveIntervalSeconds" : {
1961 "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.",
1962 "format" : "int64",
1963 "type" : "integer"
1964 }
1965 },
1966 "required" : [ "serviceId" ],
1967 "type" : "object"
1968 },
1969 "PolicyStatusInfo" : {
1970 "description" : "Status for one A1-P Policy",
1971 "properties" : {
1972 "lastModified" : {
1973 "description" : "timestamp, last modification time",
1974 "type" : "string"
1975 },
1976 "status" : {
1977 "description" : "the Policy status",
1978 "type" : "object"
1979 }
1980 },
1981 "type" : "object"
1982 },
1983 "ServiceStatus" : {
1984 "properties" : {
1985 "callbackUrl" : {
1986 "description" : "callback for notifying of RIC synchronization",
1987 "type" : "string"
1988 },
1989 "serviceId" : {
1990 "description" : "identity of the service",
1991 "type" : "string"
1992 },
1993 "keepAliveIntervalSeconds" : {
1994 "description" : "policy keep alive timeout",
1995 "format" : "int64",
1996 "type" : "integer"
1997 },
1998 "timeSinceLastActivitySeconds" : {
1999 "description" : "time since last invocation by the service",
2000 "format" : "int64",
2001 "type" : "integer"
2002 }
2003 },
2004 "type" : "object"
2005 },
2006 "RicInfoList" : {
2007 "description" : "List of Near-RT RIC information",
2008 "properties" : {
2009 "rics" : {
2010 "description" : "List of Near-RT RIC information",
2011 "items" : {
2012 "$ref" : "#/components/schemas/RicInfo"
2013 },
2014 "type" : "array"
2015 }
2016 },
2017 "type" : "object"
2018 },
2019 "input" : {
2020 "description" : "input",
2021 "properties" : {
2022 "accessType" : {
2023 "description" : "Access type",
2024 "enum" : [ "READ", "WRITE", "DELETE" ],
2025 "type" : "string"
2026 },
2027 "authToken" : {
2028 "description" : "Authorization token",
2029 "type" : "string"
2030 },
2031 "policyTypeId" : {
2032 "description" : "Policy type identifier",
2033 "type" : "string"
2034 }
2035 },
2036 "required" : [ "accessType", "authToken", "policyTypeId" ],
2037 "type" : "object"
2038 },
2039 "PolicyAuthorization" : {
2040 "description" : "Authorization request for A1 policy requests",
2041 "properties" : {
2042 "input" : {
2043 "$ref" : "#/components/schemas/input"
2044 }
2045 },
2046 "required" : [ "input" ],
2047 "type" : "object"
2048 },
2049 "NearRtRicId" : {
2050 "description" : "Identity of the policy",
2051 "type" : "string"
2052 },
2053 "PolicyInformation" : {
2054 "description" : "Near-RT RIC identifiers where A1 policies exist and for each Near-RT RIC identifier the policy identifiers of those policies that exist in that Near-RT RIC",
2055 "properties" : {
2056 "policyId" : {
2057 "description" : "Identity of the policy",
2058 "type" : "string"
2059 },
2060 "nearRtRicId" : {
2061 "$ref" : "#/components/schemas/NearRtRicId"
2062 }
2063 },
2064 "required" : [ "nearRtRicId", "policyId" ],
2065 "type" : "object"
2066 },
2067 "ServiceStatusList" : {
2068 "properties" : {
2069 "serviceList" : {
2070 "description" : "List of service information",
2071 "items" : {
2072 "$ref" : "#/components/schemas/ServiceStatus"
2073 },
2074 "type" : "array"
2075 }
2076 },
2077 "type" : "object"
2078 },
2079 "ServiceCallbackInfo" : {
2080 "description" : "Information transferred as in Service callbacks (callback_url)",
2081 "properties" : {
2082 "ricId" : {
2083 "description" : "identity of a Near-RT RIC",
2084 "type" : "string"
2085 },
2086 "eventType" : {
2087 "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
2088 "enum" : [ "AVAILABLE" ],
2089 "type" : "string"
2090 }
2091 },
2092 "required" : [ "eventType", "ricId" ],
2093 "type" : "object"
2094 },
2095 "Link" : {
2096 "properties" : {
2097 "templated" : {
2098 "type" : "boolean"
2099 },
2100 "href" : {
2101 "type" : "string"
2102 }
2103 },
2104 "type" : "object"
2105 },
2106 "ProblemDetails" : {
2107 "description" : "A problem detail to carry details in an HTTP response according to RFC 7807",
2108 "properties" : {
2109 "type" : {
2110 "description" : "a URI reference according to IETF RFC 3986 that identifies the problem type",
2111 "type" : "string"
2112 },
2113 "title" : {
2114 "description" : "human-readable summary of the problem type",
2115 "type" : "string"
2116 },
2117 "status" : {
2118 "description" : "the HTTP status code",
2119 "type" : "number"
2120 },
2121 "detail" : {
2122 "description" : "human-readable explanation ",
2123 "type" : "string"
2124 },
2125 "instance" : {
2126 "description" : "URI reference that identifies the specific occurrence of the problem",
2127 "type" : "string"
2128 }
2129 },
2130 "type" : "object"
2131 }
2132 }
2133 }
2134}