diff --git a/enrichment-coordinator-service/docs/api.json b/enrichment-coordinator-service/docs/api.json
index 76be3a4..65ff48d 100644
--- a/enrichment-coordinator-service/docs/api.json
+++ b/enrichment-coordinator-service/docs/api.json
@@ -68,10 +68,11 @@
                     "required": true
                 },
                 {
-                    "schema": {"type": "string"},
-                    "in": "body",
+                    "in": "query",
+                    "allowEmptyValue": false,
                     "name": "owner",
                     "description": "identifies the owner of the job",
+                    "type": "string",
                     "required": false
                 }
             ],
@@ -570,7 +571,7 @@
             "consumes": ["application/json"]
         }}
     },
-    "host": "localhost:40973",
+    "host": "localhost:45709",
     "definitions": {
         "EiType": {
             "description": "Information for an EI type",
diff --git a/enrichment-coordinator-service/docs/api.yaml b/enrichment-coordinator-service/docs/api.yaml
deleted file mode 100644
index 48a65dd..0000000
--- a/enrichment-coordinator-service/docs/api.yaml
+++ /dev/null
@@ -1,805 +0,0 @@
-basePath: /
-paths:
-  /producer_simulator/job_deleted_error:
-    post:
-      summary: 'Callback for EI job creation, returns error'
-      deprecated: false
-      produces:
-        - application/json
-      operationId: jobDeletedCallbackReturnErrorUsingPOST
-      responses:
-        '200':
-          description: OK
-        '201':
-          description: Created
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          description: Not Found
-      parameters:
-        - schema:
-            $ref: '#/definitions/producer_ei_job_request'
-          in: body
-          name: request
-          description: request
-          required: true
-      tags:
-        - Producer Simulator
-      consumes:
-        - application/json
-  /producer_simulator/supervision:
-    get:
-      summary: Producer supervision
-      deprecated: false
-      produces:
-        - application/json
-      operationId: producerSupervisionUsingGET
-      responses:
-        '200':
-          schema:
-            type: string
-          description: OK
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          description: Not Found
-      tags:
-        - Producer Simulator
-  '/A1-EI/v1/eitypes/{eiTypeId}/eijobs':
-    get:
-      summary: EI job identifiers
-      deprecated: false
-      produces:
-        - application/json
-      operationId: getEiJobIdsUsingGET
-      responses:
-        '200':
-          schema:
-            type: array
-            items:
-              type: string
-          description: EI job identifiers
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          schema:
-            $ref: '#/definitions/error_information'
-          description: Enrichment Information type is not found
-      parameters:
-        - in: path
-          name: eiTypeId
-          description: eiTypeId
-          type: string
-          required: true
-        - schema:
-            type: string
-          in: body
-          name: owner
-          description: identifies the owner of the job
-          required: false
-      tags:
-        - A1-E Enrichment Data Consumer API
-  '/A1-EI/v1/eitypes/{eiTypeId}':
-    get:
-      summary: Individual EI type
-      deprecated: false
-      produces:
-        - application/json
-      operationId: getEiTypeUsingGET
-      responses:
-        '200':
-          schema:
-            $ref: '#/definitions/EiType'
-          description: EI type
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          schema:
-            $ref: '#/definitions/error_information'
-          description: Enrichment Information type is not found
-      parameters:
-        - in: path
-          name: eiTypeId
-          description: eiTypeId
-          type: string
-          required: true
-      tags:
-        - A1-E Enrichment Data Consumer API
-  /ei-producer/v1/eitypes:
-    get:
-      summary: EI type identifiers
-      deprecated: false
-      produces:
-        - application/json
-      operationId: getEiTypeIdentifiersUsingGET_1
-      responses:
-        '200':
-          schema:
-            type: array
-            items:
-              type: string
-          description: EI type identifiers
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          description: Not Found
-      tags:
-        - Enrichment Data Producer API
-  /A1-EI/v1/eitypes:
-    get:
-      summary: EI type identifiers
-      deprecated: false
-      produces:
-        - application/json
-      operationId: getEiTypeIdentifiersUsingGET
-      responses:
-        '200':
-          schema:
-            type: array
-            items:
-              type: string
-          description: EI type identifiers
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          description: Not Found
-      tags:
-        - A1-E Enrichment Data Consumer API
-  /producer_simulator/job_deleted:
-    post:
-      summary: Callback for EI job deletion
-      deprecated: false
-      produces:
-        - application/json
-      operationId: jobDeletedCallbackUsingPOST
-      responses:
-        '200':
-          description: OK
-        '201':
-          description: Created
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          description: Not Found
-      parameters:
-        - schema:
-            $ref: '#/definitions/producer_ei_job_request'
-          in: body
-          name: request
-          description: request
-          required: true
-      tags:
-        - Producer Simulator
-      consumes:
-        - application/json
-  '/A1-EI/v1/eitypes/{eiTypeId}/eijobs/{eiJobId}/status':
-    get:
-      summary: EI Job status
-      deprecated: false
-      produces:
-        - application/json
-      operationId: getEiJobStatusUsingGET
-      responses:
-        '200':
-          schema:
-            $ref: '#/definitions/EiJobStatus'
-          description: EI Job status
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          schema:
-            $ref: '#/definitions/error_information'
-          description: Enrichment Information type or job is not found
-      parameters:
-        - in: path
-          name: eiJobId
-          description: eiJobId
-          type: string
-          required: true
-        - in: path
-          name: eiTypeId
-          description: eiTypeId
-          type: string
-          required: true
-      tags:
-        - A1-E Enrichment Data Consumer API
-  '/ei-producer/v1/eiproducers/{eiProducerId}/status':
-    get:
-      summary: EI producer status
-      deprecated: false
-      produces:
-        - application/json
-      operationId: getEiProducerStatusUsingGET
-      responses:
-        '200':
-          schema:
-            $ref: '#/definitions/producer_status'
-          description: EI jobs
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          schema:
-            $ref: '#/definitions/error_information'
-          description: Enrichment Information producer is not found
-      parameters:
-        - in: path
-          name: eiProducerId
-          description: eiProducerId
-          type: string
-          required: true
-      tags:
-        - Enrichment Data Producer API
-  /producer_simulator/supervision_error:
-    get:
-      summary: Producer supervision error
-      deprecated: false
-      produces:
-        - application/json
-      operationId: producerSupervisionErrorUsingGET
-      responses:
-        '200':
-          schema:
-            type: string
-          description: OK
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          description: Not Found
-      tags:
-        - Producer Simulator
-  /ei-producer/v1/eiproducers:
-    get:
-      summary: EI producer identifiers
-      deprecated: false
-      produces:
-        - application/json
-      operationId: getEiProducerIdentifiersUsingGET
-      responses:
-        '200':
-          schema:
-            type: array
-            items:
-              type: string
-          description: EI producer identifiers
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          description: Not Found
-      tags:
-        - Enrichment Data Producer API
-  '/ei-producer/v1/eitypes/{eiTypeId}':
-    get:
-      summary: Individual EI Type
-      deprecated: false
-      produces:
-        - application/json
-      operationId: getEiTypeUsingGET_1
-      responses:
-        '200':
-          schema:
-            $ref: '#/definitions/producer_ei_type_info'
-          description: EI type
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          schema:
-            $ref: '#/definitions/error_information'
-          description: Enrichment Information type is not found
-      parameters:
-        - in: path
-          name: eiTypeId
-          description: eiTypeId
-          type: string
-          required: true
-      tags:
-        - Enrichment Data Producer API
-  /status:
-    get:
-      summary: Returns status and statistics of this service
-      deprecated: false
-      produces:
-        - application/json
-      operationId: getStatusUsingGET
-      responses:
-        '200':
-          schema:
-            $ref: '#/definitions/status_info'
-          description: Service is living
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          description: Not Found
-      tags:
-        - Service status
-  /producer_simulator/job_created_error:
-    post:
-      summary: 'Callback for EI job creation, returns error'
-      deprecated: false
-      produces:
-        - application/json
-      operationId: jobCreatedCallbackReturnErrorUsingPOST
-      responses:
-        '200':
-          description: OK
-        '201':
-          description: Created
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          description: Not Found
-      parameters:
-        - schema:
-            $ref: '#/definitions/producer_ei_job_request'
-          in: body
-          name: request
-          description: request
-          required: true
-      tags:
-        - Producer Simulator
-      consumes:
-        - application/json
-  '/A1-EI/v1/eitypes/{eiTypeId}/eijobs/{eiJobId}':
-    get:
-      summary: Individual EI Job
-      deprecated: false
-      produces:
-        - application/json
-      operationId: getIndividualEiJobUsingGET
-      responses:
-        '200':
-          schema:
-            $ref: '#/definitions/EiJob'
-          description: EI Job
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          schema:
-            $ref: '#/definitions/error_information'
-          description: Enrichment Information type or job is not found
-      parameters:
-        - in: path
-          name: eiJobId
-          description: eiJobId
-          type: string
-          required: true
-        - in: path
-          name: eiTypeId
-          description: eiTypeId
-          type: string
-          required: true
-      tags:
-        - A1-E Enrichment Data Consumer API
-    delete:
-      summary: Individual EI Job
-      deprecated: false
-      produces:
-        - application/json
-      operationId: deleteIndividualEiJobUsingDELETE
-      responses:
-        '200':
-          description: Not used
-        '204':
-          description: Job deleted
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          schema:
-            $ref: '#/definitions/error_information'
-          description: Enrichment Information type or job is not found
-      parameters:
-        - in: path
-          name: eiJobId
-          description: eiJobId
-          type: string
-          required: true
-        - in: path
-          name: eiTypeId
-          description: eiTypeId
-          type: string
-          required: true
-      tags:
-        - A1-E Enrichment Data Consumer API
-    put:
-      summary: Individual EI Job
-      deprecated: false
-      produces:
-        - application/json
-      operationId: putIndividualEiJobUsingPUT
-      responses:
-        '200':
-          description: Job updated
-        '201':
-          description: Job created
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          schema:
-            $ref: '#/definitions/error_information'
-          description: Enrichment Information type is not found
-      parameters:
-        - in: path
-          name: eiJobId
-          description: eiJobId
-          type: string
-          required: true
-        - schema:
-            $ref: '#/definitions/EiJob'
-          in: body
-          name: eiJobInfo
-          description: eiJobInfo
-          required: true
-        - in: path
-          name: eiTypeId
-          description: eiTypeId
-          type: string
-          required: true
-      tags:
-        - A1-E Enrichment Data Consumer API
-      consumes:
-        - application/json
-  '/ei-producer/v1/eiproducers/{eiProducerId}':
-    get:
-      summary: Individual EI producer
-      deprecated: false
-      produces:
-        - application/json
-      operationId: getEiProducerUsingGET
-      responses:
-        '200':
-          schema:
-            $ref: '#/definitions/producer_registration_info'
-          description: EI Jobs
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          schema:
-            $ref: '#/definitions/error_information'
-          description: Enrichment Information producer is not found
-      parameters:
-        - in: path
-          name: eiProducerId
-          description: eiProducerId
-          type: string
-          required: true
-      tags:
-        - Enrichment Data Producer API
-    delete:
-      summary: Individual EI producer
-      deprecated: false
-      produces:
-        - application/json
-      operationId: deleteEiProducerUsingDELETE
-      responses:
-        '200':
-          description: Not used
-        '204':
-          description: Producer deleted
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          schema:
-            $ref: '#/definitions/error_information'
-          description: Producer is not found
-      parameters:
-        - in: path
-          name: eiProducerId
-          description: eiProducerId
-          type: string
-          required: true
-      tags:
-        - Enrichment Data Producer API
-    put:
-      summary: Individual EI producer
-      deprecated: false
-      produces:
-        - application/json
-      operationId: putEiProducerUsingPUT
-      responses:
-        '200':
-          description: Producer updated
-        '201':
-          description: Producer created
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          description: Not Found
-      parameters:
-        - in: path
-          name: eiProducerId
-          description: eiProducerId
-          type: string
-          required: true
-        - schema:
-            $ref: '#/definitions/producer_registration_info'
-          in: body
-          name: registrationInfo
-          description: registrationInfo
-          required: true
-      tags:
-        - Enrichment Data Producer API
-      consumes:
-        - application/json
-  '/ei-producer/v1/eiproducers/{eiProducerId}/eijobs':
-    get:
-      summary: EI job definitions
-      deprecated: false
-      produces:
-        - application/json
-      description: EI job definitions for one EI producer
-      operationId: getEiProducerJobsUsingGET
-      responses:
-        '200':
-          schema:
-            type: array
-            items:
-              $ref: '#/definitions/producer_ei_job_request'
-          description: EI jobs
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          schema:
-            $ref: '#/definitions/error_information'
-          description: Enrichment Information producer is not found
-      parameters:
-        - in: path
-          name: eiProducerId
-          description: eiProducerId
-          type: string
-          required: true
-      tags:
-        - Enrichment Data Producer API
-  /producer_simulator/job_created:
-    post:
-      summary: Callback for EI job creation
-      deprecated: false
-      produces:
-        - application/json
-      operationId: jobCreatedCallbackUsingPOST
-      responses:
-        '200':
-          description: OK
-        '201':
-          description: Created
-        '401':
-          description: Unauthorized
-        '403':
-          description: Forbidden
-        '404':
-          description: Not Found
-      parameters:
-        - schema:
-            $ref: '#/definitions/producer_ei_job_request'
-          in: body
-          name: request
-          description: request
-          required: true
-      tags:
-        - Producer Simulator
-      consumes:
-        - application/json
-host: 'localhost:40973'
-definitions:
-  EiType:
-    description: Information for an EI type
-    type: object
-    title: EiType
-    properties:
-      eiJobParametersSchema:
-        description: Json schema for the job data
-        type: object
-  producer_ei_job_request:
-    description: The body of the EI producer callbacks for EI job creation and deletion
-    type: object
-    title: producer_ei_job_request
-    required:
-      - ei_job_identity
-    properties:
-      ei_job_identity:
-        description: Idenitity of the EI job
-        type: string
-      ei_job_data:
-        description: Json for the job data
-        type: object
-      target_uri:
-        description: URI for the target of the EI
-        type: string
-      ei_type_identity:
-        description: Type idenitity for the job
-        type: string
-  error_information:
-    description: 'Problem as defined in https://tools.ietf.org/html/rfc7807'
-    type: object
-    title: error_information
-    properties:
-      detail:
-        description: A human-readable explanation specific to this occurrence of the problem.
-        type: string
-        example: EI job type not found
-      status:
-        format: int32
-        description: The HTTP status code generated by the origin server for this occurrence of the problem.
-        type: integer
-        example: 404
-  void:
-    description: Void/empty
-    type: object
-    title: void
-  EiJob:
-    description: Information for an Enrichment Information Job
-    type: object
-    title: EiJob
-    required:
-      - jobOwner
-      - jobParameters
-      - targetUri
-    properties:
-      targetUri:
-        description: The target of the EI data
-        type: string
-      jobOwner:
-        description: Identity of the owner of the job
-        type: string
-      jobParameters:
-        description: EI Type specific job data
-        type: object
-  producer_ei_type_registration_info:
-    description: Information for an EI type
-    type: object
-    title: producer_ei_type_registration_info
-    required:
-      - ei_type_identity
-    properties:
-      ei_type_identity:
-        description: EI type identity
-        type: string
-      ei_job_data_schema:
-        description: Json schema for the job data
-        type: object
-  status_info:
-    type: object
-    title: status_info
-    properties:
-      no_of_producers:
-        format: int32
-        description: Number of EI producers
-        type: integer
-      no_of_jobs:
-        format: int32
-        description: Number of EI jobs
-        type: integer
-      no_of_types:
-        format: int32
-        description: Number of EI types
-        type: integer
-      status:
-        description: status text
-        type: string
-  EiJobStatus:
-    description: Status for an EI Job
-    type: object
-    title: EiJobStatus
-    required:
-      - operationalState
-    properties:
-      operationalState:
-        description: |-
-          Operational state, values:
-          ENABLED: TBD
-          DISABLED: TBD.
-        type: string
-        enum:
-          - ENABLED
-          - DISABLED
-  Mono«ResponseEntity«object»»:
-    type: object
-    title: Mono«ResponseEntity«object»»
-  producer_ei_type_info:
-    description: Information for an EI type
-    type: object
-    title: producer_ei_type_info
-    properties:
-      ei_producer_ids:
-        description: Registered producers
-        type: array
-        items:
-          type: string
-      ei_job_data_schema:
-        description: Json schema for the job data
-        type: object
-  producer_registration_info:
-    description: Information for an EI producer
-    type: object
-    title: producer_registration_info
-    required:
-      - ei_job_creation_callback_url
-      - ei_job_deletion_callback_url
-      - ei_producer_supervision_callback_url
-      - supported_ei_types
-    properties:
-      supported_ei_types:
-        description: Supported EI types
-        type: array
-        items:
-          $ref: '#/definitions/producer_ei_type_registration_info'
-      ei_job_creation_callback_url:
-        description: callback for job creation
-        type: string
-      ei_job_deletion_callback_url:
-        description: callback for job deletion
-        type: string
-      ei_producer_supervision_callback_url:
-        description: callback for producer supervision
-        type: string
-  producer_status:
-    description: Status for an EI Producer
-    type: object
-    title: producer_status
-    required:
-      - operational_state
-    properties:
-      operational_state:
-        description: |-
-          Operational state, values:
-          ENABLED: TBD
-          DISABLED: TBD.
-        type: string
-        enum:
-          - ENABLED
-          - DISABLED
-swagger: '2.0'
-info:
-  description: This page lists all the rest apis for the service.
-  title: Enrichment Data service
-  version: '1.0'
-tags:
-  - name: A1-E Enrichment Data Consumer API
-    description: Consumer Controller
-  - name: Enrichment Data Producer API
-    description: Producer Controller
-  - name: Producer Simulator
-    description: Producer Simulator Controller
-  - name: Service status
-    description: Status Controller
-
diff --git a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/StatusController.java b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/StatusController.java
index a210aa5..77439c5 100644
--- a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/StatusController.java
+++ b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/StatusController.java
@@ -20,6 +20,9 @@
 
 package org.oransc.enrichment.controllers;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.gson.annotations.SerializedName;
+
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -31,16 +34,13 @@
 import org.oransc.enrichment.repository.EiJobs;
 import org.oransc.enrichment.repository.EiProducers;
 import org.oransc.enrichment.repository.EiTypes;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
 import reactor.core.publisher.Mono;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.gson.annotations.SerializedName;
 
 @RestController("StatusController")
 @Api(tags = "Service status")
@@ -88,9 +88,10 @@
 
     @GetMapping(path = "/status", produces = MediaType.APPLICATION_JSON_VALUE)
     @ApiOperation(value = "Returns status and statistics of this service")
-    @ApiResponses(value = { //
+    @ApiResponses(
+        value = { //
             @ApiResponse(code = 200, message = "Service is living", response = StatusInfo.class) //
-    })
+        })
     public Mono<ResponseEntity<Object>> getStatus() {
         StatusInfo info = new StatusInfo("hunky dory", this.eiProducers, this.eiTypes, this.eiJobs);
         return Mono.just(new ResponseEntity<>(info, HttpStatus.OK));
diff --git a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/consumer/ConsumerController.java b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/consumer/ConsumerController.java
index 288421a..a08d52b 100644
--- a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/consumer/ConsumerController.java
+++ b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/consumer/ConsumerController.java
@@ -55,6 +55,7 @@
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import reactor.core.publisher.Mono;
 
@@ -140,12 +141,20 @@
             name = ConsumerConsts.OWNER_PARAM,
             required = false, //
             value = ConsumerConsts.OWNER_PARAM_DESCRIPTION) //
-        String owner) {
+        @RequestParam(name = ConsumerConsts.OWNER_PARAM, required = false) String owner) {
         try {
             this.eiTypes.getType(eiTypeId); // Just to check that the type exists
             List<String> result = new ArrayList<>();
-            for (EiJob job : this.eiJobs.getJobsForType(eiTypeId)) {
-                result.add(job.id());
+            if (owner != null) {
+                for (EiJob job : this.eiJobs.getJobsForOwner(owner)) {
+                    if (eiTypeId == null || job.type().getId().equals(eiTypeId)) {
+                        result.add(job.id());
+                    }
+                }
+            } else {
+                for (EiJob job : this.eiJobs.getJobsForType(eiTypeId)) {
+                    result.add(job.id());
+                }
             }
             return new ResponseEntity<>(gson.toJson(result), HttpStatus.OK);
         } catch (Exception e) {
diff --git a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/EiJobs.java b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/EiJobs.java
index 606ee41..7a0dcfd 100644
--- a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/EiJobs.java
+++ b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/EiJobs.java
@@ -34,10 +34,12 @@
     private Map<String, EiJob> allEiJobs = new HashMap<>();
 
     private MultiMap<EiJob> jobsByType = new MultiMap<>();
+    private MultiMap<EiJob> jobsByOwner = new MultiMap<>();
 
     public synchronized void put(EiJob job) {
         allEiJobs.put(job.id(), job);
         jobsByType.put(job.type().getId(), job.id(), job);
+        jobsByOwner.put(job.owner(), job.id(), job);
     }
 
     public synchronized Collection<EiJob> getJobs() {
@@ -60,6 +62,10 @@
         return jobsByType.get(type.getId());
     }
 
+    public synchronized Collection<EiJob> getJobsForOwner(String owner) {
+        return jobsByOwner.get(owner);
+    }
+
     public synchronized EiJob get(String id) {
         return allEiJobs.get(id);
     }
@@ -75,6 +81,7 @@
     public synchronized void remove(EiJob job) {
         this.allEiJobs.remove(job.id());
         jobsByType.remove(job.type().getId(), job.id());
+        jobsByOwner.remove(job.owner(), job.id());
     }
 
     public synchronized int size() {
@@ -84,6 +91,7 @@
     public synchronized void clear() {
         this.allEiJobs.clear();
         this.jobsByType.clear();
+        jobsByOwner.clear();
     }
 
 }
diff --git a/enrichment-coordinator-service/src/test/java/org/oransc/enrichment/ApplicationTest.java b/enrichment-coordinator-service/src/test/java/org/oransc/enrichment/ApplicationTest.java
index d8a0b32..8b8cb67 100644
--- a/enrichment-coordinator-service/src/test/java/org/oransc/enrichment/ApplicationTest.java
+++ b/enrichment-coordinator-service/src/test/java/org/oransc/enrichment/ApplicationTest.java
@@ -82,9 +82,10 @@
 
 @ExtendWith(SpringExtension.class)
 @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
-@TestPropertySource(properties = { //
+@TestPropertySource(
+    properties = { //
         "server.ssl.key-store=./config/keystore.jks", //
-        "app.webclient.trust-store=./config/truststore.jks" })
+        "app.webclient.trust-store=./config/truststore.jks"})
 class ApplicationTest {
     private final String EI_TYPE_ID = "typeId";
     private final String EI_PRODUCER_ID = "producerId";
@@ -112,8 +113,8 @@
     ProducerSupervision producerSupervision;
 
     private static Gson gson = new GsonBuilder() //
-            .serializeNulls() //
-            .create(); //
+        .serializeNulls() //
+        .create(); //
 
     /**
      * Overrides the BeanFactory.
@@ -163,6 +164,13 @@
     }
 
     @Test
+    void testGetEiTypesEmpty() throws Exception {
+        String url = ConsumerConsts.API_ROOT + "/eitypes";
+        String rsp = restClient().get(url).block();
+        assertThat(rsp).isEqualTo("[]");
+    }
+
+    @Test
     void testGetEiType() throws Exception {
         putEiProducerWithOneType(EI_PRODUCER_ID, "test");
         String url = ConsumerConsts.API_ROOT + "/eitypes/test";
@@ -184,6 +192,14 @@
         String url = ConsumerConsts.API_ROOT + "/eitypes/typeId/eijobs";
         String rsp = restClient().get(url).block();
         assertThat(rsp).isEqualTo("[\"jobId\"]");
+
+        url = ConsumerConsts.API_ROOT + "/eitypes/typeId/eijobs?owner=owner";
+        rsp = restClient().get(url).block();
+        assertThat(rsp).isEqualTo("[\"jobId\"]");
+
+        url = ConsumerConsts.API_ROOT + "/eitypes/typeId/eijobs?owner=JUNK";
+        rsp = restClient().get(url).block();
+        assertThat(rsp).isEqualTo("[]");
     }
 
     @Test
@@ -283,8 +299,8 @@
 
         String url = ConsumerConsts.API_ROOT + "/eitypes/typeId/eijobs/jobId";
         // The element with name "property1" is mandatory in the schema
-        ConsumerEiJobInfo jobInfo = new ConsumerEiJobInfo(jsonObject("{ \"XXstring\" : \"value\" }"), "owner",
-                "targetUri");
+        ConsumerEiJobInfo jobInfo =
+            new ConsumerEiJobInfo(jsonObject("{ \"XXstring\" : \"value\" }"), "owner", "targetUri");
         String body = gson.toJson(jobInfo);
 
         testErrorCode(restClient().put(url, body), HttpStatus.CONFLICT, "Json validation failure");
@@ -328,7 +344,7 @@
         String url = ConsumerConsts.API_ROOT + "/eitypes/typeId2/eijobs/jobId";
         String body = gson.toJson(eiJobInfo());
         testErrorCode(restClient().put(url, body), HttpStatus.CONFLICT,
-                "Not allowed to change type for existing EI job");
+            "Not allowed to change type for existing EI job");
     }
 
     @Test
@@ -447,7 +463,7 @@
     }
 
     private void assertProducerOpState(String producerId,
-            ProducerStatusInfo.OperationalState expectedOperationalState) {
+        ProducerStatusInfo.OperationalState expectedOperationalState) {
         String statusUrl = ProducerConsts.API_ROOT + "/eiproducers/" + producerId + "/status";
         ResponseEntity<String> resp = restClient().getForEntity(statusUrl).block();
         ProducerStatusInfo statusInfo = gson.fromJson(resp.getBody(), ProducerStatusInfo.class);
@@ -484,28 +500,28 @@
     }
 
     ProducerEiTypeRegistrationInfo producerEiTypeRegistrationInfo(String typeId)
-            throws JsonMappingException, JsonProcessingException {
+        throws JsonMappingException, JsonProcessingException {
         return new ProducerEiTypeRegistrationInfo(jsonSchemaObject(), typeId);
     }
 
     ProducerRegistrationInfo producerEiRegistratioInfoRejecting(String typeId)
-            throws JsonMappingException, JsonProcessingException {
+        throws JsonMappingException, JsonProcessingException {
         Collection<ProducerEiTypeRegistrationInfo> types = new ArrayList<>();
         types.add(producerEiTypeRegistrationInfo(typeId));
         return new ProducerRegistrationInfo(types, //
-                baseUrl() + ProducerSimulatorController.JOB_CREATED_ERROR_URL,
-                baseUrl() + ProducerSimulatorController.JOB_DELETED_ERROR_URL,
-                baseUrl() + ProducerSimulatorController.SUPERVISION_ERROR_URL);
+            baseUrl() + ProducerSimulatorController.JOB_CREATED_ERROR_URL,
+            baseUrl() + ProducerSimulatorController.JOB_DELETED_ERROR_URL,
+            baseUrl() + ProducerSimulatorController.SUPERVISION_ERROR_URL);
     }
 
     ProducerRegistrationInfo producerEiRegistratioInfo(String typeId)
-            throws JsonMappingException, JsonProcessingException {
+        throws JsonMappingException, JsonProcessingException {
         Collection<ProducerEiTypeRegistrationInfo> types = new ArrayList<>();
         types.add(producerEiTypeRegistrationInfo(typeId));
         return new ProducerRegistrationInfo(types, //
-                baseUrl() + ProducerSimulatorController.JOB_CREATED_URL,
-                baseUrl() + ProducerSimulatorController.JOB_DELETED_URL,
-                baseUrl() + ProducerSimulatorController.SUPERVISION_URL);
+            baseUrl() + ProducerSimulatorController.JOB_CREATED_URL,
+            baseUrl() + ProducerSimulatorController.JOB_DELETED_URL,
+            baseUrl() + ProducerSimulatorController.SUPERVISION_URL);
     }
 
     ConsumerEiJobInfo eiJobInfo() throws JsonMappingException, JsonProcessingException {
@@ -523,17 +539,17 @@
     Object jsonSchemaObject() {
         // a json schema with one mandatory property named "string"
         String schemaStr = "{" //
-                + "\"$schema\": \"http://json-schema.org/draft-04/schema#\"," //
-                + "\"type\": \"object\"," //
-                + "\"properties\": {" //
-                + EI_JOB_PROPERTY + " : {" //
-                + "    \"type\": \"string\"" //
-                + "  }" //
-                + "}," //
-                + "\"required\": [" //
-                + EI_JOB_PROPERTY //
-                + "]" //
-                + "}"; //
+            + "\"$schema\": \"http://json-schema.org/draft-04/schema#\"," //
+            + "\"type\": \"object\"," //
+            + "\"properties\": {" //
+            + EI_JOB_PROPERTY + " : {" //
+            + "    \"type\": \"string\"" //
+            + "  }" //
+            + "}," //
+            + "\"required\": [" //
+            + EI_JOB_PROPERTY //
+            + "]" //
+            + "}"; //
         return jsonObject(schemaStr);
     }
 
@@ -542,7 +558,7 @@
     }
 
     private EiJob putEiJob(String eiTypeId, String jobId)
-            throws JsonMappingException, JsonProcessingException, ServiceException {
+        throws JsonMappingException, JsonProcessingException, ServiceException {
 
         String url = ConsumerConsts.API_ROOT + "/eitypes/" + eiTypeId + "/eijobs/" + jobId;
         String body = gson.toJson(eiJobInfo());
@@ -552,7 +568,7 @@
     }
 
     private EiType putEiProducerWithOneTypeRejecting(String producerId, String eiTypeId)
-            throws JsonMappingException, JsonProcessingException, ServiceException {
+        throws JsonMappingException, JsonProcessingException, ServiceException {
         String url = ProducerConsts.API_ROOT + "/eiproducers/" + producerId;
         String body = gson.toJson(producerEiRegistratioInfoRejecting(eiTypeId));
 
@@ -561,7 +577,7 @@
     }
 
     private EiType putEiProducerWithOneType(String producerId, String eiTypeId)
-            throws JsonMappingException, JsonProcessingException, ServiceException {
+        throws JsonMappingException, JsonProcessingException, ServiceException {
         String url = ProducerConsts.API_ROOT + "/eiproducers/" + producerId;
         String body = gson.toJson(producerEiRegistratioInfo(eiTypeId));
 
@@ -576,14 +592,14 @@
     private AsyncRestClient restClient(boolean useTrustValidation) {
         WebClientConfig config = this.applicationConfig.getWebClientConfig();
         config = ImmutableWebClientConfig.builder() //
-                .keyStoreType(config.keyStoreType()) //
-                .keyStorePassword(config.keyStorePassword()) //
-                .keyStore(config.keyStore()) //
-                .keyPassword(config.keyPassword()) //
-                .isTrustStoreUsed(useTrustValidation) //
-                .trustStore(config.trustStore()) //
-                .trustStorePassword(config.trustStorePassword()) //
-                .build();
+            .keyStoreType(config.keyStoreType()) //
+            .keyStorePassword(config.keyStorePassword()) //
+            .keyStore(config.keyStore()) //
+            .keyPassword(config.keyPassword()) //
+            .isTrustStoreUsed(useTrustValidation) //
+            .trustStore(config.trustStore()) //
+            .trustStorePassword(config.trustStorePassword()) //
+            .build();
 
         return new AsyncRestClient(baseUrl(), config);
     }
@@ -597,16 +613,16 @@
     }
 
     private void testErrorCode(Mono<?> request, HttpStatus expStatus, String responseContains,
-            boolean expectApplicationProblemJsonMediaType) {
+        boolean expectApplicationProblemJsonMediaType) {
         StepVerifier.create(request) //
-                .expectSubscription() //
-                .expectErrorMatches(
-                        t -> checkWebClientError(t, expStatus, responseContains, expectApplicationProblemJsonMediaType)) //
-                .verify();
+            .expectSubscription() //
+            .expectErrorMatches(
+                t -> checkWebClientError(t, expStatus, responseContains, expectApplicationProblemJsonMediaType)) //
+            .verify();
     }
 
     private boolean checkWebClientError(Throwable throwable, HttpStatus expStatus, String responseContains,
-            boolean expectApplicationProblemJsonMediaType) {
+        boolean expectApplicationProblemJsonMediaType) {
         assertTrue(throwable instanceof WebClientResponseException);
         WebClientResponseException responseException = (WebClientResponseException) throwable;
         assertThat(responseException.getStatusCode()).isEqualTo(expStatus);
