datarhei-dragonfork-core/docs/swagger.yaml

3270 lines
80 KiB
YAML
Raw Normal View History

2022-05-13 13:26:45 -04:00
basePath: /
definitions:
api.AVstream:
properties:
aqueue:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
drop:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
dup:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
duplicating:
type: boolean
enc:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
gop:
type: string
input:
$ref: '#/definitions/api.AVstreamIO'
looping:
type: boolean
2023-05-05 06:03:48 -04:00
looping_runtime:
format: uint64
type: integer
2022-05-13 13:26:45 -04:00
output:
$ref: '#/definitions/api.AVstreamIO'
queue:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
type: object
api.AVstreamIO:
properties:
packet:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
size_kb:
type: integer
state:
enum:
- running
- idle
type: string
time:
type: integer
type: object
api.About:
properties:
app:
type: string
auths:
items:
type: string
type: array
created_at:
type: string
id:
type: string
name:
type: string
uptime_seconds:
type: integer
version:
$ref: '#/definitions/api.Version'
type: object
api.Command:
properties:
command:
enum:
- start
- stop
- restart
- reload
type: string
required:
- command
type: object
2022-06-03 11:21:52 -04:00
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:
2022-10-13 14:54:52 -04:00
$ref: '#/definitions/value.Auth0Tenant'
2022-06-03 11:21:52 -04:00
type: array
type: object
disable_localhost:
type: boolean
enable:
type: boolean
jwt:
properties:
secret:
type: string
type: object
password:
type: string
username:
type: string
type: object
read_only:
type: boolean
type: object
created_at:
2023-01-31 08:45:58 -05:00
description: When this config has been persisted
2022-06-03 11:21:52 -04:00
type: string
db:
properties:
dir:
type: string
type: object
debug:
properties:
force_gc:
format: int
2022-06-03 11:21:52 -04:00
type: integer
2023-01-10 13:03:26 -05:00
memory_limit_mbytes:
format: int64
2023-01-10 13:03:26 -05:00
type: integer
2022-06-03 11:21:52 -04:00
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
2022-06-03 11:21:52 -04:00
type: integer
max_lines:
format: int
2022-06-03 11:21:52 -04:00
type: integer
type: object
max_processes:
format: int64
2022-06-03 11:21:52 -04:00
type: integer
type: object
host:
properties:
auto:
type: boolean
name:
items:
type: string
type: array
type: object
id:
2022-05-13 13:26:45 -04:00
type: string
2022-06-03 11:21:52 -04:00
log:
properties:
level:
enum:
- debug
- info
- warn
- error
- silent
type: string
max_lines:
format: int
2022-06-03 11:21:52 -04:00
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
2022-06-03 11:21:52 -04:00
type: integer
range_sec:
description: seconds
format: int64
2022-06-03 11:21:52 -04:00
type: integer
type: object
name:
type: string
playout:
properties:
enable:
type: boolean
max_port:
format: int
2022-06-03 11:21:52 -04:00
type: integer
min_port:
format: int
2022-06-03 11:21:52 -04:00
type: integer
type: object
router:
properties:
blocked_prefixes:
items:
type: string
type: array
routes:
additionalProperties:
type: string
type: object
ui_path:
type: string
type: object
rtmp:
properties:
address:
type: string
2022-07-29 05:24:22 -04:00
address_tls:
type: string
2022-06-03 11:21:52 -04:00
app:
type: string
enable:
type: boolean
enable_tls:
type: boolean
token:
type: string
type: object
service:
properties:
enable:
type: boolean
token:
type: string
url:
type: string
type: object
sessions:
properties:
enable:
type: boolean
ip_ignorelist:
items:
type: string
type: array
max_bitrate_mbit:
format: uint64
2022-06-03 11:21:52 -04:00
type: integer
max_sessions:
format: uint64
2022-06-03 11:21:52 -04:00
type: integer
persist:
type: boolean
persist_interval_sec:
format: int
2022-06-03 11:21:52 -04:00
type: integer
session_timeout_sec:
format: int
2022-06-03 11:21:52 -04:00
type: integer
type: object
srt:
properties:
address:
type: string
enable:
type: boolean
2022-07-01 12:39:39 -04:00
log:
properties:
enable:
type: boolean
topics:
items:
type: string
type: array
type: object
passphrase:
type: string
token:
type: string
type: object
2022-06-03 11:21:52 -04:00
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
2022-06-03 11:21:52 -04:00
type: integer
max_size_mbytes:
format: uint64
2022-06-03 11:21:52 -04:00
type: integer
ttl_seconds:
format: int64
2022-06-03 11:21:52 -04:00
type: integer
types:
2022-08-18 03:13:00 -04:00
properties:
allow:
items:
type: string
type: array
block:
items:
type: string
type: array
type: object
2022-06-03 11:21:52 -04:00
type: object
dir:
type: string
max_size_mbytes:
format: int64
2022-06-03 11:21:52 -04:00
type: integer
type: object
memory:
properties:
auth:
properties:
enable:
type: boolean
password:
type: string
username:
type: string
type: object
max_size_mbytes:
format: int64
2022-06-03 11:21:52 -04:00
type: integer
purge:
type: boolean
type: object
mimetypes_file:
type: string
2023-01-31 08:45:58 -05:00
s3:
items:
$ref: '#/definitions/value.S3Storage'
type: array
2022-06-03 11:21:52 -04:00
type: object
tls:
properties:
address:
type: string
auto:
type: boolean
cert_file:
type: string
2022-10-13 14:54:52 -04:00
email:
type: string
2022-06-03 11:21:52 -04:00
enable:
type: boolean
key_file:
type: string
type: object
update_check:
type: boolean
version:
format: int64
2022-06-03 11:21:52 -04:00
type: integer
2022-05-13 13:26:45 -04:00
type: object
api.ConfigError:
additionalProperties:
items:
type: string
type: array
type: object
api.Error:
properties:
code:
format: int
2022-05-13 13:26:45 -04:00
type: integer
details:
items:
type: string
type: array
message:
type: string
type: object
api.FileInfo:
properties:
last_modified:
format: int64
2022-05-13 13:26:45 -04:00
type: integer
name:
type: string
size_bytes:
format: int64
2022-05-13 13:26:45 -04:00
type: integer
type: object
2023-01-31 08:45:58 -05:00
api.FilesystemInfo:
properties:
mount:
type: string
name:
type: string
type:
type: string
type: object
2022-05-13 13:26:45 -04:00
api.GraphQuery:
properties:
query:
type: string
2022-06-03 11:21:52 -04:00
variables: {}
2022-05-13 13:26:45 -04:00
type: object
api.GraphResponse:
properties:
2022-06-03 11:21:52 -04:00
data: {}
2022-05-13 13:26:45 -04:00
errors:
2022-06-03 11:21:52 -04:00
items: {}
2022-05-13 13:26:45 -04:00
type: array
type: object
api.JWT:
properties:
access_token:
type: string
refresh_token:
type: string
type: object
api.JWTRefresh:
properties:
access_token:
type: string
type: object
api.LogEvent:
additionalProperties: true
type: object
api.Login:
properties:
password:
type: string
username:
type: string
required:
- password
- username
type: object
api.MetricsDescription:
properties:
description:
type: string
labels:
items:
type: string
type: array
name:
type: string
type: object
2022-05-13 13:26:45 -04:00
api.MetricsQuery:
properties:
interval_sec:
format: int64
2022-05-13 13:26:45 -04:00
type: integer
metrics:
items:
$ref: '#/definitions/api.MetricsQueryMetric'
type: array
2022-06-03 11:21:52 -04:00
timerange_sec:
format: int64
2022-05-13 13:26:45 -04:00
type: integer
type: object
api.MetricsQueryMetric:
properties:
labels:
additionalProperties:
type: string
type: object
name:
type: string
type: object
api.MetricsResponse:
properties:
2022-06-03 11:21:52 -04:00
interval_sec:
format: int64
2022-06-03 11:21:52 -04:00
type: integer
2022-05-13 13:26:45 -04:00
metrics:
items:
$ref: '#/definitions/api.MetricsResponseMetric'
type: array
2022-06-03 11:21:52 -04:00
timerange_sec:
format: int64
2022-06-03 11:21:52 -04:00
type: integer
2022-05-13 13:26:45 -04:00
type: object
api.MetricsResponseMetric:
properties:
labels:
additionalProperties:
type: string
type: object
name:
type: string
values:
items:
2022-06-03 11:21:52 -04:00
$ref: '#/definitions/api.MetricsResponseValue'
2022-05-13 13:26:45 -04:00
type: array
type: object
2022-06-03 11:21:52 -04:00
api.MetricsResponseValue:
properties:
ts:
type: string
value:
type: number
type: object
2022-05-13 13:26:45 -04:00
api.PlayoutStatus:
properties:
aqueue:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
2022-06-03 11:21:52 -04:00
debug: {}
2022-05-13 13:26:45 -04:00
drop:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
dup:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
duplicating:
type: boolean
enc:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
gop:
type: string
id:
type: string
input:
$ref: '#/definitions/api.PlayoutStatusIO'
looping:
type: boolean
output:
$ref: '#/definitions/api.PlayoutStatusIO'
queue:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
stream:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
swap:
$ref: '#/definitions/api.PlayoutStatusSwap'
url:
type: string
type: object
api.PlayoutStatusIO:
properties:
packet:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
size_kb:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
state:
enum:
- running
- idle
type: string
time:
format: uint64
2022-05-13 13:26:45 -04:00
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
2022-05-13 13:26:45 -04:00
type: integer
codec:
type: string
coder:
type: string
duration_sec:
type: number
format:
type: string
fps:
description: video
type: number
height:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
index:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
language:
type: string
layout:
type: string
pix_fmt:
type: string
sampling_hz:
description: audio
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
stream:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
type:
type: string
url:
description: common
type: string
width:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
type: object
api.Process:
properties:
config:
$ref: '#/definitions/api.ProcessConfig'
created_at:
format: int64
2022-05-13 13:26:45 -04:00
type: integer
id:
type: string
2022-06-03 11:21:52 -04:00
metadata: {}
2022-05-13 13:26:45 -04:00
reference:
type: string
report:
$ref: '#/definitions/api.ProcessReport'
state:
$ref: '#/definitions/api.ProcessState'
type:
type: string
2023-05-05 06:03:48 -04:00
updated_at:
format: int64
type: integer
2022-05-13 13:26:45 -04:00
type: object
api.ProcessConfig:
properties:
autostart:
type: boolean
id:
type: string
input:
items:
$ref: '#/definitions/api.ProcessConfigIO'
type: array
limits:
$ref: '#/definitions/api.ProcessConfigLimits'
options:
items:
type: string
type: array
output:
items:
$ref: '#/definitions/api.ProcessConfigIO'
type: array
reconnect:
type: boolean
reconnect_delay_seconds:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
reference:
type: string
stale_timeout_seconds:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
type:
enum:
- ffmpeg
2022-06-03 11:21:52 -04:00
- ""
2022-05-13 13:26:45 -04:00
type: string
required:
- input
- output
type: object
api.ProcessConfigIO:
properties:
address:
type: string
2022-06-03 11:21:52 -04:00
cleanup:
items:
$ref: '#/definitions/api.ProcessConfigIOCleanup'
type: array
2022-05-13 13:26:45 -04:00
id:
type: string
options:
items:
type: string
type: array
required:
- address
2022-06-03 11:21:52 -04:00
type: object
api.ProcessConfigIOCleanup:
properties:
max_file_age_seconds:
format: uint
2022-06-03 11:21:52 -04:00
type: integer
max_files:
format: uint
2022-06-03 11:21:52 -04:00
type: integer
pattern:
type: string
purge_on_delete:
type: boolean
required:
- pattern
2022-05-13 13:26:45 -04:00
type: object
api.ProcessConfigLimits:
properties:
cpu_usage:
type: number
memory_mbytes:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
waitfor_seconds:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
type: object
api.ProcessReport:
properties:
created_at:
format: int64
2022-05-13 13:26:45 -04:00
type: integer
history:
items:
$ref: '#/definitions/api.ProcessReportHistoryEntry'
type: array
log:
items:
items:
type: string
type: array
type: array
prelude:
items:
type: string
type: array
type: object
api.ProcessReportHistoryEntry:
properties:
created_at:
format: int64
2022-05-13 13:26:45 -04:00
type: integer
log:
items:
items:
type: string
type: array
type: array
prelude:
items:
type: string
type: array
type: object
api.ProcessState:
properties:
command:
items:
type: string
type: array
cpu_usage:
type: number
exec:
type: string
last_logline:
type: string
memory_bytes:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
order:
type: string
progress:
$ref: '#/definitions/api.Progress'
reconnect_seconds:
format: int64
2022-05-13 13:26:45 -04:00
type: integer
runtime_seconds:
format: int64
2022-05-13 13:26:45 -04:00
type: integer
type: object
api.Progress:
properties:
bitrate_kbit:
description: kbit/s
type: number
drop:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
dup:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
fps:
type: number
frame:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
inputs:
items:
$ref: '#/definitions/api.ProgressIO'
type: array
outputs:
items:
$ref: '#/definitions/api.ProgressIO'
type: array
packet:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
q:
type: number
size_kb:
description: kbytes
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
speed:
type: number
time:
type: number
type: object
api.ProgressIO:
properties:
address:
type: string
avstream:
2023-01-10 13:03:26 -05:00
allOf:
- $ref: '#/definitions/api.AVstream'
2022-05-13 13:26:45 -04:00
description: avstream
bitrate_kbit:
description: kbit/s
type: number
channels:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
codec:
type: string
coder:
type: string
extradata_size_bytes:
description: bytes
format: uint64
type: integer
2022-05-13 13:26:45 -04:00
format:
type: string
fps:
type: number
frame:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
framerate:
2023-05-05 06:03:48 -04:00
$ref: '#/definitions/api.ProgressIOFramerate'
2022-05-13 13:26:45 -04:00
height:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
id:
type: string
index:
description: General
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
keyframe:
format: uint64
type: integer
2022-05-13 13:26:45 -04:00
layout:
type: string
packet:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
pix_fmt:
description: Video
type: string
pps:
type: number
q:
type: number
sampling_hz:
description: Audio
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
size_kb:
description: kbytes
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
stream:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
type:
type: string
width:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
type: object
2023-05-05 06:03:48 -04:00
api.ProgressIOFramerate:
properties:
avg:
type: number
max:
type: number
min:
type: number
type: object
2022-05-13 13:26:45 -04:00
api.RTMPChannel:
properties:
name:
type: string
type: object
2022-07-01 09:31:07 -04:00
api.SRTChannels:
properties:
2022-07-01 09:31:07 -04:00
connections:
additionalProperties:
$ref: '#/definitions/api.SRTConnection'
type: object
log:
additionalProperties:
items:
2022-07-01 12:39:39 -04:00
$ref: '#/definitions/api.SRTLog'
2022-07-01 09:31:07 -04:00
type: array
type: object
publisher:
additionalProperties:
type: integer
type: object
subscriber:
additionalProperties:
items:
type: integer
type: array
type: object
type: object
api.SRTConnection:
properties:
log:
additionalProperties:
items:
2022-07-01 12:39:39 -04:00
$ref: '#/definitions/api.SRTLog'
2022-07-01 09:31:07 -04:00
type: array
type: object
stats:
$ref: '#/definitions/api.SRTStatistics'
type: object
2022-07-01 12:39:39 -04:00
api.SRTLog:
properties:
msg:
items:
type: string
type: array
ts:
format: int64
2022-07-01 12:39:39 -04:00
type: integer
type: object
2022-07-01 09:31:07 -04:00
api.SRTStatistics:
properties:
avail_recv_buf_bytes:
description: The available space in the receiver's buffer, in bytes
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
avail_send_buf_bytes:
description: The available space in the sender's buffer, in bytes
format: uint64
2022-07-01 09:31:07 -04:00
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
2022-07-01 09:31:07 -04:00
type: integer
flow_window_pkt:
description: The maximum number of packets that can be "in flight"
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
max_bandwidth_mbit:
description: Transmission bandwidth limit, in Mbps
type: number
mss_bytes:
description: Maximum Segment Size (MSS), in bytes
format: uint64
2022-07-01 09:31:07 -04:00
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
2022-07-01 09:31:07 -04:00
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
2022-07-01 09:31:07 -04:00
type: integer
recv_buf_bytes:
description: Instantaneous (current) value of pktRcvBuf, expressed in bytes,
including payload and all headers (IP, TCP, SRT)
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
recv_buf_ms:
description: The timespan (msec) of acknowledged packets in the receiver's
buffer
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
recv_buf_pkt:
description: The number of acknowledged packets in receiver's buffer
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
recv_bytes:
description: Same as pktRecv, but expressed in bytes, including payload and
all the headers (IP, TCP, SRT)
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
recv_drop_bytes:
description: Same as pktRcvDrop, but expressed in bytes, including payload
and all the headers (IP, TCP, SRT)
format: uint64
2022-07-01 09:31:07 -04:00
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
2022-07-01 09:31:07 -04:00
type: integer
recv_km_pkt:
description: The total number of received KM (Key Material) control packets
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
2022-10-28 11:24:57 -04:00
recv_loss_bytes:
2022-07-01 09:31:07 -04:00
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
2022-07-01 09:31:07 -04:00
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
2022-07-01 09:31:07 -04:00
type: integer
recv_nak_pkt:
description: The total number of received NAK (Negative Acknowledgement) control
packets
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
recv_pkt:
description: The total number of received DATA packets, including retransmitted
packets
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
recv_retran_pkts:
description: The total number of retransmitted packets registered at the receiver
side
format: uint64
2022-07-01 09:31:07 -04:00
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
2022-07-01 09:31:07 -04:00
type: integer
recv_undecrypt_bytes:
description: Same as pktRcvUndecrypt, but expressed in bytes, including payload
and all the headers (IP, TCP, SRT)
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
recv_undecrypt_pkt:
description: The total number of packets that failed to be decrypted at the
receiver side
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
recv_unique_bytes:
description: Same as pktRecvUnique, but expressed in bytes, including payload
and all the headers (IP, TCP, SRT)
format: uint64
2022-07-01 09:31:07 -04:00
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
2022-07-01 09:31:07 -04:00
type: integer
reorder_tolerance_pkt:
description: Instant value of the packet reorder tolerance
format: uint64
2022-07-01 09:31:07 -04:00
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
2022-07-01 09:31:07 -04:00
type: integer
send_buf_ms:
description: The timespan (msec) of packets in the sender's buffer (unacknowledged
packets)
format: uint64
2022-07-01 09:31:07 -04:00
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
2022-07-01 09:31:07 -04:00
type: integer
send_drop_bytes:
description: Same as pktSndDrop, but expressed in bytes, including payload
and all the headers (IP, TCP, SRT)
format: uint64
2022-07-01 09:31:07 -04:00
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
2022-07-01 09:31:07 -04:00
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
2022-07-01 09:31:07 -04:00
type: integer
send_km_pkt:
description: The total number of sent KM (Key Material) control packets
format: uint64
2022-07-01 09:31:07 -04:00
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
2022-07-01 09:31:07 -04:00
type: integer
send_tsbpd_delay_ms:
description: Timestamp-based Packet Delivery Delay value of the peer
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
sent_ack_pkt:
description: The total number of sent ACK (Acknowledgement) control packets
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
sent_bytes:
description: Same as pktSent, but expressed in bytes, including payload and
all the headers (IP, TCP, SRT)
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
sent_nak_pkt:
description: The total number of sent NAK (Negative Acknowledgement) control
packets
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
sent_pkt:
description: The total number of sent DATA packets, including retransmitted
packets
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
sent_retrans_bytes:
description: Same as pktRetrans, but expressed in bytes, including payload
and all the headers (IP, TCP, SRT)
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
sent_retrans_pkt:
description: The total number of retransmitted packets sent by the SRT sender
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
2022-10-28 11:24:57 -04:00
sent_unique_bytes:
2022-07-01 09:31:07 -04:00
description: Same as pktSentUnique, but expressed in bytes, including payload
and all the headers (IP, TCP, SRT)
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
sent_unique_pkt:
description: The total number of unique DATA packets sent by the SRT sender
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
timestamp_ms:
description: The time elapsed, in milliseconds, since the SRT socket has been
created
format: uint64
2022-07-01 09:31:07 -04:00
type: integer
type: object
2022-05-13 13:26:45 -04:00
api.Session:
properties:
bandwidth_rx_kbit:
description: kbit/s
type: number
bandwidth_tx_kbit:
description: kbit/s
type: number
bytes_rx:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
bytes_tx:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
created_at:
format: int64
2022-05-13 13:26:45 -04:00
type: integer
extra:
type: string
id:
type: string
local:
type: string
reference:
type: string
remote:
type: string
type: object
api.SessionPeers:
properties:
local:
additionalProperties:
$ref: '#/definitions/api.SessionStats'
type: object
sessions:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
traffic_rx_mb:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
traffic_tx_mb:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
type: object
api.SessionStats:
properties:
sessions:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
traffic_rx_mb:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
traffic_tx_mb:
format: uint64
2022-05-13 13:26:45 -04:00
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
2022-05-13 13:26:45 -04:00
type: integer
sessions:
format: uint64
2022-05-13 13:26:45 -04:00
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
2022-05-13 13:26:45 -04:00
type: integer
traffic_rx_mb:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
traffic_tx_mb:
format: uint64
2022-05-13 13:26:45 -04:00
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:
2022-10-13 14:54:52 -04:00
$ref: '#/definitions/value.Auth0Tenant'
2022-05-13 13:26:45 -04:00
type: array
type: object
disable_localhost:
type: boolean
enable:
type: boolean
jwt:
properties:
secret:
type: string
type: object
password:
type: string
username:
type: string
type: object
read_only:
type: boolean
type: object
created_at:
2023-01-31 08:45:58 -05:00
description: When this config has been persisted
2022-05-13 13:26:45 -04:00
type: string
db:
properties:
dir:
type: string
type: object
debug:
properties:
force_gc:
format: int
2022-05-13 13:26:45 -04:00
type: integer
2023-01-10 13:03:26 -05:00
memory_limit_mbytes:
format: int64
2023-01-10 13:03:26 -05:00
type: integer
2022-05-13 13:26:45 -04:00
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
2022-05-13 13:26:45 -04:00
type: integer
max_lines:
format: int
2022-05-13 13:26:45 -04:00
type: integer
type: object
max_processes:
format: int64
2022-05-13 13:26:45 -04:00
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
2022-05-13 13:26:45 -04:00
type: integer
topics:
items:
type: string
type: array
type: object
metrics:
properties:
enable:
type: boolean
enable_prometheus:
type: boolean
interval_sec:
2022-06-03 11:21:52 -04:00
description: seconds
format: int64
2022-05-13 13:26:45 -04:00
type: integer
range_sec:
2022-06-03 11:21:52 -04:00
description: seconds
format: int64
2022-05-13 13:26:45 -04:00
type: integer
type: object
name:
type: string
playout:
properties:
enable:
type: boolean
max_port:
format: int
2022-05-13 13:26:45 -04:00
type: integer
min_port:
format: int
2022-05-13 13:26:45 -04:00
type: integer
type: object
router:
properties:
blocked_prefixes:
items:
type: string
type: array
routes:
additionalProperties:
type: string
type: object
2022-06-03 11:21:52 -04:00
ui_path:
type: string
2022-05-13 13:26:45 -04:00
type: object
rtmp:
properties:
address:
type: string
2022-07-29 05:24:22 -04:00
address_tls:
type: string
2022-05-13 13:26:45 -04:00
app:
type: string
enable:
type: boolean
enable_tls:
type: boolean
token:
type: string
type: object
service:
properties:
enable:
type: boolean
token:
type: string
url:
type: string
type: object
2022-06-03 11:21:52 -04:00
sessions:
2022-05-13 13:26:45 -04:00
properties:
enable:
type: boolean
ip_ignorelist:
items:
type: string
type: array
max_bitrate_mbit:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
max_sessions:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
persist:
type: boolean
persist_interval_sec:
format: int
2022-05-13 13:26:45 -04:00
type: integer
session_timeout_sec:
format: int
2022-05-13 13:26:45 -04:00
type: integer
type: object
srt:
properties:
address:
type: string
enable:
type: boolean
2022-07-01 12:39:39 -04:00
log:
properties:
enable:
type: boolean
topics:
items:
type: string
type: array
type: object
passphrase:
type: string
token:
type: string
type: object
2022-05-13 13:26:45 -04:00
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
2022-05-13 13:26:45 -04:00
type: integer
max_size_mbytes:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
ttl_seconds:
format: int64
2022-05-13 13:26:45 -04:00
type: integer
types:
2022-08-18 03:13:00 -04:00
properties:
allow:
items:
type: string
type: array
block:
items:
type: string
type: array
type: object
2022-05-13 13:26:45 -04:00
type: object
dir:
type: string
max_size_mbytes:
format: int64
2022-05-13 13:26:45 -04:00
type: integer
type: object
memory:
properties:
auth:
properties:
enable:
type: boolean
password:
type: string
username:
type: string
type: object
max_size_mbytes:
format: int64
2022-05-13 13:26:45 -04:00
type: integer
purge:
type: boolean
type: object
mimetypes_file:
type: string
2023-01-31 08:45:58 -05:00
s3:
items:
$ref: '#/definitions/value.S3Storage'
type: array
2022-05-13 13:26:45 -04:00
type: object
tls:
properties:
address:
type: string
auto:
type: boolean
cert_file:
type: string
2022-10-13 14:54:52 -04:00
email:
type: string
2022-05-13 13:26:45 -04:00
enable:
type: boolean
key_file:
type: string
type: object
2022-06-03 11:21:52 -04:00
update_check:
type: boolean
2022-05-13 13:26:45 -04:00
version:
format: int64
2022-05-13 13:26:45 -04:00
type: integer
type: object
api.Skills:
properties:
codecs:
properties:
audio:
items:
$ref: '#/definitions/api.SkillsCodec'
type: array
subtitle:
items:
$ref: '#/definitions/api.SkillsCodec'
type: array
video:
items:
$ref: '#/definitions/api.SkillsCodec'
type: array
type: object
devices:
properties:
demuxers:
items:
$ref: '#/definitions/api.SkillsDevice'
type: array
muxers:
items:
$ref: '#/definitions/api.SkillsDevice'
type: array
type: object
ffmpeg:
properties:
compiler:
type: string
configuration:
type: string
libraries:
items:
$ref: '#/definitions/api.SkillsLibrary'
type: array
version:
type: string
type: object
filter:
items:
$ref: '#/definitions/api.SkillsFilter'
type: array
formats:
properties:
demuxers:
items:
$ref: '#/definitions/api.SkillsFormat'
type: array
muxers:
items:
$ref: '#/definitions/api.SkillsFormat'
type: array
type: object
hwaccels:
items:
$ref: '#/definitions/api.SkillsHWAccel'
type: array
protocols:
properties:
input:
items:
$ref: '#/definitions/api.SkillsProtocol'
type: array
output:
items:
$ref: '#/definitions/api.SkillsProtocol'
type: array
type: object
type: object
api.SkillsCodec:
properties:
decoders:
items:
type: string
type: array
encoders:
items:
type: string
type: array
id:
type: string
name:
type: string
type: object
api.SkillsDevice:
properties:
devices:
items:
$ref: '#/definitions/api.SkillsHWDevice'
type: array
id:
type: string
name:
type: string
type: object
api.SkillsFilter:
properties:
id:
type: string
name:
type: string
type: object
api.SkillsFormat:
properties:
id:
type: string
name:
type: string
type: object
api.SkillsHWAccel:
properties:
id:
type: string
name:
type: string
type: object
api.SkillsHWDevice:
properties:
extra:
type: string
id:
type: string
media:
type: string
name:
type: string
type: object
api.SkillsLibrary:
properties:
compiled:
type: string
linked:
type: string
name:
type: string
type: object
api.SkillsProtocol:
properties:
id:
type: string
name:
type: string
type: object
api.Version:
properties:
arch:
type: string
build_date:
type: string
compiler:
type: string
number:
type: string
repository_branch:
type: string
repository_commit:
type: string
type: object
api.WidgetProcess:
properties:
current_sessions:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
total_sessions:
format: uint64
2022-05-13 13:26:45 -04:00
type: integer
uptime:
type: integer
type: object
2023-01-10 13:03:26 -05:00
github_com_datarhei_core_v16_http_api.Config:
properties:
config:
$ref: '#/definitions/api.ConfigData'
created_at:
type: string
loaded_at:
type: string
overrides:
items:
type: string
type: array
updated_at:
type: string
type: object
2022-10-13 14:54:52 -04:00
value.Auth0Tenant:
2022-05-13 13:26:45 -04:00
properties:
audience:
type: string
clientid:
type: string
domain:
type: string
users:
items:
type: string
type: array
type: object
2023-01-31 08:45:58 -05:00
value.S3Storage:
properties:
access_key_id:
type: string
auth:
$ref: '#/definitions/value.S3StorageAuth'
2023-01-31 08:45:58 -05:00
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:
type: boolean
password:
type: string
username:
type: string
type: object
2022-05-13 13:26:45 -04:00
info:
contact:
email: hello@datarhei.com
2022-06-03 11:21:52 -04:00
name: datarhei Core Support
2022-05-13 13:26:45 -04:00
url: https://www.datarhei.com
2022-06-03 11:21:52 -04:00
description: Expose REST API for the datarhei Core
2022-05-13 13:26:45 -04:00
license:
2022-06-03 11:21:52 -04:00
name: Apache 2.0
url: https://github.com/datarhei/core/v16/blob/main/LICENSE
2022-05-13 13:26:45 -04:00
title: datarhei Core API
2022-06-03 11:21:52 -04:00
version: "3.0"
2022-05-13 13:26:45 -04:00
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:
2022-06-03 11:21:52 -04:00
"200":
2022-10-13 14:54:52 -04:00
description: OK
2022-05-13 13:26:45 -04:00
security:
- ApiKeyAuth: []
summary: Load GraphQL playground
/api/graph/query:
post:
consumes:
- application/json
description: Query the GraphAPI
operationId: graph-query
parameters:
- description: GraphQL Query
in: body
name: query
required: true
schema:
$ref: '#/definitions/api.GraphQuery'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/api.GraphResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.GraphResponse'
security:
- ApiKeyAuth: []
summary: Query the GraphAPI
/api/login:
post:
description: Retrieve valid JWT access and refresh tokens to use for accessing
the API. Login either by username/password or Auth0 token
operationId: jwt-login
parameters:
- description: Login data
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.Login'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/api.JWT'
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
"403":
description: Forbidden
schema:
$ref: '#/definitions/api.Error'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/api.Error'
security:
- Auth0KeyAuth: []
summary: Retrieve an access and a refresh token
/api/login/refresh:
get:
description: Retrieve a new access token by providing the refresh token
operationId: jwt-refresh
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/api.JWTRefresh'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/api.Error'
security:
- ApiRefreshKeyAuth: []
summary: Retrieve a new access token
/api/swagger:
get:
description: Swagger UI for this API
operationId: swagger
produces:
- text/html
responses:
"200":
description: OK
schema:
type: string
summary: Swagger UI for this API
/api/v3/config:
get:
description: Retrieve the currently active Restreamer configuration
operationId: config-3-get
produces:
- application/json
responses:
"200":
description: OK
schema:
2023-01-10 13:03:26 -05:00
$ref: '#/definitions/github_com_datarhei_core_v16_http_api.Config'
2022-05-13 13:26:45 -04:00
security:
- ApiKeyAuth: []
summary: Retrieve the currently active Restreamer configuration
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
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
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/api/v3/config/reload:
get:
description: Reload the currently active configuration. This will trigger a
2023-01-19 05:46:45 -05:00
restart of the Core.
2022-05-13 13:26:45 -04:00
operationId: config-3-reload
produces:
2023-01-19 05:46:45 -05:00
- application/json
2022-05-13 13:26:45 -04:00
responses:
"200":
description: OK
schema:
type: string
security:
- ApiKeyAuth: []
summary: Reload the currently active configuration
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2023-01-31 08:45:58 -05:00
/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
/api/v3/fs/{storage}:
2023-01-31 08:45:58 -05:00
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
2023-01-31 08:45:58 -05:00
required: true
type: string
- description: glob pattern for file names
in: query
name: glob
type: string
- description: none, name, size, lastmod
in: query
name: sort
type: string
- description: asc, desc
in: query
name: order
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/api.FileInfo'
type: array
security:
- ApiKeyAuth: []
summary: List all files on a filesystem
tags:
- v16.7.2
/api/v3/fs/{storage}/{filepath}:
2023-01-31 08:45:58 -05:00
delete:
description: Remove a file from a filesystem
operationId: filesystem-3-delete-file
parameters:
- description: Name of the filesystem
in: path
name: storage
2023-01-31 08:45:58 -05:00
required: true
type: string
- description: Path to file
in: path
name: filepath
2023-01-31 08:45:58 -05:00
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
2023-01-31 08:45:58 -05:00
get:
description: Fetch a file from a filesystem
operationId: filesystem-3-get-file
parameters:
- description: Name of the filesystem
in: path
name: storage
2023-01-31 08:45:58 -05:00
required: true
type: string
- description: Path to file
in: path
name: filepath
2023-01-31 08:45:58 -05:00
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
2023-01-31 08:45:58 -05:00
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
2023-01-31 08:45:58 -05:00
required: true
type: string
- description: Path to file
in: path
name: filepath
2023-01-31 08:45:58 -05:00
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
2022-05-13 13:26:45 -04:00
/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
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/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
2022-06-03 11:21:52 -04:00
schema: {}
2022-05-13 13:26:45 -04:00
"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
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
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
2022-06-03 11:21:52 -04:00
schema: {}
2022-05-13 13:26:45 -04:00
produces:
- application/json
responses:
"200":
description: OK
2022-06-03 11:21:52 -04:00
schema: {}
2022-05-13 13:26:45 -04:00
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
security:
- ApiKeyAuth: []
summary: Add JSON metadata under the given key
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/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
2022-10-13 14:54:52 -04:00
tags:
- v16.10.0
2022-05-13 13:26:45 -04:00
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
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/api/v3/process:
get:
description: List all known processes. Use the query parameter to filter the
listed processes.
2022-07-29 05:24:22 -04:00
operationId: process-3-get-all
2022-05-13 13:26:45 -04:00
parameters:
- description: Comma separated list of fields (config, state, report, metadata)
that will be part of the output. If empty, all fields will be part of the
2022-08-18 03:13:00 -04:00
output.
2022-05-13 13:26:45 -04:00
in: query
name: filter
type: string
2022-08-18 03:13:00 -04:00
- description: Return only these process that have this reference value. If
empty, the reference will be ignored.
2022-05-13 13:26:45 -04:00
in: query
name: reference
type: string
2022-08-18 03:13:00 -04:00
- description: Comma separated list of process ids to list. Overrides the reference.
If empty all IDs will be returned.
2022-05-13 13:26:45 -04:00
in: query
name: id
type: string
2022-08-18 03:13:00 -04:00
- 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
2022-05-13 13:26:45 -04:00
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/api.Process'
type: array
security:
- ApiKeyAuth: []
summary: List all known processes
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
post:
consumes:
- application/json
description: Add a new FFmpeg process
2022-07-29 05:24:22 -04:00
operationId: process-3-add
2022-05-13 13:26:45 -04:00
parameters:
- description: Process config
in: body
name: config
required: true
schema:
$ref: '#/definitions/api.ProcessConfig'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/api.ProcessConfig'
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
security:
- ApiKeyAuth: []
summary: Add a new process
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/api/v3/process/{id}:
delete:
description: Delete a process by its ID
2022-07-29 05:24:22 -04:00
operationId: process-3-delete
2022-05-13 13:26:45 -04:00
parameters:
- description: Process ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"404":
description: Not Found
schema:
$ref: '#/definitions/api.Error'
security:
- ApiKeyAuth: []
summary: Delete a process by its ID
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
get:
description: List a process by its ID. Use the filter parameter to specifiy
the level of detail of the output.
2022-07-29 05:24:22 -04:00
operationId: process-3-get
2022-05-13 13:26:45 -04:00
parameters:
- description: Process ID
in: path
name: id
required: true
type: string
- description: Comma separated list of fields (config, state, report, metadata)
to be part of the output. If empty, all fields will be part of the output
in: query
name: filter
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/api.Process'
"404":
description: Not Found
schema:
$ref: '#/definitions/api.Error'
security:
- ApiKeyAuth: []
summary: List a process by its ID
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
put:
consumes:
- application/json
2022-10-13 14:54:52 -04:00
description: Replace an existing process.
2022-07-29 05:24:22 -04:00
operationId: process-3-update
2022-05-13 13:26:45 -04:00
parameters:
- description: Process ID
in: path
name: id
required: true
type: string
- description: Process config
in: body
name: config
required: true
schema:
$ref: '#/definitions/api.ProcessConfig'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/api.ProcessConfig'
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
"404":
description: Not Found
schema:
$ref: '#/definitions/api.Error'
security:
- ApiKeyAuth: []
summary: Replace an existing process
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/api/v3/process/{id}/command:
put:
consumes:
- application/json
description: 'Issue a command to a process: start, stop, reload, restart'
2022-07-29 05:24:22 -04:00
operationId: process-3-command
2022-05-13 13:26:45 -04:00
parameters:
- description: Process ID
in: path
name: id
required: true
type: string
- description: Process command
in: body
name: command
required: true
schema:
$ref: '#/definitions/api.Command'
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
"404":
description: Not Found
schema:
$ref: '#/definitions/api.Error'
security:
- ApiKeyAuth: []
summary: Issue a command to a process
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/api/v3/process/{id}/config:
get:
description: Get the configuration of a process. This is the configuration as
provided by Add or Update.
2022-07-29 05:24:22 -04:00
operationId: process-3-get-config
2022-05-13 13:26:45 -04:00
parameters:
- description: Process ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/api.ProcessConfig'
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
"404":
description: Not Found
schema:
$ref: '#/definitions/api.Error'
security:
- ApiKeyAuth: []
summary: Get the configuration of a process
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/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.
2022-07-29 05:24:22 -04:00
operationId: process-3-get-process-metadata
2022-05-13 13:26:45 -04:00
parameters:
- description: Process ID
in: path
name: id
required: true
type: string
- description: Key for data store
in: path
name: key
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
2022-06-03 11:21:52 -04:00
schema: {}
2022-05-13 13:26:45 -04:00
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
"404":
description: Not Found
schema:
$ref: '#/definitions/api.Error'
security:
- ApiKeyAuth: []
summary: Retrieve JSON metadata stored with a process under a key
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
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.
2022-07-29 05:24:22 -04:00
operationId: process-3-set-process-metadata
2022-05-13 13:26:45 -04:00
parameters:
- description: Process ID
in: path
name: id
required: true
type: string
- description: Key for data store
in: path
name: key
required: true
type: string
- description: Arbitrary JSON data. The null value will remove the key and its
contents
in: body
name: data
required: true
2022-06-03 11:21:52 -04:00
schema: {}
2022-05-13 13:26:45 -04:00
produces:
- application/json
responses:
"200":
description: OK
2022-06-03 11:21:52 -04:00
schema: {}
2022-05-13 13:26:45 -04:00
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
"404":
description: Not Found
schema:
$ref: '#/definitions/api.Error'
security:
- ApiKeyAuth: []
summary: Add JSON metadata with a process under the given key
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/api/v3/process/{id}/playout/{inputid}/errorframe/{name}:
post:
consumes:
- application/octet-stream
description: Upload an error frame which will be encoded immediately
2022-07-29 05:24:22 -04:00
operationId: process-3-playout-errorframe
2022-05-13 13:26:45 -04:00
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
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/api/v3/process/{id}/playout/{inputid}/errorframe/encode:
get:
description: Immediately encode the errorframe (if available and looping)
2022-07-29 05:24:22 -04:00
operationId: process-3-playout-errorframencode
2022-05-13 13:26:45 -04:00
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
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/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.
2022-07-29 05:24:22 -04:00
operationId: process-3-playout-keyframe
2022-05-13 13:26:45 -04:00
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
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/api/v3/process/{id}/playout/{inputid}/reopen:
get:
description: Close the current input stream such that it will be automatically
re-opened
2022-07-29 05:24:22 -04:00
operationId: process-3-playout-reopen-input
2022-05-13 13:26:45 -04:00
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
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/api/v3/process/{id}/playout/{inputid}/status:
get:
description: Get the current playout status of an input of a process
2022-07-29 05:24:22 -04:00
operationId: process-3-playout-status
2022-05-13 13:26:45 -04:00
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
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/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.
2022-07-29 05:24:22 -04:00
operationId: process-3-playout-stream
2022-05-13 13:26:45 -04:00
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
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/api/v3/process/{id}/probe:
get:
description: Probe an existing process to get a detailed stream information
2022-10-13 14:54:52 -04:00
on the inputs.
2022-07-29 05:24:22 -04:00
operationId: process-3-probe
2022-05-13 13:26:45 -04:00
parameters:
- description: Process ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/api.Probe'
security:
- ApiKeyAuth: []
summary: Probe a process
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/api/v3/process/{id}/report:
get:
2022-10-13 14:54:52 -04:00
description: Get the logs and the log history of a process.
2022-07-29 05:24:22 -04:00
operationId: process-3-get-report
2022-05-13 13:26:45 -04:00
parameters:
- description: Process ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/api.ProcessReport'
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
"404":
description: Not Found
schema:
$ref: '#/definitions/api.Error'
security:
- ApiKeyAuth: []
summary: Get the logs of a process
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/api/v3/process/{id}/state:
get:
2022-10-13 14:54:52 -04:00
description: Get the state and progress data of a process.
2022-07-29 05:24:22 -04:00
operationId: process-3-get-state
2022-05-13 13:26:45 -04:00
parameters:
- description: Process ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/api.ProcessState'
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
"404":
description: Not Found
schema:
$ref: '#/definitions/api.Error'
security:
- ApiKeyAuth: []
summary: Get the state of a process
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/api/v3/rtmp:
get:
2022-10-13 14:54:52 -04:00
description: List all currently publishing RTMP streams.
2022-05-13 13:26:45 -04:00
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
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/api/v3/session:
get:
2022-10-13 14:54:52 -04:00
description: Get a summary of all active and past sessions of the given collector.
2022-05-13 13:26:45 -04:00
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
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/api/v3/session/active:
get:
description: Get a minimal summary of all active sessions (i.e. number of sessions,
2022-10-13 14:54:52 -04:00
bandwidth).
2022-05-13 13:26:45 -04:00
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
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/api/v3/skills:
get:
2022-10-13 14:54:52 -04:00
description: List all detected FFmpeg capabilities.
2022-05-13 13:26:45 -04:00
operationId: skills-3
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/api.Skills'
security:
- ApiKeyAuth: []
summary: FFmpeg capabilities
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/api/v3/skills/reload:
get:
2022-10-13 14:54:52 -04:00
description: Refresh the available FFmpeg capabilities.
2022-05-13 13:26:45 -04:00
operationId: skills-3-reload
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/api.Skills'
security:
- ApiKeyAuth: []
summary: Refresh FFmpeg capabilities
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
/api/v3/srt:
get:
2022-07-01 09:31:07 -04:00
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:
2022-07-01 09:31:07 -04:00
$ref: '#/definitions/api.SRTChannels'
type: array
security:
- ApiKeyAuth: []
summary: List all publishing SRT treams
2022-10-13 14:54:52 -04:00
tags:
- v16.9.0
2022-05-13 13:26:45 -04:00
/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
2022-10-13 14:54:52 -04:00
tags:
- v16.7.2
2022-05-13 13:26:45 -04:00
/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"