New EI Consumer API, aligned to ORAN WG2
[nonrtric.git] / enrichment-coordinator-service / docs / api.json
index 65ff48d..71f64db 100644 (file)
@@ -1,28 +1,6 @@
 {
     "basePath": "/",
     "paths": {
-        "/producer_simulator/job_deleted_error": {"post": {
-            "summary": "Callback for EI job creation, returns error",
-            "deprecated": false,
-            "produces": ["application/json"],
-            "operationId": "jobDeletedCallbackReturnErrorUsingPOST",
-            "responses": {
-                "200": {"description": "OK"},
-                "201": {"description": "Created"},
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {"description": "Not Found"}
-            },
-            "parameters": [{
-                "schema": {"$ref": "#/definitions/producer_ei_job_request"},
-                "in": "body",
-                "name": "request",
-                "description": "request",
-                "required": true
-            }],
-            "tags": ["Producer Simulator"],
-            "consumes": ["application/json"]
-        }},
         "/producer_simulator/supervision": {"get": {
             "summary": "Producer supervision",
             "deprecated": false,
                 "403": {"description": "Forbidden"},
                 "404": {"description": "Not Found"}
             },
-            "tags": ["Producer Simulator"]
-        }},
-        "/A1-EI/v1/eitypes/{eiTypeId}/eijobs": {"get": {
-            "summary": "EI job identifiers",
-            "deprecated": false,
-            "produces": ["application/json"],
-            "operationId": "getEiJobIdsUsingGET",
-            "responses": {
-                "200": {
-                    "schema": {
-                        "type": "array",
-                        "items": {"type": "string"}
-                    },
-                    "description": "EI job identifiers"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {
-                    "schema": {"$ref": "#/definitions/error_information"},
-                    "description": "Enrichment Information type is not found"
-                }
-            },
-            "parameters": [
-                {
-                    "in": "path",
-                    "name": "eiTypeId",
-                    "description": "eiTypeId",
-                    "type": "string",
-                    "required": true
-                },
-                {
-                    "in": "query",
-                    "allowEmptyValue": false,
-                    "name": "owner",
-                    "description": "identifies the owner of the job",
-                    "type": "string",
-                    "required": false
-                }
-            ],
-            "tags": ["A1-E Enrichment Data Consumer API"]
+            "tags": ["Producer Callbacks"]
         }},
         "/A1-EI/v1/eitypes/{eiTypeId}": {"get": {
             "summary": "Individual EI type",
             "operationId": "getEiTypeUsingGET",
             "responses": {
                 "200": {
-                    "schema": {"$ref": "#/definitions/EiType"},
+                    "schema": {"$ref": "#/definitions/EiTypeObject"},
                     "description": "EI type"
                 },
                 "401": {"description": "Unauthorized"},
                 "403": {"description": "Forbidden"},
                 "404": {
-                    "schema": {"$ref": "#/definitions/error_information"},
+                    "schema": {"$ref": "#/definitions/ProblemDetails"},
                     "description": "Enrichment Information type is not found"
                 }
             },
                 "type": "string",
                 "required": true
             }],
-            "tags": ["A1-E Enrichment Data Consumer API"]
+            "tags": ["A1-EI (enrichment information)"]
         }},
         "/ei-producer/v1/eitypes": {"get": {
             "summary": "EI type identifiers",
                 "403": {"description": "Forbidden"},
                 "404": {"description": "Not Found"}
             },
-            "tags": ["A1-E Enrichment Data Consumer API"]
+            "tags": ["A1-EI (enrichment information)"]
         }},
         "/producer_simulator/job_deleted": {"post": {
             "summary": "Callback for EI job deletion",
                 "description": "request",
                 "required": true
             }],
-            "tags": ["Producer Simulator"],
+            "tags": ["Producer Callbacks"],
             "consumes": ["application/json"]
         }},
-        "/A1-EI/v1/eitypes/{eiTypeId}/eijobs/{eiJobId}/status": {"get": {
-            "summary": "EI Job status",
-            "deprecated": false,
-            "produces": ["application/json"],
-            "operationId": "getEiJobStatusUsingGET",
-            "responses": {
-                "200": {
-                    "schema": {"$ref": "#/definitions/EiJobStatus"},
-                    "description": "EI Job status"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {
-                    "schema": {"$ref": "#/definitions/error_information"},
-                    "description": "Enrichment Information type or job is not found"
-                }
-            },
-            "parameters": [
-                {
-                    "in": "path",
-                    "name": "eiJobId",
-                    "description": "eiJobId",
-                    "type": "string",
-                    "required": true
-                },
-                {
-                    "in": "path",
-                    "name": "eiTypeId",
-                    "description": "eiTypeId",
-                    "type": "string",
-                    "required": true
-                }
-            ],
-            "tags": ["A1-E Enrichment Data Consumer API"]
-        }},
         "/ei-producer/v1/eiproducers/{eiProducerId}/status": {"get": {
             "summary": "EI producer status",
             "deprecated": false,
                 "401": {"description": "Unauthorized"},
                 "403": {"description": "Forbidden"},
                 "404": {
-                    "schema": {"$ref": "#/definitions/error_information"},
+                    "schema": {"$ref": "#/definitions/ProblemDetails"},
                     "description": "Enrichment Information producer is not found"
                 }
             },
             }],
             "tags": ["Enrichment Data Producer API"]
         }},
-        "/producer_simulator/supervision_error": {"get": {
-            "summary": "Producer supervision error",
-            "deprecated": false,
-            "produces": ["application/json"],
-            "operationId": "producerSupervisionErrorUsingGET",
-            "responses": {
-                "200": {
-                    "schema": {"type": "string"},
-                    "description": "OK"
-                },
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {"description": "Not Found"}
-            },
-            "tags": ["Producer Simulator"]
-        }},
         "/ei-producer/v1/eiproducers": {"get": {
             "summary": "EI producer identifiers",
             "deprecated": false,
             "tags": ["Enrichment Data Producer API"]
         }},
         "/ei-producer/v1/eitypes/{eiTypeId}": {"get": {
-            "summary": "Individual EI Type",
+            "summary": "Individual EI type",
             "deprecated": false,
             "produces": ["application/json"],
             "operationId": "getEiTypeUsingGET_1",
                 "401": {"description": "Unauthorized"},
                 "403": {"description": "Forbidden"},
                 "404": {
-                    "schema": {"$ref": "#/definitions/error_information"},
+                    "schema": {"$ref": "#/definitions/ProblemDetails"},
                     "description": "Enrichment Information type is not found"
                 }
             },
             },
             "tags": ["Service status"]
         }},
-        "/producer_simulator/job_created_error": {"post": {
-            "summary": "Callback for EI job creation, returns error",
-            "deprecated": false,
-            "produces": ["application/json"],
-            "operationId": "jobCreatedCallbackReturnErrorUsingPOST",
-            "responses": {
-                "200": {"description": "OK"},
-                "201": {"description": "Created"},
-                "401": {"description": "Unauthorized"},
-                "403": {"description": "Forbidden"},
-                "404": {"description": "Not Found"}
-            },
-            "parameters": [{
-                "schema": {"$ref": "#/definitions/producer_ei_job_request"},
-                "in": "body",
-                "name": "request",
-                "description": "request",
-                "required": true
-            }],
-            "tags": ["Producer Simulator"],
-            "consumes": ["application/json"]
-        }},
-        "/A1-EI/v1/eitypes/{eiTypeId}/eijobs/{eiJobId}": {
+        "/A1-EI/v1/eijobs/{eiJobId}": {
             "get": {
-                "summary": "Individual EI Job",
+                "summary": "Individual EI job",
                 "deprecated": false,
                 "produces": ["application/json"],
                 "operationId": "getIndividualEiJobUsingGET",
                 "responses": {
                     "200": {
-                        "schema": {"$ref": "#/definitions/EiJob"},
-                        "description": "EI Job"
+                        "schema": {"$ref": "#/definitions/EiJobObject"},
+                        "description": "EI job"
                     },
                     "401": {"description": "Unauthorized"},
                     "403": {"description": "Forbidden"},
                     "404": {
-                        "schema": {"$ref": "#/definitions/error_information"},
-                        "description": "Enrichment Information type or job is not found"
+                        "schema": {"$ref": "#/definitions/ProblemDetails"},
+                        "description": "Enrichment Information job is not found"
                     }
                 },
-                "parameters": [
-                    {
-                        "in": "path",
-                        "name": "eiJobId",
-                        "description": "eiJobId",
-                        "type": "string",
-                        "required": true
-                    },
-                    {
-                        "in": "path",
-                        "name": "eiTypeId",
-                        "description": "eiTypeId",
-                        "type": "string",
-                        "required": true
-                    }
-                ],
-                "tags": ["A1-E Enrichment Data Consumer API"]
+                "parameters": [{
+                    "in": "path",
+                    "name": "eiJobId",
+                    "description": "eiJobId",
+                    "type": "string",
+                    "required": true
+                }],
+                "tags": ["A1-EI (enrichment information)"]
             },
             "delete": {
-                "summary": "Individual EI Job",
+                "summary": "Individual EI job",
                 "deprecated": false,
                 "produces": ["application/json"],
                 "operationId": "deleteIndividualEiJobUsingDELETE",
                     "204": {"description": "Job deleted"},
                     "403": {"description": "Forbidden"},
                     "404": {
-                        "schema": {"$ref": "#/definitions/error_information"},
-                        "description": "Enrichment Information type or job is not found"
+                        "schema": {"$ref": "#/definitions/ProblemDetails"},
+                        "description": "Enrichment Information job is not found"
                     }
                 },
-                "parameters": [
-                    {
-                        "in": "path",
-                        "name": "eiJobId",
-                        "description": "eiJobId",
-                        "type": "string",
-                        "required": true
-                    },
-                    {
-                        "in": "path",
-                        "name": "eiTypeId",
-                        "description": "eiTypeId",
-                        "type": "string",
-                        "required": true
-                    }
-                ],
-                "tags": ["A1-E Enrichment Data Consumer API"]
+                "parameters": [{
+                    "in": "path",
+                    "name": "eiJobId",
+                    "description": "eiJobId",
+                    "type": "string",
+                    "required": true
+                }],
+                "tags": ["A1-EI (enrichment information)"]
             },
             "put": {
-                "summary": "Individual EI Job",
+                "summary": "Individual EI job",
                 "deprecated": false,
                 "produces": ["application/json"],
                 "operationId": "putIndividualEiJobUsingPUT",
                     "401": {"description": "Unauthorized"},
                     "403": {"description": "Forbidden"},
                     "404": {
-                        "schema": {"$ref": "#/definitions/error_information"},
+                        "schema": {"$ref": "#/definitions/ProblemDetails"},
                         "description": "Enrichment Information type is not found"
                     }
                 },
                         "required": true
                     },
                     {
-                        "schema": {"$ref": "#/definitions/EiJob"},
+                        "schema": {"$ref": "#/definitions/EiJobObject"},
                         "in": "body",
-                        "name": "eiJobInfo",
-                        "description": "eiJobInfo",
-                        "required": true
-                    },
-                    {
-                        "in": "path",
-                        "name": "eiTypeId",
-                        "description": "eiTypeId",
-                        "type": "string",
+                        "name": "eiJobObject",
+                        "description": "eiJobObject",
                         "required": true
                     }
                 ],
-                "tags": ["A1-E Enrichment Data Consumer API"],
+                "tags": ["A1-EI (enrichment information)"],
                 "consumes": ["application/json"]
             }
         },
                 "responses": {
                     "200": {
                         "schema": {"$ref": "#/definitions/producer_registration_info"},
-                        "description": "EI Jobs"
+                        "description": "EI jobs"
                     },
                     "401": {"description": "Unauthorized"},
                     "403": {"description": "Forbidden"},
                     "404": {
-                        "schema": {"$ref": "#/definitions/error_information"},
+                        "schema": {"$ref": "#/definitions/ProblemDetails"},
                         "description": "Enrichment Information producer is not found"
                     }
                 },
                     "204": {"description": "Producer deleted"},
                     "403": {"description": "Forbidden"},
                     "404": {
-                        "schema": {"$ref": "#/definitions/error_information"},
+                        "schema": {"$ref": "#/definitions/ProblemDetails"},
                         "description": "Producer is not found"
                     }
                 },
                 "401": {"description": "Unauthorized"},
                 "403": {"description": "Forbidden"},
                 "404": {
-                    "schema": {"$ref": "#/definitions/error_information"},
+                    "schema": {"$ref": "#/definitions/ProblemDetails"},
                     "description": "Enrichment Information producer is not found"
                 }
             },
             }],
             "tags": ["Enrichment Data Producer API"]
         }},
+        "/A1-EI/v1/eijobs": {"get": {
+            "summary": "EI job identifiers",
+            "deprecated": false,
+            "produces": ["application/json"],
+            "description": "query for EI job identifiers",
+            "operationId": "getEiJobIdsUsingGET",
+            "responses": {
+                "200": {
+                    "schema": {
+                        "type": "array",
+                        "items": {"type": "string"}
+                    },
+                    "description": "EI job identifiers"
+                },
+                "401": {"description": "Unauthorized"},
+                "403": {"description": "Forbidden"},
+                "404": {
+                    "schema": {"$ref": "#/definitions/ProblemDetails"},
+                    "description": "Enrichment Information type is not found"
+                }
+            },
+            "parameters": [
+                {
+                    "in": "query",
+                    "allowEmptyValue": false,
+                    "name": "eiTypeId",
+                    "description": "selects EI jobs of matching EI type",
+                    "type": "string",
+                    "required": false
+                },
+                {
+                    "in": "query",
+                    "allowEmptyValue": false,
+                    "name": "owner",
+                    "description": "selects EI jobs for one EI job owner",
+                    "type": "string",
+                    "required": false
+                }
+            ],
+            "tags": ["A1-EI (enrichment information)"]
+        }},
+        "/A1-EI/v1/eijobs/{eiJobId}/status": {"get": {
+            "summary": "EI job status",
+            "deprecated": false,
+            "produces": ["application/json"],
+            "operationId": "getEiJobStatusUsingGET",
+            "responses": {
+                "200": {
+                    "schema": {"$ref": "#/definitions/EiJobStatusObject"},
+                    "description": "EI job status"
+                },
+                "401": {"description": "Unauthorized"},
+                "403": {"description": "Forbidden"},
+                "404": {
+                    "schema": {"$ref": "#/definitions/ProblemDetails"},
+                    "description": "Enrichment Information job is not found"
+                }
+            },
+            "parameters": [{
+                "in": "path",
+                "name": "eiJobId",
+                "description": "eiJobId",
+                "type": "string",
+                "required": true
+            }],
+            "tags": ["A1-EI (enrichment information)"]
+        }},
         "/producer_simulator/job_created": {"post": {
             "summary": "Callback for EI job creation",
             "deprecated": false,
                 "description": "request",
                 "required": true
             }],
-            "tags": ["Producer Simulator"],
+            "tags": ["Producer Callbacks"],
             "consumes": ["application/json"]
         }}
     },
-    "host": "localhost:45709",
+    "host": "localhost:42127",
     "definitions": {
-        "EiType": {
-            "description": "Information for an EI type",
-            "type": "object",
-            "title": "EiType",
-            "properties": {"eiJobParametersSchema": {
-                "description": "Json schema for the job data",
-                "type": "object"
-            }}
-        },
         "producer_ei_job_request": {
             "description": "The body of the EI producer callbacks for EI job creation and deletion",
             "type": "object",
                 }
             }
         },
-        "error_information": {
-            "description": "Problem as defined in https://tools.ietf.org/html/rfc7807",
-            "type": "object",
-            "title": "error_information",
-            "properties": {
-                "detail": {
-                    "description": "A human-readable explanation specific to this occurrence of the problem.",
-                    "type": "string",
-                    "example": "EI job type not found"
-                },
-                "status": {
-                    "format": "int32",
-                    "description": "The HTTP status code generated by the origin server for this occurrence of the problem.",
-                    "type": "integer",
-                    "example": 404
-                }
-            }
-        },
-        "void": {
-            "description": "Void/empty",
-            "type": "object",
-            "title": "void"
-        },
-        "EiJob": {
-            "description": "Information for an Enrichment Information Job",
+        "EiTypeObject": {
+            "description": "Information for an EI type",
             "type": "object",
-            "title": "EiJob",
-            "required": [
-                "jobOwner",
-                "jobParameters",
-                "targetUri"
-            ],
-            "properties": {
-                "targetUri": {
-                    "description": "The target of the EI data",
-                    "type": "string"
-                },
-                "jobOwner": {
-                    "description": "Identity of the owner of the job",
-                    "type": "string"
-                },
-                "jobParameters": {
-                    "description": "EI Type specific job data",
-                    "type": "object"
-                }
-            }
+            "title": "EiTypeObject"
         },
         "producer_ei_type_registration_info": {
             "description": "Information for an EI type",
                 }
             }
         },
-        "EiJobStatus": {
-            "description": "Status for an EI Job",
-            "type": "object",
-            "title": "EiJobStatus",
-            "required": ["operationalState"],
-            "properties": {"operationalState": {
-                "description": "Operational state, values:\nENABLED: TBD\nDISABLED: TBD.",
-                "type": "string",
-                "enum": [
-                    "ENABLED",
-                    "DISABLED"
-                ]
-            }}
-        },
         "Mono«ResponseEntity«object»»": {
             "type": "object",
             "title": "Mono«ResponseEntity«object»»"
                     "DISABLED"
                 ]
             }}
+        },
+        "ProblemDetails": {
+            "description": "A problem detail to carry details in a HTTP response according to RFC 7807",
+            "type": "object",
+            "title": "ProblemDetails",
+            "properties": {
+                "detail": {
+                    "description": "A human-readable explanation specific to this occurrence of the problem.",
+                    "type": "string",
+                    "example": "EI job type not found"
+                },
+                "status": {
+                    "format": "int32",
+                    "description": "The HTTP status code generated by the origin server for this occurrence of the problem.",
+                    "type": "integer",
+                    "example": 404
+                }
+            }
+        },
+        "Void": {
+            "description": "Void/empty",
+            "type": "object",
+            "title": "Void"
+        },
+        "EiJobStatusObject": {
+            "description": "Status for an EI job",
+            "type": "object",
+            "title": "EiJobStatusObject",
+            "required": ["eiJobStatus"],
+            "properties": {"eiJobStatus": {
+                "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",
+                "type": "string",
+                "enum": [
+                    "ENABLED",
+                    "DISABLED"
+                ]
+            }}
+        },
+        "EiJobObject": {
+            "description": "Information for an Enrichment Information Job",
+            "type": "object",
+            "title": "EiJobObject",
+            "required": [
+                "eiTypeId",
+                "jobDefinition",
+                "jobOwner",
+                "jobResultUri"
+            ],
+            "properties": {
+                "eiTypeId": {
+                    "description": "EI type Idenitifier of the EI job",
+                    "type": "string"
+                },
+                "jobResultUri": {
+                    "description": "The target URI of the EI data",
+                    "type": "string"
+                },
+                "jobOwner": {
+                    "description": "Identity of the owner of the job",
+                    "type": "string"
+                },
+                "jobStatusNotificationUri": {
+                    "description": "The target of EI job status notifications",
+                    "type": "string"
+                },
+                "jobDefinition": {
+                    "description": "EI type specific job data",
+                    "type": "object"
+                }
+            }
         }
     },
     "swagger": "2.0",
     },
     "tags": [
         {
-            "name": "A1-E Enrichment Data Consumer API",
+            "name": "A1-EI (enrichment information)",
             "description": "Consumer Controller"
         },
         {
             "description": "Producer Controller"
         },
         {
-            "name": "Producer Simulator",
+            "name": "Producer Callbacks",
             "description": "Producer Simulator Controller"
         },
         {