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