NONRTRIC - Enrichment Coordinator Service, making type availability subscriptions...
[nonrtric.git] / enrichment-coordinator-service / api / ecs-api.yaml
index 7b3d011..3445ede 100644 (file)
@@ -1,63 +1,98 @@
 openapi: 3.0.1
 info:
-  title: Enrichment Data service
-  description: This page lists all the rest apis for the service.
+  title: Data management and exposure
+  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>
+  license:
+    name: Copyright (C) 2020 Nordix Foundation. Licensed under the Apache License.
+    url: http://www.apache.org/licenses/LICENSE-2.0
   version: "1.0"
 servers:
 - url: /
 tags:
-- name: A1-EI (enrichment information)
-  description: Consumer Controller
-- name: A1-EI (enrichment information) callbacks
-  description: Consumer Simulator Controller
-- name: Data Producer Job Control (example producer)
-  description: Producer Simulator Controller
-- name: Data Producer Registry API
-  description: Producer Controller
+- name: A1-EI (registration)
+  description: Data consumer EI job registration
+- name: A1-EI (callbacks)
+  description: Data consumer EI job status callbacks
+- name: Data producer (callbacks)
+  description: API implemented by data producers
+- name: Data producer (registration)
+  description: API for data producers
 - name: Service status
-  description: Status Controller
+  description: API for monitoring of the service
+- name: Data consumer
+  description: API for data consumers
 paths:
-  /producer_simulator/ei_job:
-    post:
+  /example_dataproducer/info_job/{infoJobId}:
+    delete:
       tags:
-      - Data Producer Job Control (example producer)
-      summary: Callback for EI job creation
-      operationId: jobCreatedCallbackUsingPOST
-      requestBody:
-        description: request
-        content:
-          application/json:
-            schema:
-              $ref: '#/components/schemas/producer_ei_job_request'
+      - 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: {}
-        201:
-          description: Created
-          content: {}
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
-        404:
-          description: Not Found
-          content: {}
-      deprecated: false
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Void'
+  /data-producer/v1/info-types:
+    get:
+      tags:
+      - Data producer (registration)
+      summary: Info Type identifiers
+      operationId: getInfoTypdentifiers
+      responses:
+        200:
+          description: Info Type identifiers
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  type: string
   /A1-EI/v1/eitypes/{eiTypeId}:
     get:
       tags:
-      - A1-EI (enrichment information)
+      - A1-EI (registration)
       summary: Individual EI type
-      operationId: getEiTypeUsingGET
+      operationId: getEiType
       parameters:
       - name: eiTypeId
         in: path
-        description: eiTypeId
         required: true
+        style: simple
+        explode: false
         schema:
           type: string
       responses:
@@ -67,342 +102,421 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/EiTypeObject'
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
         404:
           description: Enrichment Information type is not found
           content:
             application/json:
               schema:
                 $ref: '#/components/schemas/ProblemDetails'
-      deprecated: false
-  /consumer_simulator/eijobs/{eiJobId}/status:
+  /example_dataproducer/info_job:
     post:
       tags:
-      - A1-EI (enrichment information) callbacks
-      summary: Callback for EI job status
-      operationId: jobStatusCallbackUsingPOST
+      - 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'
+  /data-producer/v1/info-types/{infoTypeId}:
+    get:
+      tags:
+      - Data producer (registration)
+      summary: Individual Information Type
+      operationId: getInfoType
       parameters:
-      - name: eiJobId
+      - name: infoTypeId
+        in: path
+        required: true
+        style: simple
+        explode: false
+        schema:
+          type: string
+      responses:
+        200:
+          description: Info Type
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/producer_info_type_info'
+        404:
+          description: Information type is not found
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ProblemDetails'
+    put:
+      tags:
+      - Data producer (registration)
+      summary: Individual Information Type
+      operationId: putInfoType
+      parameters:
+      - name: infoTypeId
         in: path
-        description: eiJobId
         required: true
+        style: simple
+        explode: false
         schema:
           type: string
       requestBody:
-        description: status
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/EiJobStatusObject'
+              $ref: '#/components/schemas/producer_info_type_info'
         required: true
       responses:
         200:
-          description: OK
-          content: {}
+          description: Type updated
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Void'
         201:
-          description: Created
-          content: {}
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
-        404:
-          description: Not Found
-          content: {}
-      deprecated: false
-  /ei-producer/v1/eitypes:
-    get:
+          description: Type created
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Void'
+        400:
+          description: Bad request
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ProblemDetails'
+    delete:
       tags:
-      - Data Producer Registry API
-      summary: EI type identifiers
-      operationId: getEiTypeIdentifiersUsingGET_1
+      - Data producer (registration)
+      summary: Individual Information Type
+      operationId: deleteInfoType
+      parameters:
+      - name: infoTypeId
+        in: path
+        required: true
+        style: simple
+        explode: false
+        schema:
+          type: string
       responses:
         200:
-          description: EI type identifiers
+          description: Not used
           content:
             application/json:
               schema:
-                type: array
-                items:
-                  type: string
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
+                $ref: '#/components/schemas/Void'
+        204:
+          description: Producer deleted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Void'
         404:
-          description: Not Found
-          content: {}
-      deprecated: false
-  /A1-EI/v1/eitypes:
+          description: Information type is not found
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ProblemDetails'
+        406:
+          description: The Information type has one or several active producers
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ProblemDetails'
+  /data-consumer/v1/info-type-subscription/{subscriptionId}:
     get:
       tags:
-      - A1-EI (enrichment information)
-      summary: EI type identifiers
-      operationId: getEiTypeIdentifiersUsingGET
+      - Data consumer
+      summary: Individual subscription for information types (registration/deregistration)
+      operationId: getIndividualTypeSubscription
+      parameters:
+      - name: subscriptionId
+        in: path
+        required: true
+        style: simple
+        explode: false
+        schema:
+          type: string
       responses:
         200:
-          description: EI type identifiers
+          description: Type subscription
           content:
             application/json:
               schema:
-                type: array
-                items:
-                  type: string
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
+                $ref: '#/components/schemas/consumer_type_subscription_info'
         404:
-          description: Not Found
-          content: {}
-      deprecated: false
-  /ei-producer/v1/eiproducers/{eiProducerId}/status:
-    get:
+          description: Subscription is not found
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ProblemDetails'
+    put:
       tags:
-      - Data Producer Registry API
-      summary: EI producer status
-      operationId: getEiProducerStatusUsingGET
+      - Data consumer
+      summary: Individual subscription for information types (registration/deregistration)
+      description: This service operation is used to subscribe to notifications for
+        changes in the availability of data types.
+      operationId: putIndividualTypeSubscription
       parameters:
-      - name: eiProducerId
+      - name: subscriptionId
         in: path
-        description: eiProducerId
         required: true
+        style: simple
+        explode: false
         schema:
           type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/consumer_type_subscription_info'
+        required: true
       responses:
         200:
-          description: EI jobs
+          description: Subscription updated
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/producer_status'
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
-        404:
-          description: Enrichment Information producer is not found
+                $ref: '#/components/schemas/Void'
+        201:
+          description: Subscription created
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ProblemDetails'
-      deprecated: false
-  /producer_simulator/ei_job/{eiJobId}:
+                $ref: '#/components/schemas/Void'
     delete:
       tags:
-      - Data Producer Job Control (example producer)
-      summary: Callback for EI job deletion
-      operationId: jobDeletedCallbackUsingDELETE
+      - Data consumer
+      summary: Individual subscription for information types (registration/deregistration)
+      operationId: deleteIndividualTypeSubscription
       parameters:
-      - name: eiJobId
+      - name: subscriptionId
         in: path
-        description: eiJobId
         required: true
+        style: simple
+        explode: false
         schema:
           type: string
       responses:
         200:
-          description: OK
-          content: {}
+          description: Not used
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Void'
         204:
-          description: No Content
-          content: {}
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
-      deprecated: false
-  /ei-producer/v1/eiproducers:
+          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'
+  /example_dataproducer/health_check:
     get:
       tags:
-      - Data Producer Registry API
-      summary: EI producer identifiers
-      operationId: getEiProducerIdentifiersUsingGET
-      parameters:
-      - name: ei_type_id
-        in: query
-        description: If given, only the producers for the EI Data type is returned.
-        allowEmptyValue: false
-        schema:
-          type: string
+      - Data producer (callbacks)
+      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: EI producer identifiers
+          description: The producer is OK
+          content:
+            application/json:
+              schema:
+                type: string
+  /A1-EI/v1/eitypes:
+    get:
+      tags:
+      - A1-EI (registration)
+      summary: EI type identifiers
+      operationId: getEiTypeIdentifiers
+      responses:
+        200:
+          description: EI type identifiers
           content:
             application/json:
               schema:
                 type: array
                 items:
                   type: string
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
-        404:
-          description: Not Found
-          content: {}
-      deprecated: false
-  /ei-producer/v1/eitypes/{eiTypeId}:
+  /data-consumer/v1/info-types:
     get:
       tags:
-      - Data Producer Registry API
-      summary: Individual EI type
-      operationId: getEiTypeUsingGET_1
+      - Data consumer
+      summary: Information type identifiers
+      operationId: getinfoTypeIdentifiers
+      responses:
+        200:
+          description: Information type identifiers
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  type: string
+  /data-producer/v1/info-producers/{infoProducerId}:
+    get:
+      tags:
+      - Data producer (registration)
+      summary: Individual Information Producer
+      operationId: getInfoProducer
       parameters:
-      - name: eiTypeId
+      - name: infoProducerId
         in: path
-        description: eiTypeId
         required: true
+        style: simple
+        explode: false
         schema:
           type: string
       responses:
         200:
-          description: EI type
+          description: Information producer
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/producer_ei_type_info'
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
+                $ref: '#/components/schemas/producer_registration_info'
         404:
-          description: Enrichment Information type is not found
+          description: Information producer is not found
           content:
             application/json:
               schema:
                 $ref: '#/components/schemas/ProblemDetails'
-      deprecated: false
     put:
       tags:
-      - Data Producer Registry API
-      summary: Individual EI type
-      operationId: putEiTypeUsingPUT
+      - Data producer (registration)
+      summary: Individual Information Producer
+      operationId: putInfoProducer
       parameters:
-      - name: eiTypeId
+      - name: infoProducerId
         in: path
-        description: eiTypeId
         required: true
+        style: simple
+        explode: false
         schema:
           type: string
       requestBody:
-        description: registrationInfo
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/producer_ei_type_info'
+              $ref: '#/components/schemas/producer_registration_info'
         required: true
       responses:
         200:
-          description: OK
+          description: Producer updated
           content:
             application/json:
               schema:
-                type: object
+                $ref: '#/components/schemas/Void'
         201:
-          description: Created
-          content: {}
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
+          description: Producer created
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Void'
         404:
-          description: Not Found
-          content: {}
-      deprecated: false
+          description: Producer not found
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ProblemDetails'
     delete:
       tags:
-      - Data Producer Registry API
-      summary: Individual EI type
-      operationId: deleteEiTypeUsingDELETE
+      - Data producer (registration)
+      summary: Individual Information Producer
+      operationId: deleteInfoProducer
       parameters:
-      - name: eiTypeId
+      - name: infoProducerId
         in: path
-        description: eiTypeId
         required: true
+        style: simple
+        explode: false
         schema:
           type: string
       responses:
         200:
           description: Not used
-          content: {}
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Void'
         204:
           description: Producer deleted
-          content: {}
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
-        404:
-          description: Enrichment 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
+                $ref: '#/components/schemas/Void'
+        404:
+          description: Producer is not found
           content:
             application/json:
               schema:
                 $ref: '#/components/schemas/ProblemDetails'
-      deprecated: false
   /status:
     get:
       tags:
       - Service status
       summary: Returns status and statistics of this service
-      operationId: getStatusUsingGET
+      operationId: getStatus
       responses:
         200:
           description: Service is living
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/status_info'
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
-        404:
-          description: Not Found
-          content: {}
-      deprecated: false
+                $ref: '#/components/schemas/service_status_info'
+  /data-consumer/v1/info-type-subscription:
+    get:
+      tags:
+      - Data consumer
+      summary: Information type subscription identifiers
+      description: query for information type subscription identifiers
+      operationId: getInfoTypeSubscriptions
+      parameters:
+      - name: owner
+        in: query
+        description: selects result for one owner
+        required: false
+        style: form
+        explode: true
+        schema:
+          type: string
+      responses:
+        200:
+          description: Information type subscription identifiers
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  type: string
   /A1-EI/v1/eijobs/{eiJobId}:
     get:
       tags:
-      - A1-EI (enrichment information)
+      - A1-EI (registration)
       summary: Individual EI job
-      operationId: getIndividualEiJobUsingGET
+      operationId: getIndividualEiJob_1
       parameters:
       - name: eiJobId
         in: path
-        description: eiJobId
         required: true
+        style: simple
+        explode: false
         schema:
           type: string
       responses:
@@ -412,33 +526,26 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/EiJobObject'
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
         404:
           description: Enrichment Information job is not found
           content:
             application/json:
               schema:
                 $ref: '#/components/schemas/ProblemDetails'
-      deprecated: false
     put:
       tags:
-      - A1-EI (enrichment information)
+      - A1-EI (registration)
       summary: Individual EI job
-      operationId: putIndividualEiJobUsingPUT
+      operationId: putIndividualEiJob
       parameters:
       - name: eiJobId
         in: path
-        description: eiJobId
         required: true
+        style: simple
+        explode: false
         schema:
           type: string
       requestBody:
-        description: eiJobObject
         content:
           application/json:
             schema:
@@ -447,233 +554,303 @@ paths:
       responses:
         200:
           description: Job updated
-          content: {}
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Void'
         201:
           description: Job created
-          content: {}
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Void'
         404:
           description: Enrichment Information type is not found
           content:
             application/json:
               schema:
                 $ref: '#/components/schemas/ProblemDetails'
-      deprecated: false
     delete:
       tags:
-      - A1-EI (enrichment information)
+      - A1-EI (registration)
       summary: Individual EI job
-      operationId: deleteIndividualEiJobUsingDELETE
+      operationId: deleteIndividualEiJob_1
       parameters:
       - name: eiJobId
         in: path
-        description: eiJobId
         required: true
+        style: simple
+        explode: false
         schema:
           type: string
       responses:
         200:
           description: Not used
-          content: {}
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Void'
         204:
           description: Job deleted
-          content: {}
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Void'
         404:
           description: Enrichment Information job is not found
           content:
             application/json:
               schema:
                 $ref: '#/components/schemas/ProblemDetails'
-      deprecated: false
-  /ei-producer/v1/eiproducers/{eiProducerId}:
+  /data-consumer/v1/info-jobs:
     get:
       tags:
-      - Data Producer Registry API
-      summary: Individual EI producer
-      operationId: getEiProducerUsingGET
+      - Data consumer
+      summary: Information Job identifiers
+      description: query for information job identifiers
+      operationId: getJobIds
       parameters:
-      - name: eiProducerId
+      - name: infoTypeId
+        in: query
+        description: selects subscription jobs of matching information type
+        required: false
+        style: form
+        explode: true
+        schema:
+          type: string
+      - name: owner
+        in: query
+        description: selects result for one owner
+        required: false
+        style: form
+        explode: true
+        schema:
+          type: string
+      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'
+  /data-consumer/v1/info-jobs/{infoJobId}:
+    get:
+      tags:
+      - Data consumer
+      summary: Individual data subscription job
+      operationId: getIndividualEiJob
+      parameters:
+      - name: infoJobId
         in: path
-        description: eiProducerId
         required: true
+        style: simple
+        explode: false
         schema:
           type: string
       responses:
         200:
-          description: EI jobs
+          description: Information subscription job
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/producer_registration_info'
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
+                $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'
-      deprecated: false
     put:
       tags:
-      - Data Producer Registry API
-      summary: Individual EI producer
-      operationId: putEiProducerUsingPUT
+      - Data consumer
+      summary: Individual data subscription job
+      description: The job will be enabled when a producer is available
+      operationId: putIndividualInfoJob
       parameters:
-      - name: eiProducerId
+      - name: infoJobId
         in: path
-        description: eiProducerId
         required: true
+        style: simple
+        explode: false
         schema:
           type: string
+      - name: typeCheck
+        in: query
+        description: when true, a validation of that the type exists and that the
+          job matches the type schema.
+        required: false
+        style: form
+        explode: true
+        schema:
+          type: boolean
+          default: false
       requestBody:
-        description: registrationInfo
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/producer_registration_info'
+              $ref: '#/components/schemas/consumer_job'
         required: true
       responses:
         200:
-          description: Producer updated
-          content: {}
+          description: Job updated
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Void'
         201:
-          description: Producer created
-          content: {}
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
+          description: Job created
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Void'
         404:
-          description: Not Found
-          content: {}
-      deprecated: false
+          description: Information type is not found
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ProblemDetails'
     delete:
       tags:
-      - Data Producer Registry API
-      summary: Individual EI producer
-      operationId: deleteEiProducerUsingDELETE
+      - Data consumer
+      summary: Individual data subscription job
+      operationId: deleteIndividualEiJob
       parameters:
-      - name: eiProducerId
+      - name: infoJobId
         in: path
-        description: eiProducerId
         required: true
+        style: simple
+        explode: false
         schema:
           type: string
       responses:
         200:
           description: Not used
-          content: {}
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Void'
         204:
-          description: Producer deleted
-          content: {}
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
+          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'
-      deprecated: false
-  /producer_simulator/health_check:
+  /data-producer/v1/info-producers:
     get:
       tags:
-      - Data Producer Job Control (example producer)
-      summary: Producer supervision
-      operationId: producerSupervisionUsingGET
+      - Data producer (registration)
+      summary: Information producer identifiers
+      operationId: getInfoProducerIdentifiers
+      parameters:
+      - 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: OK
+          description: Information producer identifiers
           content:
             application/json:
               schema:
-                type: string
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
-        404:
-          description: Not Found
-          content: {}
-      deprecated: false
-  /ei-producer/v1/eiproducers/{eiProducerId}/eijobs:
+                type: array
+                items:
+                  type: string
+  /data-consumer/v1/info-types/{infoTypeId}:
     get:
       tags:
-      - Data Producer Registry API
-      summary: EI job definitions
-      description: EI job definitions for one EI producer
-      operationId: getEiProducerJobsUsingGET
+      - Data consumer
+      summary: Individual information type
+      operationId: getInfoType_1
       parameters:
-      - name: eiProducerId
+      - name: infoTypeId
         in: path
-        description: eiProducerId
         required: true
+        style: simple
+        explode: false
         schema:
           type: string
       responses:
         200:
-          description: EI jobs
+          description: Information type
           content:
             application/json:
               schema:
-                type: array
-                items:
-                  $ref: '#/components/schemas/producer_ei_job_request'
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
+                $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'
-      deprecated: false
+  /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:
-      - A1-EI (enrichment information)
+      - A1-EI (registration)
       summary: EI job identifiers
       description: query for EI job identifiers
-      operationId: getEiJobIdsUsingGET
+      operationId: getEiJobIds
       parameters:
       - name: eiTypeId
         in: query
         description: selects EI jobs of matching EI type
-        allowEmptyValue: false
+        required: false
+        style: form
+        explode: true
         schema:
           type: string
       - name: owner
         in: query
         description: selects EI jobs for one EI job owner
-        allowEmptyValue: false
+        required: false
+        style: form
+        explode: true
         schema:
           type: string
       responses:
@@ -685,30 +862,24 @@ paths:
                 type: array
                 items:
                   type: string
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
         404:
           description: Enrichment Information type is not found
           content:
             application/json:
               schema:
                 $ref: '#/components/schemas/ProblemDetails'
-      deprecated: false
   /A1-EI/v1/eijobs/{eiJobId}/status:
     get:
       tags:
-      - A1-EI (enrichment information)
+      - A1-EI (registration)
       summary: EI job status
-      operationId: getEiJobStatusUsingGET
+      operationId: getEiJobStatus_1
       parameters:
       - name: eiJobId
         in: path
-        description: eiJobId
         required: true
+        style: simple
+        explode: false
         schema:
           type: string
       responses:
@@ -718,127 +889,218 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/EiJobStatusObject'
-        401:
-          description: Unauthorized
-          content: {}
-        403:
-          description: Forbidden
-          content: {}
         404:
           description: Enrichment Information job is not found
           content:
             application/json:
               schema:
                 $ref: '#/components/schemas/ProblemDetails'
-      deprecated: false
+  /data-producer/v1/info-producers/{infoProducerId}/status:
+    get:
+      tags:
+      - Data producer (registration)
+      summary: Information producer status
+      operationId: getInfoProducerStatus
+      parameters:
+      - name: infoProducerId
+        in: path
+        required: true
+        style: simple
+        explode: false
+        schema:
+          type: string
+      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: 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'
+  /data-consumer/v1/info-jobs/{infoJobId}/status:
+    get:
+      tags:
+      - Data consumer
+      summary: Job status
+      operationId: getEiJobStatus
+      parameters:
+      - name: infoJobId
+        in: path
+        required: true
+        style: simple
+        explode: false
+        schema:
+          type: string
+      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'
+  /example_dataconsumer/info_type_status:
+    post:
+      tags:
+      - Data consumer (callbacks)
+      summary: Callback for changed Information type registration status
+      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
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/consumer_type_registration_info'
+        required: true
+      responses:
+        200:
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Void'
 components:
   schemas:
-    producer_ei_job_request:
-      title: producer_ei_job_request
+    consumer_information_type:
       required:
-      - ei_job_identity
+      - job_data_schema
+      - no_of_producers
+      - type_status
       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:
+        no_of_producers:
+          type: integer
+          description: The number of registered producers for the type
+          format: int32
+        type_status:
           type: string
-          description: The time when the job was last updated or created (ISO-8601)
-        ei_job_data:
+          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'
+          enum:
+          - ENABLED
+          - DISABLED
+        job_data_schema:
           type: object
-          properties: {}
-          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:
-      title: EiTypeObject
       type: object
       description: Information for an EI type
-    status_info:
-      title: status_info
+    service_status_info:
+      required:
+      - no_of_jobs
+      - no_of_producers
+      - no_of_types
+      - status
       type: object
       properties:
         no_of_producers:
           type: integer
-          description: Number of EI producers
+          description: Number of Information Producers
           format: int32
-        no_of_jobs:
+        no_of_types:
           type: integer
-          description: Number of EI jobs
+          description: Number of Information Types
           format: int32
-        no_of_types:
+        no_of_jobs:
           type: integer
-          description: Number of EI types
+          description: Number of Information Jobs
           format: int32
         status:
           type: string
           description: status text
-    Mono«ResponseEntity«object»»:
-      title: Mono«ResponseEntity«object»»
-      type: object
-    producer_ei_type_info:
-      title: producer_ei_type_info
-      type: object
-      properties:
-        ei_job_data_schema:
-          type: object
-          properties: {}
-          description: Json schema for the job data
-      description: Information for an EI type
     producer_registration_info:
-      title: 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
-        ei_producer_supervision_callback_url:
-          type: string
-          description: callback for producer supervision
-        ei_job_callback_url:
+            description: Supported Information Type IDs
+        info_job_callback_url:
           type: string
-          description: callback for EI job
-      description: Information for an EI producer
-    producer_status:
-      title: producer_status
+          description: callback for Information Job
+      description: Information for an Information Producer
+    consumer_type_registration_info:
       required:
-      - operational_state
+      - info_type_id
+      - job_data_schema
+      - status
       type: object
       properties:
-        operational_state:
+        info_type_id:
+          type: string
+          description: Information type identifier
+        job_data_schema:
+          type: object
+          description: Json schema for the job data
+        status:
           type: string
-          description: |-
-            Operational state, values:
-            ENABLED: TBD
-            DISABLED: TBD.
+          description: 'Allowed values: <br/>REGISTERED: the information type has
+            been registered <br/>DEREGISTERED: the information type has been removed'
           enum:
-          - ENABLED
-          - DISABLED
-      description: Status for an EI Producer
+          - REGISTERED
+          - DEREGISTERED
+      description: Information for an Information type
     ProblemDetails:
-      title: ProblemDetails
       type: object
       properties:
         detail:
           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
@@ -847,28 +1109,42 @@ components:
           example: 404
       description: A problem detail to carry details in a HTTP response according
         to RFC 7807
-    Void:
-      title: Void
-      type: object
-      description: Void/empty
     EiJobStatusObject:
-      title: EiJobStatusObject
       required:
       - eiJobStatus
       type: object
       properties:
         eiJobStatus:
           type: string
-          description: |-
-            values:
-            ENABLED: the A1-EI producer is able to deliver EI result for the EI job
-            DISABLED: the A1-EI producer is unable to deliver EI result for the EI job
+          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'
           enum:
           - ENABLED
           - DISABLED
       description: Status for an EI job
+    consumer_job_status:
+      required:
+      - info_job_status
+      - producers
+      type: object
+      properties:
+        info_job_status:
+          type: string
+          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'
+          enum:
+          - ENABLED
+          - DISABLED
+        producers:
+          type: array
+          description: An array of all registered Information Producer Identifiers.
+          items:
+            type: string
+            description: An array of all registered Information Producer Identifiers.
+      description: Status for an Information Job
     EiJobObject:
-      title: EiJobObject
       required:
       - eiTypeId
       - jobDefinition
@@ -885,11 +1161,99 @@ components:
         jobOwner:
           type: string
           description: Identity of the owner of the job
-        jobStatusNotificationUri:
+        statusNotificationUri:
           type: string
           description: The target of EI job status notifications
         jobDefinition:
           type: object
-          properties: {}
           description: EI type specific job data
       description: Information for an Enrichment Information Job
+    producer_info_type_info:
+      required:
+      - info_job_data_schema
+      type: object
+      properties:
+        info_type_information:
+          type: object
+          description: Type specific information for the information type
+        info_job_data_schema:
+          type: object
+          description: Json schema for the job data
+      description: Information for an Information Type
+    producer_info_job_request:
+      required:
+      - info_job_identity
+      type: object
+      properties:
+        owner:
+          type: string
+          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:
+      - info_type_id
+      - job_definition
+      - job_owner
+      - job_result_uri
+      type: object
+      properties:
+        info_type_id:
+          type: string
+          description: Information type Idenitifier of the subscription job
+        job_result_uri:
+          type: string
+          description: The target URI of the subscribed information
+        job_owner:
+          type: string
+          description: Identity of the owner of the job
+        job_definition:
+          type: object
+          description: Information type specific job data
+        status_notification_uri:
+          type: string
+          description: The target of Information subscription job status notifications
+      description: Information for an Enrichment Information Job
+    producer_status:
+      required:
+      - operational_state
+      type: object
+      properties:
+        operational_state:
+          type: string
+          description: Represents the operational states
+          enum:
+          - ENABLED
+          - DISABLED
+      description: Status for an Info Producer
+    Void:
+      type: object
+      description: 'Void/empty '
+    consumer_type_subscription_info:
+      required:
+      - owner
+      - status_result_uri
+      type: object
+      properties:
+        owner:
+          type: string
+          description: Identity of the owner of the subscription
+        status_result_uri:
+          type: string
+          description: The target URI of the subscribed information
+      description: Information for an information type subscription