X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=enrichment-coordinator-service%2Fapi%2Fecs-api.yaml;h=c4463b0285cbca72d45b626dcda3c18985bff4da;hb=4cd9f067e6985a28c045dd672bd86581b8b5b1a9;hp=e317541f181cf850dedbffdf2cd50833b3fa562d;hpb=7a09fbb9eeb282cf89b88d5b38e75f483be15350;p=nonrtric.git diff --git a/enrichment-coordinator-service/api/ecs-api.yaml b/enrichment-coordinator-service/api/ecs-api.yaml index e317541f..c4463b02 100644 --- a/enrichment-coordinator-service/api/ecs-api.yaml +++ b/enrichment-coordinator-service/api/ecs-api.yaml @@ -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:

API documentation

General

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.

APIs provided by the + service

A1-EI

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.

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:

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. + url: http://www.apache.org/licenses/LICENSE-2.0 version: "1.0" servers: -- url: //localhost:38585/ +- url: / tags: -- name: A1-EI (enrichment information) - description: Consumer Controller -- name: Consumer Callbacks - description: Consumer Simulator Controller -- name: Enrichment Data Producer API - description: Producer Controller -- name: Producer Callbacks - description: Producer Simulator 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: - - Producer Callbacks - 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,398 +102,315 @@ 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: - - Consumer Callbacks - summary: Callback for EI job status - operationId: jobStatusCallbackUsingPOST - parameters: - - name: eiJobId - in: path - description: eiJobId - required: true - schema: - type: string + - 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: - description: status content: application/json: schema: - $ref: '#/components/schemas/EiJobStatusObject' + $ref: '#/components/schemas/producer_info_job_request' required: true responses: 200: description: OK - content: {} - 201: - description: Created - content: {} - 401: - description: Unauthorized - content: {} - 403: - description: Forbidden - content: {} - 404: - description: Not Found - content: {} - deprecated: false - /ei-producer/v1/eitypes: - get: - tags: - - Enrichment Data Producer API - summary: EI type identifiers - operationId: getEiTypeIdentifiersUsingGET_1 - 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 - /A1-EI/v1/eitypes: - get: - tags: - - A1-EI (enrichment information) - summary: EI type identifiers - operationId: getEiTypeIdentifiersUsingGET - 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/eiproducers/{eiProducerId}/status: + $ref: '#/components/schemas/Void' + /data-producer/v1/info-types/{infoTypeId}: get: tags: - - Enrichment Data Producer API - summary: EI producer status - operationId: getEiProducerStatusUsingGET + - Data producer (registration) + summary: Individual Information Type + operationId: getInfoType parameters: - - name: eiProducerId + - name: infoTypeId in: path - description: eiProducerId required: true + style: simple + explode: false schema: type: string responses: 200: - description: EI jobs + description: Info Type content: application/json: schema: - $ref: '#/components/schemas/producer_status' - 401: - description: Unauthorized - content: {} - 403: - description: Forbidden - content: {} + $ref: '#/components/schemas/producer_info_type_info' 404: - description: Enrichment Information producer is not found + description: Information type is not found content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - deprecated: false - /producer_simulator/ei_job/{eiJobId}: - delete: + put: tags: - - Producer Callbacks - summary: Callback for EI job deletion - operationId: jobDeletedCallbackUsingDELETE + - Data producer (registration) + summary: Individual Information Type + operationId: putInfoType parameters: - - name: eiJobId + - name: infoTypeId in: path - description: eiJobId required: true + style: simple + explode: false schema: type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/producer_info_type_info' + required: true responses: 200: - description: OK - content: {} - 204: - description: No Content - content: {} - 401: - description: Unauthorized - content: {} - 403: - description: Forbidden - content: {} - deprecated: false - /ei-producer/v1/eiproducers: - get: - tags: - - Enrichment Data Producer API - summary: EI producer identifiers - operationId: getEiProducerIdentifiersUsingGET - responses: - 200: - description: EI producer identifiers + description: Type updated 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}: - get: + $ref: '#/components/schemas/Void' + 201: + description: Type created + content: + application/json: + schema: + $ref: '#/components/schemas/Void' + 400: + description: Input validation failed + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + delete: tags: - - Enrichment Data Producer API - summary: Individual EI type - operationId: getEiTypeUsingGET_1 + - Data producer (registration) + summary: Individual Information Type + operationId: deleteInfoType parameters: - - name: eiTypeId + - name: infoTypeId in: path - description: eiTypeId required: true + style: simple + explode: false schema: type: string responses: 200: - description: EI type + description: Not used + content: + application/json: + schema: + $ref: '#/components/schemas/Void' + 204: + description: Producer deleted content: application/json: schema: - $ref: '#/components/schemas/producer_ei_type_info' - 401: - description: Unauthorized - content: {} - 403: - description: Forbidden - content: {} + $ref: '#/components/schemas/Void' 404: - description: Enrichment Information type is not found + description: Information type 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 - responses: - 200: - description: Service is living + 409: + description: The Information type has one or several active producers content: application/json: schema: - $ref: '#/components/schemas/status_info' - 401: - description: Unauthorized - content: {} - 403: - description: Forbidden - content: {} - 404: - description: Not Found - content: {} - deprecated: false - /A1-EI/v1/eijobs/{eiJobId}: + $ref: '#/components/schemas/ProblemDetails' + /data-consumer/v1/info-type-subscription/{subscriptionId}: get: tags: - - A1-EI (enrichment information) - summary: Individual EI job - operationId: getIndividualEiJobUsingGET + - Data consumer + summary: Individual subscription for information types (registration/deregistration) + operationId: getIndividualTypeSubscription parameters: - - name: eiJobId + - name: subscriptionId in: path - description: eiJobId required: true + style: simple + explode: false schema: type: string responses: 200: - description: EI job + description: Type subscription content: application/json: schema: - $ref: '#/components/schemas/EiJobObject' - 401: - description: Unauthorized - content: {} - 403: - description: Forbidden - content: {} + $ref: '#/components/schemas/consumer_type_subscription_info' 404: - description: Enrichment Information job is not found + description: Subscription is not found content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - deprecated: false put: tags: - - A1-EI (enrichment information) - summary: Individual EI job - operationId: putIndividualEiJobUsingPUT + - 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: eiJobId + - name: subscriptionId in: path - description: eiJobId required: true + style: simple + explode: false schema: type: string requestBody: - description: eiJobObject content: application/json: schema: - $ref: '#/components/schemas/EiJobObject' + $ref: '#/components/schemas/consumer_type_subscription_info' required: true responses: 200: - description: Job updated - content: {} + description: Subscription updated + content: + application/json: + schema: + $ref: '#/components/schemas/Void' 201: - description: Job created - content: {} - 401: - description: Unauthorized - content: {} - 403: - description: Forbidden - content: {} - 404: - description: Enrichment Information type is not found + description: Subscription created content: application/json: schema: - $ref: '#/components/schemas/ProblemDetails' - deprecated: false + $ref: '#/components/schemas/Void' delete: tags: - - A1-EI (enrichment information) - summary: Individual EI job - operationId: deleteIndividualEiJobUsingDELETE + - 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: Not used - content: {} + content: + application/json: + schema: + $ref: '#/components/schemas/Void' 204: - description: Job deleted - content: {} - 401: - description: Unauthorized - content: {} - 403: - description: Forbidden - content: {} + description: Subscription deleted + content: + application/json: + schema: + $ref: '#/components/schemas/Void' 404: - description: Enrichment Information job is not found + description: Subscription is not found content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - deprecated: false - /ei-producer/v1/eiproducers/{eiProducerId}: + /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: + - A1-EI (registration) + summary: EI type identifiers + operationId: getEiTypeIdentifiers + responses: + 200: + description: EI type identifiers + content: + application/json: + schema: + 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 + /data-producer/v1/info-producers/{infoProducerId}: get: tags: - - Enrichment Data Producer API - summary: Individual EI producer - operationId: getEiProducerUsingGET + - Data producer (registration) + summary: Individual Information Producer + operationId: getInfoProducer parameters: - - name: eiProducerId + - name: infoProducerId in: path - description: eiProducerId required: true + style: simple + explode: false schema: type: string responses: 200: - description: EI jobs + description: Information producer content: application/json: schema: $ref: '#/components/schemas/producer_registration_info' - 401: - description: Unauthorized - content: {} - 403: - description: Forbidden - content: {} 404: - description: Enrichment Information producer is not found + description: Information producer is not found content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - deprecated: false put: tags: - - Enrichment Data Producer API - summary: Individual EI producer - operationId: putEiProducerUsingPUT + - Data producer (registration) + summary: Individual Information Producer + operationId: putInfoProducer parameters: - - name: eiProducerId + - name: infoProducerId in: path - description: eiProducerId required: true + style: simple + explode: false schema: type: string requestBody: - description: registrationInfo content: application/json: schema: @@ -467,310 +419,718 @@ paths: responses: 200: description: Producer updated - content: {} + content: + application/json: + schema: + $ref: '#/components/schemas/Void' 201: description: Producer created - content: {} - 401: - description: Unauthorized - content: {} - 403: - description: Forbidden - content: {} + content: + application/json: + schema: + $ref: '#/components/schemas/Void' + 400: + description: Input validation failed + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' 404: - description: Not Found - content: {} - deprecated: false + description: Producer type not found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' delete: tags: - - Enrichment Data Producer API - summary: Individual EI producer - operationId: deleteEiProducerUsingDELETE + - Data producer (registration) + summary: Individual Information Producer + operationId: deleteInfoProducer parameters: - - name: eiProducerId + - name: infoProducerId 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: {} + content: + application/json: + schema: + $ref: '#/components/schemas/Void' 404: description: Producer is not found content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - deprecated: false - /producer_simulator/health_check: + /status: get: tags: - - Producer Callbacks - summary: Producer supervision - operationId: producerSupervisionUsingGET + - Service status + summary: Returns status and statistics of this service + operationId: getStatus responses: 200: - description: OK + description: Service is living 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: + $ref: '#/components/schemas/service_status_info' + /data-consumer/v1/info-type-subscription: get: tags: - - Enrichment Data Producer API - summary: EI job definitions - description: EI job definitions for one EI producer - operationId: getEiProducerJobsUsingGET + - Data consumer + summary: Information type subscription identifiers + description: query for information type subscription identifiers + operationId: getInfoTypeSubscriptions parameters: - - name: eiProducerId - in: path - description: eiProducerId - required: true + - name: owner + in: query + description: selects result for one owner + required: false + style: form + explode: true schema: type: string responses: 200: - description: EI jobs + description: Information type subscription identifiers content: application/json: schema: type: array items: - $ref: '#/components/schemas/producer_ei_job_request' - 401: - description: Unauthorized - content: {} - 403: - description: Forbidden - content: {} - 404: - description: Enrichment Information producer is not found - content: - application/json: - schema: - $ref: '#/components/schemas/ProblemDetails' - deprecated: false - /A1-EI/v1/eijobs: + type: string + /A1-EI/v1/eijobs/{eiJobId}: get: tags: - - A1-EI (enrichment information) - summary: EI job identifiers - description: query for EI job identifiers - operationId: getEiJobIdsUsingGET + - A1-EI (registration) + summary: Individual EI job + operationId: getIndividualEiJob_1 parameters: - - name: eiTypeId - in: query - description: selects EI jobs of matching EI type - allowEmptyValue: false - schema: - type: string - - name: owner - in: query - description: selects EI jobs for one EI job owner - allowEmptyValue: false + - name: eiJobId + in: path + required: true + style: simple + explode: false schema: type: string responses: 200: - description: EI job identifiers + description: EI job content: application/json: schema: - type: array - items: - type: string - 401: - description: Unauthorized - content: {} - 403: - description: Forbidden - content: {} + $ref: '#/components/schemas/EiJobObject' 404: - description: Enrichment Information type is not found + description: Enrichment Information job is not found content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - deprecated: false - /A1-EI/v1/eijobs/{eiJobId}/status: - get: + put: tags: - - A1-EI (enrichment information) - summary: EI job status - operationId: getEiJobStatusUsingGET + - A1-EI (registration) + summary: Individual EI job + operationId: putIndividualEiJob parameters: - name: eiJobId in: path - description: eiJobId required: true + style: simple + explode: false schema: type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EiJobObject' + required: true responses: 200: - description: EI job status + description: Job updated content: application/json: schema: - $ref: '#/components/schemas/EiJobStatusObject' - 401: - description: Unauthorized - content: {} - 403: - description: Forbidden - content: {} + $ref: '#/components/schemas/Void' + 201: + description: Job created + content: + application/json: + schema: + $ref: '#/components/schemas/Void' + 400: + description: Input validation failed + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' 404: - description: Enrichment Information job is not found + description: Enrichment Information type is not found content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - deprecated: false -components: - schemas: - producer_ei_job_request: - title: producer_ei_job_request - required: - - ei_job_identity - type: object - properties: - owner: + 409: + description: Cannot modify job type + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + delete: + tags: + - A1-EI (registration) + summary: Individual EI job + operationId: deleteIndividualEiJob_1 + parameters: + - name: eiJobId + in: path + required: true + style: simple + explode: false + schema: type: string - description: The owner of the job - ei_job_identity: + 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' + /data-consumer/v1/info-jobs: + get: + tags: + - Data consumer + summary: Information 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 - description: Idenitity of the EI job - ei_job_data: - type: object - properties: {} - description: Json for the job data - target_uri: + - 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 + required: true + style: simple + explode: false + schema: type: string - description: URI for the target of the EI - ei_type_identity: + responses: + 200: + description: Information subscription job + content: + application/json: + schema: + $ref: '#/components/schemas/consumer_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 + description: The job will be enabled when a producer is available + operationId: putIndividualInfoJob + parameters: + - name: infoJobId + in: path + required: true + style: simple + explode: false + schema: type: string - description: Type idenitity for the job - description: The body of the EI producer callbacks for EI job creation and deletion - EiTypeObject: - title: EiTypeObject - type: object - description: Information for an EI type - producer_ei_type_registration_info: - title: producer_ei_type_registration_info + - 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: + content: + application/json: + schema: + $ref: '#/components/schemas/consumer_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' + 400: + description: Input validation failed + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + 404: + description: Information type is not found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + 409: + description: Cannot modify job type + 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' + /data-producer/v1/info-producers: + get: + tags: + - 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: Information producer identifiers + content: + application/json: + schema: + type: array + items: + type: string + /data-consumer/v1/info-types/{infoTypeId}: + get: + tags: + - Data consumer + summary: Individual information type + operationId: getInfoType_1 + 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/consumer_information_type' + 404: + description: Information type is not found + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + /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 (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_1 + 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' + /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.
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: + consumer_information_type: required: - - ei_type_identity + - job_data_schema + - no_of_producers + - type_status type: object properties: - ei_type_identity: + no_of_producers: + type: integer + description: The number of registered producers for the type + format: int32 + type_status: type: string - description: EI type identity - ei_job_data_schema: + description: 'Allowed values:
ENABLED: one or several producers for + the information type are available
DISABLED: no producers for the + information type are available' + enum: + - ENABLED + - DISABLED + job_data_schema: type: object - properties: {} description: Json schema for the job data + description: Information for an Information type + 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_producer_ids: - type: array - description: Registered producers - items: - type: string - 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: - type: array - description: Supported EI types - items: - $ref: '#/components/schemas/producer_ei_type_registration_info' - ei_producer_supervision_callback_url: + info_producer_supervision_callback_url: type: string description: callback for producer supervision - ei_job_callback_url: + supported_info_types: + type: array + description: Supported Information Type IDs + items: + type: string + 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: |- - Operational state, values: - ENABLED: TBD - DISABLED: TBD. + description: Information type identifier + job_data_schema: + type: object + description: Json schema for the job data + status: + type: string + description: 'Allowed values:
REGISTERED: the information type has + been registered
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 @@ -779,28 +1139,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:
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' 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:
ENABLED: the A1-Information producer + is able to deliver result for the Information Job
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 @@ -817,11 +1191,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