blob: 3b705cff4a2c216fb1f693cdd3e7749ebcc18aa3 [file] [log] [blame]
openapi: 3.0.1
info:
title: Enrichment Information Service
description: <h1>API documentation</h1><h2>General</h2><p> The service is mainly
a broker between data producers and data consumers. A data producer has the ability
to producer one or several type of data (EI type). One type of data can be produced
by zero to many producers. <br /><br />A data consumer can have several active
data subscriptions (EI job). One EI job consists of the the type of data to produce
and additional parameters for filtering of the data. These parameters are different
for different data types.</p><h2>APIs provided by the service</h2><h4>A1-EI</h4><p> This
API is between Near-RT RIC, which is a data consumer and the Non-RT RIC. </p><h4>Data
producer API</h4><p> This API is between data producers and this service. It
is divivided into two parts, where one is provided by this service (registration)
and one part is provided by the data producer.</p><h4>EI Service status</h4><p> This
API provides a means to monitor the service.</p>
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 (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: EI Service status
description: API for monitoring of the service
paths:
/producer_simulator/ei_job:
post:
tags:
- Data producer (callbacks)
summary: Callback for EI job creation/modification
description: The call is invoked to activate or to modify a data subscription.
The endpoint is provided by the EI producer.
operationId: jobCreatedCallback
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/producer_ei_job_request'
required: true
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Void'
/A1-EI/v1/eitypes/{eiTypeId}:
get:
tags:
- A1-EI (registration)
summary: Individual EI type
operationId: getEiType_1
parameters:
- name: eiTypeId
in: path
required: true
style: simple
explode: false
schema:
type: string
responses:
200:
description: EI type
content:
application/json:
schema:
$ref: '#/components/schemas/EiTypeObject'
404:
description: Enrichment Information type is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/ei-producer/v1/eitypes:
get:
tags:
- Data producer (registration)
summary: EI type identifiers
operationId: getEiTypeIdentifiers
responses:
200:
description: EI type identifiers
content:
application/json:
schema:
type: array
items:
type: string
/A1-EI/v1/eitypes:
get:
tags:
- A1-EI (registration)
summary: EI type identifiers
operationId: getEiTypeIdentifiers_1
responses:
200:
description: EI type identifiers
content:
application/json:
schema:
type: array
items:
type: string
/ei-producer/v1/eiproducers/{eiProducerId}/status:
get:
tags:
- Data producer (registration)
summary: EI producer status
operationId: getEiProducerStatus
parameters:
- name: eiProducerId
in: path
required: true
style: simple
explode: false
schema:
type: string
responses:
200:
description: EI producer status
content:
application/json:
schema:
$ref: '#/components/schemas/producer_status'
404:
description: Enrichment Information producer is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/producer_simulator/ei_job/{eiJobId}:
delete:
tags:
- Data producer (callbacks)
summary: Callback for EI job deletion
description: The call is invoked to terminate a data subscription. The endpoint
is provided by the EI producer.
operationId: jobDeletedCallback
parameters:
- name: eiJobId
in: path
required: true
style: simple
explode: false
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Void'
/ei-producer/v1/eitypes/{eiTypeId}:
get:
tags:
- Data producer (registration)
summary: Individual EI type
operationId: getEiType
parameters:
- name: eiTypeId
in: path
required: true
style: simple
explode: false
schema:
type: string
responses:
200:
description: EI type
content:
application/json:
schema:
$ref: '#/components/schemas/producer_ei_type_info'
404:
description: Enrichment Information type is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Data producer (registration)
summary: Individual EI type
operationId: putEiType
parameters:
- name: eiTypeId
in: path
required: true
style: simple
explode: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/producer_ei_type_info'
required: true
responses:
200:
description: Type updated
content:
application/json:
schema:
$ref: '#/components/schemas/Void'
201:
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 (registration)
summary: Individual EI type
operationId: deleteEiType
parameters:
- name: eiTypeId
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: Producer deleted
content:
application/json:
schema:
$ref: '#/components/schemas/Void'
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
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/status:
get:
tags:
- EI Service status
summary: Returns status and statistics of this service
operationId: getStatus
responses:
200:
description: Service is living
content:
application/json:
schema:
$ref: '#/components/schemas/status_info'
/ei-producer/v1/eiproducers:
get:
tags:
- Data producer (registration)
summary: EI producer identifiers
operationId: getEiProducerIdentifiers
parameters:
- name: ei_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: EI producer identifiers
content:
application/json:
schema:
type: array
items:
type: string
/A1-EI/v1/eijobs/{eiJobId}:
get:
tags:
- A1-EI (registration)
summary: Individual EI job
operationId: getIndividualEiJob
parameters:
- name: eiJobId
in: path
required: true
style: simple
explode: false
schema:
type: string
responses:
200:
description: EI job
content:
application/json:
schema:
$ref: '#/components/schemas/EiJobObject'
404:
description: Enrichment Information job is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- A1-EI (registration)
summary: Individual EI job
operationId: putIndividualEiJob
parameters:
- name: eiJobId
in: path
required: true
style: simple
explode: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EiJobObject'
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:
- A1-EI (registration)
summary: Individual EI job
operationId: deleteIndividualEiJob
parameters:
- name: eiJobId
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: Enrichment Information job is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/ei-producer/v1/eiproducers/{eiProducerId}:
get:
tags:
- Data producer (registration)
summary: Individual EI producer
operationId: getEiProducer
parameters:
- name: eiProducerId
in: path
required: true
style: simple
explode: false
schema:
type: string
responses:
200:
description: EI producer
content:
application/json:
schema:
$ref: '#/components/schemas/producer_registration_info'
404:
description: Enrichment Information producer is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Data producer (registration)
summary: Individual EI producer
operationId: putEiProducer
parameters:
- name: eiProducerId
in: path
required: true
style: simple
explode: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/producer_registration_info'
required: true
responses:
200:
description: Producer updated
content:
application/json:
schema:
$ref: '#/components/schemas/Void'
201:
description: Producer created
content:
application/json:
schema:
$ref: '#/components/schemas/Void'
delete:
tags:
- Data producer (registration)
summary: Individual EI producer
operationId: deleteEiProducer
parameters:
- name: eiProducerId
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: Producer deleted
content:
application/json:
schema:
$ref: '#/components/schemas/Void'
404:
description: Producer is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/producer_simulator/health_check:
get:
tags:
- Data producer (callbacks)
summary: Producer supervision
description: The endpoint is provided by the EI producer and is used for supervision
of the producer.
operationId: producerSupervision
responses:
200:
description: The producer is OK
content:
application/json:
schema:
type: string
/ei-producer/v1/eiproducers/{eiProducerId}/eijobs:
get:
tags:
- Data producer (registration)
summary: EI job definitions
description: EI job definitions for one EI producer
operationId: getEiProducerJobs
parameters:
- name: eiProducerId
in: path
required: true
style: simple
explode: false
schema:
type: string
responses:
200:
description: EI producer
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/producer_ei_job_request'
404:
description: Enrichment Information producer is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/A1-EI/v1/eijobs:
get:
tags:
- A1-EI (registration)
summary: EI job identifiers
description: query for EI job identifiers
operationId: getEiJobIds
parameters:
- name: eiTypeId
in: query
description: selects EI jobs of matching EI type
required: false
style: form
explode: true
schema:
type: string
- name: owner
in: query
description: selects EI jobs for one EI job owner
required: false
style: form
explode: true
schema:
type: string
responses:
200:
description: EI job identifiers
content:
application/json:
schema:
type: array
items:
type: string
404:
description: Enrichment Information type is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/A1-EI/v1/eijobs/{eiJobId}/status:
get:
tags:
- A1-EI (registration)
summary: EI job status
operationId: getEiJobStatus
parameters:
- name: eiJobId
in: path
required: true
style: simple
explode: false
schema:
type: string
responses:
200:
description: EI job status
content:
application/json:
schema:
$ref: '#/components/schemas/EiJobStatusObject'
404:
description: Enrichment Information job is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/example_dataconsumer/eijobs/{eiJobId}/status:
post:
tags:
- A1-EI (callbacks)
summary: Callback for changed EI job status
description: The primitive is implemented by the data consumer and is invoked
when a EI job status has been changed.
operationId: jobStatusCallback
parameters:
- name: eiJobId
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'
components:
schemas:
producer_ei_job_request:
required:
- ei_job_identity
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:
type: string
description: The time when the job was last updated or created (ISO-8601)
ei_job_data:
type: object
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
EiTypeObject:
type: object
description: Information for an EI type
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
format: int32
no_of_types:
type: integer
description: Number of EI types
format: int32
no_of_jobs:
type: integer
description: Number of EI jobs
format: int32
status:
type: string
description: status text
producer_ei_type_info:
required:
- ei_job_data_schema
type: object
properties:
ei_job_data_schema:
type: object
description: Json schema for the job data
description: Information for an EI type
producer_registration_info:
required:
- ei_job_callback_url
- ei_producer_supervision_callback_url
- supported_ei_types
type: object
properties:
supported_ei_types:
type: array
description: Supported EI type IDs
items:
type: string
description: Supported EI type IDs
ei_producer_supervision_callback_url:
type: string
description: callback for producer supervision
ei_job_callback_url:
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:
detail:
type: string
description: A human-readable explanation specific to this occurrence of
the problem.
example: EI job type not found
status:
type: integer
description: The HTTP status code generated by the origin server for this
occurrence of the problem.
format: int32
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
type: object
properties:
eiJobStatus:
type: string
description: Allowed values for EI job status
enum:
- ENABLED
- DISABLED
description: Status for an EI job
EiJobObject:
required:
- eiTypeId
- jobDefinition
- jobOwner
- jobResultUri
type: object
properties:
eiTypeId:
type: string
description: EI type Idenitifier of the EI job
jobResultUri:
type: string
description: The target URI of the EI data
jobOwner:
type: string
description: Identity of the owner of the job
statusNotificationUri:
type: string
description: The target of EI job status notifications
jobDefinition:
type: object
description: EI type specific job data
description: Information for an Enrichment Information Job