Files
core/docs/swagger.yaml
Jan Stabenow 9c0b535199 Add v16.7.2
2022-05-13 19:26:45 +02:00

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"