From 721a0c1f9728a06c78edd75ba898bc67c4b82446 Mon Sep 17 00:00:00 2001
From: PatrikBuhr
Date: Fri, 11 Feb 2022 15:58:16 +0100
Subject: [PATCH] NONRTRIC - 3PP dependency version update
Updated generation of swagger documentation due to new swagger version.
Made all parameters into constants.
Renamed a parameter so it has the same name as elsewhere:
/info-producers?info_type_id=xx -> /info-producers?infoTypeId=xx
Signed-off-by: PatrikBuhr
Issue-ID: NONRTRIC-721
Change-Id: I7d6feaa368e77a3b935ae098eb40bf56771cef58
---
information-coordinator-service/api/ics-api.json | 143 +++++++--------
information-coordinator-service/api/ics-api.yaml | 203 ++++++++++-----------
.../main/java/org/oransc/ics/SwaggerConfig.java | 17 +-
.../oransc/ics/controllers/StatusController.java | 2 +-
.../oransc/ics/controllers/a1e/A1eController.java | 2 +-
.../ics/controllers/r1consumer/ConsumerConsts.java | 5 +
.../controllers/r1consumer/ConsumerController.java | 18 +-
.../ics/controllers/r1producer/ProducerConsts.java | 7 +
.../controllers/r1producer/ProducerController.java | 21 ++-
.../test/java/org/oransc/ics/ApplicationTest.java | 55 +++---
.../A1eCallbacksSimulatorController.java | 94 ++++++++++
.../controller/ConsumerSimulatorController.java | 36 +---
.../controller/ProducerSimulatorController.java | 15 +-
13 files changed, 338 insertions(+), 280 deletions(-)
create mode 100644 information-coordinator-service/src/test/java/org/oransc/ics/controller/A1eCallbacksSimulatorController.java
diff --git a/information-coordinator-service/api/ics-api.json b/information-coordinator-service/api/ics-api.json
index 69ad473b..082d42f5 100644
--- a/information-coordinator-service/api/ics-api.json
+++ b/information-coordinator-service/api/ics-api.json
@@ -327,22 +327,6 @@
}},
"openapi": "3.0.1",
"paths": {
- "/example_dataproducer/info_job/{infoJobId}": {"delete": {
- "summary": "Callback for Information Job deletion",
- "description": "The call is invoked to terminate a data subscription. The endpoint is provided by the Information Producer.",
- "operationId": "jobDeletedCallback",
- "responses": {"200": {
- "description": "OK",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- }},
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "infoJobId",
- "required": true
- }],
- "tags": ["Data producer (callbacks)"]
- }},
"/data-producer/v1/info-types": {"get": {
"summary": "Info Type identifiers",
"operationId": "getInfoTypdentifiers",
@@ -385,20 +369,6 @@
}},
"tags": ["Actuator"]
}},
- "/example_dataproducer/info_job": {"post": {
- "summary": "Callback for Information Job creation/modification",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_info_job_request"}}},
- "required": true
- },
- "description": "The call is invoked to activate or to modify a data subscription. The endpoint is provided by the Information Producer.",
- "operationId": "jobCreatedCallback",
- "responses": {"200": {
- "description": "OK",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- }},
- "tags": ["Data producer (callbacks)"]
- }},
"/data-producer/v1/info-types/{infoTypeId}": {
"get": {
"summary": "Individual Information Type",
@@ -554,6 +524,16 @@
"tags": ["Data consumer"]
}
},
+ "/example-dataproducer/health-check": {"get": {
+ "summary": "Producer supervision",
+ "description": "The endpoint is provided by the Information Producer and is used for supervision of the producer.",
+ "operationId": "producerSupervision",
+ "responses": {"200": {
+ "description": "The producer is OK",
+ "content": {"application/json": {"schema": {"type": "string"}}}
+ }},
+ "tags": ["Data producer (callbacks)"]
+ }},
"/actuator/loggers": {"get": {
"summary": "Actuator web endpoint 'loggers'",
"operationId": "loggers_2",
@@ -584,6 +564,20 @@
}},
"tags": ["Data consumer"]
}},
+ "/example-dataconsumer/info-type-status": {"post": {
+ "summary": "Callback for changed Information type registration status",
+ "requestBody": {
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_type_registration_info"}}},
+ "required": true
+ },
+ "description": "The primitive is implemented by the data consumer and is invoked when a Information type status has been changed. Subscription are managed by primitives in 'Data consumer'",
+ "operationId": "typeStatusCallback",
+ "responses": {"200": {
+ "description": "OK",
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
+ }},
+ "tags": ["Data consumer (callbacks)"]
+ }},
"/actuator/metrics/{requiredMetricName}": {"get": {
"summary": "Actuator web endpoint 'metrics-requiredMetricName'",
"operationId": "metrics-requiredMetricName_2",
@@ -681,14 +675,24 @@
"tags": ["Actuator"]
}
},
- "/example_dataconsumer/info_jobs/{infoJobId}/status": {"post": {
- "summary": "Callback for changed Information Job status",
+ "/example-dataproducer/info-job": {"post": {
+ "summary": "Callback for Information Job creation/modification",
"requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiJobStatusObject"}}},
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/producer_info_job_request"}}},
"required": true
},
- "description": "The primitive is implemented by the data consumer and is invoked when a Information Job status has been changed.",
- "operationId": "jobStatusCallback",
+ "description": "The call is invoked to activate or to modify a data subscription. The endpoint is provided by the Information Producer.",
+ "operationId": "jobCreatedCallback",
+ "responses": {"200": {
+ "description": "OK",
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
+ }},
+ "tags": ["Data producer (callbacks)"]
+ }},
+ "/example-dataproducer/info-job/{infoJobId}": {"delete": {
+ "summary": "Callback for Information Job deletion",
+ "description": "The call is invoked to terminate a data subscription. The endpoint is provided by the Information Producer.",
+ "operationId": "jobDeletedCallback",
"responses": {"200": {
"description": "OK",
"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
@@ -699,7 +703,7 @@
"name": "infoJobId",
"required": true
}],
- "tags": ["A1-EI (callbacks)"]
+ "tags": ["Data producer (callbacks)"]
}},
"/A1-EI/v1/eijobs/{eiJobId}/status": {"get": {
"summary": "EI job status",
@@ -773,6 +777,26 @@
}},
"tags": ["Actuator"]
}},
+ "/example-dataconsumer/info-jobs/{infoJobId}/status": {"post": {
+ "summary": "Callback for changed Information Job status",
+ "requestBody": {
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EiJobStatusObject"}}},
+ "required": true
+ },
+ "description": "The primitive is implemented by the data consumer and is invoked when a Information Job status has been changed.",
+ "operationId": "jobStatusCallback",
+ "responses": {"200": {
+ "description": "OK",
+ "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
+ }},
+ "parameters": [{
+ "schema": {"type": "string"},
+ "in": "path",
+ "name": "infoJobId",
+ "required": true
+ }],
+ "tags": ["A1-EI (callbacks)"]
+ }},
"/actuator/info": {"get": {
"summary": "Actuator web endpoint 'info'",
"operationId": "info_2",
@@ -782,16 +806,6 @@
}},
"tags": ["Actuator"]
}},
- "/example_dataproducer/health_check": {"get": {
- "summary": "Producer supervision",
- "description": "The endpoint is provided by the Information Producer and is used for supervision of the producer.",
- "operationId": "producerSupervision",
- "responses": {"200": {
- "description": "The producer is OK",
- "content": {"application/json": {"schema": {"type": "string"}}}
- }},
- "tags": ["Data producer (callbacks)"]
- }},
"/A1-EI/v1/eitypes": {"get": {
"summary": "EI type identifiers",
"operationId": "getEiTypeIdentifiers",
@@ -1119,7 +1133,7 @@
"parameters": [{
"schema": {"type": "string"},
"in": "query",
- "name": "info_type_id",
+ "name": "infoTypeId",
"description": "If given, only the producers for the EI Data type is returned.",
"required": false
}],
@@ -1215,20 +1229,6 @@
}],
"tags": ["Data producer (registration)"]
}},
- "/example_dataconsumer/info_type_status": {"post": {
- "summary": "Callback for changed Information type registration status",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/consumer_type_registration_info"}}},
- "required": true
- },
- "description": "The primitive is implemented by the data consumer and is invoked when a Information type status has been changed. Subscription are managed by primitives in 'Data consumer'",
- "operationId": "typeStatusCallback",
- "responses": {"200": {
- "description": "OK",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Void"}}}
- }},
- "tags": ["Data consumer (callbacks)"]
- }},
"/actuator/heapdump": {"get": {
"summary": "Actuator web endpoint 'heapdump'",
"operationId": "heapdump_2",
@@ -1241,7 +1241,7 @@
},
"info": {
"license": {
- "name": "Copyright (C) 2020 Nordix Foundation. Licensed under the Apache License.",
+ "name": "Copyright (C) 2020-2022 Nordix Foundation. Licensed under the Apache License.",
"url": "http://www.apache.org/licenses/LICENSE-2.0"
},
"description": "
API documentation<\/h1>
General<\/h2>
The service is mainly a broker between data producers and data consumers. A data producer has the ability to produce one or several types of data (Information Type). One type of data can be produced by zero to many producers.
A data consumer can have several active data subscriptions (Information Job). One Information Job consists of the type of data to produce and additional parameters for filtering of the data. These parameters are different for different data types.<\/p>
APIs provided by the service<\/h2>
A1-EI<\/h4>
This API is between Near-RT RIC and the Non-RT RIC. The Near-RT RIC is a data consumer, which creates Information Jobs to subscribe for data. In this context, the information is referred to as 'Enrichment Information', EI.<\/p>
Data producer API<\/h4>
This API is provided by the Non-RT RIC platform and is intended to be part of the O-RAN R1 interface. The API is for use by different kinds of data producers and provides support for:
Registry of supported information types and which parameters needed to setup a subscription.<\/li>
Registry of existing data producers.<\/li>
Callback API provided by producers to setup subscriptions.<\/li><\/ul><\/p>
Data consumer API<\/h4>
This API is provided by the Non-RT RIC platform and is intended to be part of the O-RAN R1 interface. The API is for use by different kinds of data consumers and provides support for:
Querying of available types of data to consume.<\/li>
Management of data subscription jobs<\/li>
Optional callback API provided by consumers to get notification on added and removed information types.<\/li><\/ul><\/p>
Service status<\/h4>
This API provides a means to monitor the health of this service.<\/p>",
@@ -1249,13 +1249,6 @@
"version": "1.0"
},
"tags": [
- {"name": "A1-EI (callbacks)"},
- {
- "name": "Data producer (callbacks)",
- "description": "API implemented by data producers"
- },
- {"name": "Data consumer"},
- {"name": "Data consumer (callbacks)"},
{
"name": "A1-EI (registration)",
"description": "Data consumer EI job registration"
@@ -1264,14 +1257,18 @@
"name": "A1-EI (callbacks)",
"description": "Data consumer EI job status callbacks"
},
- {"name": "Service status"},
- {"name": "A1-EI (registration)"},
- {"name": "Data producer (registration)"},
- {"name": "Data producer (callbacks)"},
+ {
+ "name": "Data consumer (callbacks)",
+ "description": "API for data consumers"
+ },
{
"name": "Data producer (registration)",
"description": "API for data producers"
},
+ {
+ "name": "Data producer (callbacks)",
+ "description": "API implemented by data producers"
+ },
{
"name": "Data consumer",
"description": "API for data consumers"
diff --git a/information-coordinator-service/api/ics-api.yaml b/information-coordinator-service/api/ics-api.yaml
index dafb0ffd..2d121934 100644
--- a/information-coordinator-service/api/ics-api.yaml
+++ b/information-coordinator-service/api/ics-api.yaml
@@ -24,27 +24,22 @@ info:
added and removed information types.
Service status
This
API provides a means to monitor the health of this service.
license:
- name: Copyright (C) 2020 Nordix Foundation. Licensed under the Apache License.
+ name: Copyright (C) 2020-2022 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 (callbacks)
-- name: Data producer (callbacks)
- description: API implemented by data producers
-- name: Data consumer
-- name: Data consumer (callbacks)
- name: A1-EI (registration)
description: Data consumer EI job registration
- name: A1-EI (callbacks)
description: Data consumer EI job status callbacks
-- name: Service status
-- name: A1-EI (registration)
-- name: Data producer (registration)
-- name: Data producer (callbacks)
+- name: Data consumer (callbacks)
+ description: API for data consumers
- name: Data producer (registration)
description: API for data producers
+- name: Data producer (callbacks)
+ description: API implemented by data producers
- name: Data consumer
description: API for data consumers
- name: Service status
@@ -55,29 +50,6 @@ tags:
description: Spring Boot Actuator Web API Documentation
url: https://docs.spring.io/spring-boot/docs/current/actuator-api/html/
paths:
- /example_dataproducer/info_job/{infoJobId}:
- delete:
- tags:
- - Data producer (callbacks)
- summary: Callback for Information Job deletion
- description: The call is invoked to terminate a data subscription. The endpoint
- is provided by the Information Producer.
- operationId: jobDeletedCallback
- parameters:
- - name: infoJobId
- in: path
- required: true
- style: simple
- explode: false
- schema:
- type: string
- responses:
- 200:
- description: OK
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
/data-producer/v1/info-types:
get:
tags:
@@ -133,27 +105,6 @@ paths:
'*/*':
schema:
type: object
- /example_dataproducer/info_job:
- post:
- tags:
- - Data producer (callbacks)
- summary: Callback for Information Job creation/modification
- description: The call is invoked to activate or to modify a data subscription.
- The endpoint is provided by the Information Producer.
- operationId: jobCreatedCallback
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/producer_info_job_request'
- required: true
- responses:
- 200:
- description: OK
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Void'
/data-producer/v1/info-types/{infoTypeId}:
get:
tags:
@@ -350,6 +301,21 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
+ /example-dataproducer/health-check:
+ get:
+ tags:
+ - 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: The producer is OK
+ content:
+ application/json:
+ schema:
+ type: string
/actuator/loggers:
get:
tags:
@@ -391,6 +357,28 @@ paths:
type: array
items:
type: string
+ /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. 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'
/actuator/metrics/{requiredMetricName}:
get:
tags:
@@ -509,14 +497,35 @@ paths:
'*/*':
schema:
type: object
- /example_dataconsumer/info_jobs/{infoJobId}/status:
+ /example-dataproducer/info-job:
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
+ - Data producer (callbacks)
+ summary: Callback for Information Job creation/modification
+ description: The call is invoked to activate or to modify a data subscription.
+ The endpoint is provided by the Information Producer.
+ operationId: jobCreatedCallback
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/producer_info_job_request'
+ required: true
+ responses:
+ 200:
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Void'
+ /example-dataproducer/info-job/{infoJobId}:
+ delete:
+ tags:
+ - Data producer (callbacks)
+ summary: Callback for Information Job deletion
+ description: The call is invoked to terminate a data subscription. The endpoint
+ is provided by the Information Producer.
+ operationId: jobDeletedCallback
parameters:
- name: infoJobId
in: path
@@ -525,12 +534,6 @@ paths:
explode: false
schema:
type: string
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/EiJobStatusObject'
- required: true
responses:
200:
description: OK
@@ -632,6 +635,35 @@ paths:
'*/*':
schema:
type: object
+ /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'
/actuator/info:
get:
tags:
@@ -645,21 +677,6 @@ paths:
'*/*':
schema:
type: object
- /example_dataproducer/health_check:
- get:
- tags:
- - 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: The producer is OK
- content:
- application/json:
- schema:
- type: string
/A1-EI/v1/eitypes:
get:
tags:
@@ -1065,7 +1082,7 @@ paths:
summary: Information producer identifiers
operationId: getInfoProducerIdentifiers
parameters:
- - name: info_type_id
+ - name: infoTypeId
in: query
description: If given, only the producers for the EI Data type is returned.
required: false
@@ -1191,28 +1208,6 @@ paths:
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. 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'
/actuator/heapdump:
get:
tags:
diff --git a/information-coordinator-service/src/main/java/org/oransc/ics/SwaggerConfig.java b/information-coordinator-service/src/main/java/org/oransc/ics/SwaggerConfig.java
index 42ffe83f..4b225642 100644
--- a/information-coordinator-service/src/main/java/org/oransc/ics/SwaggerConfig.java
+++ b/information-coordinator-service/src/main/java/org/oransc/ics/SwaggerConfig.java
@@ -23,12 +23,7 @@ package org.oransc.ics;
import io.swagger.v3.oas.annotations.OpenAPIDefinition;
import io.swagger.v3.oas.annotations.info.Info;
import io.swagger.v3.oas.annotations.info.License;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.oransc.ics.controllers.StatusController;
-import org.oransc.ics.controllers.a1e.A1eConsts;
-import org.oransc.ics.controllers.r1consumer.ConsumerConsts;
-import org.oransc.ics.controllers.r1producer.ProducerConsts;
/**
* Swagger configuration class that uses swagger documentation type and scans
@@ -37,22 +32,12 @@ import org.oransc.ics.controllers.r1producer.ProducerConsts;
*/
@OpenAPIDefinition( //
- tags = { //
- @Tag(name = A1eConsts.CONSUMER_API_NAME, description = A1eConsts.CONSUMER_API_DESCRIPTION),
- @Tag(name = A1eConsts.CONSUMER_API_CALLBACKS_NAME, description = A1eConsts.CONSUMER_API_CALLBACKS_DESCRIPTION),
- @Tag(
- name = ProducerConsts.PRODUCER_API_CALLBACKS_NAME,
- description = ProducerConsts.PRODUCER_API_CALLBACKS_DESCRIPTION),
- @Tag(name = ProducerConsts.PRODUCER_API_NAME, description = ProducerConsts.PRODUCER_API_DESCRIPTION), //
- @Tag(name = StatusController.API_NAME, description = StatusController.API_DESCRIPTION), //
- @Tag(name = ConsumerConsts.CONSUMER_API_NAME, description = ConsumerConsts.CONSUMER_API_DESCRIPTION), //
- }, //
info = @Info(
title = SwaggerConfig.API_TITLE, //
version = "1.0", //
description = SwaggerConfig.DESCRIPTION, //
license = @License(
- name = "Copyright (C) 2020 Nordix Foundation. Licensed under the Apache License.",
+ name = "Copyright (C) 2020-2022 Nordix Foundation. Licensed under the Apache License.",
url = "http://www.apache.org/licenses/LICENSE-2.0")))
public class SwaggerConfig {
private SwaggerConfig() {
diff --git a/information-coordinator-service/src/main/java/org/oransc/ics/controllers/StatusController.java b/information-coordinator-service/src/main/java/org/oransc/ics/controllers/StatusController.java
index 1e9cc980..0fe586cd 100644
--- a/information-coordinator-service/src/main/java/org/oransc/ics/controllers/StatusController.java
+++ b/information-coordinator-service/src/main/java/org/oransc/ics/controllers/StatusController.java
@@ -43,7 +43,7 @@ import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Mono;
@RestController("StatusController")
-@Tag(name = StatusController.API_NAME)
+@Tag(name = StatusController.API_NAME, description = StatusController.API_DESCRIPTION)
public class StatusController {
public static final String API_NAME = "Service status";
diff --git a/information-coordinator-service/src/main/java/org/oransc/ics/controllers/a1e/A1eController.java b/information-coordinator-service/src/main/java/org/oransc/ics/controllers/a1e/A1eController.java
index d6e7dc08..699308db 100644
--- a/information-coordinator-service/src/main/java/org/oransc/ics/controllers/a1e/A1eController.java
+++ b/information-coordinator-service/src/main/java/org/oransc/ics/controllers/a1e/A1eController.java
@@ -68,7 +68,7 @@ import reactor.core.publisher.Mono;
@SuppressWarnings("java:S3457") // No need to call "toString()" method as formatting and string ..
@RestController("A1-EI")
-@Tag(name = A1eConsts.CONSUMER_API_NAME)
+@Tag(name = A1eConsts.CONSUMER_API_NAME, description = A1eConsts.CONSUMER_API_DESCRIPTION)
@RequestMapping(path = A1eConsts.API_ROOT, produces = MediaType.APPLICATION_JSON_VALUE)
public class A1eController {
diff --git a/information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1consumer/ConsumerConsts.java b/information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1consumer/ConsumerConsts.java
index 30095798..7005a233 100644
--- a/information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1consumer/ConsumerConsts.java
+++ b/information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1consumer/ConsumerConsts.java
@@ -38,6 +38,11 @@ public class ConsumerConsts {
public static final String INFO_TYPE_ID_PARAM = "infoTypeId";
public static final String INFO_TYPE_ID_PARAM_DESCRIPTION =
"selects subscription jobs of matching information type";
+ public static final String INFO_TYPE_ID_PATH = "infoTypeId";
+
+ public static final String INFO_JOB_ID_PATH = "infoJobId";
+
+ public static final String SUBSCRIPTION_ID_PATH = "subscriptionId";
public static final String PERFORM_TYPE_CHECK_PARAM = "typeCheck";
public static final String PERFORM_TYPE_CHECK_PARAM_DESCRIPTION =
diff --git a/information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1consumer/ConsumerController.java b/information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1consumer/ConsumerController.java
index 1a193693..fa335d9c 100644
--- a/information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1consumer/ConsumerController.java
+++ b/information-coordinator-service/src/main/java/org/oransc/ics/controllers/r1consumer/ConsumerController.java
@@ -70,7 +70,7 @@ import reactor.core.publisher.Mono;
@SuppressWarnings("java:S3457") // No need to call "toString()" method as formatting and string ..
@RestController("Consumer API")
-@Tag(name = ConsumerConsts.CONSUMER_API_NAME)
+@Tag(name = ConsumerConsts.CONSUMER_API_NAME, description = ConsumerConsts.CONSUMER_API_DESCRIPTION)
@RequestMapping(path = ConsumerConsts.API_ROOT, produces = MediaType.APPLICATION_JSON_VALUE)
public class ConsumerController {
@@ -125,7 +125,7 @@ public class ConsumerController {
content = @Content(schema = @Schema(implementation = ErrorResponse.ErrorInfo.class))) //
})
public ResponseEntity