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