ECS, support for notification of available information types
[nonrtric.git] / enrichment-coordinator-service / api / ecs-api.json
index c99873b..b2d800b 100644 (file)
@@ -1,33 +1,30 @@
 {
     "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"],
+            "required": [
+                "job_data_schema",
+                "no_of_producers",
+                "type_status"
+            ],
             "properties": {
-                "owner": {
-                    "description": "The owner of the job",
-                    "type": "string"
-                },
-                "ei_job_identity": {
-                    "description": "Idenitity of the EI job",
-                    "type": "string"
+                "no_of_producers": {
+                    "format": "int32",
+                    "description": "The number of registered producers for the type",
+                    "type": "integer"
                 },
-                "last_updated": {
-                    "description": "The time when the job was last updated or created (ISO-8601)",
-                    "type": "string"
+                "type_status": {
+                    "description": "Allowed values: <br/>ENABLED: one or several producers for the information type are available <br/>DISABLED: no producers for the information type are available",
+                    "type": "string",
+                    "enum": [
+                        "ENABLED",
+                        "DISABLED"
+                    ]
                 },
-                "ei_job_data": {
-                    "description": "Json for the job data",
+                "job_data_schema": {
+                    "description": "Json schema 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"
                 }
             }
         },
@@ -35,7 +32,7 @@
             "description": "Information for an EI type",
             "type": "object"
         },
-        "status_info": {
+        "service_status_info": {
             "type": "object",
             "required": [
                 "no_of_jobs",
             "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": {
                 }
             }
         },
-        "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"
                 }
             }
         },
-        "producer_status": {
-            "description": "Status for an EI Producer",
+        "consumer_type_registration_info": {
+            "description": "Information for an Information type",
             "type": "object",
-            "required": ["operational_state"],
-            "properties": {"operational_state": {
-                "description": "Represents the operational states",
-                "type": "string",
-                "enum": [
-                    "ENABLED",
-                    "DISABLED"
-                ]
-            }}
+            "required": [
+                "info_type_id",
+                "job_data_schema",
+                "status"
+            ],
+            "properties": {
+                "info_type_id": {
+                    "description": "Information type identifier",
+                    "type": "string"
+                },
+                "job_data_schema": {
+                    "description": "Json schema for the job data",
+                    "type": "object"
+                },
+                "status": {
+                    "description": "Allowed values: <br/>REGISTERED: the information type has been registered <br/>DEREGISTERED: the information type has been removed",
+                    "type": "string",
+                    "enum": [
+                        "REGISTERED",
+                        "DEREGISTERED"
+                    ]
+                }
+            }
         },
         "ProblemDetails": {
             "description": "A problem detail to carry details in a HTTP response according to RFC 7807",
                 "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",
                 }
             }
         },
-        "Void": {
-            "description": "Void/empty ",
-            "type": "object"
-        },
         "EiJobStatusObject": {
             "description": "Status for an EI job",
             "type": "object",
             "required": ["eiJobStatus"],
             "properties": {"eiJobStatus": {
-                "description": "Allowed values for EI job status",
+                "description": "Allowed values for EI job status: <br/>ENABLED: the A1-EI producer is able to deliver EI result for the EI job <br/>DISABLED: the A1-EI producer is unable to deliver EI result for the EI job",
                 "type": "string",
                 "enum": [
                     "ENABLED",
                 ]
             }}
         },
+        "consumer_job_status": {
+            "description": "Status for an Information Job",
+            "type": "object",
+            "required": [
+                "info_job_status",
+                "producers"
+            ],
+            "properties": {
+                "info_job_status": {
+                    "description": "Allowed values: <br/>ENABLED: the A1-Information producer is able to deliver result for the Information Job <br/>DISABLED: the A1-Information producer is unable to deliver result for the Information Job",
+                    "type": "string",
+                    "enum": [
+                        "ENABLED",
+                        "DISABLED"
+                    ]
+                },
+                "producers": {
+                    "description": "An array of all registered Information Producer Identifiers.",
+                    "type": "array",
+                    "items": {
+                        "description": "An array of all registered Information Producer Identifiers.",
+                        "type": "string"
+                    }
+                }
+            }
+        },
         "EiJobObject": {
             "description": "Information for an Enrichment Information Job",
             "type": "object",
                     "type": "object"
                 }
             }
+        },
+        "producer_info_type_info": {
+            "description": "Information for an Information Type",
+            "type": "object",
+            "required": ["info_job_data_schema"],
+            "properties": {"info_job_data_schema": {
+                "description": "Json schema for the job data",
+                "type": "object"
+            }}
+        },
+        "producer_info_job_request": {
+            "description": "The body of the Information Producer callbacks for Information Job creation and deletion",
+            "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"
+                }
+            }
+        },
+        "consumer_job": {
+            "description": "Information for an Enrichment Information Job",
+            "type": "object",
+            "required": [
+                "info_type_id",
+                "job_definition",
+                "job_owner",
+                "job_result_uri"
+            ],
+            "properties": {
+                "info_type_id": {
+                    "description": "Information type Idenitifier of the subscription job",
+                    "type": "string"
+                },
+                "job_result_uri": {
+                    "description": "The target URI of the subscribed information",
+                    "type": "string"
+                },
+                "job_owner": {
+                    "description": "Identity of the owner of the job",
+                    "type": "string"
+                },
+                "job_definition": {
+                    "description": "Information type specific job data",
+                    "type": "object"
+                },
+                "status_notification_uri": {
+                    "description": "The target of Information subscription job status notifications",
+                    "type": "string"
+                }
+            }
+        },
+        "producer_status": {
+            "description": "Status for an Info Producer",
+            "type": "object",
+            "required": ["operational_state"],
+            "properties": {"operational_state": {
+                "description": "Represents the operational states",
+                "type": "string",
+                "enum": [
+                    "ENABLED",
+                    "DISABLED"
+                ]
+            }}
+        },
+        "Void": {
+            "description": "Void/empty ",
+            "type": "object"
+        },
+        "consumer_type_subscription_info": {
+            "description": "Information for an information type subscription",
+            "type": "object",
+            "required": [
+                "owner",
+                "status_result_uri"
+            ],
+            "properties": {
+                "owner": {
+                    "description": "Identity of the owner of the subscription",
+                    "type": "string"
+                },
+                "status_result_uri": {
+                    "description": "The target URI of the subscribed information",
+                    "type": "string"
+                }
+            }
         }
     }},
     "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",
+        "/example_dataproducer/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"}}}
             }},
-            "tags": ["Data producer (callbacks)"]
-        }},
-        "/A1-EI/v1/eitypes/{eiTypeId}": {"get": {
-            "summary": "Individual EI type",
-            "operationId": "getEiType_1",
-            "responses": {
-                "200": {
-                    "description": "EI type",
-                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiTypeObject"}}}
-                },
-                "404": {
-                    "description": "Enrichment Information type is not found",
-                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
-                }
-            },
             "parameters": [{
                 "schema": {"type": "string"},
                 "in": "path",
-                "name": "eiTypeId",
+                "name": "infoJobId",
                 "required": true
             }],
-            "tags": ["A1-EI (registration)"]
+            "tags": ["Data producer (callbacks)"]
         }},
-        "/ei-producer/v1/eitypes": {"get": {
-            "summary": "EI type identifiers",
-            "operationId": "getEiTypeIdentifiers",
+        "/data-producer/v1/info-types": {"get": {
+            "summary": "Info Type identifiers",
+            "operationId": "getInfoTypdentifiers",
             "responses": {"200": {
-                "description": "EI type identifiers",
+                "description": "Info 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)"]
-        }},
-        "/ei-producer/v1/eiproducers/{eiProducerId}/status": {"get": {
-            "summary": "EI producer status",
-            "operationId": "getEiProducerStatus",
+        "/A1-EI/v1/eitypes/{eiTypeId}": {"get": {
+            "summary": "Individual EI type",
+            "operationId": "getEiType",
             "responses": {
                 "200": {
-                    "description": "EI producer status",
-                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_status"}}}
+                    "description": "EI type",
+                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiTypeObject"}}}
                 },
                 "404": {
-                    "description": "Enrichment Information producer is 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": "eiTypeId",
                 "required": true
             }],
-            "tags": ["Data producer (registration)"]
+            "tags": ["A1-EI (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",
+        "/example_dataproducer/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"}}}
             }},
-            "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",
                         "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",
                 "parameters": [{
                     "schema": {"type": "string"},
                     "in": "path",
-                    "name": "eiTypeId",
+                    "name": "infoTypeId",
+                    "required": true
+                }],
+                "tags": ["Data producer (registration)"]
+            }
+        },
+        "/data-consumer/v1/info-type-subscription/{subscriptionId}": {
+            "get": {
+                "summary": "Individual subscription for information types (registration/deregistration)",
+                "operationId": "getIndividualTypeSubscription",
+                "responses": {
+                    "200": {
+                        "description": "Type subscription",
+                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_type_subscription_info"}}}
+                    },
+                    "404": {
+                        "description": "Subscription is not found",
+                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
+                    }
+                },
+                "parameters": [{
+                    "schema": {"type": "string"},
+                    "in": "path",
+                    "name": "subscriptionId",
+                    "required": true
+                }],
+                "tags": ["Data consumer"]
+            },
+            "delete": {
+                "summary": "Individual subscription for information types (registration/deregistration)",
+                "operationId": "deleteIndividualTypeSubscription",
+                "responses": {
+                    "200": {
+                        "description": "Not used",
+                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
+                    },
+                    "204": {
+                        "description": "Subscription deleted",
+                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
+                    },
+                    "404": {
+                        "description": "Subscription is not found",
+                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
+                    }
+                },
+                "parameters": [{
+                    "schema": {"type": "string"},
+                    "in": "path",
+                    "name": "subscriptionId",
+                    "required": true
+                }],
+                "tags": ["Data consumer"]
+            },
+            "put": {
+                "summary": "Individual subscription for information types (registration/deregistration)",
+                "requestBody": {
+                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_type_subscription_info"}}},
+                    "required": true
+                },
+                "description": "This service operation is used to subscribe to notifications for changes in the availability of data types.",
+                "operationId": "putIndividualTypeSubscription",
+                "responses": {
+                    "200": {
+                        "description": "Subscription updated",
+                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
+                    },
+                    "201": {
+                        "description": "Subscription created",
+                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
+                    }
+                },
+                "parameters": [{
+                    "schema": {"type": "string"},
+                    "in": "path",
+                    "name": "subscriptionId",
+                    "required": true
+                }],
+                "tags": ["Data consumer"]
+            }
+        },
+        "/example_dataproducer/health_check": {"get": {
+            "summary": "Producer supervision",
+            "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",
+                "content": {"application/json": {"schema": {"type": "string"}}}
+            }},
+            "tags": ["Data producer (callbacks)"]
+        }},
+        "/A1-EI/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": ["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"]
+        }},
+        "/data-producer/v1/info-producers/{infoProducerId}": {
+            "get": {
+                "summary": "Individual Information Producer",
+                "operationId": "getInfoProducer",
+                "responses": {
+                    "200": {
+                        "description": "Information producer",
+                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_registration_info"}}}
+                    },
+                    "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)"]
+            },
+            "delete": {
+                "summary": "Individual Information Producer",
+                "operationId": "deleteInfoProducer",
+                "responses": {
+                    "200": {
+                        "description": "Not used",
+                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
+                    },
+                    "204": {
+                        "description": "Producer deleted",
+                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
+                    },
+                    "404": {
+                        "description": "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)"]
+            },
+            "put": {
+                "summary": "Individual Information Producer",
+                "requestBody": {
+                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_registration_info"}}},
+                    "required": true
+                },
+                "operationId": "putInfoProducer",
+                "responses": {
+                    "200": {
+                        "description": "Producer updated",
+                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
+                    },
+                    "201": {
+                        "description": "Producer created",
+                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
+                    },
+                    "404": {
+                        "description": "Producer not found",
+                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
+                    }
+                },
+                "parameters": [{
+                    "schema": {"type": "string"},
+                    "in": "path",
+                    "name": "infoProducerId",
                     "required": true
                 }],
                 "tags": ["Data producer (registration)"]
             "operationId": "getStatus",
             "responses": {"200": {
                 "description": "Service is living",
-                "content": {"application/json": {"schema": {"$ref": "#/components/schemas/status_info"}}}
+                "content": {"application/json": {"schema": {"$ref": "#/components/schemas/service_status_info"}}}
             }},
-            "tags": ["EI Service status"]
+            "tags": ["Service status"]
         }},
-        "/ei-producer/v1/eiproducers": {"get": {
-            "summary": "EI producer identifiers",
-            "operationId": "getEiProducerIdentifiers",
+        "/data-consumer/v1/info-type-subscription": {"get": {
+            "summary": "Information type subscription identifiers",
+            "description": "query for information type subscription identifiers",
+            "operationId": "getInfoTypeSubscriptions",
             "responses": {"200": {
-                "description": "EI producer identifiers",
+                "description": "Information type subscription 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.",
+                "name": "owner",
+                "description": "selects result for one owner",
                 "required": false
             }],
-            "tags": ["Data producer (registration)"]
+            "tags": ["Data consumer"]
         }},
         "/A1-EI/v1/eijobs/{eiJobId}": {
             "get": {
                 "summary": "Individual EI job",
-                "operationId": "getIndividualEiJob",
+                "operationId": "getIndividualEiJob_1",
                 "responses": {
                     "200": {
                         "description": "EI job",
             },
             "delete": {
                 "summary": "Individual EI job",
-                "operationId": "deleteIndividualEiJob",
+                "operationId": "deleteIndividualEiJob_1",
                 "responses": {
                     "200": {
                         "description": "Not used",
                 "tags": ["A1-EI (registration)"]
             }
         },
-        "/ei-producer/v1/eiproducers/{eiProducerId}": {
+        "/data-consumer/v1/info-jobs": {"get": {
+            "summary": "Information Job identifiers",
+            "description": "query for information job identifiers",
+            "operationId": "getJobIds",
+            "responses": {
+                "200": {
+                    "description": "Information information job identifiers",
+                    "content": {"application/json": {"schema": {
+                        "type": "array",
+                        "items": {"type": "string"}
+                    }}}
+                },
+                "404": {
+                    "description": "Information type is not found",
+                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
+                }
+            },
+            "parameters": [
+                {
+                    "schema": {"type": "string"},
+                    "in": "query",
+                    "name": "infoTypeId",
+                    "description": "selects subscription jobs of matching information type",
+                    "required": false
+                },
+                {
+                    "schema": {"type": "string"},
+                    "in": "query",
+                    "name": "owner",
+                    "description": "selects result for one owner",
+                    "required": false
+                }
+            ],
+            "tags": ["Data consumer"]
+        }},
+        "/data-consumer/v1/info-jobs/{infoJobId}": {
             "get": {
-                "summary": "Individual EI producer",
-                "operationId": "getEiProducer",
+                "summary": "Individual data subscription job",
+                "operationId": "getIndividualEiJob",
                 "responses": {
                     "200": {
-                        "description": "EI producer",
-                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_registration_info"}}}
+                        "description": "Information subscription job",
+                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_job"}}}
                     },
                     "404": {
-                        "description": "Enrichment Information producer is not found",
+                        "description": "Information subscription job is not found",
                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
                     }
                 },
                 "parameters": [{
                     "schema": {"type": "string"},
                     "in": "path",
-                    "name": "eiProducerId",
+                    "name": "infoJobId",
                     "required": true
                 }],
-                "tags": ["Data producer (registration)"]
+                "tags": ["Data consumer"]
             },
             "delete": {
-                "summary": "Individual EI producer",
-                "operationId": "deleteEiProducer",
+                "summary": "Individual data subscription job",
+                "operationId": "deleteIndividualEiJob",
                 "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": "Information subscription job is not found",
                         "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
                     }
                 },
                 "parameters": [{
                     "schema": {"type": "string"},
                     "in": "path",
-                    "name": "eiProducerId",
+                    "name": "infoJobId",
                     "required": true
                 }],
-                "tags": ["Data producer (registration)"]
+                "tags": ["Data consumer"]
             },
             "put": {
-                "summary": "Individual EI producer",
+                "summary": "Individual data subscription job",
                 "requestBody": {
-                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_registration_info"}}},
+                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_job"}}},
                     "required": true
                 },
-                "operationId": "putEiProducer",
+                "description": "The job will be enabled when a producer is available",
+                "operationId": "putIndividualInfoJob",
                 "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": "Information type 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)"]
+                "parameters": [
+                    {
+                        "schema": {"type": "string"},
+                        "in": "path",
+                        "name": "infoJobId",
+                        "required": true
+                    },
+                    {
+                        "schema": {
+                            "default": false,
+                            "type": "boolean"
+                        },
+                        "in": "query",
+                        "name": "typeCheck",
+                        "description": "when true, a validation of that the type exists and that the job matches the type schema.",
+                        "required": false
+                    }
+                ],
+                "tags": ["Data consumer"]
             }
         },
-        "/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.",
-            "operationId": "producerSupervision",
+        "/data-producer/v1/info-producers": {"get": {
+            "summary": "Information producer identifiers",
+            "operationId": "getInfoProducerIdentifiers",
             "responses": {"200": {
-                "description": "The producer is OK",
-                "content": {"application/json": {"schema": {"type": "string"}}}
+                "description": "Information producer identifiers",
+                "content": {"application/json": {"schema": {
+                    "type": "array",
+                    "items": {"type": "string"}
+                }}}
             }},
-            "tags": ["Data producer (callbacks)"]
+            "parameters": [{
+                "schema": {"type": "string"},
+                "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)"]
         }},
-        "/ei-producer/v1/eiproducers/{eiProducerId}/eijobs": {"get": {
-            "summary": "EI job definitions",
-            "description": "EI job definitions for one EI producer",
-            "operationId": "getEiProducerJobs",
+        "/data-consumer/v1/info-types/{infoTypeId}": {"get": {
+            "summary": "Individual information type",
+            "operationId": "getInfoType_1",
             "responses": {
                 "200": {
-                    "description": "EI producer",
-                    "content": {"application/json": {"schema": {
-                        "type": "array",
-                        "items": {"$ref": "#/components/schemas/producer_ei_job_request"}
-                    }}}
+                    "description": "Information type",
+                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_information_type"}}}
                 },
                 "404": {
-                    "description": "Enrichment Information producer is not found",
+                    "description": "Information type is not found",
                     "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
                 }
             },
             "parameters": [{
                 "schema": {"type": "string"},
                 "in": "path",
-                "name": "eiProducerId",
+                "name": "infoTypeId",
                 "required": true
             }],
-            "tags": ["Data producer (registration)"]
+            "tags": ["Data consumer"]
+        }},
+        "/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",
         }},
         "/A1-EI/v1/eijobs/{eiJobId}/status": {"get": {
             "summary": "EI job status",
-            "operationId": "getEiJobStatus",
+            "operationId": "getEiJobStatus_1",
             "responses": {
                 "200": {
                     "description": "EI job status",
             }],
             "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",
+            "operationId": "getEiJobStatus",
+            "responses": {
+                "200": {
+                    "description": "Information subscription job status",
+                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_job_status"}}}
+                },
+                "404": {
+                    "description": "Information subscription job is not found",
+                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}
+                }
+            },
+            "parameters": [{
+                "schema": {"type": "string"},
+                "in": "path",
+                "name": "infoJobId",
+                "required": true
+            }],
+            "tags": ["Data consumer"]
+        }},
+        "/example_dataconsumer/info_type_status": {"post": {
+            "summary": "Callback for changed Information type registration status",
+            "requestBody": {
+                "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_type_registration_info"}}},
+                "required": true
+            },
+            "description": "The primitive is implemented by the data consumer and is invoked when a Information type status has been changed. <br/>Subscription are managed by primitives in 'Data consumer'",
+            "operationId": "typeStatusCallback",
+            "responses": {"200": {
+                "description": "OK",
+                "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
+            }},
+            "tags": ["Data consumer (callbacks)"]
         }}
     },
     "info": {
             "name": "Copyright (C) 2020 Nordix Foundation. Licensed under the Apache License.",
             "url": "http://www.apache.org/licenses/LICENSE-2.0"
         },
-        "description": "<h1>API documentation<\/h1><h2>General<\/h2><p>  The service is mainly a broker between data producers and data consumers. A data producer has the ability to producer one or several type of data (EI type). One type of data can be produced by zero to many producers. <br /><br />A data consumer can have several active data subscriptions (EI job). One EI job consists of the the type of data to produce and additional parameters for filtering of the data. These parameters are different for different data types.<\/p><h2>APIs provided by the service<\/h2><h4>A1-EI<\/h4><p>  This API is between Near-RT RIC, which is a data consumer and the Non-RT RIC. <\/p><h4>Data producer API<\/h4><p>  This API is between data producers and this service. It is divivided into two parts, where one is provided by this service (registration) and one part is provided by the data producer.<\/p><h4>EI Service status<\/h4><p>  This API provides a means to monitor the service.<\/p>",
-        "title": "Enrichment Information Service",
+        "description": "<h1>API documentation<\/h1><h2>General<\/h2><p>  The service is mainly a broker between data producers and data consumers. A data producer has the ability to produce one or several types of data (Information Type). One type of data can be produced by zero to many producers. <br /><br />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><h2>APIs provided by the service<\/h2><h4>A1-EI<\/h4><p>  This API is between Near-RT RIC and the Non-RT RIC.  The Near-RT RIC is a data consumer, which creates Information Jobs to subscribe for data.  In this context, the information is referred to as 'Enrichment Information', EI.<\/p><h4>Data producer API<\/h4><p>  This API is provided by the Non-RT RIC platform and is intended to be part of the O-RAN R1 interface.  The API is for use by different kinds of data producers and provides support for:<ul><li>Registry of supported information types and which parameters needed to setup a subscription.<\/li><li>Registry of existing data producers.<\/li><li>Callback API provided by producers to setup subscriptions.<\/li><\/ul><\/p><h4>Data consumer API<\/h4><p>  This API is provided by the Non-RT RIC platform and is intended to be part of the O-RAN R1 interface.  The API is for use by different kinds of data consumers and provides support for:<ul><li>Querying of available types of data to consume.<\/li><li>Management of data subscription jobs<\/li><li>Optional callback API provided by consumers to get notification on added and removed information types.<\/li><\/ul><\/p><h4>Service status<\/h4><p>  This API provides a means to monitor the health of this service.<\/p>",
+        "title": "Data management and exposure",
         "version": "1.0"
     },
     "tags": [
             "description": "API for data producers"
         },
         {
-            "name": "EI Service status",
+            "name": "Service status",
             "description": "API for monitoring of the service"
+        },
+        {
+            "name": "Data consumer",
+            "description": "API for data consumers"
         }
     ]
 }
\ No newline at end of file