MEF Streaming Management (Mef Lso Interlude Streaming Management)
MEF Streaming Management from MEF — 4 path(s) described in OpenAPI.
MEF Streaming Management from MEF — 4 path(s) described in OpenAPI.
openapi: 3.0.1
info:
description: |
**This file forms part of Mplify 147**
**This API implements part of the Business Requirements & Use Cases described
in Mplify 133.1 section 12.**
List of use cases supported by Performance Monitoring Data Streaming Management API:
- List Available Topics for Subscription
- List Subscribed Topics
- Subscribe to a Topic
- Unsubscribe from a Topic
Most important entities supported by the API:
- **Topic** - metadata describing a topic available for subscription
- **Subscription** - contains metadata information describing a data stream that provides the details allowing for data consumption
This API uses by reference AsyncAPI v2.6.0 models.
Copyright 2025 Mplify Alliance and its contributors
title: Streaming Management
version: 1.0.0
servers:
- url: 'https://{serverBase}/mefApi/interlude/streamingManagement/v1'
variables:
serverBase:
default: mplify.net
description: The base of SOF's URL.
tags:
- name: topic
description: Groups all operations related to the available topic.
- name: subscription
description: >+
Groups all operations related to subscribed topics and
subscription management.
- name: events subscription
paths:
/topic:
get:
operationId: topicList
summary: Retrieve Available Topics
description: List topics available for subscription to performance monitoring data
parameters:
- name: category
required: false
in: query
description: Category of the available topic
schema:
type: string
- name: protocol
required: false
in: query
description: A communication protocol supported by the available topic
schema:
type: string
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
tags:
- topic
responses:
'200':
description: Success
headers:
X-Pagination-Throttled:
description: >
Used to indicate that the result page was throttled to a maximum
possible size and there are additional results that can be
fetched
schema:
type: boolean
X-Result-Count:
description: >
Actual number of items returned in the response body
E.g. if there are 50 matching items in total,
but the request has offset=10 and limit=10,
then the X-Total-Count is 50.
schema:
type: integer
X-Total-Count:
description: Total number of items included in the response
schema:
type: integer
content:
application/json;charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/Topic'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'405':
$ref: '#/components/responses/405'
'500':
$ref: '#/components/responses/500'
/topic/{id}:
get:
operationId: topicById
summary: Retrieve Available Topic by an Identifier
description: Information about the topic available for subscription
tags:
- topic
parameters:
- name: id
description: Identifier of the topic
required: true
in: path
schema:
type: string
responses:
'200':
description: Success
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/Topic'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'500':
$ref: '#/components/responses/500'
/subscription:
get:
operationId: subscriptionList
summary: Retrieve Topic Subscriptions List
description: List all the subscriptions to all the topics
tags:
- subscription
parameters:
- name: topicId
required: false
in: query
description: Identifier of a topic subscription belongs to
schema:
type: string
- name: protocol
required: false
in: query
description: A communication protocol supported by the available topic
schema:
type: string
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
responses:
'200':
description: Success
headers:
X-Pagination-Throttled:
description: >
Used to indicate that the result page was throttled to the maximum
possible size and there are additional results that can be
fetched
schema:
type: boolean
X-Result-Count:
description: >
An actual number of items returned in the response body
E.g. if there are 50 matching items in total,
but the request has offset=10 and limit=10,
then the X-Total-Count is 50.
schema:
type: integer
X-Total-Count:
description: Total number of items included in the response
schema:
type: integer
content:
application/json;charset=utf-8:
schema:
type: array
items:
$ref: '#/components/schemas/TopicSubscription'
'application/vnd.aai.asyncapi+json':
schema:
$ref: '#/components/schemas/AsyncAPIModel'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'405':
$ref: '#/components/responses/405'
'500':
$ref: '#/components/responses/500'
post:
operationId: subscribeTopic
summary: Subscribe To a Topic
description: Subscribe to the selected topic
tags:
- subscription
requestBody:
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/TopicSubscriptionRequest'
responses:
'201':
description: Registered
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/TopicSubscription'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'405':
$ref: '#/components/responses/405'
'422':
$ref: '#/components/responses/422'
'500':
$ref: '#/components/responses/500'
/subscription/{id}:
delete:
operationId: unsubscribeTopic
summary: Unsubscribe From a Topic
description: Remove a subscription for a topic
parameters:
- name: id
description: Identifier of the subscription
required: true
in: path
schema:
type: string
tags:
- subscription
responses:
'204':
description: Unsubscribe operation successful
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'500':
$ref: '#/components/responses/500'
get:
operationId: subscriptionById
summary: Retrieve Topic Subscription By an Identifier
description: Retrieve information about a subscription to a topic
tags:
- subscription
parameters:
- name: id
description: Identifier of the subscription
required: true
in: path
schema:
type: string
responses:
'200':
description: Success
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/TopicSubscription'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'500':
$ref: '#/components/responses/500'
components:
parameters:
Offset:
description: >-
Requested index for the start of elements to be provided in response
requested by the client. Note that the index starts with "0".
in: query
name: offset
schema:
format: int32
type: integer
Limit:
description: >-
Requested number of elements to be provided in response requested by
client
in: query
name: limit
schema:
format: int32
type: integer
schemas:
AsyncAPIModel:
$ref: 'http://asyncapi.com/definitions/2.6.0/asyncapi.json'
Error:
type: object
description: >-
Standard Class used to describe API response error Not intended to be
used directly. The `code` in the HTTP header is used as a discriminator
for the type of error returned in runtime.
properties:
message:
type: string
description: >-
Text that provides mode details and corrective actions related to
the error. This can be shown to a client user.
reason:
type: string
description: >-
Text that explains the reason for the error. This can be shown to a
client user.
maxLength: 255
referenceError:
type: string
description: URL pointing to documentation describing the error
format: uri
required:
- reason
Error400:
allOf:
- $ref: '#/components/schemas/Error'
- type: object
properties:
code:
$ref: '#/components/schemas/Error400Code'
required:
- code
description: 'Bad Request. (https://tools.ietf.org/html/rfc7231#section-6.5.1)'
Error400Code:
type: string
description: |-
One of the following error codes:
- missingQueryParameter: The URI is missing a required query-string parameter
- missingQueryValue: The URI is missing a required query-string parameter value
- invalidQuery: The query section of the URI is invalid.
- invalidBody: The request has an invalid body
enum:
- missingQueryParameter
- missingQueryValue
- invalidQuery
- invalidBody
Error401:
allOf:
- $ref: '#/components/schemas/Error'
- type: object
properties:
code:
$ref: '#/components/schemas/Error401Code'
required:
- code
description: 'Unauthorized. (https://tools.ietf.org/html/rfc7235#section-3.1)'
Error401Code:
type: string
description: |-
One of the following error codes:
- missingCredentials: No credentials provided.
- invalidCredentials: Provided credentials are invalid or expired
enum:
- missingCredentials
- invalidCredentials
Error403:
allOf:
- $ref: '#/components/schemas/Error'
- type: object
properties:
code:
$ref: '#/components/schemas/Error403Code'
required:
- code
description: >-
Forbidden. This code indicates that the server understood the request
but refuses to authorize it.
(https://tools.ietf.org/html/rfc7231#section-6.5.3)
Error403Code:
type: string
description: >-
This code indicates that the server understood
the request but refuses to authorize it because
of one of the following error codes:
- accessDenied: Access denied
- forbiddenRequester: Forbidden requester
- tooManyUsers: Too many users
enum:
- accessDenied
- forbiddenRequester
- tooManyUsers
Error404:
allOf:
- $ref: '#/components/schemas/Error'
- type: object
properties:
code:
type: string
description: |-
The following error code:
- notFound: A current representation for the target resource not found
enum:
- notFound
required:
- code
description: >-
Resource for the requested path not found.
(https://tools.ietf.org/html/rfc7231#section-6.5.4)
Error422:
allOf:
- $ref: '#/components/schemas/Error'
- type: object
properties:
code:
$ref: '#/components/schemas/Error422Code'
propertyPath:
type: string
description: >-
A pointer to a particular property of the payload that caused
the validation issue. It is highly recommended that this
property should be used.
Defined using JavaScript Object Notation (JSON) Pointer
(https://tools.ietf.org/html/rfc6901).
required:
- code
description: >-
Unprocessable entity due to a business validation problem.
(https://tools.ietf.org/html/rfc4918#section-11.2)
Error422Code:
type: string
description: |-
One of the following error codes:
- missingProperty: The property that was expected is not present in the payload
- invalidValue: The property has an incorrect value
- invalidFormat: The property value does not comply with the expected value format
- referenceNotFound: The object referenced by the property cannot be identified in the target system
- unexpectedProperty: Additional, not expected property has been provided
- tooLargeDataset: A requested entity will produce too much data
- tooManyRecords: The number of records to be provided in the response exceeds the threshold
- tooManyRequests: The number of simultaneous requests from one API client exceeds the threshold
- otherIssue: Other problem was identified (detailed information provided in a reason)
enum:
- missingProperty
- invalidValue
- invalidFormat
- referenceNotFound
- unexpectedProperty
- tooLargeDataset
- tooManyRecords
- tooManyRequests
- otherIssue
Error500:
allOf:
- $ref: '#/components/schemas/Error'
- type: object
properties:
code:
type: string
description: >-
The following error code:
- internalError: Internal server error - the server encountered
an unexpected condition that prevented it from fulfilling the
request.
enum:
- internalError
required:
- code
description: >-
Internal Server Error.
(https://tools.ietf.org/html/rfc7231#section-6.6.1)
Subscription:
$ref: models/Subscription.yaml
Topic:
$ref: models/Topic.yaml
TopicSubscription:
description: Information about the subscription to a specific topic
allOf:
- $ref: '#/components/schemas/Subscription'
- $ref: '#/components/schemas/TopicSubscriptionRequest'
TopicSubscriptionRequest:
$ref: 'models/SubscriptionRequest.yaml'
responses:
'400':
description: Bad Request
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/Error400'
'401':
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/Error401'
description: Unauthorized
'403':
description: Forbidden
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/Error403'
'404':
description: Not Found
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/Error404'
'405':
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/Error'
description: Method Not Allowed
'422':
content:
application/json;charset=utf-8:
schema:
items:
$ref: '#/components/schemas/Error422'
type: array
description: Unprocessable entity due to the business validation problems
'500':
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/Error500'
description: Internal Server Error