X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=enrichment-coordinator-service%2Fapi%2Fecs-api.yaml;h=f94743e28a4756cf21b7bfdfbc8dfc1dc0416996;hb=6c468636c3790e3420da97dab19057892988fa11;hp=beb5512d5b7bcdb3b4109a2ae92908902ff3572a;hpb=e5960c828297899da146313f695222ef190bacc1;p=nonrtric.git diff --git a/enrichment-coordinator-service/api/ecs-api.yaml b/enrichment-coordinator-service/api/ecs-api.yaml index beb5512d..f94743e2 100644 --- a/enrichment-coordinator-service/api/ecs-api.yaml +++ b/enrichment-coordinator-service/api/ecs-api.yaml @@ -1,18 +1,25 @@ openapi: 3.0.1 info: - title: Enrichment Information Service + title: Data management and exposure description:

API documentation

General

The service is mainly a broker between data producers and data consumers. A data producer has the ability - to producer one or several type of data (EI type). One type of data can be produced + to produce one or several types of data (EI type). One type of data can be produced by zero to many producers.

A data consumer can have several active data subscriptions (EI job). One EI job consists of the type of data to produce and additional parameters for filtering of the data. These parameters are different for different data types.

APIs provided by the service

A1-EI

This - API is between Near-RT RIC, which is a data consumer, and the Non-RT RIC.

Data - producer API

This API is between data producers and this service. It - is divivided into two parts, where one is provided by this service (registration) - and one part is provided by the data producer.

EI Service status

This - API provides a means to monitor the service.

+ API is between Near-RT RIC and the Non-RT RIC. The Near-RT RIC is a data consumer, + which creates Enrichment Information Jobs to subscribe for data.

Data producer + API

This API is provided by the Non-RT RIC platform and is intended to + be part of the O-RAN R1 interface. The API is for use by different kinds of data + producers and provides support for:

Data + consumer API

This API is provided by the Non-RT RIC platform and is intended + to be part of the O-RAN R1 interface. The API is for use by different kinds of + data consumers and provides support for:

EI + Service status

This API provides a means to monitor the service.

license: name: Copyright (C) 2020 Nordix Foundation. Licensed under the Apache License. url: http://www.apache.org/licenses/LICENSE-2.0 @@ -28,8 +35,10 @@ tags: description: API implemented by data producers - name: Data producer (registration) description: API for data producers -- name: EI Service status +- name: Service status description: API for monitoring of the service +- name: Data consumer + description: API for data consumers paths: /producer_simulator/ei_job: post: @@ -109,6 +118,21 @@ paths: type: array items: type: string + /data-consumer/v1/info-types: + get: + tags: + - Data consumer + summary: Information type identifiers + operationId: getinfoTypeIdentifiers + responses: + 200: + description: Information type identifiers + content: + application/json: + schema: + type: array + items: + type: string /ei-producer/v1/eiproducers/{eiProducerId}/status: get: tags: @@ -265,7 +289,7 @@ paths: /status: get: tags: - - EI Service status + - Service status summary: Returns status and statistics of this service operationId: getStatus responses: @@ -304,7 +328,7 @@ paths: tags: - A1-EI (registration) summary: Individual EI job - operationId: getIndividualEiJob + operationId: getIndividualEiJob_1 parameters: - name: eiJobId in: path @@ -368,7 +392,7 @@ paths: tags: - A1-EI (registration) summary: Individual EI job - operationId: deleteIndividualEiJob + operationId: deleteIndividualEiJob_1 parameters: - name: eiJobId in: path @@ -455,6 +479,12 @@ paths: application/json: schema: $ref: '#/components/schemas/Void' + 404: + description: Producer not found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' delete: tags: - Data producer (registration) @@ -502,6 +532,142 @@ paths: application/json: schema: type: string + /data-consumer/v1/info-jobs: + get: + tags: + - Data consumer + summary: EI job identifiers + description: query for information job identifiers + operationId: getJobIds + parameters: + - 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 subscription jobs for one job 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 + required: true + style: simple + explode: false + schema: + type: string + responses: + 200: + description: Information subscription job + content: + application/json: + schema: + $ref: '#/components/schemas/Job' + 404: + description: Information subscription job is not found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + put: + tags: + - Data consumer + summary: Individual data subscription job + operationId: putIndividualInfoJob + parameters: + - name: infoJobId + in: path + required: true + style: simple + explode: false + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Job' + required: true + responses: + 200: + description: Job updated + content: + application/json: + schema: + $ref: '#/components/schemas/Void' + 201: + description: Job created + content: + application/json: + schema: + $ref: '#/components/schemas/Void' + 404: + description: Enrichment Information type is not found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + delete: + tags: + - Data consumer + summary: Individual data subscription job + operationId: deleteIndividualEiJob + parameters: + - name: infoJobId + in: path + required: true + style: simple + explode: false + schema: + type: string + responses: + 200: + description: Not used + content: + application/json: + schema: + $ref: '#/components/schemas/Void' + 204: + description: Job deleted + content: + application/json: + schema: + $ref: '#/components/schemas/Void' + 404: + description: Information subscription job is not found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' /ei-producer/v1/eiproducers/{eiProducerId}/eijobs: get: tags: @@ -532,6 +698,33 @@ paths: application/json: schema: $ref: '#/components/schemas/ProblemDetails' + /data-consumer/v1/info-types/{infoTypeId}: + get: + tags: + - Data consumer + summary: Individual information type + operationId: getInfoType + parameters: + - name: infoTypeId + in: path + required: true + style: simple + explode: false + schema: + type: string + responses: + 200: + description: Information type + content: + application/json: + schema: + $ref: '#/components/schemas/InformationType' + 404: + description: Information type is not found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' /A1-EI/v1/eijobs: get: tags: @@ -576,7 +769,7 @@ paths: tags: - A1-EI (registration) summary: EI job status - operationId: getEiJobStatus + operationId: getEiJobStatus_1 parameters: - name: eiJobId in: path @@ -627,6 +820,33 @@ paths: application/json: schema: $ref: '#/components/schemas/Void' + /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/JobStatus' + 404: + description: Information subscription job is not found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' components: schemas: producer_ei_job_request: @@ -708,18 +928,6 @@ components: type: string description: callback for EI job description: Information for an EI producer - producer_status: - required: - - operational_state - type: object - properties: - operational_state: - type: string - description: Represents the operational states - enum: - - ENABLED - - DISABLED - description: Status for an EI Producer ProblemDetails: type: object properties: @@ -736,9 +944,6 @@ components: example: 404 description: A problem detail to carry details in a HTTP response according to RFC 7807 - Void: - type: object - description: 'Void/empty ' EiJobStatusObject: required: - eiJobStatus @@ -775,3 +980,63 @@ components: type: object description: EI type specific job data description: Information for an Enrichment Information Job + JobStatus: + required: + - eiJobStatus + type: object + properties: + eiJobStatus: + type: string + description: Allowed values for EI job status + enum: + - ENABLED + - DISABLED + description: Status for an EI 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 EI Producer + Void: + type: object + description: 'Void/empty ' + Job: + required: + - infoTypeId + - jobDefinition + - jobOwner + - jobResultUri + type: object + properties: + jobResultUri: + type: string + description: The target URI of the subscribed information + infoTypeId: + type: string + description: Information type Idenitifier of the subscription job + jobOwner: + type: string + description: Identity of the owner of the job + statusNotificationUri: + type: string + description: The target of Information subscription job status notifications + jobDefinition: + type: object + description: Information type specific job data + description: Information for an Enrichment Information Job + InformationType: + required: + - consumer_job_data_schema + type: object + properties: + consumer_job_data_schema: + type: object + description: Json schema for the job data + description: Information for an Information type