From 8fd8e9fc86a24be49d61841e381423120a41296d Mon Sep 17 00:00:00 2001
From: PatrikBuhr
Date: Mon, 10 May 2021 13:42:22 +0200
Subject: [PATCH] NONRTRIC - ECS updates of the NBI
Major changes of the data producer and data consumer APIs to generalize
it.
Signed-off-by: PatrikBuhr
Issue-ID: NONRTRIC-512
Change-Id: I7d618a5260f2a40c8213fadffb6ed21aff0c7a30
---
enrichment-coordinator-service/api/ecs-api.json | 612 +++++++++----------
enrichment-coordinator-service/api/ecs-api.yaml | 673 +++++++++++----------
.../java/org/oransc/enrichment/BeanFactory.java | 30 +-
.../java/org/oransc/enrichment/SwaggerConfig.java | 9 +-
.../enrichment/controllers/ErrorResponse.java | 2 +-
.../enrichment/controllers/StatusController.java | 22 +-
.../enrichment/controllers/a1e/A1eCallbacks.java | 18 +-
.../enrichment/controllers/a1e/A1eController.java | 61 +-
.../enrichment/controllers/a1e/A1eEiJobInfo.java | 8 +-
.../controllers/r1consumer/ConsumerController.java | 70 ++-
.../r1consumer/ConsumerInfoTypeInfo.java | 8 +-
.../controllers/r1consumer/ConsumerJobInfo.java | 47 +-
.../controllers/r1consumer/ConsumerJobStatus.java | 14 +-
.../controllers/r1producer/ProducerCallbacks.java | 52 +-
.../controllers/r1producer/ProducerConsts.java | 2 +-
.../controllers/r1producer/ProducerController.java | 216 ++++---
...erEiTypeInfo.java => ProducerInfoTypeInfo.java} | 14 +-
.../controllers/r1producer/ProducerJobInfo.java | 38 +-
.../r1producer/ProducerRegistrationInfo.java | 24 +-
.../controllers/r1producer/ProducerStatusInfo.java | 2 +-
.../repository/{EiJob.java => InfoJob.java} | 4 +-
.../repository/{EiJobs.java => InfoJobs.java} | 48 +-
.../{EiProducer.java => InfoProducer.java} | 14 +-
.../{EiProducers.java => InfoProducers.java} | 77 +--
.../repository/{EiType.java => InfoType.java} | 4 +-
.../repository/{EiTypes.java => InfoTypes.java} | 28 +-
.../enrichment/tasks/ProducerSupervision.java | 46 +-
.../org/oransc/enrichment/ApplicationTest.java | 365 +++++------
.../controller/ConsumerSimulatorController.java | 16 +-
.../controller/ProducerSimulatorController.java | 32 +-
30 files changed, 1313 insertions(+), 1243 deletions(-)
rename enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/r1producer/{ProducerEiTypeInfo.java => ProducerInfoTypeInfo.java} (72%)
rename enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/{EiJob.java => InfoJob.java} (95%)
rename enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/{EiJobs.java => InfoJobs.java} (76%)
rename enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/{EiProducer.java => InfoProducer.java} (84%)
rename enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/{EiProducers.java => InfoProducers.java} (59%)
rename enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/{EiType.java => InfoType.java} (92%)
rename enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/{EiTypes.java => InfoTypes.java} (84%)
diff --git a/enrichment-coordinator-service/api/ecs-api.json b/enrichment-coordinator-service/api/ecs-api.json
index 3d6882aa..6e7b541e 100644
--- a/enrichment-coordinator-service/api/ecs-api.json
+++ b/enrichment-coordinator-service/api/ecs-api.json
@@ -1,35 +1,13 @@
{
"components": {"schemas": {
- "producer_ei_job_request": {
- "description": "The body of the EI producer callbacks for EI job creation and deletion",
+ "consumer_information_type": {
+ "description": "Information for an Information type",
"type": "object",
- "required": ["ei_job_identity"],
- "properties": {
- "owner": {
- "description": "The owner of the job",
- "type": "string"
- },
- "ei_job_identity": {
- "description": "Idenitity of the EI job",
- "type": "string"
- },
- "last_updated": {
- "description": "The time when the job was last updated or created (ISO-8601)",
- "type": "string"
- },
- "ei_job_data": {
- "description": "Json for the job data",
- "type": "object"
- },
- "target_uri": {
- "description": "URI for the target of the EI",
- "type": "string"
- },
- "ei_type_identity": {
- "description": "Type idenitity for the job",
- "type": "string"
- }
- }
+ "required": ["job_data_schema"],
+ "properties": {"job_data_schema": {
+ "description": "Json schema for the job data",
+ "type": "object"
+ }}
},
"EiTypeObject": {
"description": "Information for an EI type",
@@ -46,17 +24,17 @@
"properties": {
"no_of_producers": {
"format": "int32",
- "description": "Number of EI producers",
+ "description": "Number of Information Producers",
"type": "integer"
},
"no_of_types": {
"format": "int32",
- "description": "Number of EI types",
+ "description": "Number of Information Types",
"type": "integer"
},
"no_of_jobs": {
"format": "int32",
- "description": "Number of EI jobs",
+ "description": "Number of Information Jobs",
"type": "integer"
},
"status": {
@@ -65,38 +43,29 @@
}
}
},
- "producer_ei_type_info": {
- "description": "Information for an EI type",
- "type": "object",
- "required": ["ei_job_data_schema"],
- "properties": {"ei_job_data_schema": {
- "description": "Json schema for the job data",
- "type": "object"
- }}
- },
"producer_registration_info": {
- "description": "Information for an EI producer",
+ "description": "Information for an Information Producer",
"type": "object",
"required": [
- "ei_job_callback_url",
- "ei_producer_supervision_callback_url",
- "supported_ei_types"
+ "info_job_callback_url",
+ "info_producer_supervision_callback_url",
+ "supported_info_types"
],
"properties": {
- "supported_ei_types": {
- "description": "Supported EI type IDs",
+ "info_producer_supervision_callback_url": {
+ "description": "callback for producer supervision",
+ "type": "string"
+ },
+ "supported_info_types": {
+ "description": "Supported Information Type IDs",
"type": "array",
"items": {
- "description": "Supported EI type IDs",
+ "description": "Supported Information Type IDs",
"type": "string"
}
},
- "ei_producer_supervision_callback_url": {
- "description": "callback for producer supervision",
- "type": "string"
- },
- "ei_job_callback_url": {
- "description": "callback for EI job",
+ "info_job_callback_url": {
+ "description": "callback for Information Job",
"type": "string"
}
}
@@ -108,7 +77,7 @@
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem.",
"type": "string",
- "example": "EI job type not found"
+ "example": "Information Job type not found"
},
"status": {
"format": "int32",
@@ -131,6 +100,19 @@
]
}}
},
+ "consumer_job_status": {
+ "description": "Status for an Information Job",
+ "type": "object",
+ "required": ["info_job_status"],
+ "properties": {"info_job_status": {
+ "description": "Allowed values for Information Job status",
+ "type": "string",
+ "enum": [
+ "ENABLED",
+ "DISABLED"
+ ]
+ }}
+ },
"EiJobObject": {
"description": "Information for an Enrichment Information Job",
"type": "object",
@@ -163,97 +145,113 @@
}
}
},
- "JobStatus": {
- "description": "Status for an EI job",
+ "producer_info_type_info": {
+ "description": "Information for an Information Type",
"type": "object",
- "required": ["eiJobStatus"],
- "properties": {"eiJobStatus": {
- "description": "Allowed values for EI job status",
- "type": "string",
- "enum": [
- "ENABLED",
- "DISABLED"
- ]
+ "required": ["info_job_data_schema"],
+ "properties": {"info_job_data_schema": {
+ "description": "Json schema for the job data",
+ "type": "object"
}}
},
- "producer_status": {
- "description": "Status for an EI Producer",
+ "producer_info_job_request": {
+ "description": "The body of the Information Producer callbacks for Information Job creation and deletion",
"type": "object",
- "required": ["operational_state"],
- "properties": {"operational_state": {
- "description": "Represents the operational states",
- "type": "string",
- "enum": [
- "ENABLED",
- "DISABLED"
- ]
- }}
- },
- "Void": {
- "description": "Void/empty ",
- "type": "object"
+ "required": ["info_job_identity"],
+ "properties": {
+ "owner": {
+ "description": "The owner of the job",
+ "type": "string"
+ },
+ "last_updated": {
+ "description": "The time when the job was last updated or created (ISO-8601)",
+ "type": "string"
+ },
+ "info_job_identity": {
+ "description": "Identity of the Information Job",
+ "type": "string"
+ },
+ "target_uri": {
+ "description": "URI for the target of the produced Information",
+ "type": "string"
+ },
+ "info_job_data": {
+ "description": "Json for the job data",
+ "type": "object"
+ },
+ "info_type_identity": {
+ "description": "Type identity for the job",
+ "type": "string"
+ }
+ }
},
- "Job": {
- "description": "Information for an Enrichment Information Job",
+ "consumer_job": {
+ "description": "Information for an Enrichment Information Job",
"type": "object",
"required": [
- "infoTypeId",
- "jobDefinition",
- "jobOwner",
- "jobResultUri"
+ "info_type_id",
+ "job_definition",
+ "job_owner",
+ "job_result_uri"
],
"properties": {
- "jobResultUri": {
- "description": "The target URI of the subscribed information",
- "type": "string"
- },
- "infoTypeId": {
+ "info_type_id": {
"description": "Information type Idenitifier of the subscription job",
"type": "string"
},
- "jobOwner": {
- "description": "Identity of the owner of the job",
+ "job_result_uri": {
+ "description": "The target URI of the subscribed information",
"type": "string"
},
- "statusNotificationUri": {
- "description": "The target of Information subscription job status notifications",
+ "job_owner": {
+ "description": "Identity of the owner of the job",
"type": "string"
},
- "jobDefinition": {
+ "job_definition": {
"description": "Information type specific job data",
"type": "object"
+ },
+ "status_notification_uri": {
+ "description": "The target of Information subscription job status notifications",
+ "type": "string"
}
}
},
- "InformationType": {
- "description": "Information for an Information type",
+ "producer_status": {
+ "description": "Status for an Info Producer",
"type": "object",
- "required": ["consumer_job_data_schema"],
- "properties": {"consumer_job_data_schema": {
- "description": "Json schema for the job data",
- "type": "object"
+ "required": ["operational_state"],
+ "properties": {"operational_state": {
+ "description": "Represents the operational states",
+ "type": "string",
+ "enum": [
+ "ENABLED",
+ "DISABLED"
+ ]
}}
+ },
+ "Void": {
+ "description": "Void/empty ",
+ "type": "object"
}
}},
"openapi": "3.0.1",
"paths": {
- "/producer_simulator/ei_job": {"post": {
- "summary": "Callback for EI job creation/modification",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_ei_job_request"}}},
- "required": true
- },
- "description": "The call is invoked to activate or to modify a data subscription. The endpoint is provided by the EI producer.",
- "operationId": "jobCreatedCallback",
+ "/data-producer/v1/info-types": {"get": {
+ "summary": "Info Type identifiers",
+ "operationId": "getInfoTypdentifiers",
"responses": {"200": {
- "description": "OK",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
+ "description": "Info Type identifiers",
+ "content": {"application/json": {"schema": {
+ "type": "array",
+ "items": {"type": "string"}
+ }}}
}},
- "tags": ["Data producer (callbacks)"]
+ "tags": ["Data producer (registration)"]
}},
"/A1-EI/v1/eitypes/{eiTypeId}": {"get": {
"summary": "Individual EI type",
- "operationId": "getEiType_1",
+ "operationId": "getEiType",
"responses": {
"200": {
"description": "EI type",
@@ -272,104 +270,31 @@
}],
"tags": ["A1-EI (registration)"]
}},
- "/ei-producer/v1/eitypes": {"get": {
- "summary": "EI type identifiers",
- "operationId": "getEiTypeIdentifiers",
- "responses": {"200": {
- "description": "EI type identifiers",
- "content": {"application/json": {"schema": {
- "type": "array",
- "items": {"type": "string"}
- }}}
- }},
- "tags": ["Data producer (registration)"]
- }},
- "/A1-EI/v1/eitypes": {"get": {
- "summary": "EI type identifiers",
- "operationId": "getEiTypeIdentifiers_1",
- "responses": {"200": {
- "description": "EI type identifiers",
- "content": {"application/json": {"schema": {
- "type": "array",
- "items": {"type": "string"}
- }}}
- }},
- "tags": ["A1-EI (registration)"]
- }},
- "/data-consumer/v1/info-types": {"get": {
- "summary": "Information type identifiers",
- "operationId": "getinfoTypeIdentifiers",
- "responses": {"200": {
- "description": "Information type identifiers",
- "content": {"application/json": {"schema": {
- "type": "array",
- "items": {"type": "string"}
- }}}
- }},
- "tags": ["Data consumer"]
- }},
- "/ei-producer/v1/eiproducers/{eiProducerId}/status": {"get": {
- "summary": "EI producer status",
- "operationId": "getEiProducerStatus",
- "responses": {
- "200": {
- "description": "EI producer status",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_status"}}}
- },
- "404": {
- "description": "Enrichment Information producer is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "eiProducerId",
- "required": true
- }],
- "tags": ["Data producer (registration)"]
- }},
- "/producer_simulator/ei_job/{eiJobId}": {"delete": {
- "summary": "Callback for EI job deletion",
- "description": "The call is invoked to terminate a data subscription. The endpoint is provided by the EI producer.",
- "operationId": "jobDeletedCallback",
- "responses": {"200": {
- "description": "OK",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- }},
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "eiJobId",
- "required": true
- }],
- "tags": ["Data producer (callbacks)"]
- }},
- "/ei-producer/v1/eitypes/{eiTypeId}": {
+ "/data-producer/v1/info-types/{infoTypeId}": {
"get": {
- "summary": "Individual EI type",
- "operationId": "getEiType",
+ "summary": "Individual Information Type",
+ "operationId": "getInfoType",
"responses": {
"200": {
- "description": "EI type",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_ei_type_info"}}}
+ "description": "Info Type",
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_info_type_info"}}}
},
"404": {
- "description": "Enrichment Information type is not found",
+ "description": "Information type is not found",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
}
},
"parameters": [{
"schema": {"type": "string"},
"in": "path",
- "name": "eiTypeId",
+ "name": "infoTypeId",
"required": true
}],
"tags": ["Data producer (registration)"]
},
"delete": {
- "summary": "Individual EI type",
- "operationId": "deleteEiType",
+ "summary": "Individual Information Type",
+ "operationId": "deleteInfoType",
"responses": {
"200": {
"description": "Not used",
@@ -380,29 +305,29 @@
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
},
"404": {
- "description": "Enrichment Information type is not found",
+ "description": "Information type is not found",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
},
"406": {
- "description": "The Enrichment Information type has one or several active producers",
+ "description": "The Information type has one or several active producers",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
}
},
"parameters": [{
"schema": {"type": "string"},
"in": "path",
- "name": "eiTypeId",
+ "name": "infoTypeId",
"required": true
}],
"tags": ["Data producer (registration)"]
},
"put": {
- "summary": "Individual EI type",
+ "summary": "Individual Information Type",
"requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_ei_type_info"}}},
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_info_type_info"}}},
"required": true
},
- "operationId": "putEiType",
+ "operationId": "putInfoType",
"responses": {
"200": {
"description": "Type updated",
@@ -420,197 +345,218 @@
"parameters": [{
"schema": {"type": "string"},
"in": "path",
- "name": "eiTypeId",
+ "name": "infoTypeId",
"required": true
}],
"tags": ["Data producer (registration)"]
}
},
- "/status": {"get": {
- "summary": "Returns status and statistics of this service",
- "operationId": "getStatus",
+ "/A1-EI/v1/eitypes": {"get": {
+ "summary": "EI type identifiers",
+ "operationId": "getEiTypeIdentifiers",
"responses": {"200": {
- "description": "Service is living",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/status_info"}}}
+ "description": "EI type identifiers",
+ "content": {"application/json": {"schema": {
+ "type": "array",
+ "items": {"type": "string"}
+ }}}
}},
- "tags": ["Service status"]
+ "tags": ["A1-EI (registration)"]
}},
- "/ei-producer/v1/eiproducers": {"get": {
- "summary": "EI producer identifiers",
- "operationId": "getEiProducerIdentifiers",
+ "/data-consumer/v1/info-types": {"get": {
+ "summary": "Information type identifiers",
+ "operationId": "getinfoTypeIdentifiers",
"responses": {"200": {
- "description": "EI producer identifiers",
+ "description": "Information type identifiers",
"content": {"application/json": {"schema": {
"type": "array",
"items": {"type": "string"}
}}}
}},
- "parameters": [{
- "schema": {"type": "string"},
- "in": "query",
- "name": "ei_type_id",
- "description": "If given, only the producers for the EI Data type is returned.",
- "required": false
- }],
- "tags": ["Data producer (registration)"]
+ "tags": ["Data consumer"]
}},
- "/A1-EI/v1/eijobs/{eiJobId}": {
+ "/data-producer/v1/info-producers/{infoProducerId}": {
"get": {
- "summary": "Individual EI job",
- "operationId": "getIndividualEiJob_1",
+ "summary": "Individual Information Producer",
+ "operationId": "getInfoProducer",
"responses": {
"200": {
- "description": "EI job",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiJobObject"}}}
+ "description": "Information producer",
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_registration_info"}}}
},
"404": {
- "description": "Enrichment Information job is not found",
+ "description": "Information producer is not found",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
}
},
"parameters": [{
"schema": {"type": "string"},
"in": "path",
- "name": "eiJobId",
+ "name": "infoProducerId",
"required": true
}],
- "tags": ["A1-EI (registration)"]
+ "tags": ["Data producer (registration)"]
},
"delete": {
- "summary": "Individual EI job",
- "operationId": "deleteIndividualEiJob_1",
+ "summary": "Individual Information Producer",
+ "operationId": "deleteInfoProducer",
"responses": {
"200": {
"description": "Not used",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
},
"204": {
- "description": "Job deleted",
+ "description": "Producer deleted",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
},
"404": {
- "description": "Enrichment Information job is not found",
+ "description": "Producer is not found",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
}
},
"parameters": [{
"schema": {"type": "string"},
"in": "path",
- "name": "eiJobId",
+ "name": "infoProducerId",
"required": true
}],
- "tags": ["A1-EI (registration)"]
+ "tags": ["Data producer (registration)"]
},
"put": {
- "summary": "Individual EI job",
+ "summary": "Individual Information Producer",
"requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiJobObject"}}},
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_registration_info"}}},
"required": true
},
- "operationId": "putIndividualEiJob",
+ "operationId": "putInfoProducer",
"responses": {
"200": {
- "description": "Job updated",
+ "description": "Producer updated",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
},
"201": {
- "description": "Job created",
+ "description": "Producer created",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
},
"404": {
- "description": "Enrichment Information type is not found",
+ "description": "Producer not found",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
}
},
"parameters": [{
"schema": {"type": "string"},
"in": "path",
- "name": "eiJobId",
+ "name": "infoProducerId",
"required": true
}],
- "tags": ["A1-EI (registration)"]
+ "tags": ["Data producer (registration)"]
}
},
- "/ei-producer/v1/eiproducers/{eiProducerId}": {
+ "/producer_simulator/info_job/{infoJobId}": {"delete": {
+ "summary": "Callback for Information Job deletion",
+ "description": "The call is invoked to terminate a data subscription. The endpoint is provided by the Information Producer.",
+ "operationId": "jobDeletedCallback",
+ "responses": {"200": {
+ "description": "OK",
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
+ }},
+ "parameters": [{
+ "schema": {"type": "string"},
+ "in": "path",
+ "name": "infoJobId",
+ "required": true
+ }],
+ "tags": ["Data producer (callbacks)"]
+ }},
+ "/status": {"get": {
+ "summary": "Returns status and statistics of this service",
+ "operationId": "getStatus",
+ "responses": {"200": {
+ "description": "Service is living",
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/status_info"}}}
+ }},
+ "tags": ["Service status"]
+ }},
+ "/A1-EI/v1/eijobs/{eiJobId}": {
"get": {
- "summary": "Individual EI producer",
- "operationId": "getEiProducer",
+ "summary": "Individual EI job",
+ "operationId": "getIndividualEiJob_1",
"responses": {
"200": {
- "description": "EI producer",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_registration_info"}}}
+ "description": "EI job",
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiJobObject"}}}
},
"404": {
- "description": "Enrichment Information producer is not found",
+ "description": "Enrichment Information job is not found",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
}
},
"parameters": [{
"schema": {"type": "string"},
"in": "path",
- "name": "eiProducerId",
+ "name": "eiJobId",
"required": true
}],
- "tags": ["Data producer (registration)"]
+ "tags": ["A1-EI (registration)"]
},
"delete": {
- "summary": "Individual EI producer",
- "operationId": "deleteEiProducer",
+ "summary": "Individual EI job",
+ "operationId": "deleteIndividualEiJob_1",
"responses": {
"200": {
"description": "Not used",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
},
"204": {
- "description": "Producer deleted",
+ "description": "Job deleted",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
},
"404": {
- "description": "Producer is not found",
+ "description": "Enrichment Information job is not found",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
}
},
"parameters": [{
"schema": {"type": "string"},
"in": "path",
- "name": "eiProducerId",
+ "name": "eiJobId",
"required": true
}],
- "tags": ["Data producer (registration)"]
+ "tags": ["A1-EI (registration)"]
},
"put": {
- "summary": "Individual EI producer",
+ "summary": "Individual EI job",
"requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_registration_info"}}},
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiJobObject"}}},
"required": true
},
- "operationId": "putEiProducer",
+ "operationId": "putIndividualEiJob",
"responses": {
"200": {
- "description": "Producer updated",
+ "description": "Job updated",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
},
"201": {
- "description": "Producer created",
+ "description": "Job created",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
},
"404": {
- "description": "Producer not found",
+ "description": "Enrichment Information type is not found",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
}
},
"parameters": [{
"schema": {"type": "string"},
"in": "path",
- "name": "eiProducerId",
+ "name": "eiJobId",
"required": true
}],
- "tags": ["Data producer (registration)"]
+ "tags": ["A1-EI (registration)"]
}
},
"/producer_simulator/health_check": {"get": {
"summary": "Producer supervision",
- "description": "The endpoint is provided by the EI producer and is used for supervision of the producer.",
+ "description": "The endpoint is provided by the Information Producer and is used for supervision of the producer.",
"operationId": "producerSupervision",
"responses": {"200": {
"description": "The producer is OK",
@@ -619,7 +565,7 @@
"tags": ["Data producer (callbacks)"]
}},
"/data-consumer/v1/info-jobs": {"get": {
- "summary": "EI job identifiers",
+ "summary": "Information Job identifiers",
"description": "query for information job identifiers",
"operationId": "getJobIds",
"responses": {
@@ -660,7 +606,7 @@
"responses": {
"200": {
"description": "Information subscription job",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Job"}}}
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_job"}}}
},
"404": {
"description": "Information subscription job is not found",
@@ -703,7 +649,7 @@
"put": {
"summary": "Individual data subscription job",
"requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Job"}}},
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_job"}}},
"required": true
},
"description": "The job will be enabled when a producer is available",
@@ -718,7 +664,7 @@
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
},
"404": {
- "description": "Enrichment Information type is not found",
+ "description": "Information type is not found",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
}
},
@@ -743,38 +689,32 @@
"tags": ["Data consumer"]
}
},
- "/ei-producer/v1/eiproducers/{eiProducerId}/eijobs": {"get": {
- "summary": "EI job definitions",
- "description": "EI job definitions for one EI producer",
- "operationId": "getEiProducerJobs",
- "responses": {
- "200": {
- "description": "EI producer",
- "content": {"application/json": {"schema": {
- "type": "array",
- "items": {"$ref": "#/components/schemas/producer_ei_job_request"}
- }}}
- },
- "404": {
- "description": "Enrichment Information producer is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
- }
- },
+ "/data-producer/v1/info-producers": {"get": {
+ "summary": "Information producer identifiers",
+ "operationId": "getInfoProducerIdentifiers",
+ "responses": {"200": {
+ "description": "Information producer identifiers",
+ "content": {"application/json": {"schema": {
+ "type": "array",
+ "items": {"type": "string"}
+ }}}
+ }},
"parameters": [{
"schema": {"type": "string"},
- "in": "path",
- "name": "eiProducerId",
- "required": true
+ "in": "query",
+ "name": "info_type_id",
+ "description": "If given, only the producers for the EI Data type is returned.",
+ "required": false
}],
"tags": ["Data producer (registration)"]
}},
"/data-consumer/v1/info-types/{infoTypeId}": {"get": {
"summary": "Individual information type",
- "operationId": "getInfoType",
+ "operationId": "getInfoType_1",
"responses": {
"200": {
"description": "Information type",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InformationType"}}}
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_information_type"}}}
},
"404": {
"description": "Information type is not found",
@@ -789,6 +729,40 @@
}],
"tags": ["Data consumer"]
}},
+ "/producer_simulator/info_job": {"post": {
+ "summary": "Callback for Information Job creation/modification",
+ "requestBody": {
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_info_job_request"}}},
+ "required": true
+ },
+ "description": "The call is invoked to activate or to modify a data subscription. The endpoint is provided by the Information Producer.",
+ "operationId": "jobCreatedCallback",
+ "responses": {"200": {
+ "description": "OK",
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
+ }},
+ "tags": ["Data producer (callbacks)"]
+ }},
+ "/example_dataconsumer/info_jobs/{infoJobId}/status": {"post": {
+ "summary": "Callback for changed Information Job status",
+ "requestBody": {
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiJobStatusObject"}}},
+ "required": true
+ },
+ "description": "The primitive is implemented by the data consumer and is invoked when a Information Job status has been changed.",
+ "operationId": "jobStatusCallback",
+ "responses": {"200": {
+ "description": "OK",
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
+ }},
+ "parameters": [{
+ "schema": {"type": "string"},
+ "in": "path",
+ "name": "infoJobId",
+ "required": true
+ }],
+ "tags": ["A1-EI (callbacks)"]
+ }},
"/A1-EI/v1/eijobs": {"get": {
"summary": "EI job identifiers",
"description": "query for EI job identifiers",
@@ -845,25 +819,51 @@
}],
"tags": ["A1-EI (registration)"]
}},
- "/example_dataconsumer/eijobs/{eiJobId}/status": {"post": {
- "summary": "Callback for changed EI job status",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiJobStatusObject"}}},
+ "/data-producer/v1/info-producers/{infoProducerId}/status": {"get": {
+ "summary": "Information producer status",
+ "operationId": "getInfoProducerStatus",
+ "responses": {
+ "200": {
+ "description": "Information producer status",
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_status"}}}
+ },
+ "404": {
+ "description": "Information producer is not found",
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
+ }
+ },
+ "parameters": [{
+ "schema": {"type": "string"},
+ "in": "path",
+ "name": "infoProducerId",
"required": true
+ }],
+ "tags": ["Data producer (registration)"]
+ }},
+ "/data-producer/v1/info-producers/{infoProducerId}/info-jobs": {"get": {
+ "summary": "Information Job definitions",
+ "description": "Information Job definitions for one Information Producer",
+ "operationId": "getInfoProducerJobs",
+ "responses": {
+ "200": {
+ "description": "Information producer",
+ "content": {"application/json": {"schema": {
+ "type": "array",
+ "items": {"$ref": "#/components/schemas/producer_info_job_request"}
+ }}}
+ },
+ "404": {
+ "description": "Information producer is not found",
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
+ }
},
- "description": "The primitive is implemented by the data consumer and is invoked when a EI job status has been changed.",
- "operationId": "jobStatusCallback",
- "responses": {"200": {
- "description": "OK",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- }},
"parameters": [{
"schema": {"type": "string"},
"in": "path",
- "name": "eiJobId",
+ "name": "infoProducerId",
"required": true
}],
- "tags": ["A1-EI (callbacks)"]
+ "tags": ["Data producer (registration)"]
}},
"/data-consumer/v1/info-jobs/{infoJobId}/status": {"get": {
"summary": "Job status",
@@ -871,7 +871,7 @@
"responses": {
"200": {
"description": "Information subscription job status",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/JobStatus"}}}
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_job_status"}}}
},
"404": {
"description": "Information subscription job is not found",
@@ -892,7 +892,7 @@
"name": "Copyright (C) 2020 Nordix Foundation. Licensed under the Apache License.",
"url": "http://www.apache.org/licenses/LICENSE-2.0"
},
- "description": "
API documentation<\/h1>
General<\/h2>
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.
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>
APIs provided by the service<\/h2>
A1-EI<\/h4>
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>
Data producer API<\/h4>
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:
Registry of supported information types and which parameters needed to setup a subscription.<\/li>
Registry of existing data producers.<\/li>
Callback API provided by producers to setup subscriptions.<\/li><\/ul><\/p>
Data consumer API<\/h4>
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:
Querying of available types of data to consume.<\/li>
Management of data subscription jobs<\/li><\/ul><\/p>
EI Service status<\/h4>
This API provides a means to monitor the service.<\/p>",
+ "description": "
API documentation<\/h1>
General<\/h2>
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 (Information Type). One type of data can be produced by zero to many producers.
A data consumer can have several active data subscriptions (Information Job). One Information 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>
APIs provided by the service<\/h2>
A1-EI<\/h4>
This API is between Near-RT RIC and the Non-RT RIC. The Near-RT RIC is a data consumer, which creates Information Jobs to subscribe for data. In this context, the information is referred to as 'Enrichment Information', EI.<\/p>
Data producer API<\/h4>
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:
Registry of supported information types and which parameters needed to setup a subscription.<\/li>
Registry of existing data producers.<\/li>
Callback API provided by producers to setup subscriptions.<\/li><\/ul><\/p>
Data consumer API<\/h4>
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:
Querying of available types of data to consume.<\/li>
Management of data subscription jobs<\/li><\/ul><\/p>
Service status<\/h4>
This API provides a means to monitor the health of this service.<\/p>",
"title": "Data management and exposure",
"version": "1.0"
},
diff --git a/enrichment-coordinator-service/api/ecs-api.yaml b/enrichment-coordinator-service/api/ecs-api.yaml
index 3eda306a..50b8a12e 100644
--- a/enrichment-coordinator-service/api/ecs-api.yaml
+++ b/enrichment-coordinator-service/api/ecs-api.yaml
@@ -3,23 +3,25 @@ info:
title: Data management and exposure
description:
API documentation
General
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.
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.
APIs provided by the service
A1-EI
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.
Data producer
- API
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:
Registry of supported information types
- and which parameters needed to setup a subscription.
Registry of existing
- data producers.
Callback API provided by producers to setup subscriptions.
Data
- consumer API
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:
Querying of available types of
- data to consume.
Management of data subscription jobs
EI
- Service status
This API provides a means to monitor the service.
+ to produce one or several types of data (Information Type). One type of data can
+ be produced by zero to many producers.
A data consumer can have several
+ active data subscriptions (Information Job). One Information 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.
APIs provided by the
+ service
A1-EI
This API is between Near-RT RIC and the Non-RT
+ RIC. The Near-RT RIC is a data consumer, which creates Information Jobs to subscribe
+ for data. In this context, the information is referred to as 'Enrichment Information',
+ EI.
Data producer API
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:
Registry of supported
+ information types and which parameters needed to setup a subscription.
Registry
+ of existing data producers.
Callback API provided by producers to setup
+ subscriptions.
Data consumer API
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:
Querying
+ of available types of data to consume.
Management of data subscription
+ jobs
Service status
This API provides a means to monitor
+ the health of this service.
license:
name: Copyright (C) 2020 Nordix Foundation. Licensed under the Apache License.
url: http://www.apache.org/licenses/LICENSE-2.0
@@ -40,33 +42,27 @@ tags:
- name: Data consumer
description: API for data consumers
paths:
- /producer_simulator/ei_job:
- post:
+ /data-producer/v1/info-types:
+ get:
tags:
- - Data producer (callbacks)
- summary: Callback for EI job creation/modification
- description: The call is invoked to activate or to modify a data subscription.
- The endpoint is provided by the EI producer.
- operationId: jobCreatedCallback
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/producer_ei_job_request'
- required: true
+ - Data producer (registration)
+ summary: Info Type identifiers
+ operationId: getInfoTypdentifiers
responses:
200:
- description: OK
+ description: Info Type identifiers
content:
application/json:
schema:
- $ref: '#/components/schemas/Void'
+ type: array
+ items:
+ type: string
/A1-EI/v1/eitypes/{eiTypeId}:
get:
tags:
- A1-EI (registration)
summary: Individual EI type
- operationId: getEiType_1
+ operationId: getEiType
parameters:
- name: eiTypeId
in: path
@@ -88,109 +84,14 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
- /ei-producer/v1/eitypes:
+ /data-producer/v1/info-types/{infoTypeId}:
get:
tags:
- Data producer (registration)
- summary: EI type identifiers
- operationId: getEiTypeIdentifiers
- responses:
- 200:
- description: EI type identifiers
- content:
- application/json:
- schema:
- type: array
- items:
- type: string
- /A1-EI/v1/eitypes:
- get:
- tags:
- - A1-EI (registration)
- summary: EI type identifiers
- operationId: getEiTypeIdentifiers_1
- responses:
- 200:
- description: EI type identifiers
- content:
- application/json:
- schema:
- type: array
- items:
- type: string
- /data-consumer/v1/info-types:
- get:
- tags:
- - Data consumer
- summary: Information type identifiers
- operationId: getinfoTypeIdentifiers
- responses:
- 200:
- description: Information type identifiers
- content:
- application/json:
- schema:
- type: array
- items:
- type: string
- /ei-producer/v1/eiproducers/{eiProducerId}/status:
- get:
- tags:
- - Data producer (registration)
- summary: EI producer status
- operationId: getEiProducerStatus
- parameters:
- - name: eiProducerId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: EI producer status
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/producer_status'
- 404:
- description: Enrichment Information producer is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- /producer_simulator/ei_job/{eiJobId}:
- delete:
- tags:
- - Data producer (callbacks)
- summary: Callback for EI job deletion
- description: The call is invoked to terminate a data subscription. The endpoint
- is provided by the EI producer.
- operationId: jobDeletedCallback
- parameters:
- - name: eiJobId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: OK
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
- /ei-producer/v1/eitypes/{eiTypeId}:
- get:
- tags:
- - Data producer (registration)
- summary: Individual EI type
- operationId: getEiType
+ summary: Individual Information Type
+ operationId: getInfoType
parameters:
- - name: eiTypeId
+ - name: infoTypeId
in: path
required: true
style: simple
@@ -199,13 +100,13 @@ paths:
type: string
responses:
200:
- description: EI type
+ description: Info Type
content:
application/json:
schema:
- $ref: '#/components/schemas/producer_ei_type_info'
+ $ref: '#/components/schemas/producer_info_type_info'
404:
- description: Enrichment Information type is not found
+ description: Information type is not found
content:
application/json:
schema:
@@ -213,10 +114,10 @@ paths:
put:
tags:
- Data producer (registration)
- summary: Individual EI type
- operationId: putEiType
+ summary: Individual Information Type
+ operationId: putInfoType
parameters:
- - name: eiTypeId
+ - name: infoTypeId
in: path
required: true
style: simple
@@ -227,7 +128,7 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/producer_ei_type_info'
+ $ref: '#/components/schemas/producer_info_type_info'
required: true
responses:
200:
@@ -251,10 +152,10 @@ paths:
delete:
tags:
- Data producer (registration)
- summary: Individual EI type
- operationId: deleteEiType
+ summary: Individual Information Type
+ operationId: deleteInfoType
parameters:
- - name: eiTypeId
+ - name: infoTypeId
in: path
required: true
style: simple
@@ -275,62 +176,55 @@ paths:
schema:
$ref: '#/components/schemas/Void'
404:
- description: Enrichment Information type is not found
+ description: Information type is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
406:
- description: The Enrichment Information type has one or several active producers
+ description: The Information type has one or several active producers
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
- /status:
+ /A1-EI/v1/eitypes:
get:
tags:
- - Service status
- summary: Returns status and statistics of this service
- operationId: getStatus
+ - A1-EI (registration)
+ summary: EI type identifiers
+ operationId: getEiTypeIdentifiers
responses:
200:
- description: Service is living
+ description: EI type identifiers
content:
application/json:
schema:
- $ref: '#/components/schemas/status_info'
- /ei-producer/v1/eiproducers:
+ type: array
+ items:
+ type: string
+ /data-consumer/v1/info-types:
get:
tags:
- - Data producer (registration)
- summary: EI producer identifiers
- operationId: getEiProducerIdentifiers
- parameters:
- - name: ei_type_id
- in: query
- description: If given, only the producers for the EI Data type is returned.
- required: false
- style: form
- explode: true
- schema:
- type: string
+ - Data consumer
+ summary: Information type identifiers
+ operationId: getinfoTypeIdentifiers
responses:
200:
- description: EI producer identifiers
+ description: Information type identifiers
content:
application/json:
schema:
type: array
items:
type: string
- /A1-EI/v1/eijobs/{eiJobId}:
+ /data-producer/v1/info-producers/{infoProducerId}:
get:
tags:
- - A1-EI (registration)
- summary: Individual EI job
- operationId: getIndividualEiJob_1
+ - Data producer (registration)
+ summary: Individual Information Producer
+ operationId: getInfoProducer
parameters:
- - name: eiJobId
+ - name: infoProducerId
in: path
required: true
style: simple
@@ -339,24 +233,24 @@ paths:
type: string
responses:
200:
- description: EI job
+ description: Information producer
content:
application/json:
schema:
- $ref: '#/components/schemas/EiJobObject'
+ $ref: '#/components/schemas/producer_registration_info'
404:
- description: Enrichment Information job is not found
+ description: Information producer is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- - A1-EI (registration)
- summary: Individual EI job
- operationId: putIndividualEiJob
+ - Data producer (registration)
+ summary: Individual Information Producer
+ operationId: putInfoProducer
parameters:
- - name: eiJobId
+ - name: infoProducerId
in: path
required: true
style: simple
@@ -367,34 +261,34 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/EiJobObject'
+ $ref: '#/components/schemas/producer_registration_info'
required: true
responses:
200:
- description: Job updated
+ description: Producer updated
content:
application/json:
schema:
$ref: '#/components/schemas/Void'
201:
- description: Job created
+ description: Producer created
content:
application/json:
schema:
$ref: '#/components/schemas/Void'
404:
- description: Enrichment Information type is not found
+ description: Producer not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- - A1-EI (registration)
- summary: Individual EI job
- operationId: deleteIndividualEiJob_1
+ - Data producer (registration)
+ summary: Individual Information Producer
+ operationId: deleteInfoProducer
parameters:
- - name: eiJobId
+ - name: infoProducerId
in: path
required: true
style: simple
@@ -409,25 +303,61 @@ paths:
schema:
$ref: '#/components/schemas/Void'
204:
- description: Job deleted
+ description: Producer deleted
content:
application/json:
schema:
$ref: '#/components/schemas/Void'
404:
- description: Enrichment Information job is not found
+ description: Producer is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
- /ei-producer/v1/eiproducers/{eiProducerId}:
+ /producer_simulator/info_job/{infoJobId}:
+ delete:
+ tags:
+ - Data producer (callbacks)
+ summary: Callback for Information Job deletion
+ description: The call is invoked to terminate a data subscription. The endpoint
+ is provided by the Information Producer.
+ operationId: jobDeletedCallback
+ parameters:
+ - name: infoJobId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Void'
+ /status:
get:
tags:
- - Data producer (registration)
- summary: Individual EI producer
- operationId: getEiProducer
+ - Service status
+ summary: Returns status and statistics of this service
+ operationId: getStatus
+ responses:
+ 200:
+ description: Service is living
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/status_info'
+ /A1-EI/v1/eijobs/{eiJobId}:
+ get:
+ tags:
+ - A1-EI (registration)
+ summary: Individual EI job
+ operationId: getIndividualEiJob_1
parameters:
- - name: eiProducerId
+ - name: eiJobId
in: path
required: true
style: simple
@@ -436,24 +366,24 @@ paths:
type: string
responses:
200:
- description: EI producer
+ description: EI job
content:
application/json:
schema:
- $ref: '#/components/schemas/producer_registration_info'
+ $ref: '#/components/schemas/EiJobObject'
404:
- description: Enrichment Information producer is not found
+ description: Enrichment Information job is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- - Data producer (registration)
- summary: Individual EI producer
- operationId: putEiProducer
+ - A1-EI (registration)
+ summary: Individual EI job
+ operationId: putIndividualEiJob
parameters:
- - name: eiProducerId
+ - name: eiJobId
in: path
required: true
style: simple
@@ -464,34 +394,34 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/producer_registration_info'
+ $ref: '#/components/schemas/EiJobObject'
required: true
responses:
200:
- description: Producer updated
+ description: Job updated
content:
application/json:
schema:
$ref: '#/components/schemas/Void'
201:
- description: Producer created
+ description: Job created
content:
application/json:
schema:
$ref: '#/components/schemas/Void'
404:
- description: Producer not found
+ description: Enrichment Information type is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- - Data producer (registration)
- summary: Individual EI producer
- operationId: deleteEiProducer
+ - A1-EI (registration)
+ summary: Individual EI job
+ operationId: deleteIndividualEiJob_1
parameters:
- - name: eiProducerId
+ - name: eiJobId
in: path
required: true
style: simple
@@ -506,13 +436,13 @@ paths:
schema:
$ref: '#/components/schemas/Void'
204:
- description: Producer deleted
+ description: Job deleted
content:
application/json:
schema:
$ref: '#/components/schemas/Void'
404:
- description: Producer is not found
+ description: Enrichment Information job is not found
content:
application/json:
schema:
@@ -522,8 +452,8 @@ paths:
tags:
- Data producer (callbacks)
summary: Producer supervision
- description: The endpoint is provided by the EI producer and is used for supervision
- of the producer.
+ description: The endpoint is provided by the Information Producer and is used
+ for supervision of the producer.
operationId: producerSupervision
responses:
200:
@@ -536,7 +466,7 @@ paths:
get:
tags:
- Data consumer
- summary: EI job identifiers
+ summary: Information Job identifiers
description: query for information job identifiers
operationId: getJobIds
parameters:
@@ -591,7 +521,7 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/Job'
+ $ref: '#/components/schemas/consumer_job'
404:
description: Information subscription job is not found
content:
@@ -626,7 +556,7 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/Job'
+ $ref: '#/components/schemas/consumer_job'
required: true
responses:
200:
@@ -642,7 +572,7 @@ paths:
schema:
$ref: '#/components/schemas/Void'
404:
- description: Enrichment Information type is not found
+ description: Information type is not found
content:
application/json:
schema:
@@ -679,42 +609,36 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
- /ei-producer/v1/eiproducers/{eiProducerId}/eijobs:
+ /data-producer/v1/info-producers:
get:
tags:
- Data producer (registration)
- summary: EI job definitions
- description: EI job definitions for one EI producer
- operationId: getEiProducerJobs
+ summary: Information producer identifiers
+ operationId: getInfoProducerIdentifiers
parameters:
- - name: eiProducerId
- in: path
- required: true
- style: simple
- explode: false
+ - name: info_type_id
+ in: query
+ description: If given, only the producers for the EI Data type is returned.
+ required: false
+ style: form
+ explode: true
schema:
type: string
responses:
200:
- description: EI producer
+ description: Information producer identifiers
content:
application/json:
schema:
type: array
items:
- $ref: '#/components/schemas/producer_ei_job_request'
- 404:
- description: Enrichment Information producer is not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
+ type: string
/data-consumer/v1/info-types/{infoTypeId}:
get:
tags:
- Data consumer
summary: Individual information type
- operationId: getInfoType
+ operationId: getInfoType_1
parameters:
- name: infoTypeId
in: path
@@ -729,13 +653,63 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/InformationType'
+ $ref: '#/components/schemas/consumer_information_type'
404:
description: Information type is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
+ /producer_simulator/info_job:
+ post:
+ tags:
+ - Data producer (callbacks)
+ summary: Callback for Information Job creation/modification
+ description: The call is invoked to activate or to modify a data subscription.
+ The endpoint is provided by the Information Producer.
+ operationId: jobCreatedCallback
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/producer_info_job_request'
+ required: true
+ responses:
+ 200:
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Void'
+ /example_dataconsumer/info_jobs/{infoJobId}/status:
+ post:
+ tags:
+ - A1-EI (callbacks)
+ summary: Callback for changed Information Job status
+ description: The primitive is implemented by the data consumer and is invoked
+ when a Information Job status has been changed.
+ operationId: jobStatusCallback
+ parameters:
+ - name: infoJobId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/EiJobStatusObject'
+ required: true
+ responses:
+ 200:
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Void'
/A1-EI/v1/eijobs:
get:
tags:
@@ -802,35 +776,63 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
- /example_dataconsumer/eijobs/{eiJobId}/status:
- post:
+ /data-producer/v1/info-producers/{infoProducerId}/status:
+ get:
tags:
- - A1-EI (callbacks)
- summary: Callback for changed EI job status
- description: The primitive is implemented by the data consumer and is invoked
- when a EI job status has been changed.
- operationId: jobStatusCallback
+ - Data producer (registration)
+ summary: Information producer status
+ operationId: getInfoProducerStatus
parameters:
- - name: eiJobId
+ - name: infoProducerId
in: path
required: true
style: simple
explode: false
schema:
type: string
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/EiJobStatusObject'
+ responses:
+ 200:
+ description: Information producer status
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/producer_status'
+ 404:
+ description: Information producer is not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ /data-producer/v1/info-producers/{infoProducerId}/info-jobs:
+ get:
+ tags:
+ - Data producer (registration)
+ summary: Information Job definitions
+ description: Information Job definitions for one Information Producer
+ operationId: getInfoProducerJobs
+ parameters:
+ - name: infoProducerId
+ in: path
required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
responses:
200:
- description: OK
+ description: Information producer
content:
application/json:
schema:
- $ref: '#/components/schemas/Void'
+ type: array
+ items:
+ $ref: '#/components/schemas/producer_info_job_request'
+ 404:
+ description: Information producer is not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
/data-consumer/v1/info-jobs/{infoJobId}/status:
get:
tags:
@@ -851,7 +853,7 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/JobStatus'
+ $ref: '#/components/schemas/consumer_job_status'
404:
description: Information subscription job is not found
content:
@@ -860,30 +862,15 @@ paths:
$ref: '#/components/schemas/ProblemDetails'
components:
schemas:
- producer_ei_job_request:
+ consumer_information_type:
required:
- - ei_job_identity
+ - job_data_schema
type: object
properties:
- owner:
- type: string
- description: The owner of the job
- ei_job_identity:
- type: string
- description: Idenitity of the EI job
- last_updated:
- type: string
- description: The time when the job was last updated or created (ISO-8601)
- ei_job_data:
+ job_data_schema:
type: object
- description: Json for the job data
- target_uri:
- type: string
- description: URI for the target of the EI
- ei_type_identity:
- type: string
- description: Type idenitity for the job
- description: The body of the EI producer callbacks for EI job creation and deletion
+ description: Json schema for the job data
+ description: Information for an Information type
EiTypeObject:
type: object
description: Information for an EI type
@@ -897,48 +884,39 @@ components:
properties:
no_of_producers:
type: integer
- description: Number of EI producers
+ description: Number of Information Producers
format: int32
no_of_types:
type: integer
- description: Number of EI types
+ description: Number of Information Types
format: int32
no_of_jobs:
type: integer
- description: Number of EI jobs
+ description: Number of Information Jobs
format: int32
status:
type: string
description: status text
- producer_ei_type_info:
- required:
- - ei_job_data_schema
- type: object
- properties:
- ei_job_data_schema:
- type: object
- description: Json schema for the job data
- description: Information for an EI type
producer_registration_info:
required:
- - ei_job_callback_url
- - ei_producer_supervision_callback_url
- - supported_ei_types
+ - info_job_callback_url
+ - info_producer_supervision_callback_url
+ - supported_info_types
type: object
properties:
- supported_ei_types:
+ info_producer_supervision_callback_url:
+ type: string
+ description: callback for producer supervision
+ supported_info_types:
type: array
- description: Supported EI type IDs
+ description: Supported Information Type IDs
items:
type: string
- description: Supported EI type IDs
- ei_producer_supervision_callback_url:
+ description: Supported Information Type IDs
+ info_job_callback_url:
type: string
- description: callback for producer supervision
- ei_job_callback_url:
- type: string
- description: callback for EI job
- description: Information for an EI producer
+ description: callback for Information Job
+ description: Information for an Information Producer
ProblemDetails:
type: object
properties:
@@ -946,7 +924,7 @@ components:
type: string
description: A human-readable explanation specific to this occurrence of
the problem.
- example: EI job type not found
+ example: Information Job type not found
status:
type: integer
description: The HTTP status code generated by the origin server for this
@@ -967,6 +945,18 @@ components:
- ENABLED
- DISABLED
description: Status for an EI job
+ consumer_job_status:
+ required:
+ - info_job_status
+ type: object
+ properties:
+ info_job_status:
+ type: string
+ description: Allowed values for Information Job status
+ enum:
+ - ENABLED
+ - DISABLED
+ description: Status for an Information Job
EiJobObject:
required:
- eiTypeId
@@ -991,63 +981,76 @@ components:
type: object
description: EI type specific job data
description: Information for an Enrichment Information Job
- JobStatus:
+ producer_info_type_info:
required:
- - eiJobStatus
+ - info_job_data_schema
type: object
properties:
- eiJobStatus:
- type: string
- description: Allowed values for EI job status
- enum:
- - ENABLED
- - DISABLED
- description: Status for an EI job
- producer_status:
+ info_job_data_schema:
+ type: object
+ description: Json schema for the job data
+ description: Information for an Information Type
+ producer_info_job_request:
required:
- - operational_state
+ - info_job_identity
type: object
properties:
- operational_state:
+ owner:
type: string
- description: Represents the operational states
- enum:
- - ENABLED
- - DISABLED
- description: Status for an EI Producer
- Void:
- type: object
- description: 'Void/empty '
- Job:
+ description: The owner of the job
+ last_updated:
+ type: string
+ description: The time when the job was last updated or created (ISO-8601)
+ info_job_identity:
+ type: string
+ description: Identity of the Information Job
+ target_uri:
+ type: string
+ description: URI for the target of the produced Information
+ info_job_data:
+ type: object
+ description: Json for the job data
+ info_type_identity:
+ type: string
+ description: Type identity for the job
+ description: The body of the Information Producer callbacks for Information
+ Job creation and deletion
+ consumer_job:
required:
- - infoTypeId
- - jobDefinition
- - jobOwner
- - jobResultUri
+ - info_type_id
+ - job_definition
+ - job_owner
+ - job_result_uri
type: object
properties:
- jobResultUri:
- type: string
- description: The target URI of the subscribed information
- infoTypeId:
+ info_type_id:
type: string
description: Information type Idenitifier of the subscription job
- jobOwner:
+ job_result_uri:
type: string
- description: Identity of the owner of the job
- statusNotificationUri:
+ description: The target URI of the subscribed information
+ job_owner:
type: string
- description: The target of Information subscription job status notifications
- jobDefinition:
+ description: Identity of the owner of the job
+ job_definition:
type: object
description: Information type specific job data
- description: Information for an Enrichment Information Job
- InformationType:
+ status_notification_uri:
+ type: string
+ description: The target of Information subscription job status notifications
+ description: Information for an Enrichment Information Job
+ producer_status:
required:
- - consumer_job_data_schema
+ - operational_state
type: object
properties:
- consumer_job_data_schema:
- type: object
- description: Json schema for the job data
- description: Information for an Information type
+ operational_state:
+ type: string
+ description: Represents the operational states
+ enum:
+ - ENABLED
+ - DISABLED
+ description: Status for an Info Producer
+ Void:
+ type: object
+ description: 'Void/empty '
diff --git a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/BeanFactory.java b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/BeanFactory.java
index e636e50f..1d493bb1 100644
--- a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/BeanFactory.java
+++ b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/BeanFactory.java
@@ -27,8 +27,8 @@ import java.lang.invoke.MethodHandles;
import org.apache.catalina.connector.Connector;
import org.oransc.enrichment.configuration.ApplicationConfig;
import org.oransc.enrichment.controllers.r1producer.ProducerCallbacks;
-import org.oransc.enrichment.repository.EiJobs;
-import org.oransc.enrichment.repository.EiTypes;
+import org.oransc.enrichment.repository.InfoJobs;
+import org.oransc.enrichment.repository.InfoTypes;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
@@ -47,8 +47,8 @@ class BeanFactory {
private final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
private ProducerCallbacks producerCallbacks;
- private EiTypes eiTypes;
- private EiJobs eiJobs;
+ private InfoTypes infoTypes;
+ private InfoJobs infoJobs;
@Bean
public ObjectMapper mapper() {
@@ -65,29 +65,29 @@ class BeanFactory {
}
@Bean
- public EiJobs eiJobs() {
- if (eiJobs == null) {
- eiJobs = new EiJobs(getApplicationConfig(), producerCallbacks());
+ public InfoJobs infoJobs() {
+ if (infoJobs == null) {
+ infoJobs = new InfoJobs(getApplicationConfig(), producerCallbacks());
try {
- eiJobs.restoreJobsFromDatabase();
+ infoJobs.restoreJobsFromDatabase();
} catch (Exception e) {
logger.error("Could not restore jobs from database: {}", e.getMessage());
}
}
- return eiJobs;
+ return infoJobs;
}
@Bean
- public EiTypes eiTypes() {
- if (this.eiTypes == null) {
- eiTypes = new EiTypes(getApplicationConfig());
+ public InfoTypes infoTypes() {
+ if (this.infoTypes == null) {
+ infoTypes = new InfoTypes(getApplicationConfig());
try {
- eiTypes.restoreTypesFromDatabase();
+ infoTypes.restoreTypesFromDatabase();
} catch (Exception e) {
- logger.error("Could not restore EI types from database: {}", e.getMessage());
+ logger.error("Could not restore Information Types from database: {}", e.getMessage());
}
}
- return eiTypes;
+ return infoTypes;
}
@Bean
diff --git a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/SwaggerConfig.java b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/SwaggerConfig.java
index 58f69de8..6b5edc03 100644
--- a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/SwaggerConfig.java
+++ b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/SwaggerConfig.java
@@ -63,13 +63,14 @@ public class SwaggerConfig {
static final String DESCRIPTION = "
API documentation
" //
+ "
General
" //
+ "
" //
- + " 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.
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." //
+ + " 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 (Information Type). One type of data can be produced by zero to many producers.
A data consumer can have several active data subscriptions (Information Job). One Information 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." //
+ "
" //
+ "
APIs provided by the service
" //
+ "
A1-EI
" //
+ "
" //
+ " 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." //
+ + " The Near-RT RIC is a data consumer, which creates Information Jobs to subscribe for data." //
+ + " In this context, the information is referred to as 'Enrichment Information', EI." //
+ "
" //
+ "
Data producer API
" //
+ "
" //
@@ -90,9 +91,9 @@ public class SwaggerConfig {
+ "
Management of data subscription jobs
" //
+ "" //
+ "" //
- + "
EI Service status
" //
+ + "
Service status
" //
+ "
" //
- + " This API provides a means to monitor the service." //
+ + " This API provides a means to monitor the health of this service." //
+ "
";
}
diff --git a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/ErrorResponse.java b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/ErrorResponse.java
index d423e19f..1539d8c2 100644
--- a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/ErrorResponse.java
+++ b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/ErrorResponse.java
@@ -69,7 +69,7 @@ public class ErrorResponse {
}
@Schema(
- example = "EI job type not found",
+ example = "Information Job type not found",
description = "A human-readable explanation specific to this occurrence of the problem.")
public String getDetail() {
return this.detail;
diff --git a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/StatusController.java b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/StatusController.java
index b23d606d..68b654e4 100644
--- a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/StatusController.java
+++ b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/StatusController.java
@@ -31,9 +31,9 @@ import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.immutables.gson.Gson;
-import org.oransc.enrichment.repository.EiJobs;
-import org.oransc.enrichment.repository.EiProducers;
-import org.oransc.enrichment.repository.EiTypes;
+import org.oransc.enrichment.repository.InfoJobs;
+import org.oransc.enrichment.repository.InfoProducers;
+import org.oransc.enrichment.repository.InfoTypes;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
@@ -50,13 +50,13 @@ public class StatusController {
public static final String API_DESCRIPTION = "API for monitoring of the service";
@Autowired
- private EiJobs eiJobs;
+ private InfoJobs infoJobs;
@Autowired
- private EiTypes eiTypes;
+ private InfoTypes infoTypes;
@Autowired
- private EiProducers eiProducers;
+ private InfoProducers infoProducers;
@Gson.TypeAdapters
@Schema(name = "status_info")
@@ -66,22 +66,22 @@ public class StatusController {
@JsonProperty(value = "status", required = true)
public final String status;
- @Schema(name = "no_of_producers", description = "Number of EI producers")
+ @Schema(name = "no_of_producers", description = "Number of Information Producers")
@SerializedName("no_of_producers")
@JsonProperty(value = "no_of_producers", required = true)
public final int noOfProducers;
- @Schema(name = "no_of_types", description = "Number of EI types")
+ @Schema(name = "no_of_types", description = "Number of Information Types")
@SerializedName("no_of_types")
@JsonProperty(value = "no_of_types", required = true)
public final int noOfTypes;
- @Schema(name = "no_of_jobs", description = "Number of EI jobs")
+ @Schema(name = "no_of_jobs", description = "Number of Information Jobs")
@SerializedName("no_of_jobs")
@JsonProperty(value = "no_of_jobs", required = true)
public final int noOfJobs;
- public StatusInfo(String status, EiProducers producers, EiTypes types, EiJobs jobs) {
+ public StatusInfo(String status, InfoProducers producers, InfoTypes types, InfoJobs jobs) {
this.status = status;
this.noOfJobs = jobs.size();
this.noOfProducers = producers.size();
@@ -99,7 +99,7 @@ public class StatusController {
content = @Content(schema = @Schema(implementation = StatusInfo.class))) //
})
public Mono> getStatus() {
- StatusInfo info = new StatusInfo("hunky dory", this.eiProducers, this.eiTypes, this.eiJobs);
+ StatusInfo info = new StatusInfo("hunky dory", this.infoProducers, this.infoTypes, this.infoJobs);
return Mono.just(new ResponseEntity<>(info, HttpStatus.OK));
}
diff --git a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/a1e/A1eCallbacks.java b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/a1e/A1eCallbacks.java
index fc17ee2e..17f63516 100644
--- a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/a1e/A1eCallbacks.java
+++ b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/a1e/A1eCallbacks.java
@@ -29,10 +29,10 @@ import java.util.Collection;
import org.oransc.enrichment.clients.AsyncRestClient;
import org.oransc.enrichment.clients.AsyncRestClientFactory;
import org.oransc.enrichment.configuration.ApplicationConfig;
-import org.oransc.enrichment.repository.EiJob;
-import org.oransc.enrichment.repository.EiJobs;
-import org.oransc.enrichment.repository.EiProducers;
-import org.oransc.enrichment.repository.EiType;
+import org.oransc.enrichment.repository.InfoJob;
+import org.oransc.enrichment.repository.InfoJobs;
+import org.oransc.enrichment.repository.InfoProducers;
+import org.oransc.enrichment.repository.InfoType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -52,18 +52,18 @@ public class A1eCallbacks {
private static Gson gson = new GsonBuilder().create();
private final AsyncRestClient restClient;
- private final EiJobs eiJobs;
- private final EiProducers eiProducers;
+ private final InfoJobs eiJobs;
+ private final InfoProducers eiProducers;
@Autowired
- public A1eCallbacks(ApplicationConfig config, EiJobs eiJobs, EiProducers eiProducers) {
+ public A1eCallbacks(ApplicationConfig config, InfoJobs eiJobs, InfoProducers eiProducers) {
AsyncRestClientFactory restClientFactory = new AsyncRestClientFactory(config.getWebClientConfig());
this.restClient = restClientFactory.createRestClientUseHttpProxy("");
this.eiJobs = eiJobs;
this.eiProducers = eiProducers;
}
- public Flux notifyJobStatus(Collection eiTypes) {
+ public Flux notifyJobStatus(Collection eiTypes) {
return Flux.fromIterable(eiTypes) //
.flatMap(eiType -> Flux.fromIterable(this.eiJobs.getJobsForType(eiType))) //
.filter(eiJob -> !eiJob.getJobStatusUrl().isEmpty()) //
@@ -71,7 +71,7 @@ public class A1eCallbacks {
.flatMap(this::noifyStatusToJobOwner);
}
- private Mono noifyStatusToJobOwner(EiJob job) {
+ private Mono noifyStatusToJobOwner(InfoJob job) {
boolean isJobEnabled = this.eiProducers.isJobEnabled(job);
A1eEiJobStatus status = isJobEnabled ? new A1eEiJobStatus(A1eEiJobStatus.EiJobStatusValues.ENABLED)
: new A1eEiJobStatus(A1eEiJobStatus.EiJobStatusValues.DISABLED);
diff --git a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/a1e/A1eController.java b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/a1e/A1eController.java
index 34d9725e..4c5f5d0c 100644
--- a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/a1e/A1eController.java
+++ b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/a1e/A1eController.java
@@ -34,6 +34,8 @@ import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import java.lang.invoke.MethodHandles;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
@@ -43,11 +45,11 @@ import org.oransc.enrichment.controllers.ErrorResponse;
import org.oransc.enrichment.controllers.VoidResponse;
import org.oransc.enrichment.controllers.r1producer.ProducerCallbacks;
import org.oransc.enrichment.exceptions.ServiceException;
-import org.oransc.enrichment.repository.EiJob;
-import org.oransc.enrichment.repository.EiJobs;
-import org.oransc.enrichment.repository.EiProducers;
-import org.oransc.enrichment.repository.EiType;
-import org.oransc.enrichment.repository.EiTypes;
+import org.oransc.enrichment.repository.InfoJob;
+import org.oransc.enrichment.repository.InfoJobs;
+import org.oransc.enrichment.repository.InfoProducers;
+import org.oransc.enrichment.repository.InfoType;
+import org.oransc.enrichment.repository.InfoTypes;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -76,13 +78,13 @@ public class A1eController {
ApplicationConfig applicationConfig;
@Autowired
- private EiJobs eiJobs;
+ private InfoJobs eiJobs;
@Autowired
- private EiTypes eiTypes;
+ private InfoTypes eiTypes;
@Autowired
- private EiProducers eiProducers;
+ private InfoProducers infoProducers;
@Autowired
ProducerCallbacks producerCallbacks;
@@ -101,7 +103,7 @@ public class A1eController {
public ResponseEntity