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