GitHub Raw JSON API

bluenviron / mediamtx

19,794 Go

Ready-to-use Media-over-QUIC / SRT / WebRTC / RTSP / RTMP / LL-HLS / MPEG-TS / RTP live media server and media proxy that allows to read, publish, proxy, record and playback real-time video and audio streams.

mediamtx Specification

Located in api/openapi.yaml on branch HEAD

3.x (YAML) YAML 100.5 KB
Raw YAML Specification
openapi: 3.0.0

info:
  version: 1.0.0
  title: MediaMTX API
  description: API of MediaMTX, a server and proxy that supports various protocols.
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT

servers:
  - url: http://localhost:9997

security: []

components:
  schemas:
    HLSVariant:
      type: string
      enum: [mpegts, fmp4, lowLatency]

    LogDestination:
      type: string
      enum: [stdout, file, syslog]

    LogLevel:
      type: string
      enum: [error, warn, info, debug]

    RTSPAuthMethod:
      type: string
      enum: [basic, digest]

    RTSPTransport:
      type: string
      enum: [udp, multicast, tcp, automatic]

    PathTrackCodecProps:
      oneOf:
        - $ref: "#/components/schemas/PathTrackCodecPropsAV1"
        - $ref: "#/components/schemas/PathTrackCodecPropsVP9"
        - $ref: "#/components/schemas/PathTrackCodecPropsH265"
        - $ref: "#/components/schemas/PathTrackCodecPropsH264"
        - $ref: "#/components/schemas/PathTrackCodecPropsOpus"
        - $ref: "#/components/schemas/PathTrackCodecPropsMPEG4Audio"
        - $ref: "#/components/schemas/PathTrackCodecPropsAC3"
        - $ref: "#/components/schemas/PathTrackCodecPropsG711"
        - $ref: "#/components/schemas/PathTrackCodecPropsLPCM"

    ErrorStatus:
      type: string
      enum:
        - error

    AlwaysAvailableTrackCodec:
      type: string
      enum:
        - AV1
        - VP9
        - H265
        - H264
        - MPEG4Audio
        - Opus
        - G711
        - LPCM

    AuthAction:
      type: string
      enum:
        - publish
        - read
        - playback
        - api
        - metrics
        - pprof

    AuthMethod:
      type: string
      enum:
        - internal
        - http
        - jwt

    Encryption:
      type: string
      enum:
        - "no"
        - optional
        - strict

    MoQSessionState:
      type: string
      enum:
        - idle
        - read
        - publish

    MoQVersion:
      type: string
      enum:
        - moqt-16
        - moqt-17
        - moqt-18
        - moqt-19

    OKStatus:
      type: string
      enum:
        - ok

    PathReaderType:
      type: string
      enum:
        - hlsSession
        - rtmpConn
        - rtmpsConn
        - rtspConn
        - rtspSession
        - rtspsConn
        - rtspsSession
        - srtConn
        - webRTCSession
        - moqSession
        - hidden

    PathSourceType:
      type: string
      enum:
        - hlsSource
        - redirect
        - rpiCameraSource
        - rtmpConn
        - rtmpsConn
        - rtmpSource
        - rtspSession
        - rtspSource
        - rtspsSession
        - srtConn
        - srtSource
        - mpegtsSource
        - rtpSource
        - webRTCSession
        - webRTCSource
        - moqSession

    ForwardDestProtocol:
      type: string
      enum:
        - rtmp
        - rtmps
        - rtsp
        - rtsps
        - srt

    ForwardDestState:
      type: string
      enum:
        - idle
        - forwarding
        - error

    PathTrackCodec:
      type: string
      enum:
        - AV1
        - VP9
        - VP8
        - H265
        - H264
        - MPEG-4 Video
        - MPEG-1/2 Video
        - M-JPEG
        - Opus
        - FLAC
        - Vorbis
        - MPEG-4 Audio
        - MPEG-4 Audio LATM
        - MPEG-1/2 Audio
        - AC3
        - Speex
        - G726
        - G722
        - G711
        - LPCM
        - MPEG-TS
        - KLV
        - Generic

    RTMPConnState:
      type: string
      enum:
        - idle
        - read
        - publish

    RTSPRangeType:
      type: string
      enum:
        - ""
        - clock
        - npt
        - smpte

    RTSPSessionState:
      type: string
      enum:
        - idle
        - read
        - publish

    RecordFormat:
      type: string
      enum:
        - fmp4
        - mpegts

    SRTConnState:
      type: string
      enum:
        - idle
        - read
        - publish

    WebRTCSessionState:
      type: string
      enum:
        - read
        - publish

    AlwaysAvailableTrack:
      type: object
      properties:
        channelCount:
          type: integer
          format: int64
        codec:
          $ref: "#/components/schemas/AlwaysAvailableTrackCodec"
        muLaw:
          type: boolean
        sampleRate:
          type: integer
          format: int64

    AuthInternalUser:
      type: object
      properties:
        ips:
          type: array
          items:
            type: string
        pass:
          type: string
        permissions:
          type: array
          items:
            $ref: "#/components/schemas/AuthInternalUserPermission"
        user:
          type: string

    AuthInternalUserPermission:
      type: object
      properties:
        action:
          $ref: "#/components/schemas/AuthAction"
        path:
          type: string

    Error:
      type: object
      properties:
        error:
          type: string
        status:
          $ref: "#/components/schemas/ErrorStatus"

    GlobalConf:
      type: object
      properties:
        api:
          type: boolean
          description: Control API
        apiAddress:
          type: string
        apiAllowOrigin:
          type: string
          nullable: true
          deprecated: true
        apiAllowOrigins:
          type: array
          items:
            type: string
        apiEncryption:
          type: boolean
        apiServerCert:
          type: string
        apiServerKey:
          type: string
        apiTrustedProxies:
          type: array
          items:
            type: string
        authHTTPAddress:
          type: string
        authHTTPExclude:
          type: array
          items:
            $ref: "#/components/schemas/AuthInternalUserPermission"
        authHTTPFingerprint:
          type: string
        authInternalUsers:
          type: array
          items:
            $ref: "#/components/schemas/AuthInternalUser"
        authJWTAudience:
          type: string
        authJWTClaimKey:
          type: string
        authJWTExclude:
          type: array
          items:
            $ref: "#/components/schemas/AuthInternalUserPermission"
        authJWTInHTTPQuery:
          type: boolean
          nullable: true
          deprecated: true
        authJWTIssuer:
          type: string
        authJWTJWKS:
          type: string
        authJWTJWKSFingerprint:
          type: string
        authMethod:
          $ref: "#/components/schemas/AuthMethod"
          description: Authentication
        authMethods:
          type: array
          nullable: true
          deprecated: true
          items:
            $ref: "#/components/schemas/RTSPAuthMethod"
        dumpPackets:
          type: boolean
        encryption:
          type: string
          allOf:
            - $ref: "#/components/schemas/Encryption"
          nullable: true
          deprecated: true
        externalAuthenticationURL:
          type: string
          nullable: true
          deprecated: true
        hls:
          type: boolean
          description: HLS server
        hlsAddress:
          type: string
        hlsAllowOrigin:
          type: string
          nullable: true
          deprecated: true
        hlsAllowOrigins:
          type: array
          items:
            type: string
        hlsAlwaysRemux:
          type: boolean
        hlsCDNSecret:
          type: string
        hlsDirectory:
          type: string
        hlsDisable:
          type: boolean
          nullable: true
          deprecated: true
        hlsEncryption:
          type: boolean
        hlsMuxerCloseAfter:
          type: string
        hlsPartDuration:
          type: string
        hlsSegmentCount:
          type: integer
          format: int64
        hlsSegmentDuration:
          type: string
        hlsSegmentMaxSize:
          type: string
        hlsServerCert:
          type: string
        hlsServerKey:
          type: string
        hlsTrustedProxies:
          type: array
          items:
            type: string
        hlsVariant:
          $ref: "#/components/schemas/HLSVariant"
        logDestinations:
          type: array
          items:
            $ref: "#/components/schemas/LogDestination"
        logFile:
          type: string
        logLevel:
          $ref: "#/components/schemas/LogLevel"
          description: General
        logStructured:
          type: boolean
        metrics:
          type: boolean
          description: Metrics
        metricsAddress:
          type: string
        metricsAllowOrigin:
          type: string
          nullable: true
          deprecated: true
        metricsAllowOrigins:
          type: array
          items:
            type: string
        metricsEncryption:
          type: boolean
        metricsServerCert:
          type: string
        metricsServerKey:
          type: string
        metricsTrustedProxies:
          type: array
          items:
            type: string
        moq:
          type: boolean
          description: MoQ server
        moqAllowOrigins:
          type: array
          items:
            type: string
        moqHTTP2Address:
          type: string
        moqHTTP3Address:
          type: string
        moqHTTPS2Address:
          type: string
          nullable: true
          deprecated: true
        moqHTTPS3Address:
          type: string
          nullable: true
          deprecated: true
        moqQUICAddress:
          type: string
        moqServerCert:
          type: string
        moqServerKey:
          type: string
        moqTrustedProxies:
          type: array
          items:
            type: string
        multicastIPRange:
          type: string
        multicastRTCPPort:
          type: integer
          format: int64
        multicastRTPPort:
          type: integer
          format: int64
        multicastSRTCPPort:
          type: integer
          format: int64
        multicastSRTPPort:
          type: integer
          format: int64
        playback:
          type: boolean
          description: Playback
        playbackAddress:
          type: string
        playbackAllowOrigin:
          type: string
          nullable: true
          deprecated: true
        playbackAllowOrigins:
          type: array
          items:
            type: string
        playbackEncryption:
          type: boolean
        playbackServerCert:
          type: string
        playbackServerKey:
          type: string
        playbackTrustedProxies:
          type: array
          items:
            type: string
        pprof:
          type: boolean
          description: PPROF
        pprofAddress:
          type: string
        pprofAllowOrigin:
          type: string
          nullable: true
          deprecated: true
        pprofAllowOrigins:
          type: array
          items:
            type: string
        pprofEncryption:
          type: boolean
        pprofServerCert:
          type: string
        pprofServerKey:
          type: string
        pprofTrustedProxies:
          type: array
          items:
            type: string
        protocols:
          type: array
          nullable: true
          deprecated: true
          items:
            type: string
            enum:
              - udp
              - multicast
              - tcp
        readBufferCount:
          type: integer
          format: int64
          nullable: true
          deprecated: true
        readTimeout:
          type: string
        record:
          type: boolean
          description: Record (deprecated)
          nullable: true
          deprecated: true
        recordDeleteAfter:
          type: string
          nullable: true
          deprecated: true
        recordFormat:
          type: string
          allOf:
            - $ref: "#/components/schemas/RecordFormat"
          nullable: true
          deprecated: true
        recordPartDuration:
          type: string
          nullable: true
          deprecated: true
        recordPath:
          type: string
          nullable: true
          deprecated: true
        recordSegmentDuration:
          type: string
          nullable: true
          deprecated: true
        rtcpAddress:
          type: string
        rtmp:
          type: boolean
          description: RTMP server
        rtmpAddress:
          type: string
        rtmpDisable:
          type: boolean
          nullable: true
          deprecated: true
        rtmpEncryption:
          $ref: "#/components/schemas/Encryption"
        rtmpServerCert:
          type: string
        rtmpServerKey:
          type: string
        rtmpTrustedProxies:
          type: array
          items:
            type: string
        rtmpsAddress:
          type: string
        rtpAddress:
          type: string
        rtsp:
          type: boolean
          description: RTSP server
        rtspAddress:
          type: string
        rtspAuthMethods:
          type: array
          items:
            $ref: "#/components/schemas/RTSPAuthMethod"
        rtspDisable:
          type: boolean
          nullable: true
          deprecated: true
        rtspEncryption:
          $ref: "#/components/schemas/Encryption"
        rtspServerCert:
          type: string
        rtspServerKey:
          type: string
        rtspTransports:
          type: array
          items:
            type: string
            enum:
              - udp
              - multicast
              - tcp
        rtspTrustedProxies:
          type: array
          items:
            type: string
        rtspUDPReadBufferSize:
          type: integer
          format: uint64
          nullable: true
          deprecated: true
        rtspsAddress:
          type: string
        runOnConnect:
          type: string
        runOnConnectRestart:
          type: boolean
        runOnDisconnect:
          type: string
        srt:
          type: boolean
          description: SRT server
        srtAddress:
          type: string
        srtcpAddress:
          type: string
        srtpAddress:
          type: string
        sysLogPrefix:
          type: string
        udpMaxPayloadSize:
          type: integer
          format: int64
        udpReadBufferSize:
          type: integer
          format: uint64
        webrtc:
          type: boolean
          description: WebRTC server
        webrtcAdditionalHosts:
          type: array
          items:
            type: string
        webrtcAddress:
          type: string
        webrtcAllowOrigin:
          type: string
          nullable: true
          deprecated: true
        webrtcAllowOrigins:
          type: array
          items:
            type: string
        webrtcDisable:
          type: boolean
          nullable: true
          deprecated: true
        webrtcEncryption:
          type: boolean
        webrtcHandshakeTimeout:
          type: string
        webrtcICEHostNAT1To1IPs:
          type: array
          nullable: true
          deprecated: true
          items:
            type: string
        webrtcICEServers:
          type: array
          nullable: true
          deprecated: true
          items:
            type: string
        webrtcICEServers2:
          type: array
          items:
            $ref: "#/components/schemas/WebRTCICEServer"
        webrtcICETCPMuxAddress:
          type: string
          nullable: true
          deprecated: true
        webrtcICEUDPMuxAddress:
          type: string
          nullable: true
          deprecated: true
        webrtcIPsFromInterfaces:
          type: boolean
        webrtcIPsFromInterfacesList:
          type: array
          items:
            type: string
        webrtcLocalTCPAddress:
          type: string
        webrtcLocalUDPAddress:
          type: string
        webrtcSTUNGatherTimeout:
          type: string
        webrtcServerCert:
          type: string
        webrtcServerKey:
          type: string
        webrtcTrackGatherTimeout:
          type: string
        webrtcTrustedProxies:
          type: array
          items:
            type: string
        writeQueueSize:
          type: integer
          format: int64
        writeTimeout:
          type: string

    HLSMuxer:
      type: object
      properties:
        bytesSent:
          type: integer
          format: uint64
          description: deprecated
          deprecated: true
        created:
          type: string
        lastRequest:
          type: string
        outboundBytes:
          type: integer
          format: uint64
        outboundFramesDiscarded:
          type: integer
          format: uint64
        path:
          type: string

    HLSMuxerList:
      type: object
      properties:
        itemCount:
          type: integer
          format: int64
        items:
          type: array
          items:
            $ref: "#/components/schemas/HLSMuxer"
        pageCount:
          type: integer
          format: int64

    HLSSession:
      type: object
      properties:
        created:
          type: string
        id:
          type: string
          format: uuid
        isCDN:
          type: boolean
        outboundBytes:
          type: integer
          format: uint64
        path:
          type: string
        query:
          type: string
        remoteAddr:
          type: string
        user:
          type: string
        userAgent:
          type: string

    HLSSessionList:
      type: object
      properties:
        itemCount:
          type: integer
          format: int64
        items:
          type: array
          items:
            $ref: "#/components/schemas/HLSSession"
        pageCount:
          type: integer
          format: int64

    Info:
      type: object
      properties:
        started:
          type: string
        version:
          type: string

    MoQSession:
      type: object
      properties:
        created:
          type: string
        id:
          type: string
          format: uuid
        inboundBytes:
          type: integer
          format: uint64
        outboundBytes:
          type: integer
          format: uint64
        path:
          type: string
        query:
          type: string
        remoteAddr:
          type: string
        state:
          $ref: "#/components/schemas/MoQSessionState"
        transport:
          type: string
        userAgent:
          type: string
        version:
          $ref: "#/components/schemas/MoQVersion"

    MoQSessionList:
      type: object
      properties:
        itemCount:
          type: integer
          format: int64
        items:
          type: array
          items:
            $ref: "#/components/schemas/MoQSession"
        pageCount:
          type: integer
          format: int64

    OK:
      type: object
      properties:
        status:
          $ref: "#/components/schemas/OKStatus"

    Path:
      type: object
      properties:
        available:
          type: boolean
        availableTime:
          type: string
          nullable: true
        bytesReceived:
          type: integer
          format: uint64
          description: deprecated
          deprecated: true
        bytesSent:
          type: integer
          format: uint64
          deprecated: true
        confName:
          type: string
        inboundBytes:
          type: integer
          format: uint64
        inboundFramesInError:
          type: integer
          format: uint64
        name:
          type: string
        online:
          type: boolean
        onlineTime:
          type: string
          nullable: true
        outboundBytes:
          type: integer
          format: uint64
        readers:
          type: array
          items:
            $ref: "#/components/schemas/PathReader"
        ready:
          type: boolean
          deprecated: true
        readyTime:
          type: string
          nullable: true
          deprecated: true
        source:
          type: object
          allOf:
            - $ref: "#/components/schemas/PathSource"
          nullable: true
        tracks:
          type: array
          deprecated: true
          items:
            $ref: "#/components/schemas/PathTrackCodec"
        tracks2:
          type: array
          items:
            $ref: "#/components/schemas/PathTrack"

    PathConf:
      type: object
      properties:
        alwaysAvailable:
          type: boolean
          description: Always available
        alwaysAvailableFile:
          type: string
        alwaysAvailableTracks:
          type: array
          items:
            $ref: "#/components/schemas/AlwaysAvailableTrack"
        disablePublisherOverride:
          type: boolean
          nullable: true
          deprecated: true
        fallback:
          type: string
          nullable: true
          deprecated: true
        forward:
          type: array
          description: Forward
          items:
            $ref: "#/components/schemas/PathConfForwardDest"
        maxReaders:
          type: integer
          format: int64
        mpegtsUDPReadBufferSize:
          type: integer
          format: uint64
          description: MPEG-TS source
          nullable: true
          deprecated: true
        name:
          type: string
          description: filled by Validate()
        overridePublisher:
          type: boolean
          description: Publisher source
        playback:
          type: boolean
          nullable: true
          deprecated: true
        publishIPs:
          type: array
          nullable: true
          deprecated: true
          items:
            type: string
        publishPass:
          type: string
          nullable: true
          deprecated: true
        publishUser:
          type: string
          description: Authentication (deprecated)
          nullable: true
          deprecated: true
        readIPs:
          type: array
          nullable: true
          deprecated: true
          items:
            type: string
        readPass:
          type: string
          nullable: true
          deprecated: true
        readUser:
          type: string
          nullable: true
          deprecated: true
        record:
          type: boolean
          description: Record
        recordDeleteAfter:
          type: string
        recordFormat:
          $ref: "#/components/schemas/RecordFormat"
        recordMaxPartSize:
          type: string
        recordPartDuration:
          type: string
        recordPath:
          type: string
        recordSegmentDuration:
          type: string
        rpiCameraAWB:
          type: string
        rpiCameraAWBGains:
          type: array
          items:
            type: number
            format: double
        rpiCameraAfMode:
          type: string
        rpiCameraAfRange:
          type: string
        rpiCameraAfSpeed:
          type: string
        rpiCameraAfWindow:
          type: string
        rpiCameraBitrate:
          type: integer
          format: uint64
        rpiCameraBrightness:
          type: number
          format: double
        rpiCameraCamID:
          type: integer
          format: uint64
          description: Raspberry Pi Camera source
        rpiCameraCodec:
          type: string
        rpiCameraContrast:
          type: number
          format: double
        rpiCameraDenoise:
          type: string
        rpiCameraEV:
          type: number
          format: double
        rpiCameraExposure:
          type: string
        rpiCameraFPS:
          type: number
          format: double
        rpiCameraFlickerPeriod:
          type: integer
          format: uint64
        rpiCameraGain:
          type: number
          format: double
        rpiCameraH264Level:
          type: string
        rpiCameraH264Profile:
          type: string
        rpiCameraHDR:
          type: boolean
        rpiCameraHFlip:
          type: boolean
        rpiCameraHardwareH264Level:
          type: string
          nullable: true
          deprecated: true
        rpiCameraHardwareH264Profile:
          type: string
          nullable: true
          deprecated: true
        rpiCameraHeight:
          type: integer
          format: uint64
        rpiCameraIDRPeriod:
          type: integer
          format: uint64
        rpiCameraJPEGQuality:
          type: integer
          format: uint64
          nullable: true
          deprecated: true
        rpiCameraLensPosition:
          type: number
          format: double
        rpiCameraLevel:
          type: string
          nullable: true
          deprecated: true
        rpiCameraMJPEGQuality:
          type: integer
          format: uint64
        rpiCameraMetering:
          type: string
        rpiCameraMode:
          type: string
        rpiCameraProfile:
          type: string
          nullable: true
          deprecated: true
        rpiCameraROI:
          type: string
        rpiCameraSaturation:
          type: number
          format: double
        rpiCameraSecondary:
          type: boolean
        rpiCameraSharpness:
          type: number
          format: double
        rpiCameraShutter:
          type: integer
          format: uint64
        rpiCameraSoftwareH264Level:
          type: string
          nullable: true
          deprecated: true
        rpiCameraSoftwareH264Profile:
          type: string
          nullable: true
          deprecated: true
        rpiCameraTextOverlay:
          type: string
        rpiCameraTextOverlayEnable:
          type: boolean
        rpiCameraTuningFile:
          type: string
        rpiCameraVFlip:
          type: boolean
        rpiCameraWidth:
          type: integer
          format: uint64
        rtpSDP:
          type: string
          description: RTP source
        rtpUDPReadBufferSize:
          type: integer
          format: uint64
          nullable: true
          deprecated: true
        rtspAnyPort:
          type: boolean
        rtspDemuxMpegts:
          type: boolean
        rtspRangeStart:
          type: string
        rtspRangeType:
          $ref: "#/components/schemas/RTSPRangeType"
        rtspScale:
          type: string
        rtspTransport:
          $ref: "#/components/schemas/RTSPTransport"
          description: RTSP source
        rtspUDPReadBufferSize:
          type: integer
          format: uint64
          nullable: true
          deprecated: true
        rtspUDPSourcePortRange:
          type: array
          items:
            type: integer
            format: uint64
        runOnAvailable:
          type: string
        runOnAvailableRestart:
          type: boolean
        runOnDemand:
          type: string
        runOnDemandCloseAfter:
          type: string
        runOnDemandRestart:
          type: boolean
        runOnDemandStartTimeout:
          type: string
        runOnInit:
          type: string
          description: Hooks
        runOnInitRestart:
          type: boolean
        runOnNotReady:
          type: string
          nullable: true
          deprecated: true
        runOnOffline:
          type: string
        runOnOnline:
          type: string
        runOnOnlineRestart:
          type: boolean
        runOnRead:
          type: string
        runOnReadRestart:
          type: boolean
        runOnReady:
          type: string
          nullable: true
          deprecated: true
        runOnReadyRestart:
          type: boolean
          nullable: true
          deprecated: true
        runOnRecordSegmentComplete:
          type: string
        runOnRecordSegmentCreate:
          type: string
        runOnUnDemand:
          type: string
        runOnUnavailable:
          type: string
        runOnUnread:
          type: string
        source:
          type: string
          description: General
        sourceAnyPortEnable:
          type: boolean
          nullable: true
          deprecated: true
        sourceFingerprint:
          type: string
        sourceOnDemand:
          type: boolean
        sourceOnDemandCloseAfter:
          type: string
        sourceOnDemandStartTimeout:
          type: string
        sourceProtocol:
          type: string
          allOf:
            - $ref: "#/components/schemas/RTSPTransport"
          nullable: true
          deprecated: true
        sourceRedirect:
          type: string
          description: Redirect source
        srtPublishPassphrase:
          type: string
        srtReadPassphrase:
          type: string
        useAbsoluteTimestamp:
          type: boolean
        whepBearerToken:
          type: string
          description: WHEP source
        whepHandshakeTimeout:
          type: string
        whepSTUNGatherTimeout:
          type: string
        whepTrackGatherTimeout:
          type: string

    PathConfList:
      type: object
      properties:
        itemCount:
          type: integer
          format: int64
        items:
          type: array
          items:
            $ref: "#/components/schemas/PathConf"
        pageCount:
          type: integer
          format: int64

    PathConfForwardDest:
      type: object
      properties:
        dest:
          type: string

    PathList:
      type: object
      properties:
        itemCount:
          type: integer
          format: int64
        items:
          type: array
          items:
            $ref: "#/components/schemas/Path"
        pageCount:
          type: integer
          format: int64

    PathReader:
      type: object
      properties:
        id:
          type: string
        type:
          $ref: "#/components/schemas/PathReaderType"

    PathSource:
      type: object
      properties:
        id:
          type: string
        type:
          $ref: "#/components/schemas/PathSourceType"

    PathTrack:
      type: object
      properties:
        codec:
          $ref: "#/components/schemas/PathTrackCodec"
        codecProps:
          type: object
          allOf:
            - $ref: "#/components/schemas/PathTrackCodecProps"
          nullable: true

    PathTrackCodecPropsAC3:
      type: object
      properties:
        channelCount:
          type: integer
          format: int64
        sampleRate:
          type: integer
          format: int64

    PathTrackCodecPropsAV1:
      type: object
      properties:
        height:
          type: integer
          format: int64
        level:
          type: integer
          format: int64
        profile:
          type: integer
          format: int64
        tier:
          type: integer
          format: int64
        width:
          type: integer
          format: int64

    PathTrackCodecPropsG711:
      type: object
      properties:
        channelCount:
          type: integer
          format: int64
        muLaw:
          type: boolean
        sampleRate:
          type: integer
          format: int64

    PathTrackCodecPropsH264:
      type: object
      properties:
        height:
          type: integer
          format: int64
        level:
          type: string
        profile:
          type: string
        width:
          type: integer
          format: int64

    PathTrackCodecPropsH265:
      type: object
      properties:
        height:
          type: integer
          format: int64
        level:
          type: string
        profile:
          type: string
        width:
          type: integer
          format: int64

    PathTrackCodecPropsLPCM:
      type: object
      properties:
        bitDepth:
          type: integer
          format: int64
        channelCount:
          type: integer
          format: int64
        sampleRate:
          type: integer
          format: int64

    PathTrackCodecPropsMPEG4Audio:
      type: object
      properties:
        channelCount:
          type: integer
          format: int64
        sampleRate:
          type: integer
          format: int64

    PathTrackCodecPropsOpus:
      type: object
      properties:
        channelCount:
          type: integer
          format: int64

    PathTrackCodecPropsVP9:
      type: object
      properties:
        profile:
          type: integer
          format: int64

    ForwardDest:
      type: object
      properties:
        conf:
          $ref: "#/components/schemas/PathConfForwardDest"
        created:
          type: string
        id:
          type: string
          format: uuid
        lastError:
          type: string
        outboundBytes:
          type: integer
          format: uint64
        pos:
          type: integer
          format: int64
        protocol:
          $ref: "#/components/schemas/ForwardDestProtocol"
        state:
          $ref: "#/components/schemas/ForwardDestState"

    ForwardDestList:
      type: object
      properties:
        itemCount:
          type: integer
          format: int64
        items:
          type: array
          items:
            $ref: "#/components/schemas/ForwardDest"
        pageCount:
          type: integer
          format: int64

    Recording:
      type: object
      properties:
        name:
          type: string
        segments:
          type: array
          items:
            $ref: "#/components/schemas/RecordingSegment"

    RecordingList:
      type: object
      properties:
        itemCount:
          type: integer
          format: int64
        items:
          type: array
          items:
            $ref: "#/components/schemas/Recording"
        pageCount:
          type: integer
          format: int64

    RecordingSegment:
      type: object
      properties:
        start:
          type: string

    RTMPConn:
      type: object
      properties:
        bytesReceived:
          type: integer
          format: uint64
          description: deprecated
          deprecated: true
        bytesSent:
          type: integer
          format: uint64
          deprecated: true
        created:
          type: string
        id:
          type: string
          format: uuid
        inboundBytes:
          type: integer
          format: uint64
        outboundBytes:
          type: integer
          format: uint64
        outboundFramesDiscarded:
          type: integer
          format: uint64
        path:
          type: string
        query:
          type: string
        remoteAddr:
          type: string
        state:
          $ref: "#/components/schemas/RTMPConnState"
        user:
          type: string
        userAgent:
          type: string

    RTMPConnList:
      type: object
      properties:
        itemCount:
          type: integer
          format: int64
        items:
          type: array
          items:
            $ref: "#/components/schemas/RTMPConn"
        pageCount:
          type: integer
          format: int64

    RTSPConn:
      type: object
      properties:
        bytesReceived:
          type: integer
          format: uint64
          deprecated: true
        bytesSent:
          type: integer
          format: uint64
          deprecated: true
        created:
          type: string
        id:
          type: string
          format: uuid
        inboundBytes:
          type: integer
          format: uint64
        outboundBytes:
          type: integer
          format: uint64
        remoteAddr:
          type: string
        session:
          type: string
          format: uuid
          nullable: true
        tunnel:
          type: string

    RTSPConnList:
      type: object
      properties:
        itemCount:
          type: integer
          format: int64
        items:
          type: array
          items:
            $ref: "#/components/schemas/RTSPConn"
        pageCount:
          type: integer
          format: int64

    RTSPSession:
      type: object
      properties:
        bytesReceived:
          type: integer
          format: uint64
          description: deprecated
          deprecated: true
        bytesSent:
          type: integer
          format: uint64
          deprecated: true
        conns:
          type: array
          items:
            type: string
            format: uuid
        created:
          type: string
        id:
          type: string
          format: uuid
        inboundBytes:
          type: integer
          format: uint64
        inboundRTCPPackets:
          type: integer
          format: uint64
        inboundRTCPPacketsInError:
          type: integer
          format: uint64
        inboundRTPPackets:
          type: integer
          format: uint64
        inboundRTPPacketsInError:
          type: integer
          format: uint64
        inboundRTPPacketsJitter:
          type: number
          format: double
        inboundRTPPacketsLost:
          type: integer
          format: uint64
        outboundBytes:
          type: integer
          format: uint64
        outboundRTCPPackets:
          type: integer
          format: uint64
        outboundRTPPackets:
          type: integer
          format: uint64
        outboundRTPPacketsDiscarded:
          type: integer
          format: uint64
        outboundRTPPacketsReportedLost:
          type: integer
          format: uint64
        path:
          type: string
        profile:
          type: string
          nullable: true
        query:
          type: string
        remoteAddr:
          type: string
        rtcpPacketsInError:
          type: integer
          format: uint64
          deprecated: true
        rtcpPacketsReceived:
          type: integer
          format: uint64
          deprecated: true
        rtcpPacketsSent:
          type: integer
          format: uint64
          deprecated: true
        rtpPacketsInError:
          type: integer
          format: uint64
          deprecated: true
        rtpPacketsJitter:
          type: number
          format: double
          deprecated: true
        rtpPacketsLost:
          type: integer
          format: uint64
          deprecated: true
        rtpPacketsReceived:
          type: integer
          format: uint64
          deprecated: true
        rtpPacketsSent:
          type: integer
          format: uint64
          deprecated: true
        state:
          $ref: "#/components/schemas/RTSPSessionState"
        transport:
          type: string
          nullable: true
        user:
          type: string
        userAgent:
          type: string

    RTSPSessionList:
      type: object
      properties:
        itemCount:
          type: integer
          format: int64
        items:
          type: array
          items:
            $ref: "#/components/schemas/RTSPSession"
        pageCount:
          type: integer
          format: int64

    SRTConn:
      type: object
      properties:
        byteMSS:
          type: integer
          format: uint64
          description: Maximum Segment Size (MSS), in bytes
        bytesAvailReceiveBuf:
          type: integer
          format: uint64
          description: The available space in the receiver's buffer, in bytes
        bytesAvailSendBuf:
          type: integer
          format: uint64
          description: The available space in the sender's buffer, in bytes
        bytesReceiveBuf:
          type: integer
          format: uint64
          description: Instantaneous (current) value of packetsRcvBuf, expressed in bytes, including payload and all headers (IP, TCP, SRT)
        bytesReceived:
          type: integer
          format: uint64
          description: Same as packetsReceived, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)
        bytesReceivedBelated:
          type: integer
          format: uint64
          description: Same as PacketsReceivedBelated, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)
        bytesReceivedDrop:
          type: integer
          format: uint64
          description: Same as packetsReceivedDrop, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)
        bytesReceivedLoss:
          type: integer
          format: uint64
          description: Same as packetsReceivedLoss, but expressed in bytes, including payload and all the headers (IP, TCP, SRT), bytes for the presently missing (either reordered or lost) packets' payloads are estimated based on the average packet size
        bytesReceivedRetrans:
          type: integer
          format: uint64
          description: Same as packetsReceivedRetrans, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)
        bytesReceivedUndecrypt:
          type: integer
          format: uint64
          description: Same as packetsReceivedUndecrypt, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)
        bytesReceivedUnique:
          type: integer
          format: uint64
          description: Same as packetsReceivedUnique, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)
        bytesRetrans:
          type: integer
          format: uint64
          description: Same as packetsRetrans, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)
        bytesSendBuf:
          type: integer
          format: uint64
          description: Instantaneous (current) value of packetsSndBuf, but expressed in bytes, including payload and all headers (IP, TCP, SRT)
        bytesSendDrop:
          type: integer
          format: uint64
          description: Same as packetsSendDrop, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)
        bytesSent:
          type: integer
          format: uint64
          description: Same as packetsSent, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)
        bytesSentUnique:
          type: integer
          format: uint64
          description: Same as packetsSentUnique, but expressed in bytes, including payload and all the headers (IP, TCP, SRT)
        created:
          type: string
        id:
          type: string
          format: uuid
        mbpsLinkCapacity:
          type: number
          format: double
          description: Estimated capacity of the network link, in Mbps
        mbpsMaxBW:
          type: number
          format: double
          description: Transmission bandwidth limit, in Mbps
        mbpsReceiveRate:
          type: number
          format: double
          description: Current receiving bandwidth, in Mbps
        mbpsSendRate:
          type: number
          format: double
          description: Current transmission bandwidth, in Mbps
        msRTT:
          type: number
          format: double
          description: Smoothed round-trip time (SRTT), an exponentially-weighted moving average (EWMA) of an endpoint's RTT samples, in milliseconds
        msReceiveBuf:
          type: integer
          format: uint64
          description: The timespan (msec) of acknowledged packets in the receiver's buffer
        msReceiveTsbPdDelay:
          type: integer
          format: uint64
          description: Timestamp-based Packet Delivery Delay value set on the socket via SRTO_RCVLATENCY or SRTO_LATENCY
        msSendBuf:
          type: integer
          format: uint64
          description: The timespan (msec) of packets in the sender's buffer (unacknowledged packets)
        msSendTsbPdDelay:
          type: integer
          format: uint64
          description: Timestamp-based Packet Delivery Delay value of the peer
        outboundFramesDiscarded:
          type: integer
          format: uint64
        packetsFlightSize:
          type: integer
          format: uint64
          description: The number of packets in flight
        packetsFlowWindow:
          type: integer
          format: uint64
          description: The maximum number of packets that can be "in flight"
        packetsReceiveBuf:
          type: integer
          format: uint64
          description: The number of acknowledged packets in receiver's buffer
        packetsReceived:
          type: integer
          format: uint64
          description: The total number of received DATA packets, including retransmitted packets
        packetsReceivedACK:
          type: integer
          format: uint64
          description: The total number of received ACK (Acknowledgement) control packets
        packetsReceivedAvgBelatedTime:
          type: integer
          format: uint64
          description: Accumulated difference between the current time and the time-to-play of a packet that is received late
        packetsReceivedBelated:
          type: integer
          format: uint64
        packetsReceivedDrop:
          type: integer
          format: uint64
          description: The total number of dropped by the SRT receiver and, as a result, not delivered to the upstream application DATA packets
        packetsReceivedKM:
          type: integer
          format: uint64
          description: The total number of received KM (Key Material) control packets
        packetsReceivedLoss:
          type: integer
          format: uint64
          description: The total number of SRT DATA packets detected as presently missing (either reordered or lost) at the receiver side
        packetsReceivedLossRate:
          type: number
          format: double
          description: Percentage of retransmitted data vs. received data
        packetsReceivedNAK:
          type: integer
          format: uint64
          description: The total number of received NAK (Negative Acknowledgement) control packets
        packetsReceivedRetrans:
          type: integer
          format: uint64
          description: The total number of retransmitted packets registered at the receiver side
        packetsReceivedUndecrypt:
          type: integer
          format: uint64
          description: The total number of packets that failed to be decrypted at the receiver side
        packetsReceivedUnique:
          type: integer
          format: uint64
          description: The total number of unique original, retransmitted or recovered by the packet filter DATA packets received in time, decrypted without errors and, as a result, scheduled for delivery to the upstream application by the SRT receiver.
        packetsReorderTolerance:
          type: integer
          format: uint64
          description: Instant value of the packet reorder tolerance
        packetsRetrans:
          type: integer
          format: uint64
          description: The total number of retransmitted packets sent by the SRT sender
        packetsSendBuf:
          type: integer
          format: uint64
          description: The number of packets in the sender's buffer that are already scheduled for sending or even possibly sent, but not yet acknowledged
        packetsSendDrop:
          type: integer
          format: uint64
          description: The total number of dropped by the SRT sender DATA packets that have no chance to be delivered in time
        packetsSendLoss:
          type: integer
          format: uint64
          description: The total number of data packets considered or reported as lost at the sender side. Does not correspond to the packets detected as lost at the receiver side.
        packetsSendLossRate:
          type: number
          format: double
          description: Percentage of resent data vs. sent data
        packetsSent:
          type: integer
          format: uint64
          description: The total number of sent DATA packets, including retransmitted packets
        packetsSentACK:
          type: integer
          format: uint64
          description: The total number of sent ACK (Acknowledgement) control packets
        packetsSentKM:
          type: integer
          format: uint64
          description: The total number of sent KM (Key Material) control packets
        packetsSentNAK:
          type: integer
          format: uint64
          description: The total number of sent NAK (Negative Acknowledgement) control packets
        packetsSentUnique:
          type: integer
          format: uint64
          description: The total number of unique DATA packets sent by the SRT sender
        path:
          type: string
        query:
          type: string
        remoteAddr:
          type: string
        state:
          $ref: "#/components/schemas/SRTConnState"
        usPacketsSendPeriod:
          type: number
          format: double
          description: Current minimum time interval between which consecutive packets are sent, in microseconds
        usSndDuration:
          type: integer
          format: uint64
          description: The total accumulated time in microseconds, during which the SRT sender has some data to transmit, including packets that have been sent, but not yet acknowledged
        user:
          type: string

    SRTConnList:
      type: object
      properties:
        itemCount:
          type: integer
          format: int64
        items:
          type: array
          items:
            $ref: "#/components/schemas/SRTConn"
        pageCount:
          type: integer
          format: int64

    WebRTCICEServer:
      type: object
      properties:
        clientOnly:
          type: boolean
        password:
          type: string
        url:
          type: string
        username:
          type: string

    WebRTCSession:
      type: object
      properties:
        bytesReceived:
          type: integer
          format: uint64
          description: deprecated
          deprecated: true
        bytesSent:
          type: integer
          format: uint64
          deprecated: true
        created:
          type: string
        id:
          type: string
          format: uuid
        inboundBytes:
          type: integer
          format: uint64
        inboundRTCPPackets:
          type: integer
          format: uint64
        inboundRTPPackets:
          type: integer
          format: uint64
        inboundRTPPacketsJitter:
          type: number
          format: double
        inboundRTPPacketsLost:
          type: integer
          format: uint64
        localCandidate:
          type: string
        outboundBytes:
          type: integer
          format: uint64
        outboundFramesDiscarded:
          type: integer
          format: uint64
        outboundRTCPPackets:
          type: integer
          format: uint64
        outboundRTPPackets:
          type: integer
          format: uint64
        path:
          type: string
        peerConnectionEstablished:
          type: boolean
        query:
          type: string
        remoteAddr:
          type: string
        remoteCandidate:
          type: string
        rtcpPacketsReceived:
          type: integer
          format: uint64
          deprecated: true
        rtcpPacketsSent:
          type: integer
          format: uint64
          deprecated: true
        rtpPacketsJitter:
          type: number
          format: double
          deprecated: true
        rtpPacketsLost:
          type: integer
          format: uint64
          deprecated: true
        rtpPacketsReceived:
          type: integer
          format: uint64
          deprecated: true
        rtpPacketsSent:
          type: integer
          format: uint64
          deprecated: true
        state:
          $ref: "#/components/schemas/WebRTCSessionState"
        user:
          type: string
        userAgent:
          type: string

    WebRTCSessionList:
      type: object
      properties:
        itemCount:
          type: integer
          format: int64
        items:
          type: array
          items:
            $ref: "#/components/schemas/WebRTCSession"
        pageCount:
          type: integer
          format: int64

paths:
  /v3/info:
    get:
      operationId: info
      tags: [General]
      summary: returns informations about the instance.
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Info"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/auth/jwks/refresh:
    post:
      operationId: authJwksRefresh
      tags: [Authentication]
      summary: Manually refreshes the JWT JWKS.
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OK"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/config/global/get:
    get:
      operationId: configGlobalGet
      tags: [Configuration]
      summary: returns the global configuration.
      description: ""
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GlobalConf"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/config/global/patch:
    patch:
      operationId: configGlobalSet
      tags: [Configuration]
      summary: patches the global configuration.
      description: all fields are optional.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GlobalConf"
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OK"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/config/pathdefaults/get:
    get:
      operationId: configPathDefaultsGet
      tags: [Configuration]
      summary: returns the default path configuration.
      description: ""
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PathConf"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/config/pathdefaults/patch:
    patch:
      operationId: configPathDefaultsPatch
      tags: [Configuration]
      summary: patches the default path configuration.
      description: all fields are optional.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PathConf"
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OK"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/config/paths/list:
    get:
      operationId: configPathsList
      tags: [Configuration]
      summary: returns all path configurations.
      description: ""
      parameters:
        - name: page
          in: query
          description: page number.
          schema:
            type: integer
            default: 0
        - name: itemsPerPage
          in: query
          description: items per page.
          schema:
            type: integer
            default: 100
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PathConfList"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/config/paths/get/{name}:
    get:
      operationId: configPathsGet
      tags: [Configuration]
      summary: returns a path configuration.
      description: ""
      parameters:
        - name: name
          in: path
          required: true
          description: the name of the path.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PathConf"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: path not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/config/paths/add/{name}:
    post:
      operationId: configPathsAdd
      tags: [Configuration]
      summary: adds a path configuration.
      description: all fields are optional.
      parameters:
        - name: name
          in: path
          required: true
          description: the name of the path.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PathConf"
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OK"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/config/paths/patch/{name}:
    patch:
      operationId: configPathsPatch
      tags: [Configuration]
      summary: patches a path configuration.
      description: all fields are optional.
      parameters:
        - name: name
          in: path
          required: true
          description: the name of the path.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PathConf"
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OK"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: path not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/config/paths/replace/{name}:
    post:
      operationId: configPathsReplace
      tags: [Configuration]
      summary: replaces all values of a path configuration.
      description: all fields are optional.
      parameters:
        - name: name
          in: path
          required: true
          description: the name of the path.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PathConf"
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OK"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: path not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/config/paths/delete/{name}:
    delete:
      operationId: configPathsDelete
      tags: [Configuration]
      summary: removes a path configuration.
      description: ""
      parameters:
        - name: name
          in: path
          required: true
          description: the name of the path.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OK"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: path not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/hlsmuxers/list:
    get:
      operationId: hlsMuxersList
      tags: [HLS]
      summary: returns all HLS muxers.
      description: ""
      parameters:
        - name: page
          in: query
          description: page number.
          schema:
            type: integer
            default: 0
        - name: itemsPerPage
          in: query
          description: items per page.
          schema:
            type: integer
            default: 100
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HLSMuxerList"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/hlsmuxers/get/{name}:
    get:
      operationId: hlsMuxersGet
      tags: [HLS]
      summary: returns a HLS muxer.
      description: ""
      parameters:
        - name: name
          in: path
          required: true
          description: name of the muxer.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HLSMuxer"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: muxer not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/hlssessions/list:
    get:
      operationId: hlssessionsList
      tags: [HLS]
      summary: returns all HLS sessions.
      description: ""
      parameters:
        - name: page
          in: query
          description: page number.
          schema:
            type: integer
            default: 0
        - name: itemsPerPage
          in: query
          description: items per page.
          schema:
            type: integer
            default: 100
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HLSSessionList"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/hlssessions/get/{id}:
    get:
      operationId: hlssessionsGet
      tags: [HLS]
      summary: returns a HLS session.
      description: ""
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the session.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HLSSession"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: session not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/hlssessions/kick/{id}:
    post:
      operationId: hlssessionsKick
      tags: [HLS]
      summary: kicks out a HLS session from the server.
      description: ""
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the session.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OK"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: session not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/paths/list:
    get:
      operationId: pathsList
      tags: [Paths]
      summary: returns all paths.
      description: ""
      parameters:
        - name: page
          in: query
          description: page number.
          schema:
            type: integer
            default: 0
        - name: itemsPerPage
          in: query
          description: items per page.
          schema:
            type: integer
            default: 100
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PathList"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/paths/get/{name}:
    get:
      operationId: pathsGet
      tags: [Paths]
      summary: returns a path.
      description: ""
      parameters:
        - name: name
          in: path
          required: true
          description: name of the path.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Path"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: path not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/paths/forward/list:
    get:
      operationId: pathsForwardList
      tags: [Paths]
      summary: returns all forward destinations of a path.
      description: ""
      parameters:
        - name: path
          in: query
          required: true
          description: name of the path.
          schema:
            type: string
        - name: page
          in: query
          description: page number.
          schema:
            type: integer
            default: 0
        - name: itemsPerPage
          in: query
          description: items per page.
          schema:
            type: integer
            default: 100
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForwardDestList"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: path not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/paths/forward/get:
    get:
      operationId: pathsForwardGet
      tags: [Paths]
      summary: returns a forward destination.
      description: ""
      parameters:
        - name: id
          in: query
          required: true
          description: ID of the forward destination.
          schema:
            type: string
            format: uuid
        - name: path
          in: query
          required: true
          description: name of the path.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForwardDest"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: path or forward destination not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/rtspconns/list:
    get:
      operationId: rtspConnsList
      tags: [RTSP]
      summary: returns all RTSP connections.
      description: ""
      parameters:
        - name: page
          in: query
          description: page number.
          schema:
            type: integer
            default: 0
        - name: itemsPerPage
          in: query
          description: items per page.
          schema:
            type: integer
            default: 100
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RTSPConnList"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/rtspconns/get/{id}:
    get:
      operationId: rtspConnsGet
      tags: [RTSP]
      summary: returns a RTSP connection.
      description: ""
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the connection.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RTSPConn"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: connection not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/rtspsessions/list:
    get:
      operationId: rtspSessionsList
      tags: [RTSP]
      summary: returns all RTSP sessions.
      description: ""
      parameters:
        - name: page
          in: query
          description: page number.
          schema:
            type: integer
            default: 0
        - name: itemsPerPage
          in: query
          description: items per page.
          schema:
            type: integer
            default: 100
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RTSPSessionList"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/rtspsessions/get/{id}:
    get:
      operationId: rtspSessionsGet
      tags: [RTSP]
      summary: returns a RTSP session.
      description: ""
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the connection.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RTSPSession"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: session not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/rtspsessions/kick/{id}:
    post:
      operationId: rtspSessionsKick
      tags: [RTSP]
      summary: kicks out a RTSP session from the server.
      description: ""
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the session.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OK"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: session not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/rtspsconns/list:
    get:
      operationId: rtspsConnsList
      tags: [RTSP]
      summary: returns all RTSPS connections.
      description: ""
      parameters:
        - name: page
          in: query
          description: page number.
          schema:
            type: integer
            default: 0
        - name: itemsPerPage
          in: query
          description: items per page.
          schema:
            type: integer
            default: 100
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RTSPConnList"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/rtspsconns/get/{id}:
    get:
      operationId: rtspsConnsGet
      tags: [RTSP]
      summary: returns a RTSPS connection.
      description: ""
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the connection.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RTSPConn"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: connection not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/rtspssessions/list:
    get:
      operationId: rtspsSessionsList
      tags: [RTSP]
      summary: returns all RTSPS sessions.
      description: ""
      parameters:
        - name: page
          in: query
          description: page number.
          schema:
            type: integer
            default: 0
        - name: itemsPerPage
          in: query
          description: items per page.
          schema:
            type: integer
            default: 100
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RTSPSessionList"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/rtspssessions/get/{id}:
    get:
      operationId: rtspsSessionsGet
      tags: [RTSP]
      summary: returns a RTSPS session.
      description: ""
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the connection.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RTSPSession"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: session not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/rtspssessions/kick/{id}:
    post:
      operationId: rtspsSessionsKick
      tags: [RTSP]
      summary: kicks out a RTSPS session from the server.
      description: ""
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the session.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OK"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: session not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/rtmpconns/list:
    get:
      operationId: rtmpConnsList
      tags: [RTMP]
      summary: returns all RTMP connections.
      description: ""
      parameters:
        - name: page
          in: query
          description: page number.
          schema:
            type: integer
            default: 0
        - name: itemsPerPage
          in: query
          description: items per page.
          schema:
            type: integer
            default: 100
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RTMPConnList"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/rtmpconns/get/{id}:
    get:
      operationId: rtmpConnectionsGet
      tags: [RTMP]
      summary: returns a RTMP connection.
      description: ""
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the connection.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RTMPConn"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: connection not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/rtmpconns/kick/{id}:
    post:
      operationId: rtmpConnsKick
      tags: [RTMP]
      summary: kicks out a RTMP connection from the server.
      description: ""
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the connection.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OK"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: connection not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/rtmpsconns/list:
    get:
      operationId: rtmpsConnsList
      tags: [RTMP]
      summary: returns all RTMPS connections.
      description: ""
      parameters:
        - name: page
          in: query
          description: page number.
          schema:
            type: integer
            default: 0
        - name: itemsPerPage
          in: query
          description: items per page.
          schema:
            type: integer
            default: 100
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RTMPConnList"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/rtmpsconns/get/{id}:
    get:
      operationId: rtmpsConnectionsGet
      tags: [RTMP]
      summary: returns a RTMPS connection.
      description: ""
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the connection.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RTMPConn"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: connection not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/rtmpsconns/kick/{id}:
    post:
      operationId: rtmpsConnsKick
      tags: [RTMP]
      summary: kicks out a RTMPS connection from the server.
      description: ""
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the connection.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OK"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: connection not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/srtconns/list:
    get:
      operationId: srtConnsList
      tags: [SRT]
      summary: returns all SRT connections.
      description: ""
      parameters:
        - name: page
          in: query
          description: page number.
          schema:
            type: integer
            default: 0
        - name: itemsPerPage
          in: query
          description: items per page.
          schema:
            type: integer
            default: 100
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SRTConnList"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/srtconns/get/{id}:
    get:
      operationId: srtConnsGet
      tags: [SRT]
      summary: returns a SRT connection.
      description: ""
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the connection.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SRTConn"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: connection not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/srtconns/kick/{id}:
    post:
      operationId: srtConnsKick
      tags: [SRT]
      summary: kicks out a SRT connection from the server.
      description: ""
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the connection.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OK"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: connection not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/webrtcsessions/list:
    get:
      operationId: webrtcSessionsList
      tags: [WebRTC]
      summary: returns all WebRTC sessions.
      description: ""
      parameters:
        - name: page
          in: query
          description: page number.
          schema:
            type: integer
            default: 0
        - name: itemsPerPage
          in: query
          description: items per page.
          schema:
            type: integer
            default: 100
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebRTCSessionList"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/webrtcsessions/get/{id}:
    get:
      operationId: webrtcSessionsGet
      tags: [WebRTC]
      summary: returns a WebRTC session.
      description: ""
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the session.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebRTCSession"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: session not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/webrtcsessions/kick/{id}:
    post:
      operationId: webrtcSessionsKick
      tags: [WebRTC]
      summary: kicks out a WebRTC session from the server.
      description: ""
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the session.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OK"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: session not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/moqsessions/list:
    get:
      operationId: moqSessionsList
      tags: [Media-over-QUIC]
      summary: returns all MoQ sessions.
      description: ""
      parameters:
        - name: page
          in: query
          description: page number.
          schema:
            type: integer
            default: 0
        - name: itemsPerPage
          in: query
          description: items per page.
          schema:
            type: integer
            default: 100
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MoQSessionList"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/moqsessions/get/{id}:
    get:
      operationId: moqSessionsGet
      tags: [Media-over-QUIC]
      summary: returns a MoQ session.
      description: ""
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the session.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MoQSession"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: session not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/moqsessions/kick/{id}:
    post:
      operationId: moqSessionsKick
      tags: [Media-over-QUIC]
      summary: kicks out a MoQ session from the server.
      description: ""
      parameters:
        - name: id
          in: path
          required: true
          description: ID of the session.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OK"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: session not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/recordings/list:
    get:
      operationId: recordingsList
      tags: [Recordings]
      summary: returns all recordings, splitted by path.
      description: ""
      parameters:
        - name: page
          in: query
          description: page number.
          schema:
            type: integer
            default: 0
        - name: itemsPerPage
          in: query
          description: items per page.
          schema:
            type: integer
            default: 100
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RecordingList"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/recordings/get/{name}:
    get:
      operationId: recordingsGet
      tags: [Recordings]
      summary: returns recordings of a path.
      description: ""
      parameters:
        - name: name
          in: path
          required: true
          description: name of the path.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Recording"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: path not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"

  /v3/recordings/deletesegment:
    delete:
      operationId: recordingsDeleteSegment
      tags: [Recordings]
      summary: deletes a recording segment.
      description: ""
      parameters:
        - name: path
          in: query
          required: true
          description: path.
          schema:
            type: string
        - name: start
          in: query
          required: true
          description: starting date of the segment.
          schema:
            type: string
      responses:
        "200":
          description: the request was successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OK"
        "400":
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: connection not found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: server error.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"