Synadia Communications Mirror API

The mirror API from Synadia Communications — 5 operation(s) for mirror.

Operations 7

DELETE /core/beta/jetstream/mirror/{streamId} Delete Mirror #
GET /core/beta/jetstream/mirror/{streamId} Get Mirror #
PATCH /core/beta/jetstream/mirror/{streamId} Update Mirror #
GET /core/beta/jetstream/mirror/{streamId}/consumers List Consumers #
POST /core/beta/jetstream/mirror/{streamId}/consumers/pull Create Pull Consumer #
POST /core/beta/jetstream/mirror/{streamId}/consumers/push Create Push consumer #
DELETE /core/beta/jetstream/mirror/{streamId}/purge Purge Mirror #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/synadia-communications-mirror-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

synadia-communications-mirror-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: API for Synadia Control Plane / Synadia Cloud
  title: Synadia Control Plane / Synadia Cloud Mirror API
  version: beta
servers:
- description: Path to Synadia Control Plane Server Api
  url: '{baseUrl}/api'
  variables:
    baseUrl:
      default: ''
security:
- bearerAuth: []
  sessionAuth: []
tags:
- name: mirror
paths:
  /core/beta/jetstream/mirror/{streamId}:
    delete:
      operationId: deleteMirror
      parameters:
      - explode: false
        in: path
        name: streamId
        required: true
        schema:
          type: string
        style: simple
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      summary: Delete Mirror
      tags:
      - mirror
      x-doc-tags:
      - 'JetStream: Mirrors'
    get:
      operationId: getMirror
      parameters:
      - explode: false
        in: path
        name: streamId
        required: true
        schema:
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JSMirrorInfoResponse'
          description: Success
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      summary: Get Mirror
      tags:
      - mirror
      x-doc-tags:
      - 'JetStream: Mirrors'
    patch:
      operationId: updateMirror
      parameters:
      - explode: false
        in: path
        name: streamId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JSMirrorConfigRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JSMirrorInfoResponse'
          description: Success
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      summary: Update Mirror
      tags:
      - mirror
      x-doc-tags:
      - 'JetStream: Mirrors'
  /core/beta/jetstream/mirror/{streamId}/consumers:
    get:
      operationId: listMirrorConsumers
      parameters:
      - explode: false
        in: path
        name: streamId
        required: true
        schema:
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JSConsumerInfoListResponse'
          description: Success
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      summary: List Consumers
      tags:
      - mirror
      x-doc-tags:
      - 'JetStream: Mirrors'
  /core/beta/jetstream/mirror/{streamId}/consumers/pull:
    post:
      operationId: createMirrorPullConsumer
      parameters:
      - explode: false
        in: path
        name: streamId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JSPullConsumerConfigRequest'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JSPullConsumerInfoResponse'
          description: Success
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      summary: Create Pull Consumer
      tags:
      - mirror
      x-doc-tags:
      - 'JetStream: Mirrors'
  /core/beta/jetstream/mirror/{streamId}/consumers/push:
    post:
      operationId: createMirrorPushConsumer
      parameters:
      - explode: false
        in: path
        name: streamId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JSPushConsumerConfigRequest'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JSPushConsumerInfoResponse'
          description: Success
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      summary: Create Push consumer
      tags:
      - mirror
      x-doc-tags:
      - 'JetStream: Mirrors'
  /core/beta/jetstream/mirror/{streamId}/purge:
    delete:
      description: Purges Mirror
      operationId: purgeMirror
      parameters:
      - explode: false
        in: path
        name: streamId
        required: true
        schema:
          type: string
        style: simple
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      summary: Purge Mirror
      tags:
      - mirror
      x-doc-tags:
      - 'JetStream: Streams'
components:
  schemas:
    JSCommonStreamInfo:
      properties:
        alternates:
          items:
            $ref: '#/components/schemas/StreamAlternate'
          type: array
        cluster:
          $ref: '#/components/schemas/ClusterInfo'
        created:
          format: date-time
          type: string
        domain:
          type: string
        name:
          type: string
        sources:
          items:
            $ref: '#/components/schemas/StreamSourceInfo'
          type: array
        state:
          $ref: '#/components/schemas/StreamState'
        ts:
          format: date-time
          type: string
      required:
      - created
      - name
      - state
      - ts
      type: object
    StreamSource:
      description: StreamSource dictates how streams can source from other streams.
      example:
        opt_start_time: opt_start_time
        external: null
        opt_start_seq: 2147483647
        name: name
        consumer: null
        filter_subject: filter_subject
        subject_transforms:
        - src: src
          dest: dest
        - src: src
          dest: dest
      properties:
        consumer:
          $ref: '#/components/schemas/StreamSource_consumer'
        external:
          $ref: '#/components/schemas/StreamSource_external'
        filter_subject:
          type: string
        name:
          type: string
        opt_start_seq:
          maximum: 18446744073709551615
          minimum: 0
          type: integer
        opt_start_time:
          type:
          - string
          - 'null'
        subject_transforms:
          items:
            $ref: '#/components/schemas/SubjectTransformConfig'
          type: array
      required:
      - name
      type: object
    SubjectTransformConfig:
      description: 'SubjectTransformConfig is for applying a subject transform (to matching messages) before doing anything else

        when a new message is received'
      example:
        src: src
        dest: dest
      properties:
        dest:
          type: string
        src:
          type: string
      required:
      - dest
      - src
      type: object
    StreamAlternate:
      properties:
        cluster:
          type: string
        domain:
          type: string
        name:
          type: string
      required:
      - cluster
      - name
      type: object
    LostStreamData:
      description: LostStreamData indicates msgs that have been lost during file checks and recover due to corruption
      properties:
        bytes:
          description: How many bytes were lost
          maximum: 18446744073709551615
          minimum: 0
          type: integer
        msgs:
          description: Message IDs of lost messages
          items:
            maximum: 18446744073709551615
            minimum: 0
            type: integer
          type: array
      required:
      - bytes
      - msgs
      type: object
    PriorityGroupState:
      description: PriorityGroupState is the state of a consumer priority group.
      example:
        pinned_client_id: pinned_client_id
        pinned_ts: 2000-01-23 04:56:07+00:00
        group: group
      properties:
        group:
          type: string
        pinned_client_id:
          type: string
        pinned_ts:
          format: date-time
          type: string
      required:
      - group
      type: object
    JSCommonStreamConfig:
      properties:
        allow_atomic:
          type: boolean
        allow_batched:
          type: boolean
        allow_direct:
          type: boolean
        allow_msg_counter:
          type: boolean
        allow_msg_schedules:
          type: boolean
        allow_msg_ttl:
          type: boolean
        allow_rollup_hdrs:
          type: boolean
        compression:
          $ref: '#/components/schemas/Compression'
        consumer_limits:
          $ref: '#/components/schemas/JSStreamConsumerLimits'
        deny_delete:
          type: boolean
        deny_purge:
          type: boolean
        description:
          type: string
        discard:
          $ref: '#/components/schemas/DiscardPolicy'
        discard_new_per_subject:
          type: boolean
        duplicate_window:
          format: int64
          type: integer
        first_seq:
          maximum: 18446744073709551615
          minimum: 0
          type: integer
        max_age:
          format: int64
          type: integer
        max_bytes:
          format: int64
          type: integer
        max_consumers:
          type: integer
        max_msg_size:
          format: int32
          type: integer
        max_msgs:
          format: int64
          type: integer
        max_msgs_per_subject:
          format: int64
          type: integer
        metadata:
          additionalProperties:
            type: string
          type: object
        name:
          type: string
        no_ack:
          type: boolean
        num_replicas:
          type: integer
        persist_mode:
          $ref: '#/components/schemas/JSPersistMode'
        placement:
          $ref: '#/components/schemas/Placement'
        republish:
          $ref: '#/components/schemas/RePublish'
        retention:
          $ref: '#/components/schemas/RetentionPolicy'
        sealed:
          type: boolean
        sources:
          items:
            $ref: '#/components/schemas/StreamSource'
          type: array
        storage:
          $ref: '#/components/schemas/StorageType'
        subject_delete_marker_ttl:
          format: int64
          type: integer
        subject_transform:
          $ref: '#/components/schemas/SubjectTransformConfig'
        template_owner:
          type: string
      required:
      - allow_direct
      - allow_rollup_hdrs
      - deny_delete
      - deny_purge
      - discard
      - max_age
      - max_bytes
      - max_consumers
      - max_msgs
      - max_msgs_per_subject
      - name
      - num_replicas
      - retention
      - sealed
      - storage
      type: object
    StreamState_lost:
      allOf:
      - $ref: '#/components/schemas/LostStreamData'
      type:
      - object
      - 'null'
    ConsumerInfo:
      description: ConsumerInfo reports the current state of a consumer
      properties:
        ack_floor:
          $ref: '#/components/schemas/SequenceInfo'
        cluster:
          $ref: '#/components/schemas/ConsumerInfo_cluster'
        config:
          $ref: '#/components/schemas/ConsumerConfig'
        created:
          format: date-time
          type: string
        delivered:
          $ref: '#/components/schemas/SequenceInfo'
        name:
          type: string
        num_ack_pending:
          type: integer
        num_pending:
          maximum: 18446744073709551615
          minimum: 0
          type: integer
        num_redelivered:
          type: integer
        num_waiting:
          type: integer
        pause_remaining:
          format: int64
          type: integer
        paused:
          type: boolean
        priority_groups:
          items:
            $ref: '#/components/schemas/PriorityGroupState'
          type: array
        push_bound:
          type: boolean
        stream_name:
          type: string
        ts:
          format: date-time
          type: string
      required:
      - ack_floor
      - config
      - created
      - delivered
      - name
      - num_ack_pending
      - num_pending
      - num_redelivered
      - num_waiting
      - stream_name
      - ts
      type: object
    DeliverPolicy:
      enum:
      - all
      - last
      - new
      - by_start_sequence
      - by_start_time
      - last_per_subject
      type: string
    JSConsumerType:
      enum:
      - push
      - pull
      type: string
    StreamSource_external:
      allOf:
      - $ref: '#/components/schemas/ExternalStream'
      type:
      - object
      - 'null'
    RetentionPolicy:
      enum:
      - limits
      - interest
      - workqueue
      type: string
    ConsumerInfo_cluster:
      allOf:
      - $ref: '#/components/schemas/ClusterInfo'
      type:
      - object
      - 'null'
    JSConsumerInfoResponse:
      allOf:
      - $ref: '#/components/schemas/ConsumerInfo'
      - required:
        - consumer_type
        - id
      example:
        consumer_type: null
        id: id
      properties:
        consumer_type:
          $ref: '#/components/schemas/JSConsumerType'
        id:
          type: string
      type: object
    Compression:
      enum:
      - none
      - s2
      type: string
    SequenceInfo:
      description: SequenceInfo is the consumer and stream sequence that uniquely identify a message
      example:
        consumer_seq: 2147483647
        last_active: last_active
        stream_seq: 2147483647
      properties:
        consumer_seq:
          maximum: 18446744073709551615
          minimum: 0
          type: integer
        last_active:
          type:
          - string
          - 'null'
        stream_seq:
          maximum: 18446744073709551615
          minimum: 0
          type: integer
      required:
      - consumer_seq
      - stream_seq
      type: object
    StreamConsumerSource:
      description: StreamConsumerSource configures the consumer used by a sourced stream.
      properties:
        deliver_subject:
          type: string
        name:
          type: string
      required:
      - deliver_subject
      type: object
    ReplayPolicy:
      enum:
      - instant
      - original
      type: string
    JSCommonConsumerConfigRequest:
      properties:
        ack_policy:
          $ref: '#/components/schemas/AckPolicy'
        ack_wait:
          format: int64
          type: integer
        backoff:
          items:
            format: int64
            type: integer
          type: array
        deliver_policy:
          $ref: '#/components/schemas/DeliverPolicy'
        description:
          type: string
        direct:
          type: boolean
        durable_name:
          type: string
        filter_subjects:
          items:
            type: string
          type: array
        inactive_threshold:
          format: int64
          type: integer
        max_ack_pending:
          type: integer
        max_deliver:
          type: integer
        mem_storage:
          type: boolean
        metadata:
          additionalProperties:
            type: string
          type: object
        name:
          type: string
        num_replicas:
          type: integer
        opt_start_seq:
          maximum: 18446744073709551615
          minimum: 0
          type: integer
        opt_start_time:
          format: date-time
          type: string
        pause_until:
          format: date-time
          type: string
        replay_policy:
          $ref: '#/components/schemas/ReplayPolicy'
        sample_freq:
          type: string
      required:
      - ack_policy
      - deliver_policy
      - num_replicas
      - replay_policy
      type: object
    StorageType:
      enum:
      - file
      - memory
      type: string
    ConsumerConfig:
      description: 'ConsumerConfig is the configuration for a JetStream consumes


        NATS Schema Type io.nats.jetstream.api.v1.consumer_configuration'
      properties:
        ack_policy:
          $ref: '#/components/schemas/AckPolicy'
        ack_wait:
          format: int64
          type: integer
        backoff:
          items:
            format: int64
            type: integer
          type: array
        deliver_group:
          type: string
        deliver_policy:
          $ref: '#/components/schemas/DeliverPolicy'
        deliver_subject:
          type: string
        description:
          type: string
        direct:
          description: Don't add to general clients.
          type: boolean
        durable_name:
          type: string
        filter_subject:
          type: string
        filter_subjects:
          items:
            type: string
          type: array
        flow_control:
          type: boolean
        headers_only:
          type: boolean
        idle_heartbeat:
          format: int64
          type: integer
        inactive_threshold:
          format: int64
          type: integer
        max_ack_pending:
          type: integer
        max_batch:
          type: integer
        max_bytes:
          type: integer
        max_deliver:
          type: integer
        max_expires:
          format: int64
          type: integer
        max_waiting:
          type: integer
        mem_storage:
          type: boolean
        metadata:
          additionalProperties:
            type: string
          description: Metadata is additional metadata for the Consumer.
          type: object
        name:
          type: string
        num_replicas:
          type: integer
        opt_start_seq:
          maximum: 18446744073709551615
          minimum: 0
          type: integer
        opt_start_time:
          type:
          - string
          - 'null'
        pause_until:
          description: PauseUntil suspends the consumer until the deadline.
          format: date-time
          type: string
        priority_groups:
          items:
            type: string
          type: array
        priority_policy:
          $ref: '#/components/schemas/PriorityPolicy'
        priority_timeout:
          format: int64
          type: integer
        rate_limit_bps:
          maximum: 18446744073709551615
          minimum: 0
          type: integer
        replay_policy:
          $ref: '#/components/schemas/ReplayPolicy'
        sample_freq:
          type: string
      required:
      - ack_policy
      - deliver_policy
      - num_replicas
      - replay_policy
      type: object
    StreamSource_consumer:
      allOf:
      - $ref: '#/components/schemas/StreamConsumerSource'
      type:
      - object
      - 'null'
    StreamSourceInfo_error:
      allOf:
      - $ref: '#/components/schemas/JSApiError'
      type:
      - object
      - 'null'
    JSPushConsumerConfigRequest:
      allOf:
      - $ref: '#/components/schemas/JSCommonConsumerConfigRequest'
      example:
        deliver_group: deliver_group
        deliver_subject: deliver_subject
        rate_limit_bps: 2147483647
        headers_only: true
        flow_control: true
        idle_heartbeat: 0
      properties:
        deliver_group:
          type: string
        deliver_subject:
          description: Push based options.
          type: string
        flow_control:
          type: boolean
        headers_only:
          type: boolean
        idle_heartbeat:
          format: int64
          type: integer
        rate_limit_bps:
          maximum: 18446744073709551615
          minimum: 0
          type: integer
      type: object
    JSPersistMode:
      enum:
      - default
      - async
      type: string
    StreamSourceInfo:
      description: StreamSourceInfo shows information about an upstream stream source.
      example:
        external: null
        lag: 2147483647
        name: name
        active: 0
        error: null
        filter_subject: filter_subject
        subject_transforms:
        - src: src
          dest: dest
        - src: src
          dest: dest
      properties:
        active:
          format: int64
          type: integer
        error:
          $ref: '#/components/schemas/StreamSourceInfo_error'
        external:
          $ref: '#/components/schemas/StreamSource_external'
        filter_subject:
          type: string
        lag:
          maximum: 18446744073709551615
          minimum: 0
          type: integer
        name:
          type: string
        subject_transforms:
          items:
            $ref: '#/components/schemas/SubjectTransformConfig'
          type: array
      required:
      - active
      - lag
      - name
      type: object
    JSPushConsumerInfoResponse:
      example:
        cluster:
          leader: leader
          system_account: true
          replicas:
          - null
          - null
          raft_group: raft_group
          name: name
          traffic_account: traffic_account
          leader_since: leader_since
        num_redelivered: 5
        paused: true
        created: 2000-01-23 04:56:07+00:00
        num_pending: 2147483647
        pause_remaining: 2
        delivered:
          consumer_seq: 2147483647
          last_active: last_active
          stream_seq: 2147483647
        num_ack_pending: 1
        push_bound: true
        stream_name: stream_name
        name: name
        id: id
        config:
          deliver_group: deliver_group
          deliver_subject: deliver_subject
          rate_limit_bps: 2147483647
          headers_only: true
          flow_control: true
          idle_heartbeat: 0
        ack_floor:
          consumer_seq: 2147483647
          last_active: last_active
          stream_seq: 2147483647
        ts: 2000-01-23 04:56:07+00:00
      properties:
        ack_floor:
          $ref: '#/components/schemas/SequenceInfo'
        cluster:
          $ref: '#/components/schemas/ClusterInfo'
        config:
          $ref: '#/components/schemas/JSPushConsumerConfigRequest'
        created:
          format: date-time
          type: string
        delivered:
          $ref: '#/components/schemas/SequenceInfo'
        id:
          type: string
        name:
          type: string
        num_ack_pending:
          type: integer
        num_pending:
          maximum: 18446744073709551615
          minimum: 0
          type: integer
        num_redelivered:
          type: integer
        pause_remaining:
          format: int64
          type: integer
        paused:
          type: boolean
        push_bound:
          type: boolean
        stream_name:
          type: string
        ts:
          format: date-time
          type: string
      required:
      - ack_floor
      - created
      - delivered
      - id
      - name
      - num_ack_pending
      - num_pending
      - num_redelivered
      - stream_name
      - ts
      type: object
    JSPullConsumerConfigRequest:
      allOf:
      - $ref: '#/components/schemas/JSCommonConsumerConfigRequest'
      example:
        max_waiting: 2
        priority_timeout: 7
        priority_groups:
        - priority_groups
        - priority_groups
        priority_policy: null
        max_expires: 5
        max_bytes: 5
        max_batch: 1
      properties:
        max_batch:
          type: integer
        max_bytes:
          type: integer
        max_expires:
          format: int64
          type: integer
        max_waiting:
          description: Pull based options.
          type: integer
        priority_groups:
          items:
            type: string
          type: array
        priority_policy:
          $ref: '#/components/schemas/PriorityPolicy'
        priority_timeout:
          format: int64
          type: integer
      type: object
    JSConsumerInfoListResponse:
      example:
        items:
        - consumer_type: null
          id: id
        - consumer_type: null
          id: id
      properties:
        items:
          items:
            $ref: '#/components/schemas/JSConsumerInfoResponse'
          type: array
      required:
      - items
      type: object
    JSMirrorConfigRequest:
      allOf:
      - $ref: '#/components/schemas/JSCommonStreamConfig'
      - required:
        - mirror
        - mirror_direct
      example:
        mirror:
          opt_start_time: opt_start_time
          external: null
          opt_start_seq: 2147483647
          name: name
          consumer: null
          filter_subject: filter_subject
          subject_transforms:
          - src: src
            dest: dest
          - src: src
            dest: dest
        mirror_direct: true
      properties:
        mirror:
          $ref: '#/components/schemas/StreamSource'
        mirror_direct:
          type: boolean
      type: object
    JSApiError:
      description: JSApiError retains the existing schema name; the upstream Go type is now ApiError.
      properties:
        code:
          type: integer
        description:
          type: string
        err_code:
          maximum: 65535
          minimum: 0
          type: integer
      required:
      - code
      type: object
    PriorityPolicy:
      description: PriorityPolicy determines how messages are selected from priority groups.
      enum:
      - none
      - overflow
      - pinned_client
      - prioritized
      type: string
    RePublish:
      description: RePublish allows a source subject to be mapped to a destination subject for republishing.
      example:
        src: src
        headers_only: true
        dest: dest
      properties:
        dest:
          type: string
        headers_only:
          type: boolean
        src:
          type: string
      required:
      - dest
      type: object
    DiscardPolicy:
      description: enums have been changed to match UnmarshalJSON in https://github.com/nats-io/jsm.go/blob/main/api/streams.go
      enum:
      - old
      - new
      type: string
    ClusterInfo_replicas_inner:
      allOf:
      - $ref: '#/components/schemas/PeerInfo'
      type:
      - object
      - 'null'
    StreamState:
      properties:
        bytes:
          maximum: 18446744073709551615
          minimum: 0
          type: integer
        consumer_count:
          type: integer
        deleted:
          items:
            maximum: 18446744073709551615
            minimum: 0
            type: integer
          type: array
        first_seq:
          maximum: 18446744073709551615
          minimum: 0
          type: integer
        first_ts:
          format: date-time
          type: string
        last_seq:
          maximum: 18446744073709551615
          minimum: 0
          type: integer
        last_ts:
          format: date-time
          type: string
        lost:
          $ref: '#/components/schemas/StreamState_lost'
        messages:
          maximum: 18446744073709551615
          minimum: 0
          type: integer
        num_deleted:
          type: integer
        num_subjects:
          type: integer
        subjects:
          additionalProperties:
            maximum: 18446744073709551615
            minimum: 0
            type: integer
          type: object
      required:
      - bytes
      - consumer_count
      - first_seq
      - first_ts
      - last_seq
      - last_ts
      - messages
      type: object
    AckPolicy:
      description: enums have been changed to match UnmarshalJSON in https://github.com/nats-io/jsm.go/blob/main/api/consumers.go
      enum:
      - none
      - all
      - explicit
      - flow_control
      type: string
    JSStreamConsumerLimits:
      properties:
        inactive_threshold:
          format: int64
          type: integer
        max_ack_pending:
          type: integer
      type: object
    ClusterInfo:
      description: 'ClusterInfo shows information about the underlying set of servers

        that make up the stream or consumer.'
      example:
        leader: leader
        system_account: true
        replicas:
        - null
        - null
        raft_group: raft_group
        name: name
        traffic_account: traffic_account
        leader_since: leader_since
      properties:
        leader:
          type: string
        leader_since:
          type:
          - string
          - 'null'
        name:
          type: string
        raft_group:
          type: string
        replicas:
          items:
            $ref: '#/components/schemas/ClusterInfo_replicas_inner'
          type: array
        system_account:
          type: boolean
        traffic_account:
          type: string
      type: object
    PeerInfo:
      description: 'PeerInfo shows information about all the peers in the cluster that

        are supporting the stream or consumer.'
      properties:
        active:
          format: int64
          type: integer
        current:
          type: boolean
        lag:
          maximum: 18446744073709551615
          minimum: 0
          type: integer
        name:
          type: string
        offline:
          type: boolean
        peer:
          type: string
      required:
      - active
      - current
      - name
      - peer
      type: object
    ExternalStream:
      description: ExternalStream allows you to qualify access to a stream source in another account.
      properties:
        api:
          type: string
        deliver:
          type: string
      required:
      - api
      - deliver
      type: object
    JSMirrorInfoResponse:
      allOf:
      - $ref: '#/components/schemas/JSCommonStreamInfo'
      - required:
        - config
        - id
        - shared
      example:
        shared: true
        mirror:
          external: null
          lag: 2147483647
          name: name
          active: 0
          error: null
          filter_subject: filter_subject
          subject_transforms:
          - src: src
            dest: dest
          - src: src
            dest: dest
        id: id
        config:
          mirror:
            opt_start_time: opt_start_time
            external: null
            opt_start_seq: 2147483647
            name: name
            consumer: null
            filter_subject: filter_subject
            subject_transforms:
            - src: src
              dest: dest
            - src: src
              dest: dest
          mirror_direct: true
      properties:
        config:
          $ref: '#/components/schemas/JSMirrorConfigRequest'
        id:
          type: string
        mirror:
          $ref: '#/components/schemas/StreamSourceInfo'
        shared:
          type: boolean
      type: object
    JSPullConsumerInfoResponse:
      example:
        cluster:
          leader: leader
          system_account: true
          replicas:
          - null
          - null
          raft_group: raft_group
          name: name
          traffic_account: traffic_account
          leader_since: leader_since
        num_redelivered: 2
        paused: true
        created: 2000-01-23 04:56:07+00:00
        num_pending: 2147483647
        num_waiting: 4
        pause_remaining: 7
        delivered:
          consumer_seq: 2147483647
          last_active: last_active
          stream_seq: 2147483647
        num_ack_pending: 9
        priority_groups:
        - pinned_client_id: pinned_client_id
          pinned_ts: 2000-01-23 04:56:07+00:00
          group: group
        - pinned_client_id: pinned_client_id
          pinned_ts: 2000-01-23 04:56:07+00:00
          group: group
        stream_name: stream_name
        name: name
        id: id
        config:
          max_waiting: 2
          priority_timeout: 7
          priority_groups:
          - priority_groups
          - priority

# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/synadia-communications/refs/heads/main/openapi/synadia-communications-mirror-api-openapi.yml