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