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