mirror of
https://github.com/datarhei/core.git
synced 2025-09-26 20:11:29 +08:00
2569 lines
61 KiB
YAML
2569 lines
61 KiB
YAML
basePath: /
|
|
definitions:
|
|
api.AVstream:
|
|
properties:
|
|
aqueue:
|
|
type: integer
|
|
drop:
|
|
type: integer
|
|
dup:
|
|
type: integer
|
|
duplicating:
|
|
type: boolean
|
|
enc:
|
|
type: integer
|
|
gop:
|
|
type: string
|
|
input:
|
|
$ref: '#/definitions/api.AVstreamIO'
|
|
type: object
|
|
looping:
|
|
type: boolean
|
|
output:
|
|
$ref: '#/definitions/api.AVstreamIO'
|
|
type: object
|
|
queue:
|
|
type: integer
|
|
type: object
|
|
api.AVstreamIO:
|
|
properties:
|
|
packet:
|
|
type: integer
|
|
size_kb:
|
|
type: integer
|
|
state:
|
|
enum:
|
|
- running
|
|
- idle
|
|
type: string
|
|
time:
|
|
type: integer
|
|
type: object
|
|
api.About:
|
|
properties:
|
|
app:
|
|
type: string
|
|
auths:
|
|
items:
|
|
type: string
|
|
type: array
|
|
created_at:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
uptime_seconds:
|
|
type: integer
|
|
version:
|
|
$ref: '#/definitions/api.Version'
|
|
type: object
|
|
type: object
|
|
api.Command:
|
|
properties:
|
|
command:
|
|
enum:
|
|
- start
|
|
- stop
|
|
- restart
|
|
- reload
|
|
type: string
|
|
required:
|
|
- command
|
|
type: object
|
|
api.Config:
|
|
properties:
|
|
client:
|
|
type: string
|
|
token:
|
|
type: string
|
|
url:
|
|
type: string
|
|
type: object
|
|
api.ConfigError:
|
|
additionalProperties:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
api.Error:
|
|
properties:
|
|
code:
|
|
type: integer
|
|
details:
|
|
items:
|
|
type: string
|
|
type: array
|
|
message:
|
|
type: string
|
|
type: object
|
|
api.FileInfo:
|
|
properties:
|
|
last_modified:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
size_bytes:
|
|
type: integer
|
|
type: object
|
|
api.GraphQuery:
|
|
properties:
|
|
query:
|
|
type: string
|
|
variables:
|
|
type: object
|
|
type: object
|
|
api.GraphResponse:
|
|
properties:
|
|
data:
|
|
type: object
|
|
errors:
|
|
items:
|
|
type: object
|
|
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.Metadata:
|
|
type: object
|
|
api.MetricsQuery:
|
|
properties:
|
|
interval_sec:
|
|
type: integer
|
|
metrics:
|
|
items:
|
|
$ref: '#/definitions/api.MetricsQueryMetric'
|
|
type: array
|
|
timeframe_sec:
|
|
type: integer
|
|
type: object
|
|
api.MetricsQueryMetric:
|
|
properties:
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
name:
|
|
type: string
|
|
type: object
|
|
api.MetricsResponse:
|
|
properties:
|
|
metrics:
|
|
items:
|
|
$ref: '#/definitions/api.MetricsResponseMetric'
|
|
type: array
|
|
type: object
|
|
api.MetricsResponseMetric:
|
|
properties:
|
|
labels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
name:
|
|
type: string
|
|
values:
|
|
items:
|
|
items:
|
|
type: number
|
|
type: array
|
|
type: array
|
|
type: object
|
|
api.PlayoutStatus:
|
|
properties:
|
|
aqueue:
|
|
type: integer
|
|
debug:
|
|
type: object
|
|
drop:
|
|
type: integer
|
|
dup:
|
|
type: integer
|
|
duplicating:
|
|
type: boolean
|
|
enc:
|
|
type: integer
|
|
gop:
|
|
type: string
|
|
id:
|
|
type: string
|
|
input:
|
|
$ref: '#/definitions/api.PlayoutStatusIO'
|
|
type: object
|
|
looping:
|
|
type: boolean
|
|
output:
|
|
$ref: '#/definitions/api.PlayoutStatusIO'
|
|
type: object
|
|
queue:
|
|
type: integer
|
|
stream:
|
|
type: integer
|
|
swap:
|
|
$ref: '#/definitions/api.PlayoutStatusSwap'
|
|
type: object
|
|
url:
|
|
type: string
|
|
type: object
|
|
api.PlayoutStatusIO:
|
|
properties:
|
|
packet:
|
|
type: integer
|
|
size_kb:
|
|
type: integer
|
|
state:
|
|
enum:
|
|
- running
|
|
- idle
|
|
type: string
|
|
time:
|
|
type: integer
|
|
type: object
|
|
api.PlayoutStatusSwap:
|
|
properties:
|
|
lasterror:
|
|
type: string
|
|
lasturl:
|
|
type: string
|
|
status:
|
|
type: string
|
|
url:
|
|
type: string
|
|
type: object
|
|
api.Probe:
|
|
properties:
|
|
log:
|
|
items:
|
|
type: string
|
|
type: array
|
|
streams:
|
|
items:
|
|
$ref: '#/definitions/api.ProbeIO'
|
|
type: array
|
|
type: object
|
|
api.ProbeIO:
|
|
properties:
|
|
bitrate_kbps:
|
|
type: number
|
|
channels:
|
|
type: integer
|
|
codec:
|
|
type: string
|
|
coder:
|
|
type: string
|
|
duration_sec:
|
|
type: number
|
|
format:
|
|
type: string
|
|
fps:
|
|
description: video
|
|
type: number
|
|
height:
|
|
type: integer
|
|
index:
|
|
type: integer
|
|
language:
|
|
type: string
|
|
layout:
|
|
type: string
|
|
pix_fmt:
|
|
type: string
|
|
sampling_hz:
|
|
description: audio
|
|
type: integer
|
|
stream:
|
|
type: integer
|
|
type:
|
|
type: string
|
|
url:
|
|
description: common
|
|
type: string
|
|
width:
|
|
type: integer
|
|
type: object
|
|
api.Process:
|
|
properties:
|
|
config:
|
|
$ref: '#/definitions/api.ProcessConfig'
|
|
type: object
|
|
created_at:
|
|
type: integer
|
|
id:
|
|
type: string
|
|
metadata:
|
|
$ref: '#/definitions/api.Metadata'
|
|
type: object
|
|
reference:
|
|
type: string
|
|
report:
|
|
$ref: '#/definitions/api.ProcessReport'
|
|
type: object
|
|
state:
|
|
$ref: '#/definitions/api.ProcessState'
|
|
type: object
|
|
type:
|
|
type: string
|
|
type: object
|
|
api.ProcessConfig:
|
|
properties:
|
|
autostart:
|
|
type: boolean
|
|
id:
|
|
type: string
|
|
input:
|
|
items:
|
|
$ref: '#/definitions/api.ProcessConfigIO'
|
|
type: array
|
|
limits:
|
|
$ref: '#/definitions/api.ProcessConfigLimits'
|
|
type: object
|
|
options:
|
|
items:
|
|
type: string
|
|
type: array
|
|
output:
|
|
items:
|
|
$ref: '#/definitions/api.ProcessConfigIO'
|
|
type: array
|
|
reconnect:
|
|
type: boolean
|
|
reconnect_delay_seconds:
|
|
type: integer
|
|
reference:
|
|
type: string
|
|
stale_timeout_seconds:
|
|
type: integer
|
|
type:
|
|
enum:
|
|
- ffmpeg
|
|
type: string
|
|
required:
|
|
- id
|
|
- input
|
|
- output
|
|
- type
|
|
type: object
|
|
api.ProcessConfigIO:
|
|
properties:
|
|
address:
|
|
type: string
|
|
id:
|
|
type: string
|
|
options:
|
|
items:
|
|
type: string
|
|
type: array
|
|
required:
|
|
- address
|
|
- id
|
|
type: object
|
|
api.ProcessConfigLimits:
|
|
properties:
|
|
cpu_usage:
|
|
type: number
|
|
memory_mbytes:
|
|
type: integer
|
|
waitfor_seconds:
|
|
type: integer
|
|
type: object
|
|
api.ProcessReport:
|
|
properties:
|
|
created_at:
|
|
type: integer
|
|
history:
|
|
items:
|
|
$ref: '#/definitions/api.ProcessReportHistoryEntry'
|
|
type: array
|
|
log:
|
|
items:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: array
|
|
prelude:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
api.ProcessReportHistoryEntry:
|
|
properties:
|
|
created_at:
|
|
type: integer
|
|
log:
|
|
items:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: array
|
|
prelude:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
api.ProcessState:
|
|
properties:
|
|
command:
|
|
items:
|
|
type: string
|
|
type: array
|
|
cpu_usage:
|
|
type: number
|
|
exec:
|
|
type: string
|
|
last_logline:
|
|
type: string
|
|
memory_bytes:
|
|
type: integer
|
|
order:
|
|
type: string
|
|
progress:
|
|
$ref: '#/definitions/api.Progress'
|
|
type: object
|
|
reconnect_seconds:
|
|
type: integer
|
|
runtime_seconds:
|
|
type: integer
|
|
type: object
|
|
api.Progress:
|
|
properties:
|
|
bitrate_kbit:
|
|
description: kbit/s
|
|
type: number
|
|
drop:
|
|
type: integer
|
|
dup:
|
|
type: integer
|
|
fps:
|
|
type: number
|
|
frame:
|
|
type: integer
|
|
inputs:
|
|
items:
|
|
$ref: '#/definitions/api.ProgressIO'
|
|
type: array
|
|
outputs:
|
|
items:
|
|
$ref: '#/definitions/api.ProgressIO'
|
|
type: array
|
|
packet:
|
|
type: integer
|
|
q:
|
|
type: number
|
|
size_kb:
|
|
description: kbytes
|
|
type: integer
|
|
speed:
|
|
type: number
|
|
time:
|
|
type: number
|
|
type: object
|
|
api.ProgressIO:
|
|
properties:
|
|
address:
|
|
type: string
|
|
avstream:
|
|
$ref: '#/definitions/api.AVstream'
|
|
description: avstream
|
|
type: object
|
|
bitrate_kbit:
|
|
description: kbit/s
|
|
type: number
|
|
channels:
|
|
type: integer
|
|
codec:
|
|
type: string
|
|
coder:
|
|
type: string
|
|
format:
|
|
type: string
|
|
fps:
|
|
type: number
|
|
frame:
|
|
type: integer
|
|
height:
|
|
type: integer
|
|
id:
|
|
type: string
|
|
index:
|
|
description: General
|
|
type: integer
|
|
layout:
|
|
type: string
|
|
packet:
|
|
type: integer
|
|
pix_fmt:
|
|
description: Video
|
|
type: string
|
|
pps:
|
|
type: number
|
|
q:
|
|
type: number
|
|
sampling_hz:
|
|
description: Audio
|
|
type: integer
|
|
size_kb:
|
|
description: kbytes
|
|
type: integer
|
|
stream:
|
|
type: integer
|
|
type:
|
|
type: string
|
|
width:
|
|
type: integer
|
|
type: object
|
|
api.RTMPChannel:
|
|
properties:
|
|
name:
|
|
type: string
|
|
type: object
|
|
api.Session:
|
|
properties:
|
|
bandwidth_rx_kbit:
|
|
description: kbit/s
|
|
type: number
|
|
bandwidth_tx_kbit:
|
|
description: kbit/s
|
|
type: number
|
|
bytes_rx:
|
|
type: integer
|
|
bytes_tx:
|
|
type: integer
|
|
created_at:
|
|
type: integer
|
|
extra:
|
|
type: string
|
|
id:
|
|
type: string
|
|
local:
|
|
type: string
|
|
reference:
|
|
type: string
|
|
remote:
|
|
type: string
|
|
type: object
|
|
api.SessionPeers:
|
|
properties:
|
|
local:
|
|
additionalProperties:
|
|
$ref: '#/definitions/api.SessionStats'
|
|
type: object
|
|
sessions:
|
|
type: integer
|
|
traffic_rx_mb:
|
|
type: integer
|
|
traffic_tx_mb:
|
|
type: integer
|
|
type: object
|
|
api.SessionStats:
|
|
properties:
|
|
sessions:
|
|
type: integer
|
|
traffic_rx_mb:
|
|
type: integer
|
|
traffic_tx_mb:
|
|
type: integer
|
|
type: object
|
|
api.SessionSummary:
|
|
properties:
|
|
active:
|
|
$ref: '#/definitions/api.SessionSummaryActive'
|
|
type: object
|
|
summary:
|
|
$ref: '#/definitions/api.SessionSummarySummary'
|
|
type: object
|
|
type: object
|
|
api.SessionSummaryActive:
|
|
properties:
|
|
bandwidth_rx_mbit:
|
|
description: mbit/s
|
|
type: number
|
|
bandwidth_tx_mbit:
|
|
description: mbit/s
|
|
type: number
|
|
list:
|
|
items:
|
|
$ref: '#/definitions/api.Session'
|
|
type: array
|
|
max_bandwidth_rx_mbit:
|
|
description: mbit/s
|
|
type: number
|
|
max_bandwidth_tx_mbit:
|
|
description: mbit/s
|
|
type: number
|
|
max_sessions:
|
|
type: integer
|
|
sessions:
|
|
type: integer
|
|
type: object
|
|
api.SessionSummarySummary:
|
|
properties:
|
|
local:
|
|
additionalProperties:
|
|
$ref: '#/definitions/api.SessionStats'
|
|
type: object
|
|
reference:
|
|
additionalProperties:
|
|
$ref: '#/definitions/api.SessionStats'
|
|
type: object
|
|
remote:
|
|
additionalProperties:
|
|
$ref: '#/definitions/api.SessionPeers'
|
|
type: object
|
|
sessions:
|
|
type: integer
|
|
traffic_rx_mb:
|
|
type: integer
|
|
traffic_tx_mb:
|
|
type: integer
|
|
type: object
|
|
api.SessionsActive:
|
|
additionalProperties:
|
|
items:
|
|
$ref: '#/definitions/api.Session'
|
|
type: array
|
|
type: object
|
|
api.SessionsSummary:
|
|
additionalProperties:
|
|
$ref: '#/definitions/api.SessionSummary'
|
|
type: object
|
|
api.SetConfig:
|
|
properties:
|
|
address:
|
|
type: string
|
|
api:
|
|
properties:
|
|
access:
|
|
properties:
|
|
http:
|
|
properties:
|
|
allow:
|
|
items:
|
|
type: string
|
|
type: array
|
|
block:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
https:
|
|
properties:
|
|
allow:
|
|
items:
|
|
type: string
|
|
type: array
|
|
block:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
type: object
|
|
auth:
|
|
properties:
|
|
auth0:
|
|
properties:
|
|
enable:
|
|
type: boolean
|
|
tenants:
|
|
items:
|
|
$ref: '#/definitions/config.Auth0Tenant'
|
|
type: array
|
|
type: object
|
|
disable_localhost:
|
|
type: boolean
|
|
enable:
|
|
type: boolean
|
|
jwt:
|
|
properties:
|
|
secret:
|
|
type: string
|
|
type: object
|
|
password:
|
|
type: string
|
|
username:
|
|
type: string
|
|
type: object
|
|
read_only:
|
|
type: boolean
|
|
type: object
|
|
created_at:
|
|
type: string
|
|
db:
|
|
properties:
|
|
dir:
|
|
type: string
|
|
type: object
|
|
debug:
|
|
properties:
|
|
force_gc:
|
|
type: integer
|
|
profiling:
|
|
type: boolean
|
|
type: object
|
|
ffmpeg:
|
|
properties:
|
|
access:
|
|
properties:
|
|
input:
|
|
properties:
|
|
allow:
|
|
items:
|
|
type: string
|
|
type: array
|
|
block:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
output:
|
|
properties:
|
|
allow:
|
|
items:
|
|
type: string
|
|
type: array
|
|
block:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
type: object
|
|
binary:
|
|
type: string
|
|
log:
|
|
properties:
|
|
max_history:
|
|
type: integer
|
|
max_lines:
|
|
type: integer
|
|
type: object
|
|
max_processes:
|
|
type: integer
|
|
type: object
|
|
host:
|
|
properties:
|
|
auto:
|
|
type: boolean
|
|
name:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
id:
|
|
type: string
|
|
log:
|
|
properties:
|
|
level:
|
|
enum:
|
|
- debug
|
|
- info
|
|
- warn
|
|
- error
|
|
- silent
|
|
type: string
|
|
max_lines:
|
|
type: integer
|
|
topics:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
metrics:
|
|
properties:
|
|
enable:
|
|
type: boolean
|
|
enable_prometheus:
|
|
type: boolean
|
|
interval_sec:
|
|
type: integer
|
|
range_sec:
|
|
type: integer
|
|
type: object
|
|
name:
|
|
type: string
|
|
playout:
|
|
properties:
|
|
enable:
|
|
type: boolean
|
|
max_port:
|
|
type: integer
|
|
min_port:
|
|
type: integer
|
|
type: object
|
|
router:
|
|
properties:
|
|
blocked_prefixes:
|
|
items:
|
|
type: string
|
|
type: array
|
|
routes:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
rtmp:
|
|
properties:
|
|
address:
|
|
type: string
|
|
app:
|
|
type: string
|
|
enable:
|
|
type: boolean
|
|
enable_tls:
|
|
type: boolean
|
|
token:
|
|
type: string
|
|
type: object
|
|
service:
|
|
properties:
|
|
enable:
|
|
type: boolean
|
|
token:
|
|
type: string
|
|
url:
|
|
type: string
|
|
type: object
|
|
stats:
|
|
properties:
|
|
enable:
|
|
type: boolean
|
|
ip_ignorelist:
|
|
items:
|
|
type: string
|
|
type: array
|
|
max_bitrate_mbit:
|
|
type: integer
|
|
max_sessions:
|
|
type: integer
|
|
persist:
|
|
type: boolean
|
|
persist_interval_sec:
|
|
type: integer
|
|
session_timeout_sec:
|
|
type: integer
|
|
type: object
|
|
storage:
|
|
properties:
|
|
cors:
|
|
properties:
|
|
origins:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
disk:
|
|
properties:
|
|
cache:
|
|
properties:
|
|
enable:
|
|
type: boolean
|
|
max_file_size_mbytes:
|
|
type: integer
|
|
max_size_mbytes:
|
|
type: integer
|
|
ttl_seconds:
|
|
type: integer
|
|
types:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
dir:
|
|
type: string
|
|
max_size_mbytes:
|
|
type: integer
|
|
type: object
|
|
memory:
|
|
properties:
|
|
auth:
|
|
properties:
|
|
enable:
|
|
type: boolean
|
|
password:
|
|
type: string
|
|
username:
|
|
type: string
|
|
type: object
|
|
max_size_mbytes:
|
|
type: integer
|
|
purge:
|
|
type: boolean
|
|
type: object
|
|
mimetypes_file:
|
|
type: string
|
|
type: object
|
|
tls:
|
|
properties:
|
|
address:
|
|
type: string
|
|
auto:
|
|
type: boolean
|
|
cert_file:
|
|
type: string
|
|
enable:
|
|
type: boolean
|
|
key_file:
|
|
type: string
|
|
type: object
|
|
version:
|
|
type: integer
|
|
type: object
|
|
api.Skills:
|
|
properties:
|
|
codecs:
|
|
properties:
|
|
audio:
|
|
items:
|
|
$ref: '#/definitions/api.SkillsCodec'
|
|
type: array
|
|
subtitle:
|
|
items:
|
|
$ref: '#/definitions/api.SkillsCodec'
|
|
type: array
|
|
video:
|
|
items:
|
|
$ref: '#/definitions/api.SkillsCodec'
|
|
type: array
|
|
type: object
|
|
devices:
|
|
properties:
|
|
demuxers:
|
|
items:
|
|
$ref: '#/definitions/api.SkillsDevice'
|
|
type: array
|
|
muxers:
|
|
items:
|
|
$ref: '#/definitions/api.SkillsDevice'
|
|
type: array
|
|
type: object
|
|
ffmpeg:
|
|
properties:
|
|
compiler:
|
|
type: string
|
|
configuration:
|
|
type: string
|
|
libraries:
|
|
items:
|
|
$ref: '#/definitions/api.SkillsLibrary'
|
|
type: array
|
|
version:
|
|
type: string
|
|
type: object
|
|
filter:
|
|
items:
|
|
$ref: '#/definitions/api.SkillsFilter'
|
|
type: array
|
|
formats:
|
|
properties:
|
|
demuxers:
|
|
items:
|
|
$ref: '#/definitions/api.SkillsFormat'
|
|
type: array
|
|
muxers:
|
|
items:
|
|
$ref: '#/definitions/api.SkillsFormat'
|
|
type: array
|
|
type: object
|
|
hwaccels:
|
|
items:
|
|
$ref: '#/definitions/api.SkillsHWAccel'
|
|
type: array
|
|
protocols:
|
|
properties:
|
|
input:
|
|
items:
|
|
$ref: '#/definitions/api.SkillsProtocol'
|
|
type: array
|
|
output:
|
|
items:
|
|
$ref: '#/definitions/api.SkillsProtocol'
|
|
type: array
|
|
type: object
|
|
type: object
|
|
api.SkillsCodec:
|
|
properties:
|
|
decoders:
|
|
items:
|
|
type: string
|
|
type: array
|
|
encoders:
|
|
items:
|
|
type: string
|
|
type: array
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
api.SkillsDevice:
|
|
properties:
|
|
devices:
|
|
items:
|
|
$ref: '#/definitions/api.SkillsHWDevice'
|
|
type: array
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
api.SkillsFilter:
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
api.SkillsFormat:
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
api.SkillsHWAccel:
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
api.SkillsHWDevice:
|
|
properties:
|
|
extra:
|
|
type: string
|
|
id:
|
|
type: string
|
|
media:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
api.SkillsLibrary:
|
|
properties:
|
|
compiled:
|
|
type: string
|
|
linked:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
api.SkillsProtocol:
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
api.Version:
|
|
properties:
|
|
arch:
|
|
type: string
|
|
build_date:
|
|
type: string
|
|
compiler:
|
|
type: string
|
|
number:
|
|
type: string
|
|
repository_branch:
|
|
type: string
|
|
repository_commit:
|
|
type: string
|
|
type: object
|
|
api.WidgetProcess:
|
|
properties:
|
|
current_sessions:
|
|
type: integer
|
|
total_sessions:
|
|
type: integer
|
|
uptime:
|
|
type: integer
|
|
type: object
|
|
config.Auth0Tenant:
|
|
properties:
|
|
audience:
|
|
type: string
|
|
clientid:
|
|
type: string
|
|
domain:
|
|
type: string
|
|
users:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
info:
|
|
contact:
|
|
email: hello@datarhei.com
|
|
name: datarheiCORE Support
|
|
url: https://www.datarhei.com
|
|
description: Expose REST API for the datarheiCORE
|
|
license:
|
|
name: ???
|
|
url: nothing
|
|
title: datarhei Core API
|
|
version: "6.0"
|
|
paths:
|
|
/{path}:
|
|
get:
|
|
description: Fetch a file from the filesystem. If the file is a directory, a
|
|
index.html is returned, if it exists.
|
|
operationId: diskfs-get-file
|
|
parameters:
|
|
- description: Path to file
|
|
in: path
|
|
name: path
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/data
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: file
|
|
"301":
|
|
description: Moved Permanently
|
|
schema:
|
|
type: string
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
summary: Fetch a file from the filesystem
|
|
/api:
|
|
get:
|
|
description: API version and build infos in case auth is valid or not required.
|
|
If auth is required, just the name field is populated.
|
|
operationId: about
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.About'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: API version and build infos
|
|
/api/graph:
|
|
get:
|
|
description: Load GraphQL playground
|
|
operationId: graph-playground
|
|
produces:
|
|
- text/html
|
|
responses:
|
|
"200": {}
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Load GraphQL playground
|
|
/api/graph/query:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Query the GraphAPI
|
|
operationId: graph-query
|
|
parameters:
|
|
- description: GraphQL Query
|
|
in: body
|
|
name: query
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/api.GraphQuery'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.GraphResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/api.GraphResponse'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Query the GraphAPI
|
|
/api/login:
|
|
post:
|
|
description: Retrieve valid JWT access and refresh tokens to use for accessing
|
|
the API. Login either by username/password or Auth0 token
|
|
operationId: jwt-login
|
|
parameters:
|
|
- description: Login data
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/api.Login'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.JWT'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
"403":
|
|
description: Forbidden
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- Auth0KeyAuth: []
|
|
summary: Retrieve an access and a refresh token
|
|
/api/login/refresh:
|
|
get:
|
|
description: Retrieve a new access token by providing the refresh token
|
|
operationId: jwt-refresh
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.JWTRefresh'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiRefreshKeyAuth: []
|
|
summary: Retrieve a new access token
|
|
/api/swagger:
|
|
get:
|
|
description: Swagger UI for this API
|
|
operationId: swagger
|
|
produces:
|
|
- text/html
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
summary: Swagger UI for this API
|
|
/api/v3/config:
|
|
get:
|
|
description: Retrieve the currently active Restreamer configuration
|
|
operationId: config-3-get
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.Config'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Retrieve the currently active Restreamer configuration
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update the current Restreamer configuration by providing a complete
|
|
or partial configuration. Fields that are not provided will not be changed.
|
|
operationId: config-3-set
|
|
parameters:
|
|
- description: Restreamer configuration
|
|
in: body
|
|
name: config
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/api.SetConfig'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
"409":
|
|
description: Conflict
|
|
schema:
|
|
$ref: '#/definitions/api.ConfigError'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update the current Restreamer configuration
|
|
/api/v3/config/reload:
|
|
get:
|
|
description: Reload the currently active configuration. This will trigger a
|
|
restart of the Restreamer.
|
|
operationId: config-3-reload
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Reload the currently active configuration
|
|
/api/v3/fs/disk/:
|
|
get:
|
|
description: List all files on the filesystem. The listing can be ordered by
|
|
name, size, or date of last modification in ascending or descending order.
|
|
operationId: diskfs-3-list-files
|
|
parameters:
|
|
- description: glob pattern for file names
|
|
in: query
|
|
name: glob
|
|
type: string
|
|
- description: none, name, size, lastmod
|
|
in: query
|
|
name: sort
|
|
type: string
|
|
- description: asc, desc
|
|
in: query
|
|
name: order
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/api.FileInfo'
|
|
type: array
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: List all files on the filesystem
|
|
/api/v3/fs/disk/{path}:
|
|
delete:
|
|
description: Remove a file from the filesystem
|
|
operationId: diskfs-3-delete-file
|
|
parameters:
|
|
- description: Path to file
|
|
in: path
|
|
name: path
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Remove a file from the filesystem
|
|
get:
|
|
description: Fetch a file from the filesystem. The contents of that file are
|
|
returned.
|
|
operationId: diskfs-3-get-file
|
|
parameters:
|
|
- description: Path to file
|
|
in: path
|
|
name: path
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/data
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: file
|
|
"301":
|
|
description: Moved Permanently
|
|
schema:
|
|
type: string
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Fetch a file from the filesystem
|
|
put:
|
|
consumes:
|
|
- application/data
|
|
description: Writes or overwrites a file on the filesystem
|
|
operationId: diskfs-3-put-file
|
|
parameters:
|
|
- description: Path to file
|
|
in: path
|
|
name: path
|
|
required: true
|
|
type: string
|
|
- description: File data
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
produces:
|
|
- text/plain
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
type: string
|
|
"204":
|
|
description: No Content
|
|
schema:
|
|
type: string
|
|
"507":
|
|
description: Insufficient Storage
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Add a file to the filesystem
|
|
/api/v3/fs/mem/:
|
|
get:
|
|
description: List all files on the memory filesystem. The listing can be ordered
|
|
by name, size, or date of last modification in ascending or descending order.
|
|
operationId: memfs-3-list-files
|
|
parameters:
|
|
- description: glob pattern for file names
|
|
in: query
|
|
name: glob
|
|
type: string
|
|
- description: none, name, size, lastmod
|
|
in: query
|
|
name: sort
|
|
type: string
|
|
- description: asc, desc
|
|
in: query
|
|
name: order
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/api.FileInfo'
|
|
type: array
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: List all files on the memory filesystem
|
|
/api/v3/fs/mem/{path}:
|
|
delete:
|
|
description: Remove a file from the memory filesystem
|
|
operationId: memfs-delete-file-api
|
|
parameters:
|
|
- description: Path to file
|
|
in: path
|
|
name: path
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Remove a file from the memory filesystem
|
|
get:
|
|
description: Fetch a file from the memory filesystem
|
|
operationId: memfs-3-get-file-api
|
|
parameters:
|
|
- description: Path to file
|
|
in: path
|
|
name: path
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/data
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: file
|
|
"301":
|
|
description: Moved Permanently
|
|
schema:
|
|
type: string
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Fetch a file from the memory filesystem
|
|
patch:
|
|
consumes:
|
|
- application/data
|
|
description: Create a link to a file in the memory filesystem. The file linked
|
|
to has to exist.
|
|
operationId: memfs-3-patch
|
|
parameters:
|
|
- description: Path to file
|
|
in: path
|
|
name: path
|
|
required: true
|
|
type: string
|
|
- description: Path to the file to link to
|
|
in: body
|
|
name: url
|
|
required: true
|
|
schema:
|
|
type: string
|
|
produces:
|
|
- text/plain
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Create a link to a file in the memory filesystem
|
|
put:
|
|
consumes:
|
|
- application/data
|
|
description: Writes or overwrites a file on the memory filesystem
|
|
operationId: memfs-3-put-file-api
|
|
parameters:
|
|
- description: Path to file
|
|
in: path
|
|
name: path
|
|
required: true
|
|
type: string
|
|
- description: File data
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
produces:
|
|
- text/plain
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
type: string
|
|
"204":
|
|
description: No Content
|
|
schema:
|
|
type: string
|
|
"507":
|
|
description: Insufficient Storage
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Add a file to the memory filesystem
|
|
/api/v3/log:
|
|
get:
|
|
description: Get the last log lines of the Restreamer application
|
|
operationId: log-3
|
|
parameters:
|
|
- description: Format of the list of log events (*console, raw)
|
|
in: query
|
|
name: format
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: application log
|
|
schema:
|
|
items:
|
|
type: string
|
|
type: array
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Application log
|
|
/api/v3/metadata/{key}:
|
|
get:
|
|
description: Retrieve the previously stored JSON metadata under the given key.
|
|
If the key is empty, all metadata will be returned.
|
|
operationId: metadata-3-get
|
|
parameters:
|
|
- description: Key for data store
|
|
in: path
|
|
name: key
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.Metadata'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Retrieve JSON metadata from a key
|
|
put:
|
|
description: Add arbitrary JSON metadata under the given key. If the key exists,
|
|
all already stored metadata with this key will be overwritten. If the key
|
|
doesn't exist, it will be created.
|
|
operationId: metadata-3-set
|
|
parameters:
|
|
- description: Key for data store
|
|
in: path
|
|
name: key
|
|
required: true
|
|
type: string
|
|
- description: Arbitrary JSON data
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/api.Metadata'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.Metadata'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Add JSON metadata under the given key
|
|
/api/v3/metrics:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Query the collected metrics
|
|
operationId: metrics-3-metrics
|
|
parameters:
|
|
- description: Metrics query
|
|
in: body
|
|
name: config
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/api.MetricsQuery'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.MetricsResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Query the collected metrics
|
|
/api/v3/process:
|
|
get:
|
|
description: List all known processes. Use the query parameter to filter the
|
|
listed processes.
|
|
operationId: restream-3-get-all
|
|
parameters:
|
|
- description: Comma separated list of fields (config, state, report, metadata)
|
|
that will be part of the output. If empty, all fields will be part of the
|
|
output
|
|
in: query
|
|
name: filter
|
|
type: string
|
|
- description: Return only these process that have this reference value. Overrides
|
|
a list of IDs. If empty, the reference will be ignored
|
|
in: query
|
|
name: reference
|
|
type: string
|
|
- description: Comma separated list of process ids to list
|
|
in: query
|
|
name: id
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/api.Process'
|
|
type: array
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: List all known processes
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Add a new FFmpeg process
|
|
operationId: restream-3-add
|
|
parameters:
|
|
- description: Process config
|
|
in: body
|
|
name: config
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/api.ProcessConfig'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.ProcessConfig'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Add a new process
|
|
/api/v3/process/{id}:
|
|
delete:
|
|
description: Delete a process by its ID
|
|
operationId: restream-3-delete
|
|
parameters:
|
|
- description: Process ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Delete a process by its ID
|
|
get:
|
|
description: List a process by its ID. Use the filter parameter to specifiy
|
|
the level of detail of the output.
|
|
operationId: restream-3-get
|
|
parameters:
|
|
- description: Process ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Comma separated list of fields (config, state, report, metadata)
|
|
to be part of the output. If empty, all fields will be part of the output
|
|
in: query
|
|
name: filter
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.Process'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: List a process by its ID
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Replace an existing process. This is a shortcut for DELETE+POST.
|
|
operationId: restream-3-update
|
|
parameters:
|
|
- description: Process ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Process config
|
|
in: body
|
|
name: config
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/api.ProcessConfig'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.ProcessConfig'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Replace an existing process
|
|
/api/v3/process/{id}/command:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: 'Issue a command to a process: start, stop, reload, restart'
|
|
operationId: restream-3-command
|
|
parameters:
|
|
- description: Process ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Process command
|
|
in: body
|
|
name: command
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/api.Command'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Issue a command to a process
|
|
/api/v3/process/{id}/config:
|
|
get:
|
|
description: Get the configuration of a process. This is the configuration as
|
|
provided by Add or Update.
|
|
operationId: restream-3-get-config
|
|
parameters:
|
|
- description: Process ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.ProcessConfig'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get the configuration of a process
|
|
/api/v3/process/{id}/metadata/{key}:
|
|
get:
|
|
description: Retrieve the previously stored JSON metadata under the given key.
|
|
If the key is empty, all metadata will be returned.
|
|
operationId: restream-3-get-process-metadata
|
|
parameters:
|
|
- description: Process ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Key for data store
|
|
in: path
|
|
name: key
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.Metadata'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Retrieve JSON metadata stored with a process under a key
|
|
put:
|
|
description: Add arbitrary JSON metadata under the given key. If the key exists,
|
|
all already stored metadata with this key will be overwritten. If the key
|
|
doesn't exist, it will be created.
|
|
operationId: restream-3-set-process-metadata
|
|
parameters:
|
|
- description: Process ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Key for data store
|
|
in: path
|
|
name: key
|
|
required: true
|
|
type: string
|
|
- description: Arbitrary JSON data. The null value will remove the key and its
|
|
contents
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/api.Metadata'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.Metadata'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Add JSON metadata with a process under the given key
|
|
/api/v3/process/{id}/playout/{inputid}/errorframe/{name}:
|
|
post:
|
|
consumes:
|
|
- application/octet-stream
|
|
description: Upload an error frame which will be encoded immediately
|
|
operationId: restream-3-playout-errorframe
|
|
parameters:
|
|
- description: Process ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Process Input ID
|
|
in: path
|
|
name: inputid
|
|
required: true
|
|
type: string
|
|
- description: Any filename with a suitable extension
|
|
in: path
|
|
name: name
|
|
required: true
|
|
type: string
|
|
- description: Image to be used a error frame
|
|
in: body
|
|
name: image
|
|
required: true
|
|
schema:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
produces:
|
|
- text/plain
|
|
- application/json
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
schema:
|
|
type: string
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Upload an error frame
|
|
/api/v3/process/{id}/playout/{inputid}/errorframe/encode:
|
|
get:
|
|
description: Immediately encode the errorframe (if available and looping)
|
|
operationId: restream-3-playout-errorframencode
|
|
parameters:
|
|
- description: Process ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Process Input ID
|
|
in: path
|
|
name: inputid
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- text/plain
|
|
- application/json
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
schema:
|
|
type: string
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Encode the errorframe
|
|
/api/v3/process/{id}/playout/{inputid}/keyframe/{name}:
|
|
get:
|
|
description: Get the last keyframe of an input of a process. The extension of
|
|
the name determines the return type.
|
|
operationId: restream-3-playout-keyframe
|
|
parameters:
|
|
- description: Process ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Process Input ID
|
|
in: path
|
|
name: inputid
|
|
required: true
|
|
type: string
|
|
- description: Any filename with an extension of .jpg or .png
|
|
in: path
|
|
name: name
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- image/jpeg
|
|
- image/png
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: file
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get the last keyframe
|
|
/api/v3/process/{id}/playout/{inputid}/reopen:
|
|
get:
|
|
description: Close the current input stream such that it will be automatically
|
|
re-opened
|
|
operationId: restream-3-playout-reopen-input
|
|
parameters:
|
|
- description: Process ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Process Input ID
|
|
in: path
|
|
name: inputid
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Close the current input stream
|
|
/api/v3/process/{id}/playout/{inputid}/status:
|
|
get:
|
|
description: Get the current playout status of an input of a process
|
|
operationId: restream-3-playout-status
|
|
parameters:
|
|
- description: Process ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Process Input ID
|
|
in: path
|
|
name: inputid
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.PlayoutStatus'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get the current playout status
|
|
/api/v3/process/{id}/playout/{inputid}/stream:
|
|
put:
|
|
consumes:
|
|
- text/plain
|
|
description: Replace the current stream with the one from the given URL. The
|
|
switch will only happen if the stream parameters match.
|
|
operationId: restream-3-playout-stream
|
|
parameters:
|
|
- description: Process ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Process Input ID
|
|
in: path
|
|
name: inputid
|
|
required: true
|
|
type: string
|
|
- description: URL of the new stream
|
|
in: body
|
|
name: url
|
|
required: true
|
|
schema:
|
|
type: string
|
|
produces:
|
|
- text/plain
|
|
- application/json
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
schema:
|
|
type: string
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Switch to a new stream
|
|
/api/v3/process/{id}/probe:
|
|
get:
|
|
description: Probe an existing process to get a detailed stream information
|
|
on the inputs
|
|
operationId: restream-3-probe
|
|
parameters:
|
|
- description: Process ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.Probe'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Probe a process
|
|
/api/v3/process/{id}/report:
|
|
get:
|
|
description: Get the logs and the log history of a process
|
|
operationId: restream-3-get-report
|
|
parameters:
|
|
- description: Process ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.ProcessReport'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get the logs of a process
|
|
/api/v3/process/{id}/state:
|
|
get:
|
|
description: Get the state and progress data of a process
|
|
operationId: restream-3-get-state
|
|
parameters:
|
|
- description: Process ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.ProcessState'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get the state of a process
|
|
/api/v3/rtmp:
|
|
get:
|
|
description: List all currently publishing 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 streams
|
|
/api/v3/session:
|
|
get:
|
|
description: Get a summary of all active and past sessions of the given collector
|
|
operationId: session-3-summary
|
|
parameters:
|
|
- description: Comma separated list of collectors
|
|
in: query
|
|
name: collectors
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Sessions summary
|
|
schema:
|
|
$ref: '#/definitions/api.SessionsSummary'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get a summary of all active and past sessions
|
|
/api/v3/session/active:
|
|
get:
|
|
description: Get a minimal summary of all active sessions (i.e. number of sessions,
|
|
bandwidth)
|
|
operationId: session-3-current
|
|
parameters:
|
|
- description: Comma separated list of collectors
|
|
in: query
|
|
name: collectors
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Active sessions listing
|
|
schema:
|
|
$ref: '#/definitions/api.SessionsActive'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get a minimal summary of all active sessions
|
|
/api/v3/skills:
|
|
get:
|
|
description: List all detected FFmpeg capabilities
|
|
operationId: skills-3
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.Skills'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: FFmpeg capabilities
|
|
/api/v3/skills/reload:
|
|
get:
|
|
description: Refresh the available FFmpeg capabilities
|
|
operationId: skills-3-reload
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.Skills'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Refresh FFmpeg capabilities
|
|
/api/v3/widget/process/{id}:
|
|
get:
|
|
description: Fetch minimal statistics about a process, which is not protected
|
|
by any auth.
|
|
operationId: widget-3-get
|
|
parameters:
|
|
- description: ID of a process
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/api.WidgetProcess'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
summary: Fetch minimal statistics about a process
|
|
/memfs/{path}:
|
|
delete:
|
|
description: Remove a file from the memory filesystem
|
|
operationId: memfs-delete-file
|
|
parameters:
|
|
- description: Path to file
|
|
in: path
|
|
name: path
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- BasicAuth: []
|
|
summary: Remove a file from the memory filesystem
|
|
get:
|
|
description: Fetch a file from the memory filesystem
|
|
operationId: memfs-get-file
|
|
parameters:
|
|
- description: Path to file
|
|
in: path
|
|
name: path
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/data
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: file
|
|
"301":
|
|
description: Moved Permanently
|
|
schema:
|
|
type: string
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
summary: Fetch a file from the memory filesystem
|
|
put:
|
|
consumes:
|
|
- application/data
|
|
description: Writes or overwrites a file on the memory filesystem
|
|
operationId: memfs-put-file
|
|
parameters:
|
|
- description: Path to file
|
|
in: path
|
|
name: path
|
|
required: true
|
|
type: string
|
|
- description: File data
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
produces:
|
|
- text/plain
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
type: string
|
|
"204":
|
|
description: No Content
|
|
schema:
|
|
type: string
|
|
"507":
|
|
description: Insufficient Storage
|
|
schema:
|
|
$ref: '#/definitions/api.Error'
|
|
security:
|
|
- BasicAuth: []
|
|
summary: Add a file to the memory filesystem
|
|
/metrics:
|
|
get:
|
|
description: Prometheus metrics
|
|
operationId: metrics
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
summary: Prometheus metrics
|
|
/ping:
|
|
get:
|
|
description: Liveliness check
|
|
operationId: ping
|
|
produces:
|
|
- text/plain
|
|
responses:
|
|
"200":
|
|
description: pong
|
|
schema:
|
|
type: string
|
|
summary: Liveliness check
|
|
/profiling:
|
|
get:
|
|
description: Retrieve profiling data from the application
|
|
operationId: profiling
|
|
produces:
|
|
- text/html
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
type: string
|
|
summary: Retrieve profiling data from the application
|
|
securityDefinitions:
|
|
ApiKeyAuth:
|
|
in: header
|
|
name: Authorization
|
|
type: apiKey
|
|
ApiRefreshKeyAuth:
|
|
in: header
|
|
name: Authorization
|
|
type: apiKey
|
|
Auth0KeyAuth:
|
|
in: header
|
|
name: Authorization
|
|
type: apiKey
|
|
BasicAuth:
|
|
type: basic
|
|
swagger: "2.0"
|