Merge "Add unit tests for AsyncRestClient"
[nonrtric.git] / policy-agent / docs / api.yaml
1 swagger: '2.0'
2 info:
3   description: This page lists all the rest apis for Policy server.
4   version: '1.0'
5   title: Policy server
6 host: 'localhost:8081'
7 basePath: /
8 tags:
9   - name: operation-handler
10     description: Operation Handler
11   - name: policy-controller
12     description: Policy Controller
13   - name: ric-repository-controller
14     description: Ric Repository Controller
15   - name: service-controller
16     description: Service Controller
17   - name: status-controller
18     description: Status Controller
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         - policy-controller
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: Not Found
365       deprecated: false
366   /policy:
367     get:
368       tags:
369         - policy-controller
370       summary: Returns a policy configuration
371       operationId: getPolicyUsingGET
372       produces:
373         - '*/*'
374       parameters:
375         - name: instance
376           in: query
377           description: instance
378           required: true
379           type: string
380       responses:
381         '200':
382           description: Policy found
383           schema:
384             type: object
385         '204':
386           description: Policy is not found
387           schema:
388             type: string
389         '401':
390           description: Unauthorized
391         '403':
392           description: Forbidden
393         '404':
394           description: Not Found
395       deprecated: false
396     put:
397       tags:
398         - policy-controller
399       summary: Put a policy
400       operationId: putPolicyUsingPUT
401       consumes:
402         - application/json
403       produces:
404         - '*/*'
405       parameters:
406         - name: instance
407           in: query
408           description: instance
409           required: true
410           type: string
411         - in: body
412           name: jsonBody
413           description: jsonBody
414           required: true
415           schema:
416             type: object
417         - name: ric
418           in: query
419           description: ric
420           required: true
421           type: string
422         - name: service
423           in: query
424           description: service
425           required: true
426           type: string
427         - name: type
428           in: query
429           description: type
430           required: true
431           type: string
432       responses:
433         '200':
434           description: Policy created or updated
435           schema:
436             type: string
437         '201':
438           description: Created
439         '401':
440           description: Unauthorized
441         '403':
442           description: Forbidden
443         '404':
444           description: Not Found
445       deprecated: false
446     delete:
447       tags:
448         - policy-controller
449       summary: Delete a policy
450       operationId: deletePolicyUsingDELETE
451       produces:
452         - '*/*'
453       parameters:
454         - name: instance
455           in: query
456           description: instance
457           required: true
458           type: string
459       responses:
460         '200':
461           description: OK
462           schema:
463             type: object
464         '204':
465           description: Policy deleted
466           schema:
467             type: object
468         '401':
469           description: Unauthorized
470         '403':
471           description: Forbidden
472       deprecated: false
473   /policy_schema:
474     get:
475       tags:
476         - policy-controller
477       summary: Returns one policy type schema definition
478       operationId: getPolicySchemaUsingGET
479       produces:
480         - '*/*'
481       parameters:
482         - name: id
483           in: query
484           description: id
485           required: true
486           type: string
487       responses:
488         '200':
489           description: Policy schema
490           schema:
491             type: object
492         '401':
493           description: Unauthorized
494         '403':
495           description: Forbidden
496         '404':
497           description: Not Found
498       deprecated: false
499   /policy_schemas:
500     get:
501       tags:
502         - policy-controller
503       summary: Returns policy type schema definitions
504       operationId: getPolicySchemasUsingGET
505       produces:
506         - '*/*'
507       parameters:
508         - name: ric
509           in: query
510           description: ric
511           required: false
512           type: string
513       responses:
514         '200':
515           description: Policy schemas
516           schema:
517             type: array
518             items:
519               type: object
520         '401':
521           description: Unauthorized
522         '403':
523           description: Forbidden
524         '404':
525           description: Not Found
526       deprecated: false
527   /policy_status:
528     get:
529       tags:
530         - policy-controller
531       summary: Returns a policy status
532       operationId: getPolicyStatusUsingGET
533       produces:
534         - '*/*'
535       parameters:
536         - name: instance
537           in: query
538           description: instance
539           required: true
540           type: string
541       responses:
542         '200':
543           description: Policy status
544           schema:
545             type: object
546         '204':
547           description: Policy is not found
548           schema:
549             type: string
550         '401':
551           description: Unauthorized
552         '403':
553           description: Forbidden
554         '404':
555           description: Not Found
556       deprecated: false
557   /policy_types:
558     get:
559       tags:
560         - policy-controller
561       summary: Query policy type names
562       operationId: getPolicyTypesUsingGET
563       produces:
564         - '*/*'
565       parameters:
566         - name: ric
567           in: query
568           description: ric
569           required: false
570           type: string
571       responses:
572         '200':
573           description: Policy type names
574           schema:
575             type: array
576             items:
577               type: string
578         '401':
579           description: Unauthorized
580         '403':
581           description: Forbidden
582         '404':
583           description: Not Found
584       deprecated: false
585   /ric:
586     get:
587       tags:
588         - ric-repository-controller
589       summary: Returns the name of a RIC managing one Mananged Element
590       operationId: getRicUsingGET
591       produces:
592         - '*/*'
593       parameters:
594         - name: managedElementId
595           in: query
596           description: managedElementId
597           required: false
598           type: string
599       responses:
600         '200':
601           description: RIC is fond
602           schema:
603             type: string
604         '401':
605           description: Unauthorized
606         '403':
607           description: Forbidden
608         '404':
609           description: RIC is not fond
610           schema:
611             type: string
612       deprecated: false
613   /rics:
614     get:
615       tags:
616         - ric-repository-controller
617       summary: Query NearRT RIC information
618       operationId: getRicsUsingGET
619       produces:
620         - '*/*'
621       parameters:
622         - name: policyType
623           in: query
624           description: policyType
625           required: false
626           type: string
627       responses:
628         '200':
629           description: OK
630           schema:
631             type: array
632             items:
633               $ref: '#/definitions/RicInfo'
634         '401':
635           description: Unauthorized
636         '403':
637           description: Forbidden
638         '404':
639           description: Not Found
640       deprecated: false
641   /service:
642     put:
643       tags:
644         - service-controller
645       summary: Register a service
646       operationId: putServiceUsingPUT
647       consumes:
648         - application/json
649       produces:
650         - '*/*'
651       parameters:
652         - in: body
653           name: registrationInfo
654           description: registrationInfo
655           required: true
656           schema:
657             $ref: '#/definitions/ServiceRegistrationInfo'
658       responses:
659         '200':
660           description: OK
661           schema:
662             type: string
663         '201':
664           description: Created
665         '401':
666           description: Unauthorized
667         '403':
668           description: Forbidden
669         '404':
670           description: Not Found
671       deprecated: false
672   /services:
673     get:
674       tags:
675         - service-controller
676       summary: Returns service information
677       operationId: getServicesUsingGET
678       produces:
679         - '*/*'
680       parameters:
681         - name: name
682           in: query
683           description: name
684           required: false
685           type: string
686       responses:
687         '200':
688           description: OK
689           schema:
690             type: array
691             items:
692               $ref: '#/definitions/ServiceStatus'
693         '401':
694           description: Unauthorized
695         '403':
696           description: Forbidden
697         '404':
698           description: Not Found
699       deprecated: false
700     delete:
701       tags:
702         - service-controller
703       summary: Delete a service
704       operationId: deleteServiceUsingDELETE
705       produces:
706         - '*/*'
707       parameters:
708         - name: serviceName
709           in: query
710           description: serviceName
711           required: true
712           type: string
713       responses:
714         '200':
715           description: OK
716           schema:
717             type: string
718         '204':
719           description: No Content
720         '401':
721           description: Unauthorized
722         '403':
723           description: Forbidden
724       deprecated: false
725   /services/keepalive:
726     post:
727       tags:
728         - service-controller
729       summary: Keep the poilicies alive for a service
730       operationId: keepAliveServiceUsingPOST
731       consumes:
732         - application/json
733       produces:
734         - '*/*'
735       parameters:
736         - name: serviceName
737           in: query
738           description: serviceName
739           required: true
740           type: string
741       responses:
742         '200':
743           description: Policies timeout supervision refreshed
744           schema:
745             type: string
746         '201':
747           description: Created
748         '401':
749           description: Unauthorized
750         '403':
751           description: Forbidden
752         '404':
753           description: 'The service is not found, needs re-registration'
754       deprecated: false
755   /status:
756     get:
757       tags:
758         - status-controller
759       summary: Returns status and statistics of this service
760       operationId: getStatusUsingGET
761       produces:
762         - '*/*'
763       responses:
764         '200':
765           description: Service is living
766           schema:
767             type: string
768         '401':
769           description: Unauthorized
770         '403':
771           description: Forbidden
772         '404':
773           description: Not Found
774       deprecated: false
775 definitions:
776   Link:
777     type: object
778     properties:
779       href:
780         type: string
781       templated:
782         type: boolean
783     title: Link
784   'Map«string,Link»':
785     type: object
786     title: 'Map«string,Link»'
787     additionalProperties:
788       $ref: '#/definitions/Link'
789   Mono«ResponseEntity«Void»»:
790     type: object
791     title: Mono«ResponseEntity«Void»»
792   Mono«ResponseEntity«string»»:
793     type: object
794     title: Mono«ResponseEntity«string»»
795   PolicyInfo:
796     type: object
797     properties:
798       id:
799         type: string
800         description: identity of the policy
801       json:
802         type: object
803         description: the configuration of the policy
804       lastModified:
805         type: string
806         description: 'timestamp, last modification time'
807       ric:
808         type: string
809         description: identity the target NearRT RIC
810       service:
811         type: string
812         description: the name of the service owning the policy
813       type:
814         type: string
815         description: name of the policy type
816     title: PolicyInfo
817   RicInfo:
818     type: object
819     properties:
820       managedElementIds:
821         type: array
822         description: O1 identities for managed entities
823         items:
824           type: string
825       name:
826         type: string
827         description: identity of the ric
828       policyTypes:
829         type: array
830         description: supported policy types
831         items:
832           type: string
833     title: RicInfo
834   ServiceRegistrationInfo:
835     type: object
836     properties:
837       callbackUrl:
838         type: string
839         description: callback for notifying of RIC recovery
840       keepAliveIntervalSeconds:
841         type: integer
842         format: int64
843         description: keep alive interval for policies owned by the service. 0 means no timeout supervision. Polcies that are not refreshed within this time are removed
844       serviceName:
845         type: string
846         description: identity of the service
847     title: ServiceRegistrationInfo
848   ServiceStatus:
849     type: object
850     properties:
851       keepAliveIntervalSeconds:
852         type: integer
853         format: int64
854         description: policy keep alive timeout
855       serviceName:
856         type: string
857         description: identity of the service
858       timeSincePingSeconds:
859         type: integer
860         format: int64
861         description: time since last invocation by the service
862     title: ServiceStatus
863