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