blob: ac49e5a8f00fad9dc57198ca7e70769476e75f76 [file] [log] [blame]
elinuxhenrik7a09fbb2020-12-04 16:51:19 +01001openapi: 3.0.1
2info:
3 title: Enrichment Data service
4 description: This page lists all the rest apis for the service.
5 version: "1.0"
6servers:
PatrikBuhr1da5c882020-12-07 15:15:08 +01007- url: /
elinuxhenrik7a09fbb2020-12-04 16:51:19 +01008tags:
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
19paths:
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
650components:
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