Files
core/docs/swagger.yaml

5533 lines
137 KiB
YAML

basePath: /
definitions:
api.AVstream:
properties:
aqueue:
format: uint64
type: integer
drop:
format: uint64
type: integer
dup:
format: uint64
type: integer
duplicating:
type: boolean
enc:
format: uint64
type: integer
gop:
type: string
input:
$ref: '#/definitions/api.AVstreamIO'
looping:
type: boolean
looping_runtime:
format: uint64
type: integer
mode:
type: string
output:
$ref: '#/definitions/api.AVstreamIO'
queue:
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
uptime_seconds:
type: integer
version:
$ref: '#/definitions/api.Version'
type: object
api.ClusterAbout:
properties:
address:
type: string
degraded:
type: boolean
degraded_error:
type: string
id:
type: string
leader:
type: boolean
name:
type: string
nodes:
items:
$ref: '#/definitions/api.ClusterNode'
type: array
raft:
$ref: '#/definitions/api.ClusterRaft'
version:
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
type: object
api.ClusterNodeFiles:
properties:
files:
additionalProperties:
items:
type: string
type: array
type: object
last_update:
description: unix timestamp
type: integer
type: object
api.ClusterNodeResources:
properties:
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_limit_bytes:
description: bytes
type: integer
memory_used_bytes:
description: bytes
type: integer
ncpu:
type: number
type: object
api.ClusterProcessMap:
additionalProperties:
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.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
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:
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:
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
format:
type: string
height:
type: integer
index:
type: integer
inpad:
type: string
layout:
type: string
outpad:
type: string
sampling:
description: Hz
type: integer
src_filter:
type: string
src_name:
type: string
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.ProcessReport:
properties:
created_at:
format: int64
type: integer
exit_state:
type: string
exited_at:
format: int64
type: integer
history:
items:
$ref: '#/definitions/api.ProcessReportEntry'
type: array
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.ProcessReportEntry:
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
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
packet:
format: uint64
type: integer
pix_fmt:
description: Video
type: string
pps:
type: number
q:
type: number
sampling_hz:
description: Audio
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
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.Version:
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.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/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-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: List of identities in the cluster
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: 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
"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
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 files 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 files of a proxy node by its ID
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}/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.Version'
"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/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
"507":
description: Insufficient Storage
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
"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
/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"