Renamed things to fit with namechange of RicSynchronizationTask
[nonrtric.git] / policy-agent / docs / api.yaml
1 swagger: '2.0'
2 info:
3   description: This page lists all the rest apis for the service.
4   version: '1.0'
5   title: A1 Policy management service
6 host: 'localhost:8081'
7 basePath: /
8 tags:
9   - name: A1 Policy Management
10     description: Policy Controller
11   - name: Health check
12     description: Status Controller
13   - name: RIC Repository
14     description: Ric Repository Controller
15   - name: Service registry and supervision
16     description: Service Controller
17   - name: operation-handler
18     description: Operation Handler
19   - name: web-mvc-links-handler
20     description: Web Mvc Links Handler
21 paths:
22   /actuator:
23     get:
24       tags:
25         - web-mvc-links-handler
26       summary: links
27       operationId: linksUsingGET
28       produces:
29         - application/vnd.spring-boot.actuator.v3+json
30         - application/json
31         - application/vnd.spring-boot.actuator.v2+json
32       responses:
33         '200':
34           description: OK
35           schema:
36             type: object
37             additionalProperties:
38               type: object
39               additionalProperties:
40                 $ref: '#/definitions/Link'
41         '401':
42           description: Unauthorized
43         '403':
44           description: Forbidden
45         '404':
46           description: Not Found
47       deprecated: false
48   /actuator/health:
49     get:
50       tags:
51         - operation-handler
52       summary: handle
53       operationId: handleUsingGET_1
54       produces:
55         - application/vnd.spring-boot.actuator.v3+json
56         - application/json
57         - application/vnd.spring-boot.actuator.v2+json
58       parameters:
59         - in: body
60           name: body
61           description: body
62           required: false
63           schema:
64             type: object
65             additionalProperties:
66               type: string
67       responses:
68         '200':
69           description: OK
70           schema:
71             type: object
72         '401':
73           description: Unauthorized
74         '403':
75           description: Forbidden
76         '404':
77           description: Not Found
78       deprecated: false
79   /actuator/health/**:
80     get:
81       tags:
82         - operation-handler
83       summary: handle
84       operationId: handleUsingGET
85       produces:
86         - application/vnd.spring-boot.actuator.v3+json
87         - application/json
88         - application/vnd.spring-boot.actuator.v2+json
89       parameters:
90         - in: body
91           name: body
92           description: body
93           required: false
94           schema:
95             type: object
96             additionalProperties:
97               type: string
98       responses:
99         '200':
100           description: OK
101           schema:
102             type: object
103         '401':
104           description: Unauthorized
105         '403':
106           description: Forbidden
107         '404':
108           description: Not Found
109       deprecated: false
110   /actuator/info:
111     get:
112       tags:
113         - operation-handler
114       summary: handle
115       operationId: handleUsingGET_2
116       produces:
117         - application/vnd.spring-boot.actuator.v3+json
118         - application/json
119         - application/vnd.spring-boot.actuator.v2+json
120       parameters:
121         - in: body
122           name: body
123           description: body
124           required: false
125           schema:
126             type: object
127             additionalProperties:
128               type: string
129       responses:
130         '200':
131           description: OK
132           schema:
133             type: object
134         '401':
135           description: Unauthorized
136         '403':
137           description: Forbidden
138         '404':
139           description: Not Found
140       deprecated: false
141   /actuator/logfile:
142     get:
143       tags:
144         - operation-handler
145       summary: handle
146       operationId: handleUsingGET_3
147       produces:
148         - text/plain;charset=UTF-8
149       parameters:
150         - in: body
151           name: body
152           description: body
153           required: false
154           schema:
155             type: object
156             additionalProperties:
157               type: string
158       responses:
159         '200':
160           description: OK
161           schema:
162             type: object
163         '401':
164           description: Unauthorized
165         '403':
166           description: Forbidden
167         '404':
168           description: Not Found
169       deprecated: false
170   /actuator/loggers:
171     get:
172       tags:
173         - operation-handler
174       summary: handle
175       operationId: handleUsingGET_5
176       produces:
177         - application/vnd.spring-boot.actuator.v3+json
178         - application/json
179         - application/vnd.spring-boot.actuator.v2+json
180       parameters:
181         - in: body
182           name: body
183           description: body
184           required: false
185           schema:
186             type: object
187             additionalProperties:
188               type: string
189       responses:
190         '200':
191           description: OK
192           schema:
193             type: object
194         '401':
195           description: Unauthorized
196         '403':
197           description: Forbidden
198         '404':
199           description: Not Found
200       deprecated: false
201   '/actuator/loggers/{name}':
202     get:
203       tags:
204         - operation-handler
205       summary: handle
206       operationId: handleUsingGET_4
207       produces:
208         - application/vnd.spring-boot.actuator.v3+json
209         - application/json
210         - application/vnd.spring-boot.actuator.v2+json
211       parameters:
212         - in: body
213           name: body
214           description: body
215           required: false
216           schema:
217             type: object
218             additionalProperties:
219               type: string
220       responses:
221         '200':
222           description: OK
223           schema:
224             type: object
225         '401':
226           description: Unauthorized
227         '403':
228           description: Forbidden
229         '404':
230           description: Not Found
231       deprecated: false
232     post:
233       tags:
234         - operation-handler
235       summary: handle
236       operationId: handleUsingPOST
237       consumes:
238         - application/vnd.spring-boot.actuator.v3+json
239         - application/json
240         - application/vnd.spring-boot.actuator.v2+json
241       produces:
242         - '*/*'
243       parameters:
244         - in: body
245           name: body
246           description: body
247           required: false
248           schema:
249             type: object
250             additionalProperties:
251               type: string
252       responses:
253         '200':
254           description: OK
255           schema:
256             type: object
257         '201':
258           description: Created
259         '401':
260           description: Unauthorized
261         '403':
262           description: Forbidden
263         '404':
264           description: Not Found
265       deprecated: false
266   /actuator/metrics:
267     get:
268       tags:
269         - operation-handler
270       summary: handle
271       operationId: handleUsingGET_7
272       produces:
273         - application/vnd.spring-boot.actuator.v3+json
274         - application/json
275         - application/vnd.spring-boot.actuator.v2+json
276       parameters:
277         - in: body
278           name: body
279           description: body
280           required: false
281           schema:
282             type: object
283             additionalProperties:
284               type: string
285       responses:
286         '200':
287           description: OK
288           schema:
289             type: object
290         '401':
291           description: Unauthorized
292         '403':
293           description: Forbidden
294         '404':
295           description: Not Found
296       deprecated: false
297   '/actuator/metrics/{requiredMetricName}':
298     get:
299       tags:
300         - operation-handler
301       summary: handle
302       operationId: handleUsingGET_6
303       produces:
304         - application/vnd.spring-boot.actuator.v3+json
305         - application/json
306         - application/vnd.spring-boot.actuator.v2+json
307       parameters:
308         - in: body
309           name: body
310           description: body
311           required: false
312           schema:
313             type: object
314             additionalProperties:
315               type: string
316       responses:
317         '200':
318           description: OK
319           schema:
320             type: object
321         '401':
322           description: Unauthorized
323         '403':
324           description: Forbidden
325         '404':
326           description: Not Found
327       deprecated: false
328   /policies:
329     get:
330       tags:
331         - A1 Policy Management
332       summary: Query policies
333       operationId: getPoliciesUsingGET
334       produces:
335         - '*/*'
336       parameters:
337         - name: ric
338           in: query
339           description: ric
340           required: false
341           type: string
342         - name: service
343           in: query
344           description: service
345           required: false
346           type: string
347         - name: type
348           in: query
349           description: type
350           required: false
351           type: string
352       responses:
353         '200':
354           description: Policies
355           schema:
356             type: array
357             items:
358               $ref: '#/definitions/PolicyInfo'
359         '401':
360           description: Unauthorized
361         '403':
362           description: Forbidden
363         '404':
364           description: RIC or type not found
365           schema:
366             type: string
367       deprecated: false
368   /policy:
369     get:
370       tags:
371         - A1 Policy Management
372       summary: Returns a policy configuration
373       operationId: getPolicyUsingGET
374       produces:
375         - '*/*'
376       parameters:
377         - name: instance
378           in: query
379           description: instance
380           required: true
381           type: string
382       responses:
383         '200':
384           description: Policy found
385           schema:
386             type: object
387         '401':
388           description: Unauthorized
389         '403':
390           description: Forbidden
391         '404':
392           description: Policy is not found
393       deprecated: false
394     put:
395       tags:
396         - A1 Policy Management
397       summary: Put a policy
398       operationId: putPolicyUsingPUT
399       consumes:
400         - application/json
401       produces:
402         - '*/*'
403       parameters:
404         - name: instance
405           in: query
406           description: instance
407           required: true
408           type: string
409         - in: body
410           name: jsonBody
411           description: jsonBody
412           required: true
413           schema:
414             type: object
415         - name: ric
416           in: query
417           description: ric
418           required: true
419           type: string
420         - name: service
421           in: query
422           description: service
423           required: true
424           type: string
425         - name: type
426           in: query
427           description: type
428           required: false
429           type: string
430       responses:
431         '200':
432           description: Policy updated
433           schema:
434             type: object
435         '201':
436           description: Policy created
437           schema:
438             type: object
439         '401':
440           description: Unauthorized
441         '403':
442           description: Forbidden
443         '404':
444           description: RIC or policy type is not found
445           schema:
446             type: string
447         '423':
448           description: RIC is locked
449           schema:
450             type: string
451       deprecated: false
452     delete:
453       tags:
454         - A1 Policy Management
455       summary: Delete a policy
456       operationId: deletePolicyUsingDELETE
457       produces:
458         - '*/*'
459       parameters:
460         - name: instance
461           in: query
462           description: instance
463           required: true
464           type: string
465       responses:
466         '200':
467           description: OK
468           schema:
469             type: object
470         '204':
471           description: Policy deleted
472           schema:
473             type: object
474         '401':
475           description: Unauthorized
476         '403':
477           description: Forbidden
478         '404':
479           description: Policy is not found
480           schema:
481             type: string
482         '423':
483           description: RIC is locked
484           schema:
485             type: string
486       deprecated: false
487   /policy_schema:
488     get:
489       tags:
490         - A1 Policy Management
491       summary: Returns one policy type schema definition
492       operationId: getPolicySchemaUsingGET
493       produces:
494         - '*/*'
495       parameters:
496         - name: id
497           in: query
498           description: id
499           required: true
500           type: string
501       responses:
502         '200':
503           description: Policy schema
504           schema:
505             type: object
506         '401':
507           description: Unauthorized
508         '403':
509           description: Forbidden
510         '404':
511           description: RIC is not found
512           schema:
513             type: string
514       deprecated: false
515   /policy_schemas:
516     get:
517       tags:
518         - A1 Policy Management
519       summary: Returns policy type schema definitions
520       operationId: getPolicySchemasUsingGET
521       produces:
522         - '*/*'
523       parameters:
524         - name: ric
525           in: query
526           description: ric
527           required: false
528           type: string
529       responses:
530         '200':
531           description: Policy schemas
532           schema:
533             type: array
534             items:
535               type: object
536         '401':
537           description: Unauthorized
538         '403':
539           description: Forbidden
540         '404':
541           description: RIC is not found
542           schema:
543             type: string
544       deprecated: false
545   /policy_status:
546     get:
547       tags:
548         - A1 Policy Management
549       summary: Returns a policy status
550       operationId: getPolicyStatusUsingGET
551       produces:
552         - '*/*'
553       parameters:
554         - name: instance
555           in: query
556           description: instance
557           required: true
558           type: string
559       responses:
560         '200':
561           description: Policy status
562           schema:
563             type: object
564         '401':
565           description: Unauthorized
566         '403':
567           description: Forbidden
568         '404':
569           description: Policy is not found
570           schema:
571             type: string
572       deprecated: false
573   /policy_types:
574     get:
575       tags:
576         - A1 Policy Management
577       summary: Query policy type names
578       operationId: getPolicyTypesUsingGET
579       produces:
580         - '*/*'
581       parameters:
582         - name: ric
583           in: query
584           description: ric
585           required: false
586           type: string
587       responses:
588         '200':
589           description: Policy type names
590           schema:
591             type: array
592             items:
593               type: string
594         '401':
595           description: Unauthorized
596         '403':
597           description: Forbidden
598         '404':
599           description: RIC is not found
600           schema:
601             type: string
602       deprecated: false
603   /ric:
604     get:
605       tags:
606         - RIC Repository
607       summary: Returns the name of a RIC managing one Mananged Element
608       operationId: getRicUsingGET
609       produces:
610         - '*/*'
611       parameters:
612         - name: managedElementId
613           in: query
614           description: managedElementId
615           required: false
616           type: string
617       responses:
618         '200':
619           description: RIC is fond
620           schema:
621             type: string
622         '401':
623           description: Unauthorized
624         '403':
625           description: Forbidden
626         '404':
627           description: RIC is not fond
628           schema:
629             type: string
630       deprecated: false
631   /rics:
632     get:
633       tags:
634         - RIC Repository
635       summary: Query NearRT RIC information
636       operationId: getRicsUsingGET
637       produces:
638         - '*/*'
639       parameters:
640         - name: policyType
641           in: query
642           description: policyType
643           required: false
644           type: string
645       responses:
646         '200':
647           description: OK
648           schema:
649             type: array
650             items:
651               $ref: '#/definitions/RicInfo'
652         '401':
653           description: Unauthorized
654         '403':
655           description: Forbidden
656         '404':
657           description: Policy type is not found
658           schema:
659             type: string
660       deprecated: false
661   /service:
662     put:
663       tags:
664         - Service registry and supervision
665       summary: Register a service
666       operationId: putServiceUsingPUT
667       consumes:
668         - application/json
669       produces:
670         - '*/*'
671       parameters:
672         - in: body
673           name: registrationInfo
674           description: registrationInfo
675           required: true
676           schema:
677             $ref: '#/definitions/ServiceRegistrationInfo'
678       responses:
679         '200':
680           description: OK
681           schema:
682             type: string
683         '201':
684           description: Created
685         '400':
686           description: Cannot parse the ServiceRegistrationInfo
687           schema:
688             type: string
689         '401':
690           description: Unauthorized
691         '403':
692           description: Forbidden
693         '404':
694           description: Not Found
695       deprecated: false
696   /services:
697     get:
698       tags:
699         - Service registry and supervision
700       summary: Returns service information
701       operationId: getServicesUsingGET
702       produces:
703         - '*/*'
704       parameters:
705         - name: name
706           in: query
707           description: name
708           required: false
709           type: string
710       responses:
711         '200':
712           description: OK
713           schema:
714             type: array
715             items:
716               $ref: '#/definitions/ServiceStatus'
717         '401':
718           description: Unauthorized
719         '403':
720           description: Forbidden
721         '404':
722           description: Service is not found
723           schema:
724             type: string
725       deprecated: false
726     delete:
727       tags:
728         - Service registry and supervision
729       summary: Delete a service
730       operationId: deleteServiceUsingDELETE
731       produces:
732         - '*/*'
733       parameters:
734         - name: name
735           in: query
736           description: name
737           required: true
738           type: string
739       responses:
740         '200':
741           description: OK
742           schema:
743             type: string
744         '204':
745           description: OK
746           schema:
747             type: string
748         '401':
749           description: Unauthorized
750         '403':
751           description: Forbidden
752         '404':
753           description: Service not found
754           schema:
755             type: string
756       deprecated: false
757   /services/keepalive:
758     post:
759       tags:
760         - Service registry and supervision
761       summary: Heartbeat from a serice
762       operationId: keepAliveServiceUsingPOST
763       consumes:
764         - application/json
765       produces:
766         - '*/*'
767       parameters:
768         - name: name
769           in: query
770           description: name
771           required: true
772           type: string
773       responses:
774         '200':
775           description: 'Service supervision timer refreshed, OK'
776           schema:
777             type: string
778         '201':
779           description: Created
780         '401':
781           description: Unauthorized
782         '403':
783           description: Forbidden
784         '404':
785           description: 'The service is not found, needs re-registration'
786       deprecated: false
787   /status:
788     get:
789       tags:
790         - Health check
791       summary: Returns status and statistics of this service
792       operationId: getStatusUsingGET
793       produces:
794         - '*/*'
795       responses:
796         '200':
797           description: Service is living
798           schema:
799             type: string
800         '401':
801           description: Unauthorized
802         '403':
803           description: Forbidden
804         '404':
805           description: Not Found
806       deprecated: false
807 definitions:
808   Link:
809     type: object
810     properties:
811       href:
812         type: string
813       templated:
814         type: boolean
815     title: Link
816   'Map«string,Link»':
817     type: object
818     title: 'Map«string,Link»'
819     additionalProperties:
820       $ref: '#/definitions/Link'
821   Mono«ResponseEntity«object»»:
822     type: object
823     title: Mono«ResponseEntity«object»»
824   Mono«ResponseEntity«string»»:
825     type: object
826     title: Mono«ResponseEntity«string»»
827   PolicyInfo:
828     type: object
829     properties:
830       id:
831         type: string
832         description: identity of the policy
833       json:
834         type: object
835         description: the configuration of the policy
836       lastModified:
837         type: string
838         description: 'timestamp, last modification time'
839       ric:
840         type: string
841         description: identity the target NearRT RIC
842       service:
843         type: string
844         description: the name of the service owning the policy
845       type:
846         type: string
847         description: name of the policy type
848     title: PolicyInfo
849   RicInfo:
850     type: object
851     properties:
852       managedElementIds:
853         type: array
854         description: O1 identities for managed entities
855         items:
856           type: string
857       policyTypes:
858         type: array
859         description: supported policy types
860         items:
861           type: string
862       ricName:
863         type: string
864         description: identity of the ric
865     title: RicInfo
866   ServiceRegistrationInfo:
867     type: object
868     required:
869       - serviceName
870     properties:
871       callbackUrl:
872         type: string
873         description: callback for notifying of RIC synchronization
874       keepAliveIntervalSeconds:
875         type: integer
876         format: int64
877         description: 'keep alive interval for the service. This is a heartbeat supervision of the service, which in regular intevals must invoke a ''keepAlive'' REST call. When a service does not invoke this call within the given time, it is considered unavailble. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means no timeout supervision.'
878       serviceName:
879         type: string
880         description: identity of the service
881     title: ServiceRegistrationInfo
882   ServiceStatus:
883     type: object
884     properties:
885       callbackUrl:
886         type: string
887         description: callback for notifying of RIC synchronization
888       keepAliveIntervalSeconds:
889         type: integer
890         format: int64
891         description: policy keep alive timeout
892       serviceName:
893         type: string
894         description: identity of the service
895       timeSinceLastActivitySeconds:
896         type: integer
897         format: int64
898         description: time since last invocation by the service
899     title: ServiceStatus