Add generation of API yaml file
[nonrtric.git] / enrichment-coordinator-service / api / ecs-api.yaml
1 openapi: 3.0.1
2 info:
3   title: Enrichment Data service
4   description: This page lists all the rest apis for the service.
5   version: "1.0"
6 servers:
7 - url: //localhost:38585/
8 tags:
9 - name: A1-EI (enrichment information)
10   description: Consumer Controller
11 - name: Consumer Callbacks
12   description: Consumer Simulator Controller
13 - name: Enrichment Data Producer API
14   description: Producer Controller
15 - name: Producer Callbacks
16   description: Producer Simulator Controller
17 - name: Service status
18   description: Status Controller
19 paths:
20   /producer_simulator/ei_job:
21     post:
22       tags:
23       - Producer Callbacks
24       summary: Callback for EI job creation
25       operationId: jobCreatedCallbackUsingPOST
26       requestBody:
27         description: request
28         content:
29           application/json:
30             schema:
31               $ref: '#/components/schemas/producer_ei_job_request'
32         required: true
33       responses:
34         200:
35           description: OK
36           content: {}
37         201:
38           description: Created
39           content: {}
40         401:
41           description: Unauthorized
42           content: {}
43         403:
44           description: Forbidden
45           content: {}
46         404:
47           description: Not Found
48           content: {}
49       deprecated: false
50   /A1-EI/v1/eitypes/{eiTypeId}:
51     get:
52       tags:
53       - A1-EI (enrichment information)
54       summary: Individual EI type
55       operationId: getEiTypeUsingGET
56       parameters:
57       - name: eiTypeId
58         in: path
59         description: eiTypeId
60         required: true
61         schema:
62           type: string
63       responses:
64         200:
65           description: EI type
66           content:
67             application/json:
68               schema:
69                 $ref: '#/components/schemas/EiTypeObject'
70         401:
71           description: Unauthorized
72           content: {}
73         403:
74           description: Forbidden
75           content: {}
76         404:
77           description: Enrichment Information type is not found
78           content:
79             application/json:
80               schema:
81                 $ref: '#/components/schemas/ProblemDetails'
82       deprecated: false
83   /consumer_simulator/eijobs/{eiJobId}/status:
84     post:
85       tags:
86       - Consumer Callbacks
87       summary: Callback for EI job status
88       operationId: jobStatusCallbackUsingPOST
89       parameters:
90       - name: eiJobId
91         in: path
92         description: eiJobId
93         required: true
94         schema:
95           type: string
96       requestBody:
97         description: status
98         content:
99           application/json:
100             schema:
101               $ref: '#/components/schemas/EiJobStatusObject'
102         required: true
103       responses:
104         200:
105           description: OK
106           content: {}
107         201:
108           description: Created
109           content: {}
110         401:
111           description: Unauthorized
112           content: {}
113         403:
114           description: Forbidden
115           content: {}
116         404:
117           description: Not Found
118           content: {}
119       deprecated: false
120   /ei-producer/v1/eitypes:
121     get:
122       tags:
123       - Enrichment Data Producer API
124       summary: EI type identifiers
125       operationId: getEiTypeIdentifiersUsingGET_1
126       responses:
127         200:
128           description: EI type identifiers
129           content:
130             application/json:
131               schema:
132                 type: array
133                 items:
134                   type: string
135         401:
136           description: Unauthorized
137           content: {}
138         403:
139           description: Forbidden
140           content: {}
141         404:
142           description: Not Found
143           content: {}
144       deprecated: false
145   /A1-EI/v1/eitypes:
146     get:
147       tags:
148       - A1-EI (enrichment information)
149       summary: EI type identifiers
150       operationId: getEiTypeIdentifiersUsingGET
151       responses:
152         200:
153           description: EI type identifiers
154           content:
155             application/json:
156               schema:
157                 type: array
158                 items:
159                   type: string
160         401:
161           description: Unauthorized
162           content: {}
163         403:
164           description: Forbidden
165           content: {}
166         404:
167           description: Not Found
168           content: {}
169       deprecated: false
170   /ei-producer/v1/eiproducers/{eiProducerId}/status:
171     get:
172       tags:
173       - Enrichment Data Producer API
174       summary: EI producer status
175       operationId: getEiProducerStatusUsingGET
176       parameters:
177       - name: eiProducerId
178         in: path
179         description: eiProducerId
180         required: true
181         schema:
182           type: string
183       responses:
184         200:
185           description: EI jobs
186           content:
187             application/json:
188               schema:
189                 $ref: '#/components/schemas/producer_status'
190         401:
191           description: Unauthorized
192           content: {}
193         403:
194           description: Forbidden
195           content: {}
196         404:
197           description: Enrichment Information producer is not found
198           content:
199             application/json:
200               schema:
201                 $ref: '#/components/schemas/ProblemDetails'
202       deprecated: false
203   /producer_simulator/ei_job/{eiJobId}:
204     delete:
205       tags:
206       - Producer Callbacks
207       summary: Callback for EI job deletion
208       operationId: jobDeletedCallbackUsingDELETE
209       parameters:
210       - name: eiJobId
211         in: path
212         description: eiJobId
213         required: true
214         schema:
215           type: string
216       responses:
217         200:
218           description: OK
219           content: {}
220         204:
221           description: No Content
222           content: {}
223         401:
224           description: Unauthorized
225           content: {}
226         403:
227           description: Forbidden
228           content: {}
229       deprecated: false
230   /ei-producer/v1/eiproducers:
231     get:
232       tags:
233       - Enrichment Data Producer API
234       summary: EI producer identifiers
235       operationId: getEiProducerIdentifiersUsingGET
236       responses:
237         200:
238           description: EI producer identifiers
239           content:
240             application/json:
241               schema:
242                 type: array
243                 items:
244                   type: string
245         401:
246           description: Unauthorized
247           content: {}
248         403:
249           description: Forbidden
250           content: {}
251         404:
252           description: Not Found
253           content: {}
254       deprecated: false
255   /ei-producer/v1/eitypes/{eiTypeId}:
256     get:
257       tags:
258       - Enrichment Data Producer API
259       summary: Individual EI type
260       operationId: getEiTypeUsingGET_1
261       parameters:
262       - name: eiTypeId
263         in: path
264         description: eiTypeId
265         required: true
266         schema:
267           type: string
268       responses:
269         200:
270           description: EI type
271           content:
272             application/json:
273               schema:
274                 $ref: '#/components/schemas/producer_ei_type_info'
275         401:
276           description: Unauthorized
277           content: {}
278         403:
279           description: Forbidden
280           content: {}
281         404:
282           description: Enrichment Information type is not found
283           content:
284             application/json:
285               schema:
286                 $ref: '#/components/schemas/ProblemDetails'
287       deprecated: false
288   /status:
289     get:
290       tags:
291       - Service status
292       summary: Returns status and statistics of this service
293       operationId: getStatusUsingGET
294       responses:
295         200:
296           description: Service is living
297           content:
298             application/json:
299               schema:
300                 $ref: '#/components/schemas/status_info'
301         401:
302           description: Unauthorized
303           content: {}
304         403:
305           description: Forbidden
306           content: {}
307         404:
308           description: Not Found
309           content: {}
310       deprecated: false
311   /A1-EI/v1/eijobs/{eiJobId}:
312     get:
313       tags:
314       - A1-EI (enrichment information)
315       summary: Individual EI job
316       operationId: getIndividualEiJobUsingGET
317       parameters:
318       - name: eiJobId
319         in: path
320         description: eiJobId
321         required: true
322         schema:
323           type: string
324       responses:
325         200:
326           description: EI job
327           content:
328             application/json:
329               schema:
330                 $ref: '#/components/schemas/EiJobObject'
331         401:
332           description: Unauthorized
333           content: {}
334         403:
335           description: Forbidden
336           content: {}
337         404:
338           description: Enrichment Information job is not found
339           content:
340             application/json:
341               schema:
342                 $ref: '#/components/schemas/ProblemDetails'
343       deprecated: false
344     put:
345       tags:
346       - A1-EI (enrichment information)
347       summary: Individual EI job
348       operationId: putIndividualEiJobUsingPUT
349       parameters:
350       - name: eiJobId
351         in: path
352         description: eiJobId
353         required: true
354         schema:
355           type: string
356       requestBody:
357         description: eiJobObject
358         content:
359           application/json:
360             schema:
361               $ref: '#/components/schemas/EiJobObject'
362         required: true
363       responses:
364         200:
365           description: Job updated
366           content: {}
367         201:
368           description: Job created
369           content: {}
370         401:
371           description: Unauthorized
372           content: {}
373         403:
374           description: Forbidden
375           content: {}
376         404:
377           description: Enrichment Information type is not found
378           content:
379             application/json:
380               schema:
381                 $ref: '#/components/schemas/ProblemDetails'
382       deprecated: false
383     delete:
384       tags:
385       - A1-EI (enrichment information)
386       summary: Individual EI job
387       operationId: deleteIndividualEiJobUsingDELETE
388       parameters:
389       - name: eiJobId
390         in: path
391         description: eiJobId
392         required: true
393         schema:
394           type: string
395       responses:
396         200:
397           description: Not used
398           content: {}
399         204:
400           description: Job deleted
401           content: {}
402         401:
403           description: Unauthorized
404           content: {}
405         403:
406           description: Forbidden
407           content: {}
408         404:
409           description: Enrichment Information job is not found
410           content:
411             application/json:
412               schema:
413                 $ref: '#/components/schemas/ProblemDetails'
414       deprecated: false
415   /ei-producer/v1/eiproducers/{eiProducerId}:
416     get:
417       tags:
418       - Enrichment Data Producer API
419       summary: Individual EI producer
420       operationId: getEiProducerUsingGET
421       parameters:
422       - name: eiProducerId
423         in: path
424         description: eiProducerId
425         required: true
426         schema:
427           type: string
428       responses:
429         200:
430           description: EI jobs
431           content:
432             application/json:
433               schema:
434                 $ref: '#/components/schemas/producer_registration_info'
435         401:
436           description: Unauthorized
437           content: {}
438         403:
439           description: Forbidden
440           content: {}
441         404:
442           description: Enrichment Information producer is not found
443           content:
444             application/json:
445               schema:
446                 $ref: '#/components/schemas/ProblemDetails'
447       deprecated: false
448     put:
449       tags:
450       - Enrichment Data Producer API
451       summary: Individual EI producer
452       operationId: putEiProducerUsingPUT
453       parameters:
454       - name: eiProducerId
455         in: path
456         description: eiProducerId
457         required: true
458         schema:
459           type: string
460       requestBody:
461         description: registrationInfo
462         content:
463           application/json:
464             schema:
465               $ref: '#/components/schemas/producer_registration_info'
466         required: true
467       responses:
468         200:
469           description: Producer updated
470           content: {}
471         201:
472           description: Producer created
473           content: {}
474         401:
475           description: Unauthorized
476           content: {}
477         403:
478           description: Forbidden
479           content: {}
480         404:
481           description: Not Found
482           content: {}
483       deprecated: false
484     delete:
485       tags:
486       - Enrichment Data Producer API
487       summary: Individual EI producer
488       operationId: deleteEiProducerUsingDELETE
489       parameters:
490       - name: eiProducerId
491         in: path
492         description: eiProducerId
493         required: true
494         schema:
495           type: string
496       responses:
497         200:
498           description: Not used
499           content: {}
500         204:
501           description: Producer deleted
502           content: {}
503         401:
504           description: Unauthorized
505           content: {}
506         403:
507           description: Forbidden
508           content: {}
509         404:
510           description: Producer is not found
511           content:
512             application/json:
513               schema:
514                 $ref: '#/components/schemas/ProblemDetails'
515       deprecated: false
516   /producer_simulator/health_check:
517     get:
518       tags:
519       - Producer Callbacks
520       summary: Producer supervision
521       operationId: producerSupervisionUsingGET
522       responses:
523         200:
524           description: OK
525           content:
526             application/json:
527               schema:
528                 type: string
529         401:
530           description: Unauthorized
531           content: {}
532         403:
533           description: Forbidden
534           content: {}
535         404:
536           description: Not Found
537           content: {}
538       deprecated: false
539   /ei-producer/v1/eiproducers/{eiProducerId}/eijobs:
540     get:
541       tags:
542       - Enrichment Data Producer API
543       summary: EI job definitions
544       description: EI job definitions for one EI producer
545       operationId: getEiProducerJobsUsingGET
546       parameters:
547       - name: eiProducerId
548         in: path
549         description: eiProducerId
550         required: true
551         schema:
552           type: string
553       responses:
554         200:
555           description: EI jobs
556           content:
557             application/json:
558               schema:
559                 type: array
560                 items:
561                   $ref: '#/components/schemas/producer_ei_job_request'
562         401:
563           description: Unauthorized
564           content: {}
565         403:
566           description: Forbidden
567           content: {}
568         404:
569           description: Enrichment Information producer is not found
570           content:
571             application/json:
572               schema:
573                 $ref: '#/components/schemas/ProblemDetails'
574       deprecated: false
575   /A1-EI/v1/eijobs:
576     get:
577       tags:
578       - A1-EI (enrichment information)
579       summary: EI job identifiers
580       description: query for EI job identifiers
581       operationId: getEiJobIdsUsingGET
582       parameters:
583       - name: eiTypeId
584         in: query
585         description: selects EI jobs of matching EI type
586         allowEmptyValue: false
587         schema:
588           type: string
589       - name: owner
590         in: query
591         description: selects EI jobs for one EI job owner
592         allowEmptyValue: false
593         schema:
594           type: string
595       responses:
596         200:
597           description: EI job identifiers
598           content:
599             application/json:
600               schema:
601                 type: array
602                 items:
603                   type: string
604         401:
605           description: Unauthorized
606           content: {}
607         403:
608           description: Forbidden
609           content: {}
610         404:
611           description: Enrichment Information type is not found
612           content:
613             application/json:
614               schema:
615                 $ref: '#/components/schemas/ProblemDetails'
616       deprecated: false
617   /A1-EI/v1/eijobs/{eiJobId}/status:
618     get:
619       tags:
620       - A1-EI (enrichment information)
621       summary: EI job status
622       operationId: getEiJobStatusUsingGET
623       parameters:
624       - name: eiJobId
625         in: path
626         description: eiJobId
627         required: true
628         schema:
629           type: string
630       responses:
631         200:
632           description: EI job status
633           content:
634             application/json:
635               schema:
636                 $ref: '#/components/schemas/EiJobStatusObject'
637         401:
638           description: Unauthorized
639           content: {}
640         403:
641           description: Forbidden
642           content: {}
643         404:
644           description: Enrichment Information job is not found
645           content:
646             application/json:
647               schema:
648                 $ref: '#/components/schemas/ProblemDetails'
649       deprecated: false
650 components:
651   schemas:
652     producer_ei_job_request:
653       title: producer_ei_job_request
654       required:
655       - ei_job_identity
656       type: object
657       properties:
658         owner:
659           type: string
660           description: The owner of the job
661         ei_job_identity:
662           type: string
663           description: Idenitity of the EI job
664         ei_job_data:
665           type: object
666           properties: {}
667           description: Json for the job data
668         target_uri:
669           type: string
670           description: URI for the target of the EI
671         ei_type_identity:
672           type: string
673           description: Type idenitity for the job
674       description: The body of the EI producer callbacks for EI job creation and deletion
675     EiTypeObject:
676       title: EiTypeObject
677       type: object
678       description: Information for an EI type
679     producer_ei_type_registration_info:
680       title: producer_ei_type_registration_info
681       required:
682       - ei_type_identity
683       type: object
684       properties:
685         ei_type_identity:
686           type: string
687           description: EI type identity
688         ei_job_data_schema:
689           type: object
690           properties: {}
691           description: Json schema for the job data
692       description: Information for an EI type
693     status_info:
694       title: status_info
695       type: object
696       properties:
697         no_of_producers:
698           type: integer
699           description: Number of EI producers
700           format: int32
701         no_of_jobs:
702           type: integer
703           description: Number of EI jobs
704           format: int32
705         no_of_types:
706           type: integer
707           description: Number of EI types
708           format: int32
709         status:
710           type: string
711           description: status text
712     Mono«ResponseEntity«object»»:
713       title: Mono«ResponseEntity«object»»
714       type: object
715     producer_ei_type_info:
716       title: producer_ei_type_info
717       type: object
718       properties:
719         ei_producer_ids:
720           type: array
721           description: Registered producers
722           items:
723             type: string
724         ei_job_data_schema:
725           type: object
726           properties: {}
727           description: Json schema for the job data
728       description: Information for an EI type
729     producer_registration_info:
730       title: producer_registration_info
731       required:
732       - ei_job_callback_url
733       - ei_producer_supervision_callback_url
734       - supported_ei_types
735       type: object
736       properties:
737         supported_ei_types:
738           type: array
739           description: Supported EI types
740           items:
741             $ref: '#/components/schemas/producer_ei_type_registration_info'
742         ei_producer_supervision_callback_url:
743           type: string
744           description: callback for producer supervision
745         ei_job_callback_url:
746           type: string
747           description: callback for EI job
748       description: Information for an EI producer
749     producer_status:
750       title: producer_status
751       required:
752       - operational_state
753       type: object
754       properties:
755         operational_state:
756           type: string
757           description: |-
758             Operational state, values:
759             ENABLED: TBD
760             DISABLED: TBD.
761           enum:
762           - ENABLED
763           - DISABLED
764       description: Status for an EI Producer
765     ProblemDetails:
766       title: ProblemDetails
767       type: object
768       properties:
769         detail:
770           type: string
771           description: A human-readable explanation specific to this occurrence of
772             the problem.
773           example: EI job type not found
774         status:
775           type: integer
776           description: The HTTP status code generated by the origin server for this
777             occurrence of the problem.
778           format: int32
779           example: 404
780       description: A problem detail to carry details in a HTTP response according
781         to RFC 7807
782     Void:
783       title: Void
784       type: object
785       description: Void/empty
786     EiJobStatusObject:
787       title: EiJobStatusObject
788       required:
789       - eiJobStatus
790       type: object
791       properties:
792         eiJobStatus:
793           type: string
794           description: |-
795             values:
796             ENABLED: the A1-EI producer is able to deliver EI result for the EI job
797             DISABLED: the A1-EI producer is unable to deliver EI result for the EI job
798           enum:
799           - ENABLED
800           - DISABLED
801       description: Status for an EI job
802     EiJobObject:
803       title: EiJobObject
804       required:
805       - eiTypeId
806       - jobDefinition
807       - jobOwner
808       - jobResultUri
809       type: object
810       properties:
811         eiTypeId:
812           type: string
813           description: EI type Idenitifier of the EI job
814         jobResultUri:
815           type: string
816           description: The target URI of the EI data
817         jobOwner:
818           type: string
819           description: Identity of the owner of the job
820         jobStatusNotificationUri:
821           type: string
822           description: The target of EI job status notifications
823         jobDefinition:
824           type: object
825           properties: {}
826           description: EI type specific job data
827       description: Information for an Enrichment Information Job