Added Information consumer API
[nonrtric.git] / enrichment-coordinator-service / api / ecs-api.json
1 {
2     "components": {"schemas": {
3         "producer_ei_job_request": {
4             "description": "The body of the EI producer callbacks for EI job creation and deletion",
5             "type": "object",
6             "required": ["ei_job_identity"],
7             "properties": {
8                 "owner": {
9                     "description": "The owner of the job",
10                     "type": "string"
11                 },
12                 "ei_job_identity": {
13                     "description": "Idenitity of the EI job",
14                     "type": "string"
15                 },
16                 "last_updated": {
17                     "description": "The time when the job was last updated or created (ISO-8601)",
18                     "type": "string"
19                 },
20                 "ei_job_data": {
21                     "description": "Json for the job data",
22                     "type": "object"
23                 },
24                 "target_uri": {
25                     "description": "URI for the target of the EI",
26                     "type": "string"
27                 },
28                 "ei_type_identity": {
29                     "description": "Type idenitity for the job",
30                     "type": "string"
31                 }
32             }
33         },
34         "EiTypeObject": {
35             "description": "Information for an EI type",
36             "type": "object"
37         },
38         "status_info": {
39             "type": "object",
40             "required": [
41                 "no_of_jobs",
42                 "no_of_producers",
43                 "no_of_types",
44                 "status"
45             ],
46             "properties": {
47                 "no_of_producers": {
48                     "format": "int32",
49                     "description": "Number of EI producers",
50                     "type": "integer"
51                 },
52                 "no_of_types": {
53                     "format": "int32",
54                     "description": "Number of EI types",
55                     "type": "integer"
56                 },
57                 "no_of_jobs": {
58                     "format": "int32",
59                     "description": "Number of EI jobs",
60                     "type": "integer"
61                 },
62                 "status": {
63                     "description": "status text",
64                     "type": "string"
65                 }
66             }
67         },
68         "producer_ei_type_info": {
69             "description": "Information for an EI type",
70             "type": "object",
71             "required": ["ei_job_data_schema"],
72             "properties": {"ei_job_data_schema": {
73                 "description": "Json schema for the job data",
74                 "type": "object"
75             }}
76         },
77         "producer_registration_info": {
78             "description": "Information for an EI producer",
79             "type": "object",
80             "required": [
81                 "ei_job_callback_url",
82                 "ei_producer_supervision_callback_url",
83                 "supported_ei_types"
84             ],
85             "properties": {
86                 "supported_ei_types": {
87                     "description": "Supported EI type IDs",
88                     "type": "array",
89                     "items": {
90                         "description": "Supported EI type IDs",
91                         "type": "string"
92                     }
93                 },
94                 "ei_producer_supervision_callback_url": {
95                     "description": "callback for producer supervision",
96                     "type": "string"
97                 },
98                 "ei_job_callback_url": {
99                     "description": "callback for EI job",
100                     "type": "string"
101                 }
102             }
103         },
104         "ProblemDetails": {
105             "description": "A problem detail to carry details in a HTTP response according to RFC 7807",
106             "type": "object",
107             "properties": {
108                 "detail": {
109                     "description": "A human-readable explanation specific to this occurrence of the problem.",
110                     "type": "string",
111                     "example": "EI job type not found"
112                 },
113                 "status": {
114                     "format": "int32",
115                     "description": "The HTTP status code generated by the origin server for this occurrence of the problem.",
116                     "type": "integer",
117                     "example": 404
118                 }
119             }
120         },
121         "EiJobStatusObject": {
122             "description": "Status for an EI job",
123             "type": "object",
124             "required": ["eiJobStatus"],
125             "properties": {"eiJobStatus": {
126                 "description": "Allowed values for EI job status",
127                 "type": "string",
128                 "enum": [
129                     "ENABLED",
130                     "DISABLED"
131                 ]
132             }}
133         },
134         "EiJobObject": {
135             "description": "Information for an Enrichment Information Job",
136             "type": "object",
137             "required": [
138                 "eiTypeId",
139                 "jobDefinition",
140                 "jobOwner",
141                 "jobResultUri"
142             ],
143             "properties": {
144                 "eiTypeId": {
145                     "description": "EI type Idenitifier of the EI job",
146                     "type": "string"
147                 },
148                 "jobResultUri": {
149                     "description": "The target URI of the EI data",
150                     "type": "string"
151                 },
152                 "jobOwner": {
153                     "description": "Identity of the owner of the job",
154                     "type": "string"
155                 },
156                 "statusNotificationUri": {
157                     "description": "The target of EI job status notifications",
158                     "type": "string"
159                 },
160                 "jobDefinition": {
161                     "description": "EI type specific job data",
162                     "type": "object"
163                 }
164             }
165         },
166         "JobStatus": {
167             "description": "Status for an EI job",
168             "type": "object",
169             "required": ["eiJobStatus"],
170             "properties": {"eiJobStatus": {
171                 "description": "Allowed values for EI job status",
172                 "type": "string",
173                 "enum": [
174                     "ENABLED",
175                     "DISABLED"
176                 ]
177             }}
178         },
179         "producer_status": {
180             "description": "Status for an EI Producer",
181             "type": "object",
182             "required": ["operational_state"],
183             "properties": {"operational_state": {
184                 "description": "Represents the operational states",
185                 "type": "string",
186                 "enum": [
187                     "ENABLED",
188                     "DISABLED"
189                 ]
190             }}
191         },
192         "Void": {
193             "description": "Void/empty ",
194             "type": "object"
195         },
196         "Job": {
197             "description": "Information for an Enrichment Information Job",
198             "type": "object",
199             "required": [
200                 "infoTypeId",
201                 "jobDefinition",
202                 "jobOwner",
203                 "jobResultUri"
204             ],
205             "properties": {
206                 "jobResultUri": {
207                     "description": "The target URI of the subscribed information",
208                     "type": "string"
209                 },
210                 "infoTypeId": {
211                     "description": "Information type Idenitifier of the subscription job",
212                     "type": "string"
213                 },
214                 "jobOwner": {
215                     "description": "Identity of the owner of the job",
216                     "type": "string"
217                 },
218                 "statusNotificationUri": {
219                     "description": "The target of Information subscription job status notifications",
220                     "type": "string"
221                 },
222                 "jobDefinition": {
223                     "description": "Information type specific job data",
224                     "type": "object"
225                 }
226             }
227         },
228         "InformationType": {
229             "description": "Information for an Information type",
230             "type": "object",
231             "required": ["consumer_job_data_schema"],
232             "properties": {"consumer_job_data_schema": {
233                 "description": "Json schema for the job data",
234                 "type": "object"
235             }}
236         }
237     }},
238     "openapi": "3.0.1",
239     "paths": {
240         "/producer_simulator/ei_job": {"post": {
241             "summary": "Callback for EI job creation/modification",
242             "requestBody": {
243                 "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_ei_job_request"}}},
244                 "required": true
245             },
246             "description": "The call is invoked to activate or to modify a data subscription. The endpoint is provided by the EI producer.",
247             "operationId": "jobCreatedCallback",
248             "responses": {"200": {
249                 "description": "OK",
250                 "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
251             }},
252             "tags": ["Data producer (callbacks)"]
253         }},
254         "/A1-EI/v1/eitypes/{eiTypeId}": {"get": {
255             "summary": "Individual EI type",
256             "operationId": "getEiType_1",
257             "responses": {
258                 "200": {
259                     "description": "EI type",
260                     "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiTypeObject"}}}
261                 },
262                 "404": {
263                     "description": "Enrichment Information type is not found",
264                     "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
265                 }
266             },
267             "parameters": [{
268                 "schema": {"type": "string"},
269                 "in": "path",
270                 "name": "eiTypeId",
271                 "required": true
272             }],
273             "tags": ["A1-EI (registration)"]
274         }},
275         "/ei-producer/v1/eitypes": {"get": {
276             "summary": "EI type identifiers",
277             "operationId": "getEiTypeIdentifiers",
278             "responses": {"200": {
279                 "description": "EI type identifiers",
280                 "content": {"application/json": {"schema": {
281                     "type": "array",
282                     "items": {"type": "string"}
283                 }}}
284             }},
285             "tags": ["Data producer (registration)"]
286         }},
287         "/A1-EI/v1/eitypes": {"get": {
288             "summary": "EI type identifiers",
289             "operationId": "getEiTypeIdentifiers_1",
290             "responses": {"200": {
291                 "description": "EI type identifiers",
292                 "content": {"application/json": {"schema": {
293                     "type": "array",
294                     "items": {"type": "string"}
295                 }}}
296             }},
297             "tags": ["A1-EI (registration)"]
298         }},
299         "/data-consumer/v1/info-types": {"get": {
300             "summary": "Information type identifiers",
301             "operationId": "getinfoTypeIdentifiers",
302             "responses": {"200": {
303                 "description": "Information type identifiers",
304                 "content": {"application/json": {"schema": {
305                     "type": "array",
306                     "items": {"type": "string"}
307                 }}}
308             }},
309             "tags": ["Data consumer"]
310         }},
311         "/ei-producer/v1/eiproducers/{eiProducerId}/status": {"get": {
312             "summary": "EI producer status",
313             "operationId": "getEiProducerStatus",
314             "responses": {
315                 "200": {
316                     "description": "EI producer status",
317                     "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_status"}}}
318                 },
319                 "404": {
320                     "description": "Enrichment Information producer is not found",
321                     "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
322                 }
323             },
324             "parameters": [{
325                 "schema": {"type": "string"},
326                 "in": "path",
327                 "name": "eiProducerId",
328                 "required": true
329             }],
330             "tags": ["Data producer (registration)"]
331         }},
332         "/producer_simulator/ei_job/{eiJobId}": {"delete": {
333             "summary": "Callback for EI job deletion",
334             "description": "The call is invoked to terminate a data subscription. The endpoint is provided by the EI producer.",
335             "operationId": "jobDeletedCallback",
336             "responses": {"200": {
337                 "description": "OK",
338                 "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
339             }},
340             "parameters": [{
341                 "schema": {"type": "string"},
342                 "in": "path",
343                 "name": "eiJobId",
344                 "required": true
345             }],
346             "tags": ["Data producer (callbacks)"]
347         }},
348         "/ei-producer/v1/eitypes/{eiTypeId}": {
349             "get": {
350                 "summary": "Individual EI type",
351                 "operationId": "getEiType",
352                 "responses": {
353                     "200": {
354                         "description": "EI type",
355                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_ei_type_info"}}}
356                     },
357                     "404": {
358                         "description": "Enrichment Information type is not found",
359                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
360                     }
361                 },
362                 "parameters": [{
363                     "schema": {"type": "string"},
364                     "in": "path",
365                     "name": "eiTypeId",
366                     "required": true
367                 }],
368                 "tags": ["Data producer (registration)"]
369             },
370             "delete": {
371                 "summary": "Individual EI type",
372                 "operationId": "deleteEiType",
373                 "responses": {
374                     "200": {
375                         "description": "Not used",
376                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
377                     },
378                     "204": {
379                         "description": "Producer deleted",
380                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
381                     },
382                     "404": {
383                         "description": "Enrichment Information type is not found",
384                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
385                     },
386                     "406": {
387                         "description": "The Enrichment Information type has one or several active producers",
388                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
389                     }
390                 },
391                 "parameters": [{
392                     "schema": {"type": "string"},
393                     "in": "path",
394                     "name": "eiTypeId",
395                     "required": true
396                 }],
397                 "tags": ["Data producer (registration)"]
398             },
399             "put": {
400                 "summary": "Individual EI type",
401                 "requestBody": {
402                     "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_ei_type_info"}}},
403                     "required": true
404                 },
405                 "operationId": "putEiType",
406                 "responses": {
407                     "200": {
408                         "description": "Type updated",
409                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
410                     },
411                     "201": {
412                         "description": "Type created",
413                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
414                     },
415                     "400": {
416                         "description": "Bad request",
417                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
418                     }
419                 },
420                 "parameters": [{
421                     "schema": {"type": "string"},
422                     "in": "path",
423                     "name": "eiTypeId",
424                     "required": true
425                 }],
426                 "tags": ["Data producer (registration)"]
427             }
428         },
429         "/status": {"get": {
430             "summary": "Returns status and statistics of this service",
431             "operationId": "getStatus",
432             "responses": {"200": {
433                 "description": "Service is living",
434                 "content": {"application/json": {"schema": {"$ref": "#/components/schemas/status_info"}}}
435             }},
436             "tags": ["Service status"]
437         }},
438         "/ei-producer/v1/eiproducers": {"get": {
439             "summary": "EI producer identifiers",
440             "operationId": "getEiProducerIdentifiers",
441             "responses": {"200": {
442                 "description": "EI producer identifiers",
443                 "content": {"application/json": {"schema": {
444                     "type": "array",
445                     "items": {"type": "string"}
446                 }}}
447             }},
448             "parameters": [{
449                 "schema": {"type": "string"},
450                 "in": "query",
451                 "name": "ei_type_id",
452                 "description": "If given, only the producers for the EI Data type is returned.",
453                 "required": false
454             }],
455             "tags": ["Data producer (registration)"]
456         }},
457         "/A1-EI/v1/eijobs/{eiJobId}": {
458             "get": {
459                 "summary": "Individual EI job",
460                 "operationId": "getIndividualEiJob_1",
461                 "responses": {
462                     "200": {
463                         "description": "EI job",
464                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiJobObject"}}}
465                     },
466                     "404": {
467                         "description": "Enrichment Information job is not found",
468                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
469                     }
470                 },
471                 "parameters": [{
472                     "schema": {"type": "string"},
473                     "in": "path",
474                     "name": "eiJobId",
475                     "required": true
476                 }],
477                 "tags": ["A1-EI (registration)"]
478             },
479             "delete": {
480                 "summary": "Individual EI job",
481                 "operationId": "deleteIndividualEiJob_1",
482                 "responses": {
483                     "200": {
484                         "description": "Not used",
485                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
486                     },
487                     "204": {
488                         "description": "Job deleted",
489                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
490                     },
491                     "404": {
492                         "description": "Enrichment Information job is not found",
493                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
494                     }
495                 },
496                 "parameters": [{
497                     "schema": {"type": "string"},
498                     "in": "path",
499                     "name": "eiJobId",
500                     "required": true
501                 }],
502                 "tags": ["A1-EI (registration)"]
503             },
504             "put": {
505                 "summary": "Individual EI job",
506                 "requestBody": {
507                     "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiJobObject"}}},
508                     "required": true
509                 },
510                 "operationId": "putIndividualEiJob",
511                 "responses": {
512                     "200": {
513                         "description": "Job updated",
514                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
515                     },
516                     "201": {
517                         "description": "Job created",
518                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
519                     },
520                     "404": {
521                         "description": "Enrichment Information type is not found",
522                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
523                     }
524                 },
525                 "parameters": [{
526                     "schema": {"type": "string"},
527                     "in": "path",
528                     "name": "eiJobId",
529                     "required": true
530                 }],
531                 "tags": ["A1-EI (registration)"]
532             }
533         },
534         "/ei-producer/v1/eiproducers/{eiProducerId}": {
535             "get": {
536                 "summary": "Individual EI producer",
537                 "operationId": "getEiProducer",
538                 "responses": {
539                     "200": {
540                         "description": "EI producer",
541                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_registration_info"}}}
542                     },
543                     "404": {
544                         "description": "Enrichment Information producer is not found",
545                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
546                     }
547                 },
548                 "parameters": [{
549                     "schema": {"type": "string"},
550                     "in": "path",
551                     "name": "eiProducerId",
552                     "required": true
553                 }],
554                 "tags": ["Data producer (registration)"]
555             },
556             "delete": {
557                 "summary": "Individual EI producer",
558                 "operationId": "deleteEiProducer",
559                 "responses": {
560                     "200": {
561                         "description": "Not used",
562                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
563                     },
564                     "204": {
565                         "description": "Producer deleted",
566                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
567                     },
568                     "404": {
569                         "description": "Producer is not found",
570                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
571                     }
572                 },
573                 "parameters": [{
574                     "schema": {"type": "string"},
575                     "in": "path",
576                     "name": "eiProducerId",
577                     "required": true
578                 }],
579                 "tags": ["Data producer (registration)"]
580             },
581             "put": {
582                 "summary": "Individual EI producer",
583                 "requestBody": {
584                     "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_registration_info"}}},
585                     "required": true
586                 },
587                 "operationId": "putEiProducer",
588                 "responses": {
589                     "200": {
590                         "description": "Producer updated",
591                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
592                     },
593                     "201": {
594                         "description": "Producer created",
595                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
596                     },
597                     "404": {
598                         "description": "Producer not found",
599                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
600                     }
601                 },
602                 "parameters": [{
603                     "schema": {"type": "string"},
604                     "in": "path",
605                     "name": "eiProducerId",
606                     "required": true
607                 }],
608                 "tags": ["Data producer (registration)"]
609             }
610         },
611         "/producer_simulator/health_check": {"get": {
612             "summary": "Producer supervision",
613             "description": "The endpoint is provided by the EI producer and is used for supervision of the producer.",
614             "operationId": "producerSupervision",
615             "responses": {"200": {
616                 "description": "The producer is OK",
617                 "content": {"application/json": {"schema": {"type": "string"}}}
618             }},
619             "tags": ["Data producer (callbacks)"]
620         }},
621         "/data-consumer/v1/info-jobs": {"get": {
622             "summary": "EI job identifiers",
623             "description": "query for information job identifiers",
624             "operationId": "getJobIds",
625             "responses": {
626                 "200": {
627                     "description": "Information information job identifiers",
628                     "content": {"application/json": {"schema": {
629                         "type": "array",
630                         "items": {"type": "string"}
631                     }}}
632                 },
633                 "404": {
634                     "description": "Information type is not found",
635                     "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
636                 }
637             },
638             "parameters": [
639                 {
640                     "schema": {"type": "string"},
641                     "in": "query",
642                     "name": "infoTypeId",
643                     "description": "selects subscription jobs of matching information type",
644                     "required": false
645                 },
646                 {
647                     "schema": {"type": "string"},
648                     "in": "query",
649                     "name": "owner",
650                     "description": "selects subscription jobs for one job owner",
651                     "required": false
652                 }
653             ],
654             "tags": ["Data consumer"]
655         }},
656         "/data-consumer/v1/info-jobs/{infoJobId}": {
657             "get": {
658                 "summary": "Individual data subscription job",
659                 "operationId": "getIndividualEiJob",
660                 "responses": {
661                     "200": {
662                         "description": "Information subscription job",
663                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Job"}}}
664                     },
665                     "404": {
666                         "description": "Information subscription job is not found",
667                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
668                     }
669                 },
670                 "parameters": [{
671                     "schema": {"type": "string"},
672                     "in": "path",
673                     "name": "infoJobId",
674                     "required": true
675                 }],
676                 "tags": ["Data consumer"]
677             },
678             "delete": {
679                 "summary": "Individual data subscription job",
680                 "operationId": "deleteIndividualEiJob",
681                 "responses": {
682                     "200": {
683                         "description": "Not used",
684                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
685                     },
686                     "204": {
687                         "description": "Job deleted",
688                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
689                     },
690                     "404": {
691                         "description": "Information subscription job is not found",
692                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
693                     }
694                 },
695                 "parameters": [{
696                     "schema": {"type": "string"},
697                     "in": "path",
698                     "name": "infoJobId",
699                     "required": true
700                 }],
701                 "tags": ["Data consumer"]
702             },
703             "put": {
704                 "summary": "Individual data subscription job",
705                 "requestBody": {
706                     "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Job"}}},
707                     "required": true
708                 },
709                 "operationId": "putIndividualInfoJob",
710                 "responses": {
711                     "200": {
712                         "description": "Job updated",
713                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
714                     },
715                     "201": {
716                         "description": "Job created",
717                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
718                     },
719                     "404": {
720                         "description": "Enrichment Information type is not found",
721                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
722                     }
723                 },
724                 "parameters": [{
725                     "schema": {"type": "string"},
726                     "in": "path",
727                     "name": "infoJobId",
728                     "required": true
729                 }],
730                 "tags": ["Data consumer"]
731             }
732         },
733         "/ei-producer/v1/eiproducers/{eiProducerId}/eijobs": {"get": {
734             "summary": "EI job definitions",
735             "description": "EI job definitions for one EI producer",
736             "operationId": "getEiProducerJobs",
737             "responses": {
738                 "200": {
739                     "description": "EI producer",
740                     "content": {"application/json": {"schema": {
741                         "type": "array",
742                         "items": {"$ref": "#/components/schemas/producer_ei_job_request"}
743                     }}}
744                 },
745                 "404": {
746                     "description": "Enrichment Information producer is not found",
747                     "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
748                 }
749             },
750             "parameters": [{
751                 "schema": {"type": "string"},
752                 "in": "path",
753                 "name": "eiProducerId",
754                 "required": true
755             }],
756             "tags": ["Data producer (registration)"]
757         }},
758         "/data-consumer/v1/info-types/{infoTypeId}": {"get": {
759             "summary": "Individual information type",
760             "operationId": "getInfoType",
761             "responses": {
762                 "200": {
763                     "description": "Information type",
764                     "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InformationType"}}}
765                 },
766                 "404": {
767                     "description": "Information type is not found",
768                     "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
769                 }
770             },
771             "parameters": [{
772                 "schema": {"type": "string"},
773                 "in": "path",
774                 "name": "infoTypeId",
775                 "required": true
776             }],
777             "tags": ["Data consumer"]
778         }},
779         "/A1-EI/v1/eijobs": {"get": {
780             "summary": "EI job identifiers",
781             "description": "query for EI job identifiers",
782             "operationId": "getEiJobIds",
783             "responses": {
784                 "200": {
785                     "description": "EI job identifiers",
786                     "content": {"application/json": {"schema": {
787                         "type": "array",
788                         "items": {"type": "string"}
789                     }}}
790                 },
791                 "404": {
792                     "description": "Enrichment Information type is not found",
793                     "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
794                 }
795             },
796             "parameters": [
797                 {
798                     "schema": {"type": "string"},
799                     "in": "query",
800                     "name": "eiTypeId",
801                     "description": "selects EI jobs of matching EI type",
802                     "required": false
803                 },
804                 {
805                     "schema": {"type": "string"},
806                     "in": "query",
807                     "name": "owner",
808                     "description": "selects EI jobs for one EI job owner",
809                     "required": false
810                 }
811             ],
812             "tags": ["A1-EI (registration)"]
813         }},
814         "/A1-EI/v1/eijobs/{eiJobId}/status": {"get": {
815             "summary": "EI job status",
816             "operationId": "getEiJobStatus_1",
817             "responses": {
818                 "200": {
819                     "description": "EI job status",
820                     "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiJobStatusObject"}}}
821                 },
822                 "404": {
823                     "description": "Enrichment Information job is not found",
824                     "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
825                 }
826             },
827             "parameters": [{
828                 "schema": {"type": "string"},
829                 "in": "path",
830                 "name": "eiJobId",
831                 "required": true
832             }],
833             "tags": ["A1-EI (registration)"]
834         }},
835         "/example_dataconsumer/eijobs/{eiJobId}/status": {"post": {
836             "summary": "Callback for changed EI job status",
837             "requestBody": {
838                 "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiJobStatusObject"}}},
839                 "required": true
840             },
841             "description": "The primitive is implemented by the data consumer and is invoked when a EI job status has been changed.",
842             "operationId": "jobStatusCallback",
843             "responses": {"200": {
844                 "description": "OK",
845                 "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
846             }},
847             "parameters": [{
848                 "schema": {"type": "string"},
849                 "in": "path",
850                 "name": "eiJobId",
851                 "required": true
852             }],
853             "tags": ["A1-EI (callbacks)"]
854         }},
855         "/data-consumer/v1/info-jobs/{infoJobId}/status": {"get": {
856             "summary": "Job status",
857             "operationId": "getEiJobStatus",
858             "responses": {
859                 "200": {
860                     "description": "Information subscription job status",
861                     "content": {"application/json": {"schema": {"$ref": "#/components/schemas/JobStatus"}}}
862                 },
863                 "404": {
864                     "description": "Information subscription job is not found",
865                     "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
866                 }
867             },
868             "parameters": [{
869                 "schema": {"type": "string"},
870                 "in": "path",
871                 "name": "infoJobId",
872                 "required": true
873             }],
874             "tags": ["Data consumer"]
875         }}
876     },
877     "info": {
878         "license": {
879             "name": "Copyright (C) 2020 Nordix Foundation. Licensed under the Apache License.",
880             "url": "http://www.apache.org/licenses/LICENSE-2.0"
881         },
882         "description": "<h1>API documentation<\/h1><h2>General<\/h2><p>  The service is mainly a broker between data producers and data consumers. A data producer has the ability to produce one or several types of data (EI type). One type of data can be produced by zero to many producers. <br /><br />A data consumer can have several active data subscriptions (EI job). One EI job consists of the type of data to produce and additional parameters for filtering of the data. These parameters are different for different data types.<\/p><h2>APIs provided by the service<\/h2><h4>A1-EI<\/h4><p>  This API is between Near-RT RIC and the Non-RT RIC.  The Near-RT RIC is a data consumer, which creates Enrichment Information Jobs to subscribe for data.<\/p><h4>Data producer API<\/h4><p>  This API is provided by the Non-RT RIC platform and is intended to be part of the O-RAN R1 interface.  The API is for use by different kinds of data producers and provides support for:<ul><li>Registry of supported information types and which parameters needed to setup a subscription.<\/li><li>Registry of existing data producers.<\/li><li>Callback API provided by producers to setup subscriptions.<\/li><\/ul><\/p><h4>Data consumer API<\/h4><p>  This API is provided by the Non-RT RIC platform and is intended to be part of the O-RAN R1 interface.  The API is for use by different kinds of data consumers and provides support for:<ul><li>Querying of available types of data to consume.<\/li><li>Management of data subscription jobs<\/li><\/ul><\/p><h4>EI Service status<\/h4><p>  This API provides a means to monitor the service.<\/p>",
883         "title": "Data management and exposure",
884         "version": "1.0"
885     },
886     "tags": [
887         {
888             "name": "A1-EI (registration)",
889             "description": "Data consumer EI job registration"
890         },
891         {
892             "name": "A1-EI (callbacks)",
893             "description": "Data consumer EI job status callbacks"
894         },
895         {
896             "name": "Data producer (callbacks)",
897             "description": "API implemented by data producers"
898         },
899         {
900             "name": "Data producer (registration)",
901             "description": "API for data producers"
902         },
903         {
904             "name": "Service status",
905             "description": "API for monitoring of the service"
906         },
907         {
908             "name": "Data consumer",
909             "description": "API for data consumers"
910         }
911     ]
912 }