basePath: / definitions: api.AVstream: properties: aqueue: format: uint64 type: integer channels: format: uint64 type: integer codec: description: Codec parameter type: string drop: format: uint64 type: integer dup: format: uint64 type: integer duplicating: type: boolean enc: format: uint64 type: integer gop: type: string height: format: uint64 type: integer input: $ref: '#/definitions/api.AVstreamIO' layout: type: string level: type: integer looping: type: boolean looping_runtime: format: uint64 type: integer mode: type: string output: $ref: '#/definitions/api.AVstreamIO' pix_fmt: type: string profile: type: integer queue: format: uint64 type: integer sample_fmt: type: string sampling_hz: format: uint64 type: integer width: format: uint64 type: integer type: object api.AVstreamIO: properties: packet: format: uint64 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: description: RFC3339 type: string id: type: string name: type: string resources: $ref: '#/definitions/api.AboutResources' uptime_seconds: type: integer version: $ref: '#/definitions/api.AboutVersion' type: object api.AboutResources: properties: cpu_core: description: Current CPU load of the core itself, 0-100*ncpu type: number cpu_limit: description: Defined CPU load limit, 0-100*ncpu type: number cpu_used: description: Current CPU load, 0-100*ncpu type: number is_throttling: description: Whether this core is currently throttling type: boolean memory_core_bytes: description: Current used memory of the core itself in bytes type: integer memory_limit_bytes: description: Defined memory limit in bytes type: integer memory_total_bytes: description: Total available memory in bytes type: integer memory_used_bytes: description: Currently used memory in bytes type: integer ncpu: description: Number of CPU on this node type: number type: object api.AboutVersion: properties: arch: type: string build_date: description: RFC3339 type: string compiler: type: string number: type: string repository_branch: type: string repository_commit: type: string type: object api.ClusterAbout: properties: degraded: type: boolean degraded_error: type: string id: type: string leader: $ref: '#/definitions/api.ClusterAboutLeader' nodes: items: $ref: '#/definitions/api.ClusterNode' type: array public_domains: items: type: string type: array raft: $ref: '#/definitions/api.ClusterRaft' status: type: string version: type: string type: object api.ClusterAboutLeader: properties: address: type: string elected_seconds: type: integer id: type: string type: object api.ClusterKVS: additionalProperties: $ref: '#/definitions/api.ClusterKVSValue' type: object api.ClusterKVSValue: properties: updated_at: type: string value: type: string type: object api.ClusterLock: properties: name: type: string valid_until: type: string type: object api.ClusterNode: properties: address: type: string core: $ref: '#/definitions/api.ClusterNodeCore' created_at: description: RFC 3339 type: string error: type: string id: type: string last_contact_ms: type: number latency_ms: type: number leader: type: boolean name: type: string resources: $ref: '#/definitions/api.ClusterNodeResources' status: type: string uptime_seconds: type: integer version: type: string voter: type: boolean type: object api.ClusterNodeCore: properties: address: type: string error: type: string last_contact_ms: description: milliseconds type: number latency_ms: description: milliseconds type: number status: type: string version: type: string type: object api.ClusterNodeFiles: properties: files: additionalProperties: items: type: string type: array type: object last_update: description: unix timestamp type: integer type: object api.ClusterNodeID: properties: id: type: string type: object api.ClusterNodeResources: properties: cpu_core: description: percent 0-100*ncpu type: number cpu_limit: description: percent 0-100*npcu type: number cpu_used: description: percent 0-100*npcu type: number error: type: string is_throttling: type: boolean memory_core_bytes: description: bytes type: integer memory_limit_bytes: description: bytes type: integer memory_total_bytes: description: bytes type: integer memory_used_bytes: description: bytes type: integer ncpu: type: number type: object api.ClusterNodeState: properties: state: enum: - online - maintenance - leave type: string required: - state type: object api.ClusterProcessMap: additionalProperties: type: string type: object api.ClusterProcessReallocate: properties: process_ids: items: $ref: '#/definitions/api.ProcessID' type: array target_node_id: type: string type: object api.ClusterRaft: properties: address: type: string last_contact_ms: description: milliseconds type: number log_index: type: integer log_term: type: integer num_peers: type: integer state: type: string type: object api.ClusterStoreNode: properties: id: type: string state: type: string updated_at: type: string type: object api.Command: properties: command: enum: - start - stop - restart - reload type: string required: - command 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/value.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 cluster: properties: address: description: ip:port type: string debug: properties: disable_ffmpeg_check: type: boolean type: object emergency_leader_timeout_sec: description: seconds format: int64 type: integer enable: type: boolean id: type: string node_recover_timeout_sec: description: seconds format: int64 type: integer peers: items: type: string type: array startup_timeout_sec: description: seconds format: int64 type: integer sync_interval_sec: description: seconds format: int64 type: integer type: object created_at: description: When this config has been persisted type: string db: properties: dir: type: string type: object debug: properties: agent_address: type: string auto_max_procs: type: boolean force_gc: description: deprecated, use MemoryLimit instead format: int type: integer memory_limit_mbytes: format: int64 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: format: int type: integer max_lines: format: int type: integer max_minimal_history: format: int type: integer type: object max_processes: format: int64 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: format: int type: integer topics: items: type: string type: array type: object metrics: properties: enable: type: boolean enable_prometheus: type: boolean interval_sec: description: seconds format: int64 type: integer range_sec: description: seconds format: int64 type: integer type: object name: type: string playout: properties: enable: type: boolean max_port: format: int type: integer min_port: format: int type: integer type: object resources: properties: max_cpu_usage: description: percent 0-100 type: number max_memory_usage: description: percent 0-100 type: number 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: description: Deprecated, use IAM 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: format: uint64 type: integer max_sessions: format: uint64 type: integer persist: type: boolean persist_interval_sec: format: int type: integer session_log_buffer_sec: format: int type: integer session_log_path_pattern: type: string session_timeout_sec: format: int 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: description: Deprecated, use IAM 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: format: uint64 type: integer max_size_mbytes: format: uint64 type: integer ttl_seconds: format: int64 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: format: int64 type: integer type: object memory: properties: auth: description: Deprecated, use IAM properties: enable: description: Deprecated, use IAM type: boolean password: description: Deprecated, use IAM type: string username: description: Deprecated, use IAM type: string type: object backup: properties: dir: type: string patterns: items: type: string type: array type: object max_size_mbytes: format: int64 type: integer purge: type: boolean type: object mimetypes_file: type: string s3: items: $ref: '#/definitions/value.S3Storage' type: array type: object tls: properties: address: type: string auto: type: boolean cert_file: type: string email: type: string enable: type: boolean key_file: type: string secret: type: string staging: type: boolean type: object update_check: type: boolean version: format: int64 type: integer type: object api.ConfigError: additionalProperties: items: type: string type: array type: object api.Error: properties: code: format: int type: integer details: items: type: string type: array message: type: string type: object api.Event: properties: caller: type: string core_id: type: string data: additionalProperties: type: string type: object event: type: string level: type: integer message: type: string ts: format: int64 type: integer type: object api.EventFilter: properties: caller: type: string core_id: type: string data: additionalProperties: type: string type: object event: type: string level: type: string message: type: string type: object api.EventFilters: properties: filters: items: $ref: '#/definitions/api.EventFilter' type: array type: object api.FileInfo: properties: core_id: type: string last_modified: format: int64 type: integer name: type: string size_bytes: format: int64 type: integer type: object api.FilesystemInfo: properties: mount: type: string name: type: string type: type: string type: object api.FilesystemOperation: properties: bandwidth_limit_kbit: description: kbit/s type: integer operation: enum: - copy - move type: string source: type: string target: type: string required: - operation type: object api.GetConfig: 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.GraphElement: properties: dst_filter: type: string dst_name: type: string filter: type: string format: type: string height: type: integer index: type: integer inpad: type: string layout: type: string name: type: string outpad: type: string sampling: description: Hz type: integer timebase: type: string type: description: audio or video type: string width: type: integer type: object api.GraphMapping: properties: copy: type: boolean index: type: integer input: type: integer name: type: string output: type: integer type: object api.GraphQuery: properties: query: type: string variables: {} type: object api.GraphResponse: properties: data: {} errors: items: {} type: array type: object api.IAMAuth0Tenant: properties: audience: type: string client_id: type: string domain: type: string type: object api.IAMPolicy: properties: actions: items: type: string type: array domain: type: string name: type: string resource: type: string types: items: type: string type: array type: object api.IAMUser: properties: alias: type: string auth: $ref: '#/definitions/api.IAMUserAuth' created_at: format: int64 type: integer name: type: string policies: items: $ref: '#/definitions/api.IAMPolicy' type: array superuser: type: boolean updated_at: format: int64 type: integer type: object api.IAMUserAuth: properties: api: $ref: '#/definitions/api.IAMUserAuthAPI' services: $ref: '#/definitions/api.IAMUserAuthServices' type: object api.IAMUserAuthAPI: properties: auth0: $ref: '#/definitions/api.IAMUserAuthAPIAuth0' userpass: type: string type: object api.IAMUserAuthAPIAuth0: properties: tenant: $ref: '#/definitions/api.IAMAuth0Tenant' user: type: string type: object api.IAMUserAuthServices: properties: basic: items: type: string type: array session: items: type: string type: array token: items: type: string type: array type: object api.LogEvent: additionalProperties: true type: object api.MetricsDescription: properties: description: type: string labels: items: type: string type: array name: type: string type: object api.MetricsQuery: properties: interval_sec: format: int64 type: integer metrics: items: $ref: '#/definitions/api.MetricsQueryMetric' type: array timerange_sec: format: int64 type: integer type: object api.MetricsQueryMetric: properties: labels: additionalProperties: type: string type: object name: type: string type: object api.MetricsResponse: properties: interval_sec: format: int64 type: integer metrics: items: $ref: '#/definitions/api.MetricsResponseMetric' type: array timerange_sec: format: int64 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: format: uint64 type: integer debug: {} drop: format: uint64 type: integer dup: format: uint64 type: integer duplicating: type: boolean enc: format: uint64 type: integer gop: type: string id: type: string input: $ref: '#/definitions/api.PlayoutStatusIO' looping: type: boolean output: $ref: '#/definitions/api.PlayoutStatusIO' queue: format: uint64 type: integer stream: format: uint64 type: integer swap: $ref: '#/definitions/api.PlayoutStatusSwap' url: type: string type: object api.PlayoutStatusIO: properties: packet: format: uint64 type: integer size_kb: format: uint64 type: integer state: enum: - running - idle type: string time: format: uint64 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: format: uint64 type: integer codec: type: string coder: type: string duration_sec: type: number format: type: string fps: description: video type: number height: format: uint64 type: integer index: format: uint64 type: integer language: type: string layout: type: string pix_fmt: type: string sampling_hz: description: audio format: uint64 type: integer stream: format: uint64 type: integer type: type: string url: description: common type: string width: format: uint64 type: integer type: object api.Process: properties: config: $ref: '#/definitions/api.ProcessConfig' core_id: type: string created_at: format: int64 type: integer domain: type: string id: type: string metadata: {} owner: type: string reference: type: string report: $ref: '#/definitions/api.ProcessReport' state: $ref: '#/definitions/api.ProcessState' type: type: string updated_at: format: int64 type: integer type: object api.ProcessConfig: properties: autostart: type: boolean domain: type: string id: type: string input: items: $ref: '#/definitions/api.ProcessConfigIO' type: array limits: $ref: '#/definitions/api.ProcessConfigLimits' log_patterns: items: type: string type: array metadata: additionalProperties: true type: object options: items: type: string type: array output: items: $ref: '#/definitions/api.ProcessConfigIO' type: array owner: type: string reconnect: type: boolean reconnect_delay_seconds: format: uint64 type: integer reference: type: string runtime_duration_seconds: format: uint64 type: integer scheduler: type: string stale_timeout_seconds: format: uint64 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: format: uint type: integer max_files: format: uint type: integer pattern: type: string purge_on_delete: type: boolean required: - pattern type: object api.ProcessConfigLimits: properties: cpu_usage: type: number memory_mbytes: format: uint64 type: integer waitfor_seconds: format: uint64 type: integer type: object api.ProcessID: properties: domain: type: string id: type: string type: object api.ProcessReport: properties: created_at: format: int64 type: integer history: items: $ref: '#/definitions/api.ProcessReportHistoryEntry' type: array log: items: items: type: string type: array type: array matches: items: type: string type: array prelude: items: type: string type: array type: object api.ProcessReportHistoryEntry: properties: created_at: format: int64 type: integer exit_state: type: string exited_at: format: int64 type: integer log: items: items: type: string type: array type: array matches: items: type: string type: array prelude: items: type: string type: array progress: $ref: '#/definitions/api.Progress' resources: $ref: '#/definitions/api.ProcessUsage' type: object api.ProcessReportSearchResult: properties: created_at: format: int64 type: integer exit_state: type: string exited_at: format: int64 type: integer id: type: string reference: type: string type: object api.ProcessState: properties: command: items: type: string type: array cpu_usage: description: deprecated, use Resources.Memory.Current type: number exec: type: string last_logline: type: string limit_mode: type: string memory_bytes: description: deprecated, use Resources.CPU.Current format: uint64 type: integer order: type: string progress: $ref: '#/definitions/api.Progress' reconnect_seconds: format: int64 type: integer resources: $ref: '#/definitions/api.ProcessUsage' runtime_seconds: format: int64 type: integer type: object api.ProcessUsage: properties: cpu_usage: $ref: '#/definitions/api.ProcessUsageCPU' memory_bytes: $ref: '#/definitions/api.ProcessUsageMemory' type: object api.ProcessUsageCPU: properties: avg: type: number cur: type: number limit: type: number max: type: number ncpu: type: number throttling: type: boolean type: object api.ProcessUsageMemory: properties: avg: type: number cur: format: uint64 type: integer limit: format: uint64 type: integer max: format: uint64 type: integer type: object api.Progress: properties: bitrate_kbit: description: kbit/s type: number drop: format: uint64 type: integer dup: format: uint64 type: integer fps: type: number frame: format: uint64 type: integer inputs: items: $ref: '#/definitions/api.ProgressIO' type: array mapping: $ref: '#/definitions/api.StreamMapping' outputs: items: $ref: '#/definitions/api.ProgressIO' type: array packet: format: uint64 type: integer q: type: number size_kb: description: kbytes format: uint64 type: integer speed: type: number started: type: boolean time: type: number type: object api.ProgressIO: properties: address: type: string avstream: allOf: - $ref: '#/definitions/api.AVstream' description: avstream bitrate_kbit: description: kbit/s type: number channels: format: uint64 type: integer codec: type: string coder: type: string extradata_size_bytes: description: bytes format: uint64 type: integer format: type: string fps: type: number frame: format: uint64 type: integer framerate: $ref: '#/definitions/api.ProgressIOFramerate' height: format: uint64 type: integer id: type: string index: description: General format: uint64 type: integer keyframe: format: uint64 type: integer layout: type: string level: type: integer packet: format: uint64 type: integer pix_fmt: description: Video type: string pps: type: number profile: type: integer q: type: number sample_fmt: description: Audio type: string sampling_hz: format: uint64 type: integer size_kb: description: kbytes format: uint64 type: integer stream: format: uint64 type: integer type: type: string width: format: uint64 type: integer type: object api.ProgressIOFramerate: properties: avg: type: number max: type: number min: type: number type: object api.RTMPChannel: properties: name: type: string type: object api.SRTChannel: properties: connections: additionalProperties: $ref: '#/definitions/api.SRTConnection' type: object log: additionalProperties: items: $ref: '#/definitions/api.SRTLog' type: array type: object name: type: string socketid: type: integer subscriber: items: type: integer type: array 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: format: int64 type: integer type: object api.SRTStatistics: properties: avail_recv_buf_bytes: description: The available space in the receiver's buffer, in bytes format: uint64 type: integer avail_send_buf_bytes: description: The available space in the sender's buffer, in bytes format: uint64 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 format: uint64 type: integer flow_window_pkt: description: The maximum number of packets that can be "in flight" format: uint64 type: integer max_bandwidth_mbit: description: Transmission bandwidth limit, in Mbps type: number mss_bytes: description: Maximum Segment Size (MSS), in bytes format: uint64 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 format: uint64 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 format: uint64 type: integer recv_buf_bytes: description: Instantaneous (current) value of pktRcvBuf, expressed in bytes, including payload and all headers (IP, TCP, SRT) format: uint64 type: integer recv_buf_ms: description: The timespan (msec) of acknowledged packets in the receiver's buffer format: uint64 type: integer recv_buf_pkt: description: The number of acknowledged packets in receiver's buffer format: uint64 type: integer recv_bytes: description: Same as pktRecv, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) format: uint64 type: integer recv_drop_bytes: description: Same as pktRcvDrop, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) format: uint64 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 format: uint64 type: integer recv_km_pkt: description: The total number of received KM (Key Material) control packets format: uint64 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 format: uint64 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 format: uint64 type: integer recv_nak_pkt: description: The total number of received NAK (Negative Acknowledgement) control packets format: uint64 type: integer recv_pkt: description: The total number of received DATA packets, including retransmitted packets format: uint64 type: integer recv_retran_pkts: description: The total number of retransmitted packets registered at the receiver side format: uint64 type: integer recv_tsbpd_delay_ms: description: Timestamp-based Packet Delivery Delay value set on the socket via SRTO_RCVLATENCY or SRTO_LATENCY format: uint64 type: integer recv_undecrypt_bytes: description: Same as pktRcvUndecrypt, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) format: uint64 type: integer recv_undecrypt_pkt: description: The total number of packets that failed to be decrypted at the receiver side format: uint64 type: integer recv_unique_bytes: description: Same as pktRecvUnique, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) format: uint64 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. format: uint64 type: integer reorder_tolerance_pkt: description: Instant value of the packet reorder tolerance format: uint64 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) format: uint64 type: integer send_buf_ms: description: The timespan (msec) of packets in the sender's buffer (unacknowledged packets) format: uint64 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 format: uint64 type: integer send_drop_bytes: description: Same as pktSndDrop, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) format: uint64 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 format: uint64 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 format: uint64 type: integer send_km_pkt: description: The total number of sent KM (Key Material) control packets format: uint64 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. format: uint64 type: integer send_tsbpd_delay_ms: description: Timestamp-based Packet Delivery Delay value of the peer format: uint64 type: integer sent_ack_pkt: description: The total number of sent ACK (Acknowledgement) control packets format: uint64 type: integer sent_bytes: description: Same as pktSent, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) format: uint64 type: integer sent_nak_pkt: description: The total number of sent NAK (Negative Acknowledgement) control packets format: uint64 type: integer sent_pkt: description: The total number of sent DATA packets, including retransmitted packets format: uint64 type: integer sent_retrans_bytes: description: Same as pktRetrans, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) format: uint64 type: integer sent_retrans_pkt: description: The total number of retransmitted packets sent by the SRT sender format: uint64 type: integer sent_unique_bytes: description: Same as pktSentUnique, but expressed in bytes, including payload and all the headers (IP, TCP, SRT) format: uint64 type: integer sent_unique_pkt: description: The total number of unique DATA packets sent by the SRT sender format: uint64 type: integer timestamp_ms: description: The time elapsed, in milliseconds, since the SRT socket has been created format: uint64 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: format: uint64 type: integer bytes_tx: format: uint64 type: integer created_at: format: int64 type: integer extra: additionalProperties: true type: object 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: format: uint64 type: integer traffic_rx_mb: format: uint64 type: integer traffic_tx_mb: format: uint64 type: integer type: object api.SessionStats: properties: sessions: format: uint64 type: integer traffic_rx_mb: format: uint64 type: integer traffic_tx_mb: format: uint64 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: format: uint64 type: integer sessions: format: uint64 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: format: uint64 type: integer traffic_rx_mb: format: uint64 type: integer traffic_tx_mb: format: uint64 type: integer type: object api.SessionTokenRequest: properties: extra: additionalProperties: true type: object match: type: string remote: items: type: string type: array token: type: string ttl_sec: 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/value.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 cluster: properties: address: description: ip:port type: string debug: properties: disable_ffmpeg_check: type: boolean type: object emergency_leader_timeout_sec: description: seconds format: int64 type: integer enable: type: boolean id: type: string node_recover_timeout_sec: description: seconds format: int64 type: integer peers: items: type: string type: array startup_timeout_sec: description: seconds format: int64 type: integer sync_interval_sec: description: seconds format: int64 type: integer type: object created_at: description: When this config has been persisted type: string db: properties: dir: type: string type: object debug: properties: agent_address: type: string auto_max_procs: type: boolean force_gc: description: deprecated, use MemoryLimit instead format: int type: integer memory_limit_mbytes: format: int64 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: format: int type: integer max_lines: format: int type: integer max_minimal_history: format: int type: integer type: object max_processes: format: int64 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: format: int type: integer topics: items: type: string type: array type: object metrics: properties: enable: type: boolean enable_prometheus: type: boolean interval_sec: description: seconds format: int64 type: integer range_sec: description: seconds format: int64 type: integer type: object name: type: string playout: properties: enable: type: boolean max_port: format: int type: integer min_port: format: int type: integer type: object resources: properties: max_cpu_usage: description: percent 0-100 type: number max_memory_usage: description: percent 0-100 type: number 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: description: Deprecated, use IAM 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: format: uint64 type: integer max_sessions: format: uint64 type: integer persist: type: boolean persist_interval_sec: format: int type: integer session_log_buffer_sec: format: int type: integer session_log_path_pattern: type: string session_timeout_sec: format: int 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: description: Deprecated, use IAM 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: format: uint64 type: integer max_size_mbytes: format: uint64 type: integer ttl_seconds: format: int64 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: format: int64 type: integer type: object memory: properties: auth: description: Deprecated, use IAM properties: enable: description: Deprecated, use IAM type: boolean password: description: Deprecated, use IAM type: string username: description: Deprecated, use IAM type: string type: object backup: properties: dir: type: string patterns: items: type: string type: array type: object max_size_mbytes: format: int64 type: integer purge: type: boolean type: object mimetypes_file: type: string s3: items: $ref: '#/definitions/value.S3Storage' type: array type: object tls: properties: address: type: string auto: type: boolean cert_file: type: string email: type: string enable: type: boolean key_file: type: string secret: type: string staging: type: boolean type: object update_check: type: boolean version: format: int64 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.StreamMapping: properties: graphs: items: $ref: '#/definitions/api.GraphElement' type: array mapping: items: $ref: '#/definitions/api.GraphMapping' type: array type: object api.WidgetProcess: properties: current_sessions: format: uint64 type: integer total_sessions: format: uint64 type: integer uptime: type: integer type: object value.Auth0Tenant: properties: audience: type: string clientid: type: string domain: type: string users: items: type: string type: array type: object value.S3Storage: properties: access_key_id: type: string auth: allOf: - $ref: '#/definitions/value.S3StorageAuth' description: Deprecated, use IAM bucket: type: string endpoint: type: string mountpoint: type: string name: type: string region: type: string secret_access_key: type: string use_ssl: type: boolean type: object value.S3StorageAuth: properties: enable: description: Deprecated, use IAM type: boolean password: description: Deprecated, use IAM type: string username: description: Deprecated, use IAM type: string 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: /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: OK 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/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/cluster: get: description: List of nodes in the cluster operationId: cluster-3-get-cluster produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.ClusterAbout' security: - ApiKeyAuth: [] summary: List of nodes in the cluster tags: - v16.?.? /api/v3/cluster/db/kv: get: description: List of KV in the cluster DB operationId: cluster-3-db-list-kv produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.ClusterKVS' security: - ApiKeyAuth: [] summary: List KV in the cluster DB tags: - v16.?.? /api/v3/cluster/db/locks: get: description: List of locks in the cluster DB operationId: cluster-3-db-list-locks produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/api.ClusterLock' type: array security: - ApiKeyAuth: [] summary: List locks in the cluster DB tags: - v16.?.? /api/v3/cluster/db/node: get: description: List of nodes in the cluster DB operationId: cluster-3-db-list-nodes produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/api.ClusterStoreNode' type: array security: - ApiKeyAuth: [] summary: List nodes in the cluster DB tags: - v16.?.? /api/v3/cluster/db/policies: get: description: List of policies in the cluster operationId: cluster-3-db-list-policies produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/api.IAMPolicy' type: array security: - ApiKeyAuth: [] summary: List of policies in the cluster tags: - v16.?.? /api/v3/cluster/db/process: get: description: List of processes in the cluster DB operationId: cluster-3-db-list-processes produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/api.Process' type: array security: - ApiKeyAuth: [] summary: List of processes in the cluster DB tags: - v16.?.? /api/v3/cluster/db/process/:id: get: description: Get a process in the cluster DB operationId: cluster-3-db-get-process parameters: - description: Process ID in: path name: id required: true type: string - description: Domain to act on in: query name: domain type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.Process' security: - ApiKeyAuth: [] summary: Get a process in the cluster DB tags: - v16.?.? /api/v3/cluster/db/user: get: description: List of identities in the cluster operationId: cluster-3-db-list-identities produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/api.IAMUser' type: array security: - ApiKeyAuth: [] summary: List of identities in the cluster tags: - v16.?.? /api/v3/cluster/db/user/{name}: get: description: List of identities in the cluster operationId: cluster-3-db-get-identity produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.IAMUser' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: List of identities in the cluster tags: - v16.?.? /api/v3/cluster/events: post: consumes: - application/json description: Stream of events of whats happening on each node in the cluster operationId: cluster-3-events parameters: - description: Event filters in: body name: filters schema: $ref: '#/definitions/api.EventFilters' produces: - text/event-stream - application/x-json-stream responses: "200": description: OK schema: $ref: '#/definitions/api.Event' security: - ApiKeyAuth: [] summary: Stream of events tags: - v16.?.? /api/v3/cluster/fs/{storage}: get: description: List all files on a filesystem. The listing can be ordered by name, size, or date of last modification in ascending or descending order. operationId: cluster-3-list-files parameters: - description: Name of the filesystem in: path name: storage required: true type: string - 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 "500": description: Internal Server Error schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: List all files on a filesystem tags: - v16.?.? /api/v3/cluster/healthy: get: description: Whether the cluster is healthy operationId: cluster-3-healthy produces: - application/json responses: "200": description: OK schema: type: bool security: - ApiKeyAuth: [] summary: Whether the cluster is healthy tags: - v16.?.? /api/v3/cluster/iam/policies: get: description: List of policies IAM operationId: cluster-3-iam-list-policies produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/api.IAMPolicy' type: array security: - ApiKeyAuth: [] summary: List of policies in IAM tags: - v16.?.? /api/v3/cluster/iam/reload: get: description: Reload identities and policies operationId: cluster-3-iam-reload produces: - application/json responses: "200": description: OK schema: type: string "500": description: Internal Server Error schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Reload identities and policies tags: - v16.?.? /api/v3/cluster/iam/user: get: description: List of identities in IAM operationId: cluster-3-iam-list-identities produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/api.IAMUser' type: array security: - ApiKeyAuth: [] summary: List of identities in IAM tags: - v16.?.? post: consumes: - application/json description: Add a new identity operationId: cluster-3-add-identity parameters: - description: Identity in: body name: config required: true schema: $ref: '#/definitions/api.IAMUser' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.IAMUser' "400": description: Bad Request schema: $ref: '#/definitions/api.Error' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Add a new identiy tags: - v16.?.? /api/v3/cluster/iam/user/{name}: delete: description: Delete an identity by its name operationId: cluster-3-delete-identity parameters: - description: Identity name in: path name: name required: true type: string produces: - application/json responses: "200": description: OK schema: type: string "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Delete an identity by its name tags: - v16.?.? get: description: Identity in IAM operationId: cluster-3-iam-list-identity produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.IAMUser' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Identity in IAM tags: - v16.?.? put: consumes: - application/json description: Replace an existing user. operationId: cluster-3-update-identity parameters: - description: Username in: path name: name required: true type: string - description: Domain of the acting user in: query name: domain type: string - description: User definition in: body name: user required: true schema: $ref: '#/definitions/api.IAMUser' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.IAMUser' "400": description: Bad Request schema: $ref: '#/definitions/api.Error' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' "500": description: Internal Server Error schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Replace an existing user tags: - v16.?.? /api/v3/cluster/iam/user/{name}/policy: put: consumes: - application/json description: Replace policies of an user operationId: cluster-3-update-user-policies parameters: - description: Username in: path name: name required: true type: string - description: Domain of the acting user in: query name: domain type: string - description: Policy definitions in: body name: user required: true schema: items: $ref: '#/definitions/api.IAMPolicy' type: array produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/api.IAMPolicy' type: array "400": description: Bad Request schema: $ref: '#/definitions/api.Error' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' "500": description: Internal Server Error schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Replace policies of an user tags: - v16.?.? /api/v3/cluster/leave: put: description: Leave the cluster gracefully operationId: cluster-3-leave parameters: - description: Node ID in: body name: nodeid required: true schema: $ref: '#/definitions/api.ClusterNodeID' produces: - application/json responses: "200": description: OK schema: type: string "500": description: Internal Server Error schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Leave the cluster gracefully tags: - v16.?.? /api/v3/cluster/map/process: get: description: Retrieve a map of which process is running on which node operationId: cluster-3-db-process-node-map produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.ClusterProcessMap' security: - ApiKeyAuth: [] summary: Retrieve a map of which process is running on which node tags: - v16.?.? /api/v3/cluster/node: get: description: List of proxy nodes in the cluster operationId: cluster-3-get-nodes produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/api.ClusterNode' type: array "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: List of proxy nodes in the cluster tags: - v16.?.? /api/v3/cluster/node/{id}: get: description: List a proxy node by its ID operationId: cluster-3-get-node parameters: - description: Node ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.ClusterNode' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: List a proxy node by its ID tags: - v16.?.? /api/v3/cluster/node/{id}/files: get: description: List the resources of a proxy node by its ID operationId: cluster-3-get-node-files parameters: - description: Node ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.ClusterNodeFiles' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: List the resources of a proxy node by its ID tags: - v16.?.? /api/v3/cluster/node/{id}/fs/{storage}: get: description: List all files on a filesystem on a node. The listing can be ordered by name, size, or date of last modification in ascending or descending order. operationId: cluster-3-node-fs-list-files parameters: - description: Node ID in: path name: id required: true type: string - description: Name of the filesystem in: path name: storage required: true type: string - 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 "500": description: Internal Server Error schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: List all files on a filesystem on a node tags: - v16.?.? /api/v3/cluster/node/{id}/fs/{storage}/{filepath}: delete: description: Remove a file from a filesystem on a node operationId: cluster-3-node-fs-delete-file parameters: - description: Node ID in: path name: id required: true type: string - description: Name of the filesystem in: path name: storage required: true type: string - description: Path to file in: path name: filepath 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 a filesystem on a node tags: - v16.?.? get: description: Fetch a file from a filesystem on a node operationId: cluster-3-node-fs-get-file parameters: - description: Node ID in: path name: id required: true type: string - description: Name of the filesystem in: path name: storage required: true type: string - description: Path to file in: path name: filepath 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 a filesystem on a node tags: - v16.?.? put: consumes: - application/data description: Writes or overwrites a file on a filesystem on a node operationId: cluster-3-node-fs-put-file parameters: - description: Node ID in: path name: id required: true type: string - description: Name of the filesystem in: path name: storage required: true type: string - description: Path to file in: path name: filepath 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 "400": description: Bad Request schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Add a file to a filesystem on a node tags: - v16.?.? /api/v3/cluster/node/{id}/process: get: description: List of processes in the cluster on a node operationId: cluster-3-list-node-processes parameters: - description: Node ID in: path name: id required: true type: string - description: Domain to act on in: query name: domain type: string - 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 other pattern matches. in: query name: idpattern type: string - description: Glob pattern for process references. If empty all IDs will be returned. Intersected with results from other pattern matches. in: query name: refpattern type: string - description: Glob pattern for process owners. If empty all IDs will be returned. Intersected with results from other pattern matches. in: query name: ownerpattern type: string - description: Glob pattern for process domain. If empty all IDs will be returned. Intersected with results from other pattern matches. in: query name: domainpattern type: string produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/api.Process' type: array "404": description: Not Found schema: $ref: '#/definitions/api.Error' "500": description: Internal Server Error schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: List of processes in the cluster on a node tags: - v16.?.? /api/v3/cluster/node/{id}/state: get: description: Get the state of a node with the given ID operationId: cluster-3-get-node-state parameters: - description: Node ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.ClusterNodeState' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Get the state of a node with the given ID tags: - v16.?.? put: description: Set the state of a node with the given ID operationId: cluster-3-set-node-state parameters: - description: Node ID in: path name: id required: true type: string - description: State in: body name: config required: true schema: $ref: '#/definitions/api.ClusterNodeState' 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' "500": description: Internal Server Error schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Set the state of a node with the given ID tags: - v16.?.? /api/v3/cluster/node/{id}/version: get: description: List a proxy node by its ID operationId: cluster-3-get-node-version parameters: - description: Node ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.AboutVersion' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: List a proxy node by its ID tags: - v16.?.? /api/v3/cluster/process: get: description: List of processes in the cluster operationId: cluster-3-get-all-processes parameters: - description: Domain to act on in: query name: domain type: string - 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 other pattern matches. in: query name: idpattern type: string - description: Glob pattern for process references. If empty all IDs will be returned. Intersected with results from other pattern matches. in: query name: refpattern type: string - description: Glob pattern for process owners. If empty all IDs will be returned. Intersected with results from other pattern matches. in: query name: ownerpattern type: string - description: Glob pattern for process domain. If empty all IDs will be returned. Intersected with results from other pattern matches. in: query name: domainpattern type: string produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/api.Process' type: array security: - ApiKeyAuth: [] summary: List of processes in the cluster tags: - v16.?.? post: consumes: - application/json description: Add a new FFmpeg process operationId: cluster-3-add-process 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' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Add a new process tags: - v16.?.? /api/v3/cluster/process/{id}: delete: description: Delete a process by its ID operationId: cluster-3-delete-process parameters: - description: Process ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: type: string "400": description: Bad Request schema: $ref: '#/definitions/api.Error' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Delete a process by its ID tags: - v16.?.? get: description: List a process by its ID. Use the filter parameter to specifiy the level of detail of the output. operationId: cluster-3-get-process parameters: - description: Process ID in: path name: id required: true type: string - description: Domain to act on in: query name: domain 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' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: List a process by its ID tags: - v16.?.? put: consumes: - application/json description: Replace an existing process. operationId: cluster-3-update-process parameters: - description: Process ID in: path name: id required: true type: string - description: Domain to act on in: query name: domain 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' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Replace an existing process tags: - v16.?.? /api/v3/cluster/process/{id}/command: put: consumes: - application/json description: 'Issue a command to a process: start, stop, reload, restart' operationId: cluster-3-set-process-command parameters: - description: Process ID in: path name: id required: true type: string - description: Domain to act on in: query name: domain 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' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Issue a command to a process in the cluster tags: - v16.?.? /api/v3/cluster/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: cluster-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 - description: Domain to act on in: query name: domain type: string produces: - application/json responses: "200": description: OK schema: {} "400": description: Bad Request schema: $ref: '#/definitions/api.Error' "403": description: Forbidden 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 tags: - v16.?.? 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: cluster-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: Domain to act on in: query name: domain 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' "403": description: Forbidden 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 tags: - v16.?.? /api/v3/cluster/process/{id}/probe: get: description: Probe an existing process to get a detailed stream information on the inputs. The probe is executed on the same node as the process. operationId: cluster-3-process-probe parameters: - description: Process ID in: path name: id required: true type: string - description: Domain to act on in: query name: domain type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.Probe' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Probe a process in the cluster tags: - v16.?.? /api/v3/cluster/process/probe: post: consumes: - application/json description: Probe a process config to get a detailed stream information on the inputs. operationId: cluster-3-probe-process-config parameters: - description: Process config in: body name: config required: true schema: $ref: '#/definitions/api.ProcessConfig' - description: Core to execute the probe on in: query name: coreid type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.Probe' "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: - ApiKeyAuth: [] summary: Probe a process in the cluster tags: - v16.?.? /api/v3/cluster/reallocation: put: description: Retrieve snapshot of the cluster DB operationId: cluster-3-reallocation parameters: - description: Process reallocations in: body name: reallocations required: true schema: $ref: '#/definitions/api.ClusterProcessReallocate' produces: - application/json responses: "200": description: OK schema: type: string "500": description: Internal Server Error schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Retrieve snapshot of the cluster DB tags: - v16.?.? /api/v3/cluster/snapshot: get: description: Retrieve snapshot of the cluster DB operationId: cluster-3-snapshot produces: - application/octet-stream responses: "200": description: OK schema: type: file security: - ApiKeyAuth: [] summary: Retrieve snapshot of the cluster DB tags: - v16.?.? /api/v3/cluster/transfer/{id}: put: description: Transfer the leadership to another node operationId: cluster-3-transfer-leadership produces: - application/json responses: "200": description: OK schema: type: string "500": description: Internal Server Error schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Transfer the leadership to another node tags: - v16.?.? /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.GetConfig' security: - ApiKeyAuth: [] summary: Retrieve the currently active Restreamer configuration tags: - v16.7.2 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 tags: - v16.7.2 /api/v3/config/reload: get: description: Reload the currently active configuration. This will trigger a restart of the Core. operationId: config-3-reload produces: - application/json responses: "200": description: OK schema: type: string security: - ApiKeyAuth: [] summary: Reload the currently active configuration tags: - v16.7.2 /api/v3/events: post: consumes: - application/json description: Stream of event of whats happening in the core operationId: events parameters: - description: Event filters in: body name: filters schema: $ref: '#/definitions/api.EventFilters' produces: - text/event-stream - application/x-json-stream responses: "200": description: OK schema: $ref: '#/definitions/api.Event' security: - ApiKeyAuth: [] summary: Stream of events tags: - v16.?.? /api/v3/fs: get: description: Listall registered filesystems operationId: filesystem-3-list produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/api.FilesystemInfo' type: array security: - ApiKeyAuth: [] summary: List all registered filesystems tags: - v16.12.0 put: consumes: - application/json description: Execute file operations (copy or move) between registered filesystems operationId: filesystem-3-file-operation parameters: - description: Filesystem operation in: body name: config required: true schema: $ref: '#/definitions/api.FilesystemOperation' 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: File operations between filesystems tags: - v16.?.? /api/v3/fs/{storage}: delete: description: Delete all files on a filesystem based on patterns operationId: filesystem-3-delete-files parameters: - description: Name of the filesystem in: path name: storage required: true type: string - description: glob pattern for file names in: query name: glob type: string - description: minimal size of files in: query name: size_min type: integer - description: maximal size of files in: query name: size_max type: integer - description: minimal last modification time in: query name: lastmod_start type: integer - description: maximal last modification time in: query name: lastmod_end type: integer produces: - application/json responses: "200": description: OK schema: items: type: string type: array security: - ApiKeyAuth: [] summary: Delete all files on a filesystem based on patterns tags: - v16.?.? get: description: List all files on a filesystem. The listing can be ordered by name, size, or date of last modification in ascending or descending order. operationId: filesystem-3-list-files parameters: - description: Name of the filesystem in: path name: storage required: true type: string - description: glob pattern for file names in: query name: glob type: string - description: minimal size of files in: query name: size_min type: integer - description: maximal size of files in: query name: size_max type: integer - description: minimal last modification time in: query name: lastmod_start type: integer - description: maximal last modification time in: query name: lastmod_end type: integer - 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 a filesystem tags: - v16.7.2 /api/v3/fs/{storage}/{filepath}: delete: description: Remove a file from a filesystem operationId: filesystem-3-delete-file parameters: - description: Name of the filesystem in: path name: storage required: true type: string - description: Path to file in: path name: filepath 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 a filesystem tags: - v16.7.2 get: description: Fetch a file from a filesystem operationId: filesystem-3-get-file parameters: - description: Name of the filesystem in: path name: storage required: true type: string - description: Path to file in: path name: filepath 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 a filesystem tags: - v16.7.2 put: consumes: - application/data description: Writes or overwrites a file on a filesystem operationId: filesystem-3-put-file parameters: - description: Name of the filesystem in: path name: storage required: true type: string - description: Path to file in: path name: filepath 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 "400": description: Bad Request schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Add a file to a filesystem tags: - v16.7.2 /api/v3/iam/user: get: description: List of identities in IAM operationId: iam-3-list-identities produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/api.IAMUser' type: array security: - ApiKeyAuth: [] summary: List of identities in IAM tags: - v16.?.? post: consumes: - application/json description: Add a new user operationId: iam-3-add-user parameters: - description: User definition in: body name: config required: true schema: $ref: '#/definitions/api.IAMUser' - description: Domain of the acting user in: query name: domain type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.IAMUser' "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: - ApiKeyAuth: [] summary: Add a new user tags: - v16.?.? /api/v3/iam/user/{name}: delete: description: Delete an user by its name operationId: iam-3-delete-user parameters: - description: Username in: path name: name required: true type: string - description: Domain of the acting user in: query name: domain type: string produces: - application/json responses: "200": description: OK schema: type: string "400": description: Bad Request schema: $ref: '#/definitions/api.Error' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' "500": description: Internal Server Error schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Delete an user by its name tags: - v16.?.? get: description: List aa user by its name operationId: iam-3-get-user parameters: - description: Username in: path name: name required: true type: string - description: Domain of the acting user in: query name: domain type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.IAMUser' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: List an user by its name tags: - v16.?.? put: consumes: - application/json description: Replace an existing user. operationId: iam-3-update-user parameters: - description: Username in: path name: name required: true type: string - description: Domain of the acting user in: query name: domain type: string - description: User definition in: body name: user required: true schema: $ref: '#/definitions/api.IAMUser' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.IAMUser' "400": description: Bad Request schema: $ref: '#/definitions/api.Error' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' "500": description: Internal Server Error schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Replace an existing user tags: - v16.?.? /api/v3/iam/user/{name}/policy: put: consumes: - application/json description: Replace policies of an user operationId: iam-3-update-user-policies parameters: - description: Username in: path name: name required: true type: string - description: Domain of the acting user in: query name: domain type: string - description: Policy definitions in: body name: user required: true schema: items: $ref: '#/definitions/api.IAMPolicy' type: array produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/api.IAMPolicy' type: array "400": description: Bad Request schema: $ref: '#/definitions/api.Error' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' "500": description: Internal Server Error schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Replace policies of an user tags: - v16.?.? /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 tags: - v16.7.2 /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 tags: - v16.7.2 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 tags: - v16.7.2 /api/v3/metrics: get: description: List all known metrics with their description and labels operationId: metrics-3-describe produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/api.MetricsDescription' type: array security: - ApiKeyAuth: [] summary: List all known metrics with their description and labels tags: - v16.10.0 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 tags: - v16.7.2 /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: Domain to act on in: query name: domain type: string - 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 other pattern matches. in: query name: idpattern type: string - description: Glob pattern for process references. If empty all IDs will be returned. Intersected with results from other pattern matches. in: query name: refpattern type: string - description: Glob pattern for process owners. If empty all IDs will be returned. Intersected with results from other pattern matches. in: query name: ownerpattern type: string - description: Glob pattern for process domain. If empty all IDs will be returned. Intersected with results from other pattern matches. in: query name: domainpattern type: string produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/api.Process' type: array security: - ApiKeyAuth: [] summary: List all known processes tags: - v16.7.2 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' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Add a new process tags: - v16.7.2 /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 - description: Domain to act on in: query name: domain type: string produces: - application/json responses: "200": description: OK schema: type: string "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Delete a process by its ID tags: - v16.7.2 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: Domain to act on in: query name: domain 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' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: List a process by its ID tags: - v16.7.2 put: consumes: - application/json description: Replace an existing process. operationId: process-3-update parameters: - description: Process ID in: path name: id required: true type: string - description: Domain to act on in: query name: domain 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' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Replace an existing process tags: - v16.7.2 /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: Domain to act on in: query name: domain 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' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Issue a command to a process tags: - v16.7.2 /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 - description: Domain to act on in: query name: domain type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.ProcessConfig' "400": description: Bad Request schema: $ref: '#/definitions/api.Error' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Get the configuration of a process tags: - v16.7.2 /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 - description: Domain to act on in: query name: domain type: string produces: - application/json responses: "200": description: OK schema: {} "400": description: Bad Request schema: $ref: '#/definitions/api.Error' "403": description: Forbidden 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 tags: - v16.7.2 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: Domain to act on in: query name: domain 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' "403": description: Forbidden 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 tags: - v16.7.2 /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 tags: - v16.7.2 /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 tags: - v16.7.2 /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 tags: - v16.7.2 /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 tags: - v16.7.2 /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 tags: - v16.7.2 /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 tags: - v16.7.2 /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 - description: Domain to act on in: query name: domain type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.Probe' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Probe a known process tags: - v16.7.2 /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 - description: Select only the report with that created_at date. Unix timestamp, leave empty for any. In combination with exited_at it denotes a range or reports. in: query name: created_at type: integer - description: Select only the report with that exited_at date. Unix timestamp, leave empty for any. In combination with created_at it denotes a range or reports. in: query name: exited_at type: integer - description: Domain to act on in: query name: domain type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.ProcessReport' "400": description: Bad Request schema: $ref: '#/definitions/api.Error' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Get the logs of a process tags: - v16.7.2 put: consumes: - application/json description: Set the report history a process operationId: process-3-set-report parameters: - description: Process ID in: path name: id required: true type: string - description: Domain to act on in: query name: domain type: string - description: Process report in: body name: report required: true schema: $ref: '#/definitions/api.ProcessReport' produces: - application/json responses: "200": description: OK schema: type: string "400": description: Bad Request schema: $ref: '#/definitions/api.Error' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Set the report history a process tags: - v16.?.? /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 - description: Domain to act on in: query name: domain type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/api.ProcessState' "400": description: Bad Request schema: $ref: '#/definitions/api.Error' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Get the state of a process tags: - v16.7.2 /api/v3/process/probe: post: consumes: - application/json description: Probe a process to get a detailed stream information on the inputs. operationId: process-3-probe-config 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.Probe' "400": description: Bad Request schema: $ref: '#/definitions/api.Error' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Add a new process tags: - v16.?.? /api/v3/report/process: get: description: Search log history of all processes by providing patterns for process IDs and references, a state and a time range. All are optional. operationId: process-3-search-report-history parameters: - 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 - description: State of a process, leave empty for any in: query name: state type: string - description: Search range of when the report has been exited, older than this value. Unix timestamp, leave empty for any in: query name: from type: integer - description: Search range of when the report has been exited, younger than this value. Unix timestamp, leave empty for any in: query name: to type: integer produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/api.ProcessReportSearchResult' type: array "400": description: Bad Request schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Search log history of all processes tags: - v16.?.? /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 tags: - v16.7.2 /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 tags: - v16.7.2 /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 tags: - v16.7.2 /api/v3/session/token/{username}: put: consumes: - application/json description: Request access tokens operationId: session-3-create-token parameters: - description: Username in: path name: username required: true type: string - description: Token request in: body name: config required: true schema: items: $ref: '#/definitions/api.SessionTokenRequest' type: array produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/api.SessionTokenRequest' type: array "400": description: Bad Request schema: $ref: '#/definitions/api.Error' "403": description: Forbidden schema: $ref: '#/definitions/api.Error' "404": description: Not Found schema: $ref: '#/definitions/api.Error' security: - ApiKeyAuth: [] summary: Request access tokens tags: - v16.?.? /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 tags: - v16.7.2 /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 tags: - v16.7.2 /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: items: $ref: '#/definitions/api.SRTChannel' type: array type: array security: - ApiKeyAuth: [] summary: List all publishing SRT treams tags: - v16.9.0 /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 tags: - v16.7.2 /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"