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