basePath: /
definitions:
  api.AVstream:
    properties:
      aqueue:
        type: integer
      drop:
        type: integer
      dup:
        type: integer
      duplicating:
        type: boolean
      enc:
        type: integer
      gop:
        type: string
      input:
        $ref: '#/definitions/api.AVstreamIO'
      looping:
        type: boolean
      output:
        $ref: '#/definitions/api.AVstreamIO'
      queue:
        type: integer
    type: object
  api.AVstreamIO:
    properties:
      packet:
        type: integer
      size_kb:
        type: integer
      state:
        enum:
        - running
        - idle
        type: string
      time:
        type: integer
    type: object
  api.About:
    properties:
      app:
        type: string
      auths:
        items:
          type: string
        type: array
      created_at:
        type: string
      id:
        type: string
      name:
        type: string
      uptime_seconds:
        type: integer
      version:
        $ref: '#/definitions/api.Version'
    type: object
  api.Command:
    properties:
      command:
        enum:
        - start
        - stop
        - restart
        - reload
        type: string
    required:
    - command
    type: object
  api.Config:
    properties:
      config:
        $ref: '#/definitions/api.ConfigData'
      created_at:
        type: string
      loaded_at:
        type: string
      overrides:
        items:
          type: string
        type: array
      updated_at:
        type: string
    type: object
  api.ConfigData:
    properties:
      address:
        type: string
      api:
        properties:
          access:
            properties:
              http:
                properties:
                  allow:
                    items:
                      type: string
                    type: array
                  block:
                    items:
                      type: string
                    type: array
                type: object
              https:
                properties:
                  allow:
                    items:
                      type: string
                    type: array
                  block:
                    items:
                      type: string
                    type: array
                type: object
            type: object
          auth:
            properties:
              auth0:
                properties:
                  enable:
                    type: boolean
                  tenants:
                    items:
                      $ref: '#/definitions/config.Auth0Tenant'
                    type: array
                type: object
              disable_localhost:
                type: boolean
              enable:
                type: boolean
              jwt:
                properties:
                  secret:
                    type: string
                type: object
              password:
                type: string
              username:
                type: string
            type: object
          read_only:
            type: boolean
        type: object
      created_at:
        type: string
      db:
        properties:
          dir:
            type: string
        type: object
      debug:
        properties:
          force_gc:
            type: integer
          profiling:
            type: boolean
        type: object
      ffmpeg:
        properties:
          access:
            properties:
              input:
                properties:
                  allow:
                    items:
                      type: string
                    type: array
                  block:
                    items:
                      type: string
                    type: array
                type: object
              output:
                properties:
                  allow:
                    items:
                      type: string
                    type: array
                  block:
                    items:
                      type: string
                    type: array
                type: object
            type: object
          binary:
            type: string
          log:
            properties:
              max_history:
                type: integer
              max_lines:
                type: integer
            type: object
          max_processes:
            type: integer
        type: object
      host:
        properties:
          auto:
            type: boolean
          name:
            items:
              type: string
            type: array
        type: object
      id:
        type: string
      log:
        properties:
          level:
            enum:
            - debug
            - info
            - warn
            - error
            - silent
            type: string
          max_lines:
            type: integer
          topics:
            items:
              type: string
            type: array
        type: object
      metrics:
        properties:
          enable:
            type: boolean
          enable_prometheus:
            type: boolean
          interval_sec:
            description: seconds
            type: integer
          range_sec:
            description: seconds
            type: integer
        type: object
      name:
        type: string
      playout:
        properties:
          enable:
            type: boolean
          max_port:
            type: integer
          min_port:
            type: integer
        type: object
      router:
        properties:
          blocked_prefixes:
            items:
              type: string
            type: array
          routes:
            additionalProperties:
              type: string
            type: object
          ui_path:
            type: string
        type: object
      rtmp:
        properties:
          address:
            type: string
          address_tls:
            type: string
          app:
            type: string
          enable:
            type: boolean
          enable_tls:
            type: boolean
          token:
            type: string
        type: object
      service:
        properties:
          enable:
            type: boolean
          token:
            type: string
          url:
            type: string
        type: object
      sessions:
        properties:
          enable:
            type: boolean
          ip_ignorelist:
            items:
              type: string
            type: array
          max_bitrate_mbit:
            type: integer
          max_sessions:
            type: integer
          persist:
            type: boolean
          persist_interval_sec:
            type: integer
          session_timeout_sec:
            type: integer
        type: object
      srt:
        properties:
          address:
            type: string
          enable:
            type: boolean
          log:
            properties:
              enable:
                type: boolean
              topics:
                items:
                  type: string
                type: array
            type: object
          passphrase:
            type: string
          token:
            type: string
        type: object
      storage:
        properties:
          cors:
            properties:
              origins:
                items:
                  type: string
                type: array
            type: object
          disk:
            properties:
              cache:
                properties:
                  enable:
                    type: boolean
                  max_file_size_mbytes:
                    type: integer
                  max_size_mbytes:
                    type: integer
                  ttl_seconds:
                    type: integer
                  types:
                    properties:
                      allow:
                        items:
                          type: string
                        type: array
                      block:
                        items:
                          type: string
                        type: array
                    type: object
                type: object
              dir:
                type: string
              max_size_mbytes:
                type: integer
            type: object
          memory:
            properties:
              auth:
                properties:
                  enable:
                    type: boolean
                  password:
                    type: string
                  username:
                    type: string
                type: object
              max_size_mbytes:
                type: integer
              purge:
                type: boolean
            type: object
          mimetypes_file:
            type: string
        type: object
      tls:
        properties:
          address:
            type: string
          auto:
            type: boolean
          cert_file:
            type: string
          enable:
            type: boolean
          key_file:
            type: string
        type: object
      update_check:
        type: boolean
      version:
        type: integer
    type: object
  api.ConfigError:
    additionalProperties:
      items:
        type: string
      type: array
    type: object
  api.Error:
    properties:
      code:
        type: integer
      details:
        items:
          type: string
        type: array
      message:
        type: string
    type: object
  api.FileInfo:
    properties:
      last_modified:
        type: integer
      name:
        type: string
      size_bytes:
        type: integer
    type: object
  api.GraphQuery:
    properties:
      query:
        type: string
      variables: {}
    type: object
  api.GraphResponse:
    properties:
      data: {}
      errors:
        items: {}
        type: array
    type: object
  api.JWT:
    properties:
      access_token:
        type: string
      refresh_token:
        type: string
    type: object
  api.JWTRefresh:
    properties:
      access_token:
        type: string
    type: object
  api.LogEvent:
    additionalProperties: true
    type: object
  api.Login:
    properties:
      password:
        type: string
      username:
        type: string
    required:
    - password
    - username
    type: object
  api.MetricsQuery:
    properties:
      interval_sec:
        type: integer
      metrics:
        items:
          $ref: '#/definitions/api.MetricsQueryMetric'
        type: array
      timerange_sec:
        type: integer
    type: object
  api.MetricsQueryMetric:
    properties:
      labels:
        additionalProperties:
          type: string
        type: object
      name:
        type: string
    type: object
  api.MetricsResponse:
    properties:
      interval_sec:
        type: integer
      metrics:
        items:
          $ref: '#/definitions/api.MetricsResponseMetric'
        type: array
      timerange_sec:
        type: integer
    type: object
  api.MetricsResponseMetric:
    properties:
      labels:
        additionalProperties:
          type: string
        type: object
      name:
        type: string
      values:
        items:
          $ref: '#/definitions/api.MetricsResponseValue'
        type: array
    type: object
  api.MetricsResponseValue:
    properties:
      ts:
        type: string
      value:
        type: number
    type: object
  api.PlayoutStatus:
    properties:
      aqueue:
        type: integer
      debug: {}
      drop:
        type: integer
      dup:
        type: integer
      duplicating:
        type: boolean
      enc:
        type: integer
      gop:
        type: string
      id:
        type: string
      input:
        $ref: '#/definitions/api.PlayoutStatusIO'
      looping:
        type: boolean
      output:
        $ref: '#/definitions/api.PlayoutStatusIO'
      queue:
        type: integer
      stream:
        type: integer
      swap:
        $ref: '#/definitions/api.PlayoutStatusSwap'
      url:
        type: string
    type: object
  api.PlayoutStatusIO:
    properties:
      packet:
        type: integer
      size_kb:
        type: integer
      state:
        enum:
        - running
        - idle
        type: string
      time:
        type: integer
    type: object
  api.PlayoutStatusSwap:
    properties:
      lasterror:
        type: string
      lasturl:
        type: string
      status:
        type: string
      url:
        type: string
    type: object
  api.Probe:
    properties:
      log:
        items:
          type: string
        type: array
      streams:
        items:
          $ref: '#/definitions/api.ProbeIO'
        type: array
    type: object
  api.ProbeIO:
    properties:
      bitrate_kbps:
        type: number
      channels:
        type: integer
      codec:
        type: string
      coder:
        type: string
      duration_sec:
        type: number
      format:
        type: string
      fps:
        description: video
        type: number
      height:
        type: integer
      index:
        type: integer
      language:
        type: string
      layout:
        type: string
      pix_fmt:
        type: string
      sampling_hz:
        description: audio
        type: integer
      stream:
        type: integer
      type:
        type: string
      url:
        description: common
        type: string
      width:
        type: integer
    type: object
  api.Process:
    properties:
      config:
        $ref: '#/definitions/api.ProcessConfig'
      created_at:
        type: integer
      id:
        type: string
      metadata: {}
      reference:
        type: string
      report:
        $ref: '#/definitions/api.ProcessReport'
      state:
        $ref: '#/definitions/api.ProcessState'
      type:
        type: string
    type: object
  api.ProcessConfig:
    properties:
      autostart:
        type: boolean
      id:
        type: string
      input:
        items:
          $ref: '#/definitions/api.ProcessConfigIO'
        type: array
      limits:
        $ref: '#/definitions/api.ProcessConfigLimits'
      options:
        items:
          type: string
        type: array
      output:
        items:
          $ref: '#/definitions/api.ProcessConfigIO'
        type: array
      reconnect:
        type: boolean
      reconnect_delay_seconds:
        type: integer
      reference:
        type: string
      stale_timeout_seconds:
        type: integer
      type:
        enum:
        - ffmpeg
        - ""
        type: string
    required:
    - input
    - output
    type: object
  api.ProcessConfigIO:
    properties:
      address:
        type: string
      cleanup:
        items:
          $ref: '#/definitions/api.ProcessConfigIOCleanup'
        type: array
      id:
        type: string
      options:
        items:
          type: string
        type: array
    required:
    - address
    type: object
  api.ProcessConfigIOCleanup:
    properties:
      max_file_age_seconds:
        type: integer
      max_files:
        type: integer
      pattern:
        type: string
      purge_on_delete:
        type: boolean
    required:
    - pattern
    type: object
  api.ProcessConfigLimits:
    properties:
      cpu_usage:
        type: number
      memory_mbytes:
        type: integer
      waitfor_seconds:
        type: integer
    type: object
  api.ProcessReport:
    properties:
      created_at:
        type: integer
      history:
        items:
          $ref: '#/definitions/api.ProcessReportHistoryEntry'
        type: array
      log:
        items:
          items:
            type: string
          type: array
        type: array
      prelude:
        items:
          type: string
        type: array
    type: object
  api.ProcessReportHistoryEntry:
    properties:
      created_at:
        type: integer
      log:
        items:
          items:
            type: string
          type: array
        type: array
      prelude:
        items:
          type: string
        type: array
    type: object
  api.ProcessState:
    properties:
      command:
        items:
          type: string
        type: array
      cpu_usage:
        type: number
      exec:
        type: string
      last_logline:
        type: string
      memory_bytes:
        type: integer
      order:
        type: string
      progress:
        $ref: '#/definitions/api.Progress'
      reconnect_seconds:
        type: integer
      runtime_seconds:
        type: integer
    type: object
  api.Progress:
    properties:
      bitrate_kbit:
        description: kbit/s
        type: number
      drop:
        type: integer
      dup:
        type: integer
      fps:
        type: number
      frame:
        type: integer
      inputs:
        items:
          $ref: '#/definitions/api.ProgressIO'
        type: array
      outputs:
        items:
          $ref: '#/definitions/api.ProgressIO'
        type: array
      packet:
        type: integer
      q:
        type: number
      size_kb:
        description: kbytes
        type: integer
      speed:
        type: number
      time:
        type: number
    type: object
  api.ProgressIO:
    properties:
      address:
        type: string
      avstream:
        $ref: '#/definitions/api.AVstream'
        description: avstream
      bitrate_kbit:
        description: kbit/s
        type: number
      channels:
        type: integer
      codec:
        type: string
      coder:
        type: string
      format:
        type: string
      fps:
        type: number
      frame:
        type: integer
      height:
        type: integer
      id:
        type: string
      index:
        description: General
        type: integer
      layout:
        type: string
      packet:
        type: integer
      pix_fmt:
        description: Video
        type: string
      pps:
        type: number
      q:
        type: number
      sampling_hz:
        description: Audio
        type: integer
      size_kb:
        description: kbytes
        type: integer
      stream:
        type: integer
      type:
        type: string
      width:
        type: integer
    type: object
  api.RTMPChannel:
    properties:
      name:
        type: string
    type: object
  api.SRTChannels:
    properties:
      connections:
        additionalProperties:
          $ref: '#/definitions/api.SRTConnection'
        type: object
      log:
        additionalProperties:
          items:
            $ref: '#/definitions/api.SRTLog'
          type: array
        type: object
      publisher:
        additionalProperties:
          type: integer
        type: object
      subscriber:
        additionalProperties:
          items:
            type: integer
          type: array
        type: object
    type: object
  api.SRTConnection:
    properties:
      log:
        additionalProperties:
          items:
            $ref: '#/definitions/api.SRTLog'
          type: array
        type: object
      stats:
        $ref: '#/definitions/api.SRTStatistics'
    type: object
  api.SRTLog:
    properties:
      msg:
        items:
          type: string
        type: array
      ts:
        type: integer
    type: object
  api.SRTStatistics:
    properties:
      avail_recv_buf_bytes:
        description: The available space in the receiver's buffer, in bytes
        type: integer
      avail_send_buf_bytes:
        description: The available space in the sender's buffer, in bytes
        type: integer
      bandwidth_mbit:
        description: Estimated bandwidth of the network link, in Mbps
        type: number
      flight_size_pkt:
        description: The number of packets in flight
        type: integer
      flow_window_pkt:
        description: The maximum number of packets that can be "in flight"
        type: integer
      max_bandwidth_mbit:
        description: Transmission bandwidth limit, in Mbps
        type: number
      mss_bytes:
        description: Maximum Segment Size (MSS), in bytes
        type: integer
      pkt_recv_avg_belated_time_ms:
        description: Accumulated difference between the current time and the time-to-play
          of a packet that is received late
        type: integer
      pkt_send_period_us:
        description: Current minimum time interval between which consecutive packets
          are sent, in microseconds
        type: number
      recv_ack_pkt:
        description: The total number of received ACK (Acknowledgement) control packets
        type: integer
      recv_buf_bytes:
        description: Instantaneous (current) value of pktRcvBuf, expressed in bytes,
          including payload and all headers (IP, TCP, SRT)
        type: integer
      recv_buf_ms:
        description: The timespan (msec) of acknowledged packets in the receiver's
          buffer
        type: integer
      recv_buf_pkt:
        description: The number of acknowledged packets in receiver's buffer
        type: integer
      recv_bytes:
        description: Same as pktRecv, but expressed in bytes, including payload and
          all the headers (IP, TCP, SRT)
        type: integer
      recv_drop_bytes:
        description: Same as pktRcvDrop, but expressed in bytes, including payload
          and all the headers (IP, TCP, SRT)
        type: integer
      recv_drop_pkt:
        description: The total number of dropped by the SRT receiver and, as a result,
          not delivered to the upstream application DATA packets
        type: integer
      recv_km_pkt:
        description: The total number of received KM (Key Material) control packets
        type: integer
      recv_loss__bytes:
        description: Same as pktRcvLoss, 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
        type: integer
      recv_loss_pkt:
        description: The total number of SRT DATA packets detected as presently missing
          (either reordered or lost) at the receiver side
        type: integer
      recv_nak_pkt:
        description: The total number of received NAK (Negative Acknowledgement) control
          packets
        type: integer
      recv_pkt:
        description: The total number of received DATA packets, including retransmitted
          packets
        type: integer
      recv_retran_pkts:
        description: The total number of retransmitted packets registered at the receiver
          side
        type: integer
      recv_tsbpd_delay_ms:
        description: Timestamp-based Packet Delivery Delay value set on the socket
          via SRTO_RCVLATENCY or SRTO_LATENCY
        type: integer
      recv_undecrypt_bytes:
        description: Same as pktRcvUndecrypt, but expressed in bytes, including payload
          and all the headers (IP, TCP, SRT)
        type: integer
      recv_undecrypt_pkt:
        description: The total number of packets that failed to be decrypted at the
          receiver side
        type: integer
      recv_unique_bytes:
        description: Same as pktRecvUnique, but expressed in bytes, including payload
          and all the headers (IP, TCP, SRT)
        type: integer
      recv_unique_pkt:
        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.
        type: integer
      reorder_tolerance_pkt:
        description: Instant value of the packet reorder tolerance
        type: integer
      rtt_ms:
        description: Smoothed round-trip time (SRTT), an exponentially-weighted moving
          average (EWMA) of an endpoint's RTT samples, in milliseconds
        type: number
      send_buf_bytes:
        description: Instantaneous (current) value of pktSndBuf, but expressed in
          bytes, including payload and all headers (IP, TCP, SRT)
        type: integer
      send_buf_ms:
        description: The timespan (msec) of packets in the sender's buffer (unacknowledged
          packets)
        type: integer
      send_buf_pkt:
        description: The number of packets in the sender's buffer that are already
          scheduled for sending or even possibly sent, but not yet acknowledged
        type: integer
      send_drop_bytes:
        description: Same as pktSndDrop, but expressed in bytes, including payload
          and all the headers (IP, TCP, SRT)
        type: integer
      send_drop_pkt:
        description: The total number of dropped by the SRT sender DATA packets that
          have no chance to be delivered in time
        type: integer
      send_duration_us:
        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
        type: integer
      send_km_pkt:
        description: The total number of sent KM (Key Material) control packets
        type: integer
      send_loss_pkt:
        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.
        type: integer
      send_tsbpd_delay_ms:
        description: Timestamp-based Packet Delivery Delay value of the peer
        type: integer
      sent_ack_pkt:
        description: The total number of sent ACK (Acknowledgement) control packets
        type: integer
      sent_bytes:
        description: Same as pktSent, but expressed in bytes, including payload and
          all the headers (IP, TCP, SRT)
        type: integer
      sent_nak_pkt:
        description: The total number of sent NAK (Negative Acknowledgement) control
          packets
        type: integer
      sent_pkt:
        description: The total number of sent DATA packets, including retransmitted
          packets
        type: integer
      sent_retrans_bytes:
        description: Same as pktRetrans, but expressed in bytes, including payload
          and all the headers (IP, TCP, SRT)
        type: integer
      sent_retrans_pkt:
        description: The total number of retransmitted packets sent by the SRT sender
        type: integer
      sent_unique__bytes:
        description: Same as pktSentUnique, but expressed in bytes, including payload
          and all the headers (IP, TCP, SRT)
        type: integer
      sent_unique_pkt:
        description: The total number of unique DATA packets sent by the SRT sender
        type: integer
      timestamp_ms:
        description: The time elapsed, in milliseconds, since the SRT socket has been
          created
        type: integer
    type: object
  api.Session:
    properties:
      bandwidth_rx_kbit:
        description: kbit/s
        type: number
      bandwidth_tx_kbit:
        description: kbit/s
        type: number
      bytes_rx:
        type: integer
      bytes_tx:
        type: integer
      created_at:
        type: integer
      extra:
        type: string
      id:
        type: string
      local:
        type: string
      reference:
        type: string
      remote:
        type: string
    type: object
  api.SessionPeers:
    properties:
      local:
        additionalProperties:
          $ref: '#/definitions/api.SessionStats'
        type: object
      sessions:
        type: integer
      traffic_rx_mb:
        type: integer
      traffic_tx_mb:
        type: integer
    type: object
  api.SessionStats:
    properties:
      sessions:
        type: integer
      traffic_rx_mb:
        type: integer
      traffic_tx_mb:
        type: integer
    type: object
  api.SessionSummary:
    properties:
      active:
        $ref: '#/definitions/api.SessionSummaryActive'
      summary:
        $ref: '#/definitions/api.SessionSummarySummary'
    type: object
  api.SessionSummaryActive:
    properties:
      bandwidth_rx_mbit:
        description: mbit/s
        type: number
      bandwidth_tx_mbit:
        description: mbit/s
        type: number
      list:
        items:
          $ref: '#/definitions/api.Session'
        type: array
      max_bandwidth_rx_mbit:
        description: mbit/s
        type: number
      max_bandwidth_tx_mbit:
        description: mbit/s
        type: number
      max_sessions:
        type: integer
      sessions:
        type: integer
    type: object
  api.SessionSummarySummary:
    properties:
      local:
        additionalProperties:
          $ref: '#/definitions/api.SessionStats'
        type: object
      reference:
        additionalProperties:
          $ref: '#/definitions/api.SessionStats'
        type: object
      remote:
        additionalProperties:
          $ref: '#/definitions/api.SessionPeers'
        type: object
      sessions:
        type: integer
      traffic_rx_mb:
        type: integer
      traffic_tx_mb:
        type: integer
    type: object
  api.SessionsActive:
    additionalProperties:
      items:
        $ref: '#/definitions/api.Session'
      type: array
    type: object
  api.SessionsSummary:
    additionalProperties:
      $ref: '#/definitions/api.SessionSummary'
    type: object
  api.SetConfig:
    properties:
      address:
        type: string
      api:
        properties:
          access:
            properties:
              http:
                properties:
                  allow:
                    items:
                      type: string
                    type: array
                  block:
                    items:
                      type: string
                    type: array
                type: object
              https:
                properties:
                  allow:
                    items:
                      type: string
                    type: array
                  block:
                    items:
                      type: string
                    type: array
                type: object
            type: object
          auth:
            properties:
              auth0:
                properties:
                  enable:
                    type: boolean
                  tenants:
                    items:
                      $ref: '#/definitions/config.Auth0Tenant'
                    type: array
                type: object
              disable_localhost:
                type: boolean
              enable:
                type: boolean
              jwt:
                properties:
                  secret:
                    type: string
                type: object
              password:
                type: string
              username:
                type: string
            type: object
          read_only:
            type: boolean
        type: object
      created_at:
        type: string
      db:
        properties:
          dir:
            type: string
        type: object
      debug:
        properties:
          force_gc:
            type: integer
          profiling:
            type: boolean
        type: object
      ffmpeg:
        properties:
          access:
            properties:
              input:
                properties:
                  allow:
                    items:
                      type: string
                    type: array
                  block:
                    items:
                      type: string
                    type: array
                type: object
              output:
                properties:
                  allow:
                    items:
                      type: string
                    type: array
                  block:
                    items:
                      type: string
                    type: array
                type: object
            type: object
          binary:
            type: string
          log:
            properties:
              max_history:
                type: integer
              max_lines:
                type: integer
            type: object
          max_processes:
            type: integer
        type: object
      host:
        properties:
          auto:
            type: boolean
          name:
            items:
              type: string
            type: array
        type: object
      id:
        type: string
      log:
        properties:
          level:
            enum:
            - debug
            - info
            - warn
            - error
            - silent
            type: string
          max_lines:
            type: integer
          topics:
            items:
              type: string
            type: array
        type: object
      metrics:
        properties:
          enable:
            type: boolean
          enable_prometheus:
            type: boolean
          interval_sec:
            description: seconds
            type: integer
          range_sec:
            description: seconds
            type: integer
        type: object
      name:
        type: string
      playout:
        properties:
          enable:
            type: boolean
          max_port:
            type: integer
          min_port:
            type: integer
        type: object
      router:
        properties:
          blocked_prefixes:
            items:
              type: string
            type: array
          routes:
            additionalProperties:
              type: string
            type: object
          ui_path:
            type: string
        type: object
      rtmp:
        properties:
          address:
            type: string
          address_tls:
            type: string
          app:
            type: string
          enable:
            type: boolean
          enable_tls:
            type: boolean
          token:
            type: string
        type: object
      service:
        properties:
          enable:
            type: boolean
          token:
            type: string
          url:
            type: string
        type: object
      sessions:
        properties:
          enable:
            type: boolean
          ip_ignorelist:
            items:
              type: string
            type: array
          max_bitrate_mbit:
            type: integer
          max_sessions:
            type: integer
          persist:
            type: boolean
          persist_interval_sec:
            type: integer
          session_timeout_sec:
            type: integer
        type: object
      srt:
        properties:
          address:
            type: string
          enable:
            type: boolean
          log:
            properties:
              enable:
                type: boolean
              topics:
                items:
                  type: string
                type: array
            type: object
          passphrase:
            type: string
          token:
            type: string
        type: object
      storage:
        properties:
          cors:
            properties:
              origins:
                items:
                  type: string
                type: array
            type: object
          disk:
            properties:
              cache:
                properties:
                  enable:
                    type: boolean
                  max_file_size_mbytes:
                    type: integer
                  max_size_mbytes:
                    type: integer
                  ttl_seconds:
                    type: integer
                  types:
                    properties:
                      allow:
                        items:
                          type: string
                        type: array
                      block:
                        items:
                          type: string
                        type: array
                    type: object
                type: object
              dir:
                type: string
              max_size_mbytes:
                type: integer
            type: object
          memory:
            properties:
              auth:
                properties:
                  enable:
                    type: boolean
                  password:
                    type: string
                  username:
                    type: string
                type: object
              max_size_mbytes:
                type: integer
              purge:
                type: boolean
            type: object
          mimetypes_file:
            type: string
        type: object
      tls:
        properties:
          address:
            type: string
          auto:
            type: boolean
          cert_file:
            type: string
          enable:
            type: boolean
          key_file:
            type: string
        type: object
      update_check:
        type: boolean
      version:
        type: integer
    type: object
  api.Skills:
    properties:
      codecs:
        properties:
          audio:
            items:
              $ref: '#/definitions/api.SkillsCodec'
            type: array
          subtitle:
            items:
              $ref: '#/definitions/api.SkillsCodec'
            type: array
          video:
            items:
              $ref: '#/definitions/api.SkillsCodec'
            type: array
        type: object
      devices:
        properties:
          demuxers:
            items:
              $ref: '#/definitions/api.SkillsDevice'
            type: array
          muxers:
            items:
              $ref: '#/definitions/api.SkillsDevice'
            type: array
        type: object
      ffmpeg:
        properties:
          compiler:
            type: string
          configuration:
            type: string
          libraries:
            items:
              $ref: '#/definitions/api.SkillsLibrary'
            type: array
          version:
            type: string
        type: object
      filter:
        items:
          $ref: '#/definitions/api.SkillsFilter'
        type: array
      formats:
        properties:
          demuxers:
            items:
              $ref: '#/definitions/api.SkillsFormat'
            type: array
          muxers:
            items:
              $ref: '#/definitions/api.SkillsFormat'
            type: array
        type: object
      hwaccels:
        items:
          $ref: '#/definitions/api.SkillsHWAccel'
        type: array
      protocols:
        properties:
          input:
            items:
              $ref: '#/definitions/api.SkillsProtocol'
            type: array
          output:
            items:
              $ref: '#/definitions/api.SkillsProtocol'
            type: array
        type: object
    type: object
  api.SkillsCodec:
    properties:
      decoders:
        items:
          type: string
        type: array
      encoders:
        items:
          type: string
        type: array
      id:
        type: string
      name:
        type: string
    type: object
  api.SkillsDevice:
    properties:
      devices:
        items:
          $ref: '#/definitions/api.SkillsHWDevice'
        type: array
      id:
        type: string
      name:
        type: string
    type: object
  api.SkillsFilter:
    properties:
      id:
        type: string
      name:
        type: string
    type: object
  api.SkillsFormat:
    properties:
      id:
        type: string
      name:
        type: string
    type: object
  api.SkillsHWAccel:
    properties:
      id:
        type: string
      name:
        type: string
    type: object
  api.SkillsHWDevice:
    properties:
      extra:
        type: string
      id:
        type: string
      media:
        type: string
      name:
        type: string
    type: object
  api.SkillsLibrary:
    properties:
      compiled:
        type: string
      linked:
        type: string
      name:
        type: string
    type: object
  api.SkillsProtocol:
    properties:
      id:
        type: string
      name:
        type: string
    type: object
  api.Version:
    properties:
      arch:
        type: string
      build_date:
        type: string
      compiler:
        type: string
      number:
        type: string
      repository_branch:
        type: string
      repository_commit:
        type: string
    type: object
  api.WidgetProcess:
    properties:
      current_sessions:
        type: integer
      total_sessions:
        type: integer
      uptime:
        type: integer
    type: object
  config.Auth0Tenant:
    properties:
      audience:
        type: string
      clientid:
        type: string
      domain:
        type: string
      users:
        items:
          type: string
        type: array
    type: object
info:
  contact:
    email: hello@datarhei.com
    name: datarhei Core Support
    url: https://www.datarhei.com
  description: Expose REST API for the datarhei Core
  license:
    name: Apache 2.0
    url: https://github.com/datarhei/core/v16/blob/main/LICENSE
  title: datarhei Core API
  version: "3.0"
paths:
  /{path}:
    get:
      description: Fetch a file from the filesystem. If the file is a directory, a
        index.html is returned, if it exists.
      operationId: diskfs-get-file
      parameters:
      - description: Path to file
        in: path
        name: path
        required: true
        type: string
      produces:
      - application/data
      - application/json
      responses:
        "200":
          description: OK
          schema:
            type: file
        "301":
          description: Moved Permanently
          schema:
            type: string
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
      summary: Fetch a file from the filesystem
  /api:
    get:
      description: API version and build infos in case auth is valid or not required.
        If auth is required, just the name field is populated.
      operationId: about
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.About'
      security:
      - ApiKeyAuth: []
      summary: API version and build infos
  /api/graph:
    get:
      description: Load GraphQL playground
      operationId: graph-playground
      produces:
      - text/html
      responses:
        "200":
          description: ""
      security:
      - ApiKeyAuth: []
      summary: Load GraphQL playground
  /api/graph/query:
    post:
      consumes:
      - application/json
      description: Query the GraphAPI
      operationId: graph-query
      parameters:
      - description: GraphQL Query
        in: body
        name: query
        required: true
        schema:
          $ref: '#/definitions/api.GraphQuery'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.GraphResponse'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.GraphResponse'
      security:
      - ApiKeyAuth: []
      summary: Query the GraphAPI
  /api/login:
    post:
      description: Retrieve valid JWT access and refresh tokens to use for accessing
        the API. Login either by username/password or Auth0 token
      operationId: jwt-login
      parameters:
      - description: Login data
        in: body
        name: data
        required: true
        schema:
          $ref: '#/definitions/api.Login'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.JWT'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.Error'
        "403":
          description: Forbidden
          schema:
            $ref: '#/definitions/api.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - Auth0KeyAuth: []
      summary: Retrieve an access and a refresh token
  /api/login/refresh:
    get:
      description: Retrieve a new access token by providing the refresh token
      operationId: jwt-refresh
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.JWTRefresh'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiRefreshKeyAuth: []
      summary: Retrieve a new access token
  /api/swagger:
    get:
      description: Swagger UI for this API
      operationId: swagger
      produces:
      - text/html
      responses:
        "200":
          description: OK
          schema:
            type: string
      summary: Swagger UI for this API
  /api/v3/config:
    get:
      description: Retrieve the currently active Restreamer configuration
      operationId: config-3-get
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.Config'
      security:
      - ApiKeyAuth: []
      summary: Retrieve the currently active Restreamer configuration
    put:
      consumes:
      - application/json
      description: Update the current Restreamer configuration by providing a complete
        or partial configuration. Fields that are not provided will not be changed.
      operationId: config-3-set
      parameters:
      - description: Restreamer configuration
        in: body
        name: config
        required: true
        schema:
          $ref: '#/definitions/api.SetConfig'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            type: string
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.Error'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/api.ConfigError'
      security:
      - ApiKeyAuth: []
      summary: Update the current Restreamer configuration
  /api/v3/config/reload:
    get:
      description: Reload the currently active configuration. This will trigger a
        restart of the Restreamer.
      operationId: config-3-reload
      produces:
      - text/plain
      responses:
        "200":
          description: OK
          schema:
            type: string
      security:
      - ApiKeyAuth: []
      summary: Reload the currently active configuration
  /api/v3/fs/disk:
    get:
      description: List all files on the filesystem. The listing can be ordered by
        name, size, or date of last modification in ascending or descending order.
      operationId: diskfs-3-list-files
      parameters:
      - description: glob pattern for file names
        in: query
        name: glob
        type: string
      - description: none, name, size, lastmod
        in: query
        name: sort
        type: string
      - description: asc, desc
        in: query
        name: order
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/api.FileInfo'
            type: array
      security:
      - ApiKeyAuth: []
      summary: List all files on the filesystem
  /api/v3/fs/disk/{path}:
    delete:
      description: Remove a file from the filesystem
      operationId: diskfs-3-delete-file
      parameters:
      - description: Path to file
        in: path
        name: path
        required: true
        type: string
      produces:
      - text/plain
      responses:
        "200":
          description: OK
          schema:
            type: string
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Remove a file from the filesystem
    get:
      description: Fetch a file from the filesystem. The contents of that file are
        returned.
      operationId: diskfs-3-get-file
      parameters:
      - description: Path to file
        in: path
        name: path
        required: true
        type: string
      produces:
      - application/data
      - application/json
      responses:
        "200":
          description: OK
          schema:
            type: file
        "301":
          description: Moved Permanently
          schema:
            type: string
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Fetch a file from the filesystem
    put:
      consumes:
      - application/data
      description: Writes or overwrites a file on the filesystem
      operationId: diskfs-3-put-file
      parameters:
      - description: Path to file
        in: path
        name: path
        required: true
        type: string
      - description: File data
        in: body
        name: data
        required: true
        schema:
          items:
            type: integer
          type: array
      produces:
      - text/plain
      - application/json
      responses:
        "201":
          description: Created
          schema:
            type: string
        "204":
          description: No Content
          schema:
            type: string
        "507":
          description: Insufficient Storage
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Add a file to the filesystem
  /api/v3/fs/mem:
    get:
      description: List all files on the memory filesystem. The listing can be ordered
        by name, size, or date of last modification in ascending or descending order.
      operationId: memfs-3-list-files
      parameters:
      - description: glob pattern for file names
        in: query
        name: glob
        type: string
      - description: none, name, size, lastmod
        in: query
        name: sort
        type: string
      - description: asc, desc
        in: query
        name: order
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/api.FileInfo'
            type: array
      security:
      - ApiKeyAuth: []
      summary: List all files on the memory filesystem
  /api/v3/fs/mem/{path}:
    delete:
      description: Remove a file from the memory filesystem
      operationId: memfs-3-delete-file
      parameters:
      - description: Path to file
        in: path
        name: path
        required: true
        type: string
      produces:
      - text/plain
      responses:
        "200":
          description: OK
          schema:
            type: string
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Remove a file from the memory filesystem
    get:
      description: Fetch a file from the memory filesystem
      operationId: memfs-3-get-file
      parameters:
      - description: Path to file
        in: path
        name: path
        required: true
        type: string
      produces:
      - application/data
      - application/json
      responses:
        "200":
          description: OK
          schema:
            type: file
        "301":
          description: Moved Permanently
          schema:
            type: string
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Fetch a file from the memory filesystem
    patch:
      consumes:
      - application/data
      description: Create a link to a file in the memory filesystem. The file linked
        to has to exist.
      operationId: memfs-3-patch
      parameters:
      - description: Path to file
        in: path
        name: path
        required: true
        type: string
      - description: Path to the file to link to
        in: body
        name: url
        required: true
        schema:
          type: string
      produces:
      - text/plain
      - application/json
      responses:
        "201":
          description: Created
          schema:
            type: string
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Create a link to a file in the memory filesystem
    put:
      consumes:
      - application/data
      description: Writes or overwrites a file on the memory filesystem
      operationId: memfs-3-put-file
      parameters:
      - description: Path to file
        in: path
        name: path
        required: true
        type: string
      - description: File data
        in: body
        name: data
        required: true
        schema:
          items:
            type: integer
          type: array
      produces:
      - text/plain
      - application/json
      responses:
        "201":
          description: Created
          schema:
            type: string
        "204":
          description: No Content
          schema:
            type: string
        "507":
          description: Insufficient Storage
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Add a file to the memory filesystem
  /api/v3/log:
    get:
      description: Get the last log lines of the Restreamer application
      operationId: log-3
      parameters:
      - description: Format of the list of log events (*console, raw)
        in: query
        name: format
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: application log
          schema:
            items:
              type: string
            type: array
      security:
      - ApiKeyAuth: []
      summary: Application log
  /api/v3/metadata/{key}:
    get:
      description: Retrieve the previously stored JSON metadata under the given key.
        If the key is empty, all metadata will be returned.
      operationId: metadata-3-get
      parameters:
      - description: Key for data store
        in: path
        name: key
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema: {}
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Retrieve JSON metadata from a key
    put:
      description: Add arbitrary JSON metadata under the given key. If the key exists,
        all already stored metadata with this key will be overwritten. If the key
        doesn't exist, it will be created.
      operationId: metadata-3-set
      parameters:
      - description: Key for data store
        in: path
        name: key
        required: true
        type: string
      - description: Arbitrary JSON data
        in: body
        name: data
        required: true
        schema: {}
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema: {}
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Add JSON metadata under the given key
  /api/v3/metrics:
    post:
      consumes:
      - application/json
      description: Query the collected metrics
      operationId: metrics-3-metrics
      parameters:
      - description: Metrics query
        in: body
        name: config
        required: true
        schema:
          $ref: '#/definitions/api.MetricsQuery'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.MetricsResponse'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Query the collected metrics
  /api/v3/process:
    get:
      description: List all known processes. Use the query parameter to filter the
        listed processes.
      operationId: process-3-get-all
      parameters:
      - description: Comma separated list of fields (config, state, report, metadata)
          that will be part of the output. If empty, all fields will be part of the
          output.
        in: query
        name: filter
        type: string
      - description: Return only these process that have this reference value. If
          empty, the reference will be ignored.
        in: query
        name: reference
        type: string
      - description: Comma separated list of process ids to list. Overrides the reference.
          If empty all IDs will be returned.
        in: query
        name: id
        type: string
      - description: Glob pattern for process IDs. If empty all IDs will be returned.
          Intersected with results from refpattern.
        in: query
        name: idpattern
        type: string
      - description: Glob pattern for process references. If empty all IDs will be
          returned. Intersected with results from idpattern.
        in: query
        name: refpattern
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/api.Process'
            type: array
      security:
      - ApiKeyAuth: []
      summary: List all known processes
    post:
      consumes:
      - application/json
      description: Add a new FFmpeg process
      operationId: process-3-add
      parameters:
      - description: Process config
        in: body
        name: config
        required: true
        schema:
          $ref: '#/definitions/api.ProcessConfig'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.ProcessConfig'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Add a new process
  /api/v3/process/{id}:
    delete:
      description: Delete a process by its ID
      operationId: process-3-delete
      parameters:
      - description: Process ID
        in: path
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            type: string
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Delete a process by its ID
    get:
      description: List a process by its ID. Use the filter parameter to specifiy
        the level of detail of the output.
      operationId: process-3-get
      parameters:
      - description: Process ID
        in: path
        name: id
        required: true
        type: string
      - description: Comma separated list of fields (config, state, report, metadata)
          to be part of the output. If empty, all fields will be part of the output
        in: query
        name: filter
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.Process'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: List a process by its ID
    put:
      consumes:
      - application/json
      description: Replace an existing process. This is a shortcut for DELETE+POST.
      operationId: process-3-update
      parameters:
      - description: Process ID
        in: path
        name: id
        required: true
        type: string
      - description: Process config
        in: body
        name: config
        required: true
        schema:
          $ref: '#/definitions/api.ProcessConfig'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.ProcessConfig'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Replace an existing process
  /api/v3/process/{id}/command:
    put:
      consumes:
      - application/json
      description: 'Issue a command to a process: start, stop, reload, restart'
      operationId: process-3-command
      parameters:
      - description: Process ID
        in: path
        name: id
        required: true
        type: string
      - description: Process command
        in: body
        name: command
        required: true
        schema:
          $ref: '#/definitions/api.Command'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            type: string
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Issue a command to a process
  /api/v3/process/{id}/config:
    get:
      description: Get the configuration of a process. This is the configuration as
        provided by Add or Update.
      operationId: process-3-get-config
      parameters:
      - description: Process ID
        in: path
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.ProcessConfig'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Get the configuration of a process
  /api/v3/process/{id}/metadata/{key}:
    get:
      description: Retrieve the previously stored JSON metadata under the given key.
        If the key is empty, all metadata will be returned.
      operationId: process-3-get-process-metadata
      parameters:
      - description: Process ID
        in: path
        name: id
        required: true
        type: string
      - description: Key for data store
        in: path
        name: key
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema: {}
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Retrieve JSON metadata stored with a process under a key
    put:
      description: Add arbitrary JSON metadata under the given key. If the key exists,
        all already stored metadata with this key will be overwritten. If the key
        doesn't exist, it will be created.
      operationId: process-3-set-process-metadata
      parameters:
      - description: Process ID
        in: path
        name: id
        required: true
        type: string
      - description: Key for data store
        in: path
        name: key
        required: true
        type: string
      - description: Arbitrary JSON data. The null value will remove the key and its
          contents
        in: body
        name: data
        required: true
        schema: {}
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema: {}
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Add JSON metadata with a process under the given key
  /api/v3/process/{id}/playout/{inputid}/errorframe/{name}:
    post:
      consumes:
      - application/octet-stream
      description: Upload an error frame which will be encoded immediately
      operationId: process-3-playout-errorframe
      parameters:
      - description: Process ID
        in: path
        name: id
        required: true
        type: string
      - description: Process Input ID
        in: path
        name: inputid
        required: true
        type: string
      - description: Any filename with a suitable extension
        in: path
        name: name
        required: true
        type: string
      - description: Image to be used a error frame
        in: body
        name: image
        required: true
        schema:
          items:
            type: integer
          type: array
      produces:
      - text/plain
      - application/json
      responses:
        "204":
          description: No Content
          schema:
            type: string
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Upload an error frame
  /api/v3/process/{id}/playout/{inputid}/errorframe/encode:
    get:
      description: Immediately encode the errorframe (if available and looping)
      operationId: process-3-playout-errorframencode
      parameters:
      - description: Process ID
        in: path
        name: id
        required: true
        type: string
      - description: Process Input ID
        in: path
        name: inputid
        required: true
        type: string
      produces:
      - text/plain
      - application/json
      responses:
        "204":
          description: No Content
          schema:
            type: string
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Encode the errorframe
  /api/v3/process/{id}/playout/{inputid}/keyframe/{name}:
    get:
      description: Get the last keyframe of an input of a process. The extension of
        the name determines the return type.
      operationId: process-3-playout-keyframe
      parameters:
      - description: Process ID
        in: path
        name: id
        required: true
        type: string
      - description: Process Input ID
        in: path
        name: inputid
        required: true
        type: string
      - description: Any filename with an extension of .jpg or .png
        in: path
        name: name
        required: true
        type: string
      produces:
      - image/jpeg
      - image/png
      - application/json
      responses:
        "200":
          description: OK
          schema:
            type: file
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Get the last keyframe
  /api/v3/process/{id}/playout/{inputid}/reopen:
    get:
      description: Close the current input stream such that it will be automatically
        re-opened
      operationId: process-3-playout-reopen-input
      parameters:
      - description: Process ID
        in: path
        name: id
        required: true
        type: string
      - description: Process Input ID
        in: path
        name: inputid
        required: true
        type: string
      produces:
      - text/plain
      responses:
        "200":
          description: OK
          schema:
            type: string
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Close the current input stream
  /api/v3/process/{id}/playout/{inputid}/status:
    get:
      description: Get the current playout status of an input of a process
      operationId: process-3-playout-status
      parameters:
      - description: Process ID
        in: path
        name: id
        required: true
        type: string
      - description: Process Input ID
        in: path
        name: inputid
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.PlayoutStatus'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Get the current playout status
  /api/v3/process/{id}/playout/{inputid}/stream:
    put:
      consumes:
      - text/plain
      description: Replace the current stream with the one from the given URL. The
        switch will only happen if the stream parameters match.
      operationId: process-3-playout-stream
      parameters:
      - description: Process ID
        in: path
        name: id
        required: true
        type: string
      - description: Process Input ID
        in: path
        name: inputid
        required: true
        type: string
      - description: URL of the new stream
        in: body
        name: url
        required: true
        schema:
          type: string
      produces:
      - text/plain
      - application/json
      responses:
        "204":
          description: No Content
          schema:
            type: string
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Switch to a new stream
  /api/v3/process/{id}/probe:
    get:
      description: Probe an existing process to get a detailed stream information
        on the inputs
      operationId: process-3-probe
      parameters:
      - description: Process ID
        in: path
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.Probe'
      security:
      - ApiKeyAuth: []
      summary: Probe a process
  /api/v3/process/{id}/report:
    get:
      description: Get the logs and the log history of a process
      operationId: process-3-get-report
      parameters:
      - description: Process ID
        in: path
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.ProcessReport'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Get the logs of a process
  /api/v3/process/{id}/state:
    get:
      description: Get the state and progress data of a process
      operationId: process-3-get-state
      parameters:
      - description: Process ID
        in: path
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.ProcessState'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.Error'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - ApiKeyAuth: []
      summary: Get the state of a process
  /api/v3/rtmp:
    get:
      description: List all currently publishing RTMP streams
      operationId: rtmp-3-list-channels
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/api.RTMPChannel'
            type: array
      security:
      - ApiKeyAuth: []
      summary: List all publishing RTMP streams
  /api/v3/session:
    get:
      description: Get a summary of all active and past sessions of the given collector
      operationId: session-3-summary
      parameters:
      - description: Comma separated list of collectors
        in: query
        name: collectors
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: Sessions summary
          schema:
            $ref: '#/definitions/api.SessionsSummary'
      security:
      - ApiKeyAuth: []
      summary: Get a summary of all active and past sessions
  /api/v3/session/active:
    get:
      description: Get a minimal summary of all active sessions (i.e. number of sessions,
        bandwidth)
      operationId: session-3-current
      parameters:
      - description: Comma separated list of collectors
        in: query
        name: collectors
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: Active sessions listing
          schema:
            $ref: '#/definitions/api.SessionsActive'
      security:
      - ApiKeyAuth: []
      summary: Get a minimal summary of all active sessions
  /api/v3/skills:
    get:
      description: List all detected FFmpeg capabilities
      operationId: skills-3
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.Skills'
      security:
      - ApiKeyAuth: []
      summary: FFmpeg capabilities
  /api/v3/skills/reload:
    get:
      description: Refresh the available FFmpeg capabilities
      operationId: skills-3-reload
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.Skills'
      security:
      - ApiKeyAuth: []
      summary: Refresh FFmpeg capabilities
  /api/v3/srt:
    get:
      description: List all currently publishing SRT streams. This endpoint is EXPERIMENTAL
        and may change in future.
      operationId: srt-3-list-channels
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/api.SRTChannels'
            type: array
      security:
      - ApiKeyAuth: []
      summary: List all publishing SRT treams
  /api/v3/widget/process/{id}:
    get:
      description: Fetch minimal statistics about a process, which is not protected
        by any auth.
      operationId: widget-3-get
      parameters:
      - description: ID of a process
        in: path
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.WidgetProcess'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
      summary: Fetch minimal statistics about a process
  /memfs/{path}:
    delete:
      description: Remove a file from the memory filesystem
      operationId: memfs-delete-file
      parameters:
      - description: Path to file
        in: path
        name: path
        required: true
        type: string
      produces:
      - text/plain
      responses:
        "200":
          description: OK
          schema:
            type: string
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - BasicAuth: []
      summary: Remove a file from the memory filesystem
    get:
      description: Fetch a file from the memory filesystem
      operationId: memfs-get-file
      parameters:
      - description: Path to file
        in: path
        name: path
        required: true
        type: string
      produces:
      - application/data
      - application/json
      responses:
        "200":
          description: OK
          schema:
            type: file
        "301":
          description: Moved Permanently
          schema:
            type: string
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.Error'
      summary: Fetch a file from the memory filesystem
    put:
      consumes:
      - application/data
      description: Writes or overwrites a file on the memory filesystem
      operationId: memfs-put-file
      parameters:
      - description: Path to file
        in: path
        name: path
        required: true
        type: string
      - description: File data
        in: body
        name: data
        required: true
        schema:
          items:
            type: integer
          type: array
      produces:
      - text/plain
      - application/json
      responses:
        "201":
          description: Created
          schema:
            type: string
        "204":
          description: No Content
          schema:
            type: string
        "507":
          description: Insufficient Storage
          schema:
            $ref: '#/definitions/api.Error'
      security:
      - BasicAuth: []
      summary: Add a file to the memory filesystem
  /metrics:
    get:
      description: Prometheus metrics
      operationId: metrics
      produces:
      - text/plain
      responses:
        "200":
          description: OK
          schema:
            type: string
      summary: Prometheus metrics
  /ping:
    get:
      description: Liveliness check
      operationId: ping
      produces:
      - text/plain
      responses:
        "200":
          description: pong
          schema:
            type: string
      summary: Liveliness check
  /profiling:
    get:
      description: Retrieve profiling data from the application
      operationId: profiling
      produces:
      - text/html
      responses:
        "200":
          description: OK
          schema:
            type: string
        "404":
          description: Not Found
          schema:
            type: string
      summary: Retrieve profiling data from the application
securityDefinitions:
  ApiKeyAuth:
    in: header
    name: Authorization
    type: apiKey
  ApiRefreshKeyAuth:
    in: header
    name: Authorization
    type: apiKey
  Auth0KeyAuth:
    in: header
    name: Authorization
    type: apiKey
  BasicAuth:
    type: basic
swagger: "2.0"
