MEF

MEF LSO Interlude Streaming Management

Streaming Management — the OpenAPI definition published by Mplify (formerly MEF) in the MEF LSO Interlude SDK, Kylie release. LSO Interlude is the Interface Reference Point between two Service Providers, covering inter-provider operational/service automation. 4 path(s), 6 operation(s). Apache-2.0 licensed and openly downloadable from public GitHub.

OpenAPI Specification

mef-lso-interlude-streaming-management-all-in-one-openapi.yml Raw ↑
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:
  - description: Groups all operations related to the available topic.
    name: topic
  - description: |
      Groups all operations related to subscribed topics and  subscription management.
    name: subscription
  - name: events subscription
paths:
  /topic:
    get:
      description:
        List topics available for subscription to performance monitoring data
      operationId: topicList
      parameters:
        - description: Category of the available topic
          in: query
          name: category
          required: false
          schema:
            type: string
        - description:
            A communication protocol supported by the available topic
          in: query
          name: protocol
          required: false
          schema:
            type: string
        - description:
            Requested number of elements to be provided in response requested
            by client
          in: query
          name: limit
          required: false
          schema:
            format: int32
            type: integer
        - 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
          required: false
          schema:
            format: int32
            type: integer
      responses:
        '200':
          content:
            application/json;charset=utf-8:
              schema:
                items:
                  $ref: '#/components/schemas/Topic'
                type: array
          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
        '400':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error400'
          description: Bad Request
        '401':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error401'
          description: Unauthorized
        '403':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error403'
          description: Forbidden
        '405':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
          description: Method Not Allowed
        '500':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error500'
          description: Internal Server Error
      summary: Retrieve Available Topics
      tags:
        - topic
  /topic/{id}:
    get:
      description: Information about the topic available for subscription
      operationId: topicById
      parameters:
        - description: Identifier of the topic
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Topic'
          description: Success
        '400':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error400'
          description: Bad Request
        '401':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error401'
          description: Unauthorized
        '403':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error403'
          description: Forbidden
        '404':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error404'
          description: Not Found
        '405':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
          description: Method Not Allowed
        '500':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error500'
          description: Internal Server Error
      summary: Retrieve Available Topic by an Identifier
      tags:
        - topic
  /subscription:
    get:
      description: List all the subscriptions to all the topics
      operationId: subscriptionList
      parameters:
        - description: Identifier of a topic subscription belongs to
          in: query
          name: topicId
          required: false
          schema:
            type: string
        - description:
            A communication protocol supported by the available topic
          in: query
          name: protocol
          required: false
          schema:
            type: string
        - description:
            Requested number of elements to be provided in response requested
            by client
          in: query
          name: limit
          required: false
          schema:
            format: int32
            type: integer
        - 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
          required: false
          schema:
            format: int32
            type: integer
      responses:
        '200':
          content:
            application/json;charset=utf-8:
              schema:
                items:
                  $ref: '#/components/schemas/TopicSubscription'
                type: array
            application/vnd.aai.asyncapi+json:
              schema:
                $ref: '#/components/schemas/AsyncAPIModel'
          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
        '400':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error400'
          description: Bad Request
        '401':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error401'
          description: Unauthorized
        '403':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error403'
          description: Forbidden
        '405':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
          description: Method Not Allowed
        '500':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error500'
          description: Internal Server Error
      summary: Retrieve Topic Subscriptions List
      tags:
        - subscription
    post:
      description: Subscribe to the selected topic
      operationId: subscribeTopic
      requestBody:
        content:
          application/json;charset=utf-8:
            schema:
              $ref: '#/components/schemas/TopicSubscriptionRequest'
      responses:
        '201':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/TopicSubscription'
          description: Registered
        '400':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error400'
          description: Bad Request
        '401':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error401'
          description: Unauthorized
        '403':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error403'
          description: Forbidden
        '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
      summary: Subscribe To a Topic
      tags:
        - subscription
  /subscription/{id}:
    delete:
      description: Remove a subscription for a  topic
      operationId: unsubscribeTopic
      parameters:
        - description: Identifier of the subscription
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        '204':
          description: Unsubscribe operation successful
        '400':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error400'
          description: Bad Request
        '401':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error401'
          description: Unauthorized
        '403':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error403'
          description: Forbidden
        '404':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error404'
          description: Not Found
        '405':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
          description: Method Not Allowed
        '500':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error500'
          description: Internal Server Error
      summary: Unsubscribe From a Topic
      tags:
        - subscription
    get:
      description: Retrieve information about a subscription to a topic
      operationId: subscriptionById
      parameters:
        - description: Identifier of the subscription
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/TopicSubscription'
          description: Success
        '400':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error400'
          description: Bad Request
        '401':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error401'
          description: Unauthorized
        '403':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error403'
          description: Forbidden
        '404':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error404'
          description: Not Found
        '405':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
          description: Method Not Allowed
        '500':
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error500'
          description: Internal Server Error
      summary: Retrieve Topic Subscription By an Identifier
      tags:
        - subscription
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
      required: false
      schema:
        format: int32
        type: integer
    Limit:
      description:
        Requested number of elements to be provided in response requested by
        client
      in: query
      name: limit
      required: false
      schema:
        format: int32
        type: integer
  responses:
    '400':
      content:
        application/json;charset=utf-8:
          schema:
            $ref: '#/components/schemas/Error400'
      description: Bad Request
    '401':
      content:
        application/json;charset=utf-8:
          schema:
            $ref: '#/components/schemas/Error401'
      description: Unauthorized
    '403':
      content:
        application/json;charset=utf-8:
          schema:
            $ref: '#/components/schemas/Error403'
      description: Forbidden
    '404':
      content:
        application/json;charset=utf-8:
          schema:
            $ref: '#/components/schemas/Error404'
      description: Not Found
    '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
  schemas:
    AsyncAPIModel:
      $ref: 'http://asyncapi.com/definitions/2.6.0/asyncapi.json'
    Error:
      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:
          description:
            Text that provides mode details and corrective actions related to
            the error. This can be shown to a client user.
          type: string
        reason:
          description:
            Text that explains the reason for the error. This can be shown to a
            client user.
          maxLength: 255
          type: string
        referenceError:
          description: URL pointing to documentation describing the error
          format: uri
          type: string
      required:
        - reason
      type: object
    Error400:
      allOf:
        - $ref: '#/components/schemas/Error'
        - properties:
            code:
              $ref: '#/components/schemas/Error400Code'
          required:
            - code
          type: object
      description:
        Bad Request. (https://tools.ietf.org/html/rfc7231#section-6.5.1)
    Error400Code:
      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
      type: string
    Error401:
      allOf:
        - $ref: '#/components/schemas/Error'
        - properties:
            code:
              $ref: '#/components/schemas/Error401Code'
          required:
            - code
          type: object
      description:
        Unauthorized.  (https://tools.ietf.org/html/rfc7235#section-3.1)
    Error401Code:
      description: |-
        One of the following error codes:
        - missingCredentials: No credentials provided.
        - invalidCredentials: Provided credentials are invalid or expired
      enum:
        - missingCredentials
        - invalidCredentials
      type: string
    Error403:
      allOf:
        - $ref: '#/components/schemas/Error'
        - properties:
            code:
              $ref: '#/components/schemas/Error403Code'
          required:
            - code
          type: object
      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:
      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
      type: string
    Error404:
      allOf:
        - $ref: '#/components/schemas/Error'
        - properties:
            code:
              description: |-
                The following error code:
                - notFound: A current representation for the target resource not found
              enum:
                - notFound
              type: string
          required:
            - code
          type: object
      description:
        Resource for the requested path not found.
        (https://tools.ietf.org/html/rfc7231#section-6.5.4)
    Error422:
      allOf:
        - $ref: '#/components/schemas/Error'
        - properties:
            code:
              $ref: '#/components/schemas/Error422Code'
            propertyPath:
              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).
              type: string
          required:
            - code
          type: object
      description:
        Unprocessable entity due to a business validation problem.
        (https://tools.ietf.org/html/rfc4918#section-11.2)
    Error422Code:
      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
      type: string
    Error500:
      allOf:
        - $ref: '#/components/schemas/Error'
        - properties:
            code:
              description: |-
                The following error code:
                - internalError: Internal server error - the server encountered an unexpected condition that prevented it from fulfilling the request.
              enum:
                - internalError
              type: string
          required:
            - code
          type: object
      description:
        Internal Server Error.
        (https://tools.ietf.org/html/rfc7231#section-6.6.1)
    Subscription:
      description:
        Provides stream metadata information that allows for data consumption.
      properties:
        id:
          description: A unique identifier for the stream.
          type: string
        description:
          description: An explanatory description of the stream.
          type: string
        priority:
          description: "The priority level of the stream. Can be high, medium,
            or\
            \ low."
          type: string
        connectionConfig:
          $ref: '#/components/schemas/ConnectionConfig'
      required:
        - id
      type: object
    Topic:
      additionalProperties: true
      description: |
        Provides metadata describing a topic available for subscription. This object is used to define available consumption mechanisms and the data model.
      properties:
        id:
          description: |
            An identifier for the topic. This can be used to uniquely identify the topic within the Server system.
          type: string
        category:
          $ref: '#/components/schemas/Category'
          description: |
            The category of the topic. This can be used to group topics based on their characteristics.
        modelRef:
          description: |
            A reference to a model that describes the structure of the data associated with the topic.
          format: uri
          type: string
        availableChannels:
          description: |
            An array of channel descriptions that provide information about the channels through which the topic can be accessed.
          items:
            $ref: '#/components/schemas/ChannelDescription'
          minItems: 1
          type: array
      required:
        - id
      type: object
    TopicSubscription:
      allOf:
        - $ref: '#/components/schemas/Subscription'
        - $ref: '#/components/schemas/TopicSubscriptionRequest'
      description: Information about the subscription to a specific topic
    TopicSubscriptionRequest:
      additionalProperties: true
      properties:
        protocol:
          description: |
            Name of the protocol consumer is intended to use to consume data from `topicId`.  The name of the protocol must be one of the defined for the topic.
          type: string
        topicId:
          description: Identifier of the topic consumer wants to subscribe to
          type: string
      required:
        - protocol
        - topicId
      type: object
    ConnectionConfig:
      description:
        Configuration settings for establishing a connection to the stream.
      properties:
        servers:
          $ref: '#/components/schemas/servers'
        channel:
          $ref: '#/components/schemas/Channel'
      type: object
    servers:
      additionalProperties:
        oneOf:
          - $ref: '#/components/schemas/Reference'
          - $ref: '#/components/schemas/server'
      description: The Servers Object is a map of Server Objects.
      type: object
    Channel:
      properties:
        name:
          description:
            The name of the channel through which the stream data is
            transmitted.
          format: uri-template
          minLength: 1
          type: string
        bindings:
          $ref: '#/components/schemas/bindingsObject'
      type: object
    bindingsObject:
      additionalProperties: true
      description: Map describing protocol-specific definitions for a server.
      properties:
        http:
          type: object
        ws:
          type: object
        amqp:
          type: object
        amqp1:
          type: object
        mqtt:
          type: object
        mqtt5:
          type: object
        kafka:
          type: object
        anypointmq:
          type: object
        nats:
          type: object
        jms:
          type: object
        sns:
          type: object
        sqs:
          type: object
        stomp:
          type: object
        redis:
          type: object
        ibmmq:
          type: object
        solace:
          type: object
        googlepubsub:
          type: object
        pulsar:
          type: object
      type: object
    SubscriptionRequest:
      additionalProperties: true
      properties:
        protocol:
          description: |
            Name of the protocol consumer is intended to use to consume data from `topicId`.  The name of the protocol must be one of the defined for the topic.
          type: string
        topicId:
          description: Identifier of the topic consumer wants to subscribe to
          type: string
      required:
        - protocol
        - topicId
      type: object
    ChannelDescription:
      properties:
        protocol:
          description: Name of technical protocol allowing for consumption
          type: string
        description:
          description: Human-friendly description of the protocol
          type: string
      required:
        - protocol
      type: object
    Reference:
      properties:
        $ref:
          $ref: '#/components/schemas/ReferenceObject'
      required:
        - $ref
      type: object
    ReferenceObject:
      description: "A simple object to allow referencing other components in
        the specification,\
        \ internally and externally."
      format: uri-reference
      type: string
    server:
      additionalProperties: false
      description: "An object representing a message broker, a server or any
        other\
        \ kind of computer program capable of sending and/or receiving data"
      properties:
        url:
          description: "A URL to the target host. This URL supports Server
            Variables\
            \ and MAY be relative, to indicate that the host location is
            relative\
            \ to the location where the AsyncAPI document is being served."
          type: string
        description:
          description:
            An optional string describing the host designated by the URL.
            CommonMark syntax MAY be used for rich text representation.
          type: string
        protocol:
          description: "The protocol this URL supports for connection.
            Supported protocol\
            \ include, but are not limited to: amqp, amqps, http, https, ibmmq,
            jms,\
            \ kafka, kafka-secure, anypointmq, mqtt, secure-mqtt, solace,
            stomp, stomps,\
            \ ws, wss, mercure, googlepubsub."
          type: string
        protocolVersion:
          description: "The version of the protocol used for connection. For
            instance:\
            \ AMQP 0.9.1, HTTP 2.0, Kafka 1.0.0, etc."
          type: string
        variables:
          $ref: '#/components/schemas/serverVariables'
        security:
          description:
            'A declaration of which security mechanisms can be used with this
            server. The list of values includes alternative security
            requirement objects that can be used. '
          items:
            $ref: '#/components/schemas/SecurityRequirement'
          type: array
        bindings:
          $ref: '#/components/schemas/bindingsObject'
        tags:
          description:
            A list of tags for logical grouping and categorization of servers.
          items:
            $ref: '#/components/schemas/tag'
          type: array
          uniqueItems: true
      required:
        - protocol
        - url
      type: object
    serverVariables:
      additionalProperties:
        oneOf:
          - $ref: '#/components/schemas/Reference'
          - $ref: '#/components/schemas/serverVariable'
      description:
        A map between a variable name and its value. The value is used for
        substitution in the server's URL template.
      type: object
    SecurityRequirement:
      additionalProperties:
        items:
          type: string
        type: array
        uniqueItems: true
      description:
        Lists of the required security schemes that can be used to execute an
        operation
      type: object
    tag:
      additionalProperties: false
      description: Allows adding meta data to a single tag.
      properties:
        name:
          description: The name of the tag.
          type: string
        description:
          description: A short description for the tag.
          type: string
        externalDocs:
          $ref: '#/components/schemas/externalDocs'
      required:
        - name
      type: object
    externalDocs:
      additionalProperties: false
      description:
        Allows referencing an external resource for extended documentation.
      properties:
        description:
          description: A short description of the target documentation.
          type: string
        url:
          description:
            The URL for the target documentation. This MUST be in the form of
            an absolute URL.
          format: uri
          type: string
      required:
        - url
      type: object
    serverVariable:
      additionalProperties: false
      description:
        An object representing a Server Variable for server URL template
        substitution.
      properties:
        enum:
          description:
            An enumeration of string values to be used if the substitution
            options are from a limited set.
          items:
            type: string
          type: array
          uniqueItems: true
        default:
          description: "The default value to use for substitution, and to send,
            if\
            \ an alternate value is not supplied."
          type: string
        description:
          description: 'An optional description for the server variable. '
          type: string
        examples:
          description: An array of examples of the server variable.
          items:
            type: string
          type: array
      type: object
    Category:
      description: |
        The category of the topic. This can be used to group topics based on their 

# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mef/refs/heads/main/openapi/mef-lso-interlude-streaming-management-all-in-one-openapi.yml