03de106abfcf5a8d096fa2bcc86e0c4c584d95dd
[nonrtric.git] / information-coordinator-service / api / ics-api.yaml
1 openapi: 3.0.1
2 info:
3   title: Data management and exposure
4   description: <h1>API documentation</h1><h2>General</h2><p>  The service is mainly
5     a broker between data producers and data consumers. A data producer has the ability
6     to produce one or several types of data (Information Type). One type of data can
7     be produced by zero to many producers. <br /><br />A data consumer can have several
8     active data subscriptions (Information Job). One Information Job consists of the
9     type of data to produce and additional parameters for filtering of the data. These
10     parameters are different for different data types.</p><h2>APIs provided by the
11     service</h2><h4>A1-EI</h4><p>  This API is between Near-RT RIC and the Non-RT
12     RIC.  The Near-RT RIC is a data consumer, which creates Information Jobs to subscribe
13     for data.  In this context, the information is referred to as 'Enrichment Information',
14     EI.</p><h4>Data producer API</h4><p>  This API is provided by the Non-RT RIC platform
15     and is intended to be part of the O-RAN R1 interface.  The API is for use by different
16     kinds of data producers and provides support for:<ul><li>Registry of supported
17     information types and which parameters needed to setup a subscription.</li><li>Registry
18     of existing data producers.</li><li>Callback API provided by producers to setup
19     subscriptions.</li></ul></p><h4>Data consumer API</h4><p>  This API is provided
20     by the Non-RT RIC platform and is intended to be part of the O-RAN R1 interface.  The
21     API is for use by different kinds of data consumers and provides support for:<ul><li>Querying
22     of available types of data to consume.</li><li>Management of data subscription
23     jobs</li><li>Optional callback API provided by consumers to get notification on
24     added and removed information types.</li></ul></p><h4>Service status</h4><p>  This
25     API provides a means to monitor the health of this service.</p>
26   license:
27     name: Copyright (C) 2020 Nordix Foundation. Licensed under the Apache License.
28     url: http://www.apache.org/licenses/LICENSE-2.0
29   version: "1.0"
30 servers:
31 - url: /
32 tags:
33 - name: A1-EI (registration)
34   description: Data consumer EI job registration
35 - name: A1-EI (callbacks)
36   description: Data consumer EI job status callbacks
37 - name: Data producer (callbacks)
38   description: API implemented by data producers
39 - name: Data producer (registration)
40   description: API for data producers
41 - name: Service status
42   description: API for monitoring of the service
43 - name: Data consumer
44   description: API for data consumers
45 - name: Actuator
46   description: Monitor and interact
47   externalDocs:
48     description: Spring Boot Actuator Web API Documentation
49     url: https://docs.spring.io/spring-boot/docs/current/actuator-api/html/
50 paths:
51   /example_dataproducer/info_job/{infoJobId}:
52     delete:
53       tags:
54       - Data producer (callbacks)
55       summary: Callback for Information Job deletion
56       description: The call is invoked to terminate a data subscription. The endpoint
57         is provided by the Information Producer.
58       operationId: jobDeletedCallback
59       parameters:
60       - name: infoJobId
61         in: path
62         required: true
63         style: simple
64         explode: false
65         schema:
66           type: string
67       responses:
68         200:
69           description: OK
70           content:
71             application/json:
72               schema:
73                 $ref: '#/components/schemas/Void'
74   /data-producer/v1/info-types:
75     get:
76       tags:
77       - Data producer (registration)
78       summary: Info Type identifiers
79       operationId: getInfoTypdentifiers
80       responses:
81         200:
82           description: Info Type identifiers
83           content:
84             application/json:
85               schema:
86                 type: array
87                 items:
88                   type: string
89   /A1-EI/v1/eitypes/{eiTypeId}:
90     get:
91       tags:
92       - A1-EI (registration)
93       summary: Individual EI type
94       operationId: getEiType
95       parameters:
96       - name: eiTypeId
97         in: path
98         required: true
99         style: simple
100         explode: false
101         schema:
102           type: string
103       responses:
104         200:
105           description: EI type
106           content:
107             application/json:
108               schema:
109                 $ref: '#/components/schemas/EiTypeObject'
110         404:
111           description: Enrichment Information type is not found
112           content:
113             application/json:
114               schema:
115                 $ref: '#/components/schemas/ProblemDetails'
116   /actuator/threaddump:
117     get:
118       tags:
119       - Actuator
120       summary: Actuator web endpoint 'threaddump'
121       operationId: handle_2_1_3
122       responses:
123         200:
124           description: OK
125           content:
126             '*/*':
127               schema:
128                 type: object
129   /example_dataproducer/info_job:
130     post:
131       tags:
132       - Data producer (callbacks)
133       summary: Callback for Information Job creation/modification
134       description: The call is invoked to activate or to modify a data subscription.
135         The endpoint is provided by the Information Producer.
136       operationId: jobCreatedCallback
137       requestBody:
138         content:
139           application/json:
140             schema:
141               $ref: '#/components/schemas/producer_info_job_request'
142         required: true
143       responses:
144         200:
145           description: OK
146           content:
147             application/json:
148               schema:
149                 $ref: '#/components/schemas/Void'
150   /data-producer/v1/info-types/{infoTypeId}:
151     get:
152       tags:
153       - Data producer (registration)
154       summary: Individual Information Type
155       operationId: getInfoType
156       parameters:
157       - name: infoTypeId
158         in: path
159         required: true
160         style: simple
161         explode: false
162         schema:
163           type: string
164       responses:
165         200:
166           description: Info Type
167           content:
168             application/json:
169               schema:
170                 $ref: '#/components/schemas/producer_info_type_info'
171         404:
172           description: Information type is not found
173           content:
174             application/json:
175               schema:
176                 $ref: '#/components/schemas/ProblemDetails'
177     put:
178       tags:
179       - Data producer (registration)
180       summary: Individual Information Type
181       operationId: putInfoType
182       parameters:
183       - name: infoTypeId
184         in: path
185         required: true
186         style: simple
187         explode: false
188         schema:
189           type: string
190       requestBody:
191         content:
192           application/json:
193             schema:
194               $ref: '#/components/schemas/producer_info_type_info'
195         required: true
196       responses:
197         200:
198           description: Type updated
199           content:
200             application/json:
201               schema:
202                 $ref: '#/components/schemas/Void'
203         201:
204           description: Type created
205           content:
206             application/json:
207               schema:
208                 $ref: '#/components/schemas/Void'
209         400:
210           description: Input validation failed
211           content:
212             application/json:
213               schema:
214                 $ref: '#/components/schemas/ProblemDetails'
215     delete:
216       tags:
217       - Data producer (registration)
218       summary: Individual Information Type
219       operationId: deleteInfoType
220       parameters:
221       - name: infoTypeId
222         in: path
223         required: true
224         style: simple
225         explode: false
226         schema:
227           type: string
228       responses:
229         200:
230           description: Not used
231           content:
232             application/json:
233               schema:
234                 $ref: '#/components/schemas/Void'
235         204:
236           description: Producer deleted
237           content:
238             application/json:
239               schema:
240                 $ref: '#/components/schemas/Void'
241         404:
242           description: Information type is not found
243           content:
244             application/json:
245               schema:
246                 $ref: '#/components/schemas/ProblemDetails'
247         409:
248           description: The Information type has one or several active producers
249           content:
250             application/json:
251               schema:
252                 $ref: '#/components/schemas/ProblemDetails'
253   /data-consumer/v1/info-type-subscription/{subscriptionId}:
254     get:
255       tags:
256       - Data consumer
257       summary: Individual subscription for information types (registration/deregistration)
258       operationId: getIndividualTypeSubscription
259       parameters:
260       - name: subscriptionId
261         in: path
262         required: true
263         style: simple
264         explode: false
265         schema:
266           type: string
267       responses:
268         200:
269           description: Type subscription
270           content:
271             application/json:
272               schema:
273                 $ref: '#/components/schemas/consumer_type_subscription_info'
274         404:
275           description: Subscription is not found
276           content:
277             application/json:
278               schema:
279                 $ref: '#/components/schemas/ProblemDetails'
280     put:
281       tags:
282       - Data consumer
283       summary: Individual subscription for information types (registration/deregistration)
284       description: This service operation is used to subscribe to notifications for
285         changes in the availability of data types.
286       operationId: putIndividualTypeSubscription
287       parameters:
288       - name: subscriptionId
289         in: path
290         required: true
291         style: simple
292         explode: false
293         schema:
294           type: string
295       requestBody:
296         content:
297           application/json:
298             schema:
299               $ref: '#/components/schemas/consumer_type_subscription_info'
300         required: true
301       responses:
302         200:
303           description: Subscription updated
304           content:
305             application/json:
306               schema:
307                 $ref: '#/components/schemas/Void'
308         201:
309           description: Subscription created
310           content:
311             application/json:
312               schema:
313                 $ref: '#/components/schemas/Void'
314     delete:
315       tags:
316       - Data consumer
317       summary: Individual subscription for information types (registration/deregistration)
318       operationId: deleteIndividualTypeSubscription
319       parameters:
320       - name: subscriptionId
321         in: path
322         required: true
323         style: simple
324         explode: false
325         schema:
326           type: string
327       responses:
328         200:
329           description: Not used
330           content:
331             application/json:
332               schema:
333                 $ref: '#/components/schemas/Void'
334         204:
335           description: Subscription deleted
336           content:
337             application/json:
338               schema:
339                 $ref: '#/components/schemas/Void'
340         404:
341           description: Subscription is not found
342           content:
343             application/json:
344               schema:
345                 $ref: '#/components/schemas/ProblemDetails'
346   /actuator/loggers:
347     get:
348       tags:
349       - Actuator
350       summary: Actuator web endpoint 'loggers'
351       operationId: handle_6
352       responses:
353         200:
354           description: OK
355           content:
356             '*/*':
357               schema:
358                 type: object
359   /actuator/health/**:
360     get:
361       tags:
362       - Actuator
363       summary: Actuator web endpoint 'health-path'
364       operationId: handle_12
365       responses:
366         200:
367           description: OK
368           content:
369             '*/*':
370               schema:
371                 type: object
372   /data-consumer/v1/info-types:
373     get:
374       tags:
375       - Data consumer
376       summary: Information type identifiers
377       operationId: getinfoTypeIdentifiers
378       responses:
379         200:
380           description: Information type identifiers
381           content:
382             application/json:
383               schema:
384                 type: array
385                 items:
386                   type: string
387   /actuator/metrics/{requiredMetricName}:
388     get:
389       tags:
390       - Actuator
391       summary: Actuator web endpoint 'metrics-requiredMetricName'
392       operationId: handle_5
393       parameters:
394       - name: requiredMetricName
395         in: path
396         required: true
397         style: simple
398         explode: false
399         schema:
400           type: string
401       responses:
402         200:
403           description: OK
404           content:
405             '*/*':
406               schema:
407                 type: object
408   /actuator:
409     get:
410       tags:
411       - Actuator
412       summary: Actuator root web endpoint
413       operationId: links_1
414       responses:
415         200:
416           description: OK
417           content:
418             '*/*':
419               schema:
420                 type: object
421                 additionalProperties:
422                   type: object
423                   additionalProperties:
424                     $ref: '#/components/schemas/Link'
425   /data-consumer/v1/info-jobs:
426     get:
427       tags:
428       - Data consumer
429       summary: Information Job identifiers
430       description: query for information job identifiers
431       operationId: getJobIds
432       parameters:
433       - name: infoTypeId
434         in: query
435         description: selects subscription jobs of matching information type
436         required: false
437         style: form
438         explode: true
439         schema:
440           type: string
441       - name: owner
442         in: query
443         description: selects result for one owner
444         required: false
445         style: form
446         explode: true
447         schema:
448           type: string
449       responses:
450         200:
451           description: Information information job identifiers
452           content:
453             application/json:
454               schema:
455                 type: array
456                 items:
457                   type: string
458         404:
459           description: Information type is not found
460           content:
461             application/json:
462               schema:
463                 $ref: '#/components/schemas/ProblemDetails'
464   /actuator/loggers/{name}:
465     get:
466       tags:
467       - Actuator
468       summary: Actuator web endpoint 'loggers-name'
469       operationId: handle_7
470       parameters:
471       - name: name
472         in: path
473         required: true
474         style: simple
475         explode: false
476         schema:
477           type: string
478       responses:
479         200:
480           description: OK
481           content:
482             '*/*':
483               schema:
484                 type: object
485     post:
486       tags:
487       - Actuator
488       summary: Actuator web endpoint 'loggers-name'
489       operationId: handle_0
490       parameters:
491       - name: name
492         in: path
493         required: true
494         style: simple
495         explode: false
496         schema:
497           type: string
498       responses:
499         200:
500           description: OK
501           content:
502             '*/*':
503               schema:
504                 type: object
505   /example_dataconsumer/info_jobs/{infoJobId}/status:
506     post:
507       tags:
508       - A1-EI (callbacks)
509       summary: Callback for changed Information Job status
510       description: The primitive is implemented by the data consumer and is invoked
511         when a Information Job status has been changed.
512       operationId: jobStatusCallback
513       parameters:
514       - name: infoJobId
515         in: path
516         required: true
517         style: simple
518         explode: false
519         schema:
520           type: string
521       requestBody:
522         content:
523           application/json:
524             schema:
525               $ref: '#/components/schemas/EiJobStatusObject'
526         required: true
527       responses:
528         200:
529           description: OK
530           content:
531             application/json:
532               schema:
533                 $ref: '#/components/schemas/Void'
534   /A1-EI/v1/eijobs/{eiJobId}/status:
535     get:
536       tags:
537       - A1-EI (registration)
538       summary: EI job status
539       operationId: getEiJobStatus_1
540       parameters:
541       - name: eiJobId
542         in: path
543         required: true
544         style: simple
545         explode: false
546         schema:
547           type: string
548       responses:
549         200:
550           description: EI job status
551           content:
552             application/json:
553               schema:
554                 $ref: '#/components/schemas/EiJobStatusObject'
555         404:
556           description: Enrichment Information job is not found
557           content:
558             application/json:
559               schema:
560                 $ref: '#/components/schemas/ProblemDetails'
561   /data-producer/v1/info-producers/{infoProducerId}/status:
562     get:
563       tags:
564       - Data producer (registration)
565       summary: Information producer status
566       operationId: getInfoProducerStatus
567       parameters:
568       - name: infoProducerId
569         in: path
570         required: true
571         style: simple
572         explode: false
573         schema:
574           type: string
575       responses:
576         200:
577           description: Information producer status
578           content:
579             application/json:
580               schema:
581                 $ref: '#/components/schemas/producer_status'
582         404:
583           description: Information producer is not found
584           content:
585             application/json:
586               schema:
587                 $ref: '#/components/schemas/ProblemDetails'
588   /data-consumer/v1/info-jobs/{infoJobId}/status:
589     get:
590       tags:
591       - Data consumer
592       summary: Job status
593       operationId: getEiJobStatus
594       parameters:
595       - name: infoJobId
596         in: path
597         required: true
598         style: simple
599         explode: false
600         schema:
601           type: string
602       responses:
603         200:
604           description: Information subscription job status
605           content:
606             application/json:
607               schema:
608                 $ref: '#/components/schemas/consumer_job_status'
609         404:
610           description: Information subscription job is not found
611           content:
612             application/json:
613               schema:
614                 $ref: '#/components/schemas/ProblemDetails'
615   /actuator/metrics:
616     get:
617       tags:
618       - Actuator
619       summary: Actuator web endpoint 'metrics'
620       operationId: handle_4
621       responses:
622         200:
623           description: OK
624           content:
625             '*/*':
626               schema:
627                 type: object
628   /actuator/info:
629     get:
630       tags:
631       - Actuator
632       summary: Actuator web endpoint 'info'
633       operationId: handle_9
634       responses:
635         200:
636           description: OK
637           content:
638             '*/*':
639               schema:
640                 type: object
641   /example_dataproducer/health_check:
642     get:
643       tags:
644       - Data producer (callbacks)
645       summary: Producer supervision
646       description: The endpoint is provided by the Information Producer and is used
647         for supervision of the producer.
648       operationId: producerSupervision
649       responses:
650         200:
651           description: The producer is OK
652           content:
653             application/json:
654               schema:
655                 type: string
656   /A1-EI/v1/eitypes:
657     get:
658       tags:
659       - A1-EI (registration)
660       summary: EI type identifiers
661       operationId: getEiTypeIdentifiers
662       responses:
663         200:
664           description: EI type identifiers
665           content:
666             application/json:
667               schema:
668                 type: array
669                 items:
670                   type: string
671   /data-producer/v1/info-producers/{infoProducerId}:
672     get:
673       tags:
674       - Data producer (registration)
675       summary: Individual Information Producer
676       operationId: getInfoProducer
677       parameters:
678       - name: infoProducerId
679         in: path
680         required: true
681         style: simple
682         explode: false
683         schema:
684           type: string
685       responses:
686         200:
687           description: Information producer
688           content:
689             application/json:
690               schema:
691                 $ref: '#/components/schemas/producer_registration_info'
692         404:
693           description: Information producer is not found
694           content:
695             application/json:
696               schema:
697                 $ref: '#/components/schemas/ProblemDetails'
698     put:
699       tags:
700       - Data producer (registration)
701       summary: Individual Information Producer
702       operationId: putInfoProducer
703       parameters:
704       - name: infoProducerId
705         in: path
706         required: true
707         style: simple
708         explode: false
709         schema:
710           type: string
711       requestBody:
712         content:
713           application/json:
714             schema:
715               $ref: '#/components/schemas/producer_registration_info'
716         required: true
717       responses:
718         200:
719           description: Producer updated
720           content:
721             application/json:
722               schema:
723                 $ref: '#/components/schemas/Void'
724         201:
725           description: Producer created
726           content:
727             application/json:
728               schema:
729                 $ref: '#/components/schemas/Void'
730         400:
731           description: Input validation failed
732           content:
733             application/json:
734               schema:
735                 $ref: '#/components/schemas/ProblemDetails'
736         404:
737           description: Producer type not found
738           content:
739             application/json:
740               schema:
741                 $ref: '#/components/schemas/ProblemDetails'
742     delete:
743       tags:
744       - Data producer (registration)
745       summary: Individual Information Producer
746       operationId: deleteInfoProducer
747       parameters:
748       - name: infoProducerId
749         in: path
750         required: true
751         style: simple
752         explode: false
753         schema:
754           type: string
755       responses:
756         200:
757           description: Not used
758           content:
759             application/json:
760               schema:
761                 $ref: '#/components/schemas/Void'
762         204:
763           description: Producer deleted
764           content:
765             application/json:
766               schema:
767                 $ref: '#/components/schemas/Void'
768         404:
769           description: Producer is not found
770           content:
771             application/json:
772               schema:
773                 $ref: '#/components/schemas/ProblemDetails'
774   /status:
775     get:
776       tags:
777       - Service status
778       summary: Returns status and statistics of this service
779       operationId: getStatus
780       responses:
781         200:
782           description: Service is living
783           content:
784             application/json:
785               schema:
786                 $ref: '#/components/schemas/service_status_info'
787   /data-consumer/v1/info-type-subscription:
788     get:
789       tags:
790       - Data consumer
791       summary: Information type subscription identifiers
792       description: query for information type subscription identifiers
793       operationId: getInfoTypeSubscriptions
794       parameters:
795       - name: owner
796         in: query
797         description: selects result for one owner
798         required: false
799         style: form
800         explode: true
801         schema:
802           type: string
803       responses:
804         200:
805           description: Information type subscription identifiers
806           content:
807             application/json:
808               schema:
809                 type: array
810                 items:
811                   type: string
812   /A1-EI/v1/eijobs/{eiJobId}:
813     get:
814       tags:
815       - A1-EI (registration)
816       summary: Individual EI job
817       operationId: getIndividualEiJob_1
818       parameters:
819       - name: eiJobId
820         in: path
821         required: true
822         style: simple
823         explode: false
824         schema:
825           type: string
826       responses:
827         200:
828           description: EI job
829           content:
830             application/json:
831               schema:
832                 $ref: '#/components/schemas/EiJobObject'
833         404:
834           description: Enrichment Information job is not found
835           content:
836             application/json:
837               schema:
838                 $ref: '#/components/schemas/ProblemDetails'
839     put:
840       tags:
841       - A1-EI (registration)
842       summary: Individual EI job
843       operationId: putIndividualEiJob
844       parameters:
845       - name: eiJobId
846         in: path
847         required: true
848         style: simple
849         explode: false
850         schema:
851           type: string
852       requestBody:
853         content:
854           application/json:
855             schema:
856               $ref: '#/components/schemas/EiJobObject'
857         required: true
858       responses:
859         200:
860           description: Job updated
861           content:
862             application/json:
863               schema:
864                 $ref: '#/components/schemas/Void'
865         201:
866           description: Job created
867           content:
868             application/json:
869               schema:
870                 $ref: '#/components/schemas/Void'
871         400:
872           description: Input validation failed
873           content:
874             application/json:
875               schema:
876                 $ref: '#/components/schemas/ProblemDetails'
877         404:
878           description: Enrichment Information type is not found
879           content:
880             application/json:
881               schema:
882                 $ref: '#/components/schemas/ProblemDetails'
883         409:
884           description: Cannot modify job type
885           content:
886             application/json:
887               schema:
888                 $ref: '#/components/schemas/ProblemDetails'
889     delete:
890       tags:
891       - A1-EI (registration)
892       summary: Individual EI job
893       operationId: deleteIndividualEiJob_1
894       parameters:
895       - name: eiJobId
896         in: path
897         required: true
898         style: simple
899         explode: false
900         schema:
901           type: string
902       responses:
903         200:
904           description: Not used
905           content:
906             application/json:
907               schema:
908                 $ref: '#/components/schemas/Void'
909         204:
910           description: Job deleted
911           content:
912             application/json:
913               schema:
914                 $ref: '#/components/schemas/Void'
915         404:
916           description: Enrichment Information job is not found
917           content:
918             application/json:
919               schema:
920                 $ref: '#/components/schemas/ProblemDetails'
921   /actuator/logfile:
922     get:
923       tags:
924       - Actuator
925       summary: Actuator web endpoint 'logfile'
926       operationId: handle_8
927       responses:
928         200:
929           description: OK
930           content:
931             '*/*':
932               schema:
933                 type: object
934   /data-consumer/v1/info-jobs/{infoJobId}:
935     get:
936       tags:
937       - Data consumer
938       summary: Individual data subscription job
939       operationId: getIndividualEiJob
940       parameters:
941       - name: infoJobId
942         in: path
943         required: true
944         style: simple
945         explode: false
946         schema:
947           type: string
948       responses:
949         200:
950           description: Information subscription job
951           content:
952             application/json:
953               schema:
954                 $ref: '#/components/schemas/consumer_job'
955         404:
956           description: Information subscription job is not found
957           content:
958             application/json:
959               schema:
960                 $ref: '#/components/schemas/ProblemDetails'
961     put:
962       tags:
963       - Data consumer
964       summary: Individual data subscription job
965       description: The job will be enabled when a producer is available
966       operationId: putIndividualInfoJob
967       parameters:
968       - name: infoJobId
969         in: path
970         required: true
971         style: simple
972         explode: false
973         schema:
974           type: string
975       - name: typeCheck
976         in: query
977         description: when true, a validation of that the type exists and that the
978           job matches the type schema.
979         required: false
980         style: form
981         explode: true
982         schema:
983           type: boolean
984           default: false
985       requestBody:
986         content:
987           application/json:
988             schema:
989               $ref: '#/components/schemas/consumer_job'
990         required: true
991       responses:
992         200:
993           description: Job updated
994           content:
995             application/json:
996               schema:
997                 $ref: '#/components/schemas/Void'
998         201:
999           description: Job created
1000           content:
1001             application/json:
1002               schema:
1003                 $ref: '#/components/schemas/Void'
1004         400:
1005           description: Input validation failed
1006           content:
1007             application/json:
1008               schema:
1009                 $ref: '#/components/schemas/ProblemDetails'
1010         404:
1011           description: Information type is not found
1012           content:
1013             application/json:
1014               schema:
1015                 $ref: '#/components/schemas/ProblemDetails'
1016         409:
1017           description: Cannot modify job type
1018           content:
1019             application/json:
1020               schema:
1021                 $ref: '#/components/schemas/ProblemDetails'
1022     delete:
1023       tags:
1024       - Data consumer
1025       summary: Individual data subscription job
1026       operationId: deleteIndividualEiJob
1027       parameters:
1028       - name: infoJobId
1029         in: path
1030         required: true
1031         style: simple
1032         explode: false
1033         schema:
1034           type: string
1035       responses:
1036         200:
1037           description: Not used
1038           content:
1039             application/json:
1040               schema:
1041                 $ref: '#/components/schemas/Void'
1042         204:
1043           description: Job deleted
1044           content:
1045             application/json:
1046               schema:
1047                 $ref: '#/components/schemas/Void'
1048         404:
1049           description: Information subscription job is not found
1050           content:
1051             application/json:
1052               schema:
1053                 $ref: '#/components/schemas/ProblemDetails'
1054   /data-producer/v1/info-producers:
1055     get:
1056       tags:
1057       - Data producer (registration)
1058       summary: Information producer identifiers
1059       operationId: getInfoProducerIdentifiers
1060       parameters:
1061       - name: info_type_id
1062         in: query
1063         description: If given, only the producers for the EI Data type is returned.
1064         required: false
1065         style: form
1066         explode: true
1067         schema:
1068           type: string
1069       responses:
1070         200:
1071           description: Information producer identifiers
1072           content:
1073             application/json:
1074               schema:
1075                 type: array
1076                 items:
1077                   type: string
1078   /data-consumer/v1/info-types/{infoTypeId}:
1079     get:
1080       tags:
1081       - Data consumer
1082       summary: Individual information type
1083       operationId: getInfoType_1
1084       parameters:
1085       - name: infoTypeId
1086         in: path
1087         required: true
1088         style: simple
1089         explode: false
1090         schema:
1091           type: string
1092       responses:
1093         200:
1094           description: Information type
1095           content:
1096             application/json:
1097               schema:
1098                 $ref: '#/components/schemas/consumer_information_type'
1099         404:
1100           description: Information type is not found
1101           content:
1102             application/json:
1103               schema:
1104                 $ref: '#/components/schemas/ProblemDetails'
1105   /actuator/health:
1106     get:
1107       tags:
1108       - Actuator
1109       summary: Actuator web endpoint 'health'
1110       operationId: handle_11
1111       responses:
1112         200:
1113           description: OK
1114           content:
1115             '*/*':
1116               schema:
1117                 type: object
1118   /A1-EI/v1/eijobs:
1119     get:
1120       tags:
1121       - A1-EI (registration)
1122       summary: EI job identifiers
1123       description: query for EI job identifiers
1124       operationId: getEiJobIds
1125       parameters:
1126       - name: eiTypeId
1127         in: query
1128         description: selects EI jobs of matching EI type
1129         required: false
1130         style: form
1131         explode: true
1132         schema:
1133           type: string
1134       - name: owner
1135         in: query
1136         description: selects EI jobs for one EI job owner
1137         required: false
1138         style: form
1139         explode: true
1140         schema:
1141           type: string
1142       responses:
1143         200:
1144           description: EI job identifiers
1145           content:
1146             application/json:
1147               schema:
1148                 type: array
1149                 items:
1150                   type: string
1151         404:
1152           description: Enrichment Information type is not found
1153           content:
1154             application/json:
1155               schema:
1156                 $ref: '#/components/schemas/ProblemDetails'
1157   /data-producer/v1/info-producers/{infoProducerId}/info-jobs:
1158     get:
1159       tags:
1160       - Data producer (registration)
1161       summary: Information Job definitions
1162       description: Information Job definitions for one Information Producer
1163       operationId: getInfoProducerJobs
1164       parameters:
1165       - name: infoProducerId
1166         in: path
1167         required: true
1168         style: simple
1169         explode: false
1170         schema:
1171           type: string
1172       responses:
1173         200:
1174           description: Information producer
1175           content:
1176             application/json:
1177               schema:
1178                 type: array
1179                 items:
1180                   $ref: '#/components/schemas/producer_info_job_request'
1181         404:
1182           description: Information producer is not found
1183           content:
1184             application/json:
1185               schema:
1186                 $ref: '#/components/schemas/ProblemDetails'
1187   /example_dataconsumer/info_type_status:
1188     post:
1189       tags:
1190       - Data consumer (callbacks)
1191       summary: Callback for changed Information type registration status
1192       description: The primitive is implemented by the data consumer and is invoked
1193         when a Information type status has been changed. <br/>Subscription are managed
1194         by primitives in 'Data consumer'
1195       operationId: typeStatusCallback
1196       requestBody:
1197         content:
1198           application/json:
1199             schema:
1200               $ref: '#/components/schemas/consumer_type_registration_info'
1201         required: true
1202       responses:
1203         200:
1204           description: OK
1205           content:
1206             application/json:
1207               schema:
1208                 $ref: '#/components/schemas/Void'
1209   /actuator/heapdump:
1210     get:
1211       tags:
1212       - Actuator
1213       summary: Actuator web endpoint 'heapdump'
1214       operationId: handle_10
1215       responses:
1216         200:
1217           description: OK
1218           content:
1219             '*/*':
1220               schema:
1221                 type: object
1222 components:
1223   schemas:
1224     consumer_information_type:
1225       required:
1226       - job_data_schema
1227       - no_of_producers
1228       - type_status
1229       type: object
1230       properties:
1231         no_of_producers:
1232           type: integer
1233           description: The number of registered producers for the type
1234           format: int32
1235         type_status:
1236           type: string
1237           description: 'Allowed values: <br/>ENABLED: one or several producers for
1238             the information type are available <br/>DISABLED: no producers for the
1239             information type are available'
1240           enum:
1241           - ENABLED
1242           - DISABLED
1243         job_data_schema:
1244           type: object
1245           description: Json schema for the job data
1246       description: Information for an Information type
1247     EiTypeObject:
1248       type: object
1249       description: Information for an EI type
1250     service_status_info:
1251       required:
1252       - no_of_jobs
1253       - no_of_producers
1254       - no_of_types
1255       - status
1256       type: object
1257       properties:
1258         no_of_producers:
1259           type: integer
1260           description: Number of Information Producers
1261           format: int32
1262         no_of_types:
1263           type: integer
1264           description: Number of Information Types
1265           format: int32
1266         no_of_jobs:
1267           type: integer
1268           description: Number of Information Jobs
1269           format: int32
1270         status:
1271           type: string
1272           description: status text
1273     producer_registration_info:
1274       required:
1275       - info_job_callback_url
1276       - info_producer_supervision_callback_url
1277       - supported_info_types
1278       type: object
1279       properties:
1280         info_producer_supervision_callback_url:
1281           type: string
1282           description: callback for producer supervision
1283         supported_info_types:
1284           type: array
1285           description: Supported Information Type IDs
1286           items:
1287             type: string
1288             description: Supported Information Type IDs
1289         info_job_callback_url:
1290           type: string
1291           description: callback for Information Job
1292       description: Information for an Information Producer
1293     consumer_type_registration_info:
1294       required:
1295       - info_type_id
1296       - job_data_schema
1297       - status
1298       type: object
1299       properties:
1300         info_type_id:
1301           type: string
1302           description: Information type identifier
1303         job_data_schema:
1304           type: object
1305           description: Json schema for the job data
1306         status:
1307           type: string
1308           description: 'Allowed values: <br/>REGISTERED: the information type has
1309             been registered <br/>DEREGISTERED: the information type has been removed'
1310           enum:
1311           - REGISTERED
1312           - DEREGISTERED
1313       description: Information for an Information type
1314     ProblemDetails:
1315       type: object
1316       properties:
1317         detail:
1318           type: string
1319           description: A human-readable explanation specific to this occurrence of
1320             the problem.
1321           example: Information Job type not found
1322         status:
1323           type: integer
1324           description: The HTTP status code generated by the origin server for this
1325             occurrence of the problem.
1326           format: int32
1327           example: 404
1328       description: A problem detail to carry details in a HTTP response according
1329         to RFC 7807
1330     EiJobStatusObject:
1331       required:
1332       - eiJobStatus
1333       type: object
1334       properties:
1335         eiJobStatus:
1336           type: string
1337           description: 'Allowed values for EI job status: <br/>ENABLED: the A1-EI
1338             producer is able to deliver EI result for the EI job <br/>DISABLED: the
1339             A1-EI producer is unable to deliver EI result for the EI job'
1340           enum:
1341           - ENABLED
1342           - DISABLED
1343       description: Status for an EI job
1344     consumer_job_status:
1345       required:
1346       - info_job_status
1347       - producers
1348       type: object
1349       properties:
1350         info_job_status:
1351           type: string
1352           description: 'Allowed values: <br/>ENABLED: the A1-Information producer
1353             is able to deliver result for the Information Job <br/>DISABLED: the A1-Information
1354             producer is unable to deliver result for the Information Job'
1355           enum:
1356           - ENABLED
1357           - DISABLED
1358         producers:
1359           type: array
1360           description: An array of all registered Information Producer Identifiers.
1361           items:
1362             type: string
1363             description: An array of all registered Information Producer Identifiers.
1364       description: Status for an Information Job
1365     EiJobObject:
1366       required:
1367       - eiTypeId
1368       - jobDefinition
1369       - jobOwner
1370       - jobResultUri
1371       type: object
1372       properties:
1373         eiTypeId:
1374           type: string
1375           description: EI type Idenitifier of the EI job
1376         jobResultUri:
1377           type: string
1378           description: The target URI of the EI data
1379         jobOwner:
1380           type: string
1381           description: Identity of the owner of the job
1382         statusNotificationUri:
1383           type: string
1384           description: The target of EI job status notifications
1385         jobDefinition:
1386           type: object
1387           description: EI type specific job data
1388       description: Information for an Enrichment Information Job
1389     producer_info_type_info:
1390       required:
1391       - info_job_data_schema
1392       type: object
1393       properties:
1394         info_type_information:
1395           type: object
1396           description: Type specific information for the information type
1397         info_job_data_schema:
1398           type: object
1399           description: Json schema for the job data
1400       description: Information for an Information Type
1401     producer_info_job_request:
1402       required:
1403       - info_job_identity
1404       type: object
1405       properties:
1406         owner:
1407           type: string
1408           description: The owner of the job
1409         last_updated:
1410           type: string
1411           description: The time when the job was last updated or created (ISO-8601)
1412         info_job_identity:
1413           type: string
1414           description: Identity of the Information Job
1415         target_uri:
1416           type: string
1417           description: URI for the target of the produced Information
1418         info_job_data:
1419           type: object
1420           description: Json for the job data
1421         info_type_identity:
1422           type: string
1423           description: Type identity for the job
1424       description: The body of the Information Producer callbacks for Information
1425         Job creation and deletion
1426     consumer_job:
1427       required:
1428       - info_type_id
1429       - job_definition
1430       - job_owner
1431       - job_result_uri
1432       type: object
1433       properties:
1434         info_type_id:
1435           type: string
1436           description: Information type Idenitifier of the subscription job
1437         job_result_uri:
1438           type: string
1439           description: The target URI of the subscribed information
1440         job_owner:
1441           type: string
1442           description: Identity of the owner of the job
1443         job_definition:
1444           type: object
1445           description: Information type specific job data
1446         status_notification_uri:
1447           type: string
1448           description: The target of Information subscription job status notifications
1449       description: Information for an Information Job
1450     producer_status:
1451       required:
1452       - operational_state
1453       type: object
1454       properties:
1455         operational_state:
1456           type: string
1457           description: Represents the operational states
1458           enum:
1459           - ENABLED
1460           - DISABLED
1461       description: Status for an Info Producer
1462     Void:
1463       type: object
1464       description: 'Void/empty '
1465     Link:
1466       type: object
1467       properties:
1468         templated:
1469           type: boolean
1470         href:
1471           type: string
1472     consumer_type_subscription_info:
1473       required:
1474       - owner
1475       - status_result_uri
1476       type: object
1477       properties:
1478         owner:
1479           type: string
1480           description: Identity of the owner of the subscription
1481         status_result_uri:
1482           type: string
1483           description: The target URI of the subscribed information
1484       description: Information for an information type subscription