Files
core/cluster/docs/ClusterAPI_swagger.yaml
2023-06-22 16:21:13 +02:00

775 lines
19 KiB
YAML

basePath: /
definitions:
access.Policy:
properties:
actions:
items:
type: string
type: array
domain:
type: string
name:
type: string
resource:
type: string
type: object
app.Config:
properties:
autostart:
type: boolean
domain:
type: string
ffversion:
type: string
id:
type: string
input:
items:
$ref: '#/definitions/app.ConfigIO'
type: array
limitCPU:
description: percent
type: number
limitMemory:
description: bytes
type: integer
limitWaitFor:
description: seconds
type: integer
logPatterns:
description: will we interpreted as regular expressions
items:
type: string
type: array
options:
items:
type: string
type: array
output:
items:
$ref: '#/definitions/app.ConfigIO'
type: array
owner:
type: string
reconnect:
type: boolean
reconnectDelay:
description: seconds
type: integer
reference:
type: string
scheduler:
description: crontab pattern or RFC3339 timestamp
type: string
staleTimeout:
description: seconds
type: integer
timeout:
description: seconds
type: integer
type: object
app.ConfigIO:
properties:
address:
type: string
cleanup:
items:
$ref: '#/definitions/app.ConfigIOCleanup'
type: array
id:
type: string
options:
items:
type: string
type: array
type: object
app.ConfigIOCleanup:
properties:
maxFileAge:
type: integer
maxFiles:
type: integer
pattern:
type: string
purgeOnDelete:
type: boolean
type: object
client.AddIdentityRequest:
properties:
identity:
$ref: '#/definitions/identity.User'
type: object
client.AddProcessRequest:
properties:
config:
$ref: '#/definitions/app.Config'
type: object
client.JoinRequest:
properties:
id:
type: string
raft_address:
type: string
type: object
client.LockRequest:
properties:
name:
type: string
valid_until:
type: string
type: object
client.SetKVRequest:
properties:
key:
type: string
value:
type: string
type: object
client.SetPoliciesRequest:
properties:
policies:
items:
$ref: '#/definitions/access.Policy'
type: array
type: object
client.SetProcessMetadataRequest:
properties:
metadata: {}
type: object
client.UpdateIdentityRequest:
properties:
identity:
$ref: '#/definitions/identity.User'
type: object
client.UpdateProcessRequest:
properties:
config:
$ref: '#/definitions/app.Config'
type: object
cluster.Error:
properties:
code:
format: int
type: integer
details:
items:
type: string
type: array
message:
type: string
type: object
identity.Auth0Tenant:
properties:
audience:
type: string
client_id:
type: string
domain:
type: string
type: object
identity.User:
properties:
auth:
$ref: '#/definitions/identity.UserAuth'
name:
type: string
superuser:
type: boolean
type: object
identity.UserAuth:
properties:
api:
$ref: '#/definitions/identity.UserAuthAPI'
services:
$ref: '#/definitions/identity.UserAuthServices'
type: object
identity.UserAuthAPI:
properties:
auth0:
$ref: '#/definitions/identity.UserAuthAPIAuth0'
password:
type: string
type: object
identity.UserAuthAPIAuth0:
properties:
tenant:
$ref: '#/definitions/identity.Auth0Tenant'
user:
type: string
type: object
identity.UserAuthServices:
properties:
basic:
description: Passwords for BasicAuth
items:
type: string
type: array
session:
description: Secrets for session JWT
items:
type: string
type: array
token:
description: Tokens/Streamkey for RTMP and SRT
items:
type: string
type: array
type: object
info:
contact:
email: hello@datarhei.com
name: datarhei Core Support
url: https://www.datarhei.com
description: Internal REST API for the datarhei Core cluster
license:
name: Apache 2.0
url: https://github.com/datarhei/core/v16/blob/main/LICENSE
title: datarhei Core Cluster API
version: "1.0"
paths:
/v1/core:
get:
description: Core API address and login of this node
operationId: cluster-1-core-api-address
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/cluster.Error'
summary: Core API address and login
tags:
- v1.0.0
/v1/iam/user:
post:
consumes:
- application/json
description: Add an identity to the cluster DB
operationId: cluster-1-add-identity
parameters:
- description: Identity config
in: body
name: config
required: true
schema:
$ref: '#/definitions/client.AddIdentityRequest'
- description: Origin ID of request
in: header
name: X-Cluster-Origin
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/cluster.Error'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/cluster.Error'
"508":
description: Loop Detected
schema:
$ref: '#/definitions/cluster.Error'
summary: Add an identity
tags:
- v1.0.0
/v1/iam/user/{name}:
delete:
description: Remove an identity from the cluster DB
operationId: cluster-1-remove-identity
parameters:
- description: Identity name
in: path
name: name
required: true
type: string
- description: Origin ID of request
in: header
name: X-Cluster-Origin
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/cluster.Error'
"508":
description: Loop Detected
schema:
$ref: '#/definitions/cluster.Error'
summary: Remove an identity
tags:
- v1.0.0
put:
consumes:
- application/json
description: Replace an existing identity in the cluster DB
operationId: cluster-1-update-identity
parameters:
- description: Process ID
in: path
name: name
required: true
type: string
- description: Identity config
in: body
name: config
required: true
schema:
$ref: '#/definitions/client.UpdateIdentityRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/cluster.Error'
"508":
description: Loop Detected
schema:
$ref: '#/definitions/cluster.Error'
summary: Replace an existing identity
tags:
- v1.0.0
/v1/iam/user/{name}/policies:
put:
description: Set policies for an identity in the cluster DB. Any existing policies
will be replaced.
operationId: cluster-3-set-identity-policies
parameters:
- description: Process ID
in: path
name: id
required: true
type: string
- description: Policies for that user
in: body
name: data
required: true
schema:
$ref: '#/definitions/client.SetPoliciesRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/cluster.Error'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/cluster.Error'
"508":
description: Loop Detected
schema:
$ref: '#/definitions/cluster.Error'
summary: Set identity policies
tags:
- v1.0.0
/v1/kv:
post:
description: Store value under key
operationId: cluster-1-kv-set
parameters:
- description: Set KV request
in: body
name: data
required: true
schema:
$ref: '#/definitions/client.SetKVRequest'
- description: Origin ID of request
in: header
name: X-Cluster-Origin
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/cluster.Error'
"508":
description: Loop Detected
schema:
$ref: '#/definitions/cluster.Error'
summary: Store value under key
tags:
- v1.0.0
/v1/kv/{key}:
delete:
description: Removes a key
operationId: cluster-1-kv-unset
parameters:
- description: Key name
in: path
name: name
required: true
type: string
- description: Origin ID of request
in: header
name: X-Cluster-Origin
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"404":
description: Not Found
schema:
$ref: '#/definitions/cluster.Error'
"508":
description: Loop Detected
schema:
$ref: '#/definitions/cluster.Error'
summary: Removes a key
tags:
- v1.0.0
/v1/lock:
post:
description: Acquire a named lock
operationId: cluster-1-lock
parameters:
- description: Lock request
in: body
name: data
required: true
schema:
$ref: '#/definitions/client.LockRequest'
- description: Origin ID of request
in: header
name: X-Cluster-Origin
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/cluster.Error'
"508":
description: Loop Detected
schema:
$ref: '#/definitions/cluster.Error'
summary: Acquire a named lock
tags:
- v1.0.0
/v1/lock/{name}:
delete:
description: Remove a lock
operationId: cluster-1-unlock
parameters:
- description: Lock name
in: path
name: name
required: true
type: string
- description: Origin ID of request
in: header
name: X-Cluster-Origin
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"404":
description: Not Found
schema:
$ref: '#/definitions/cluster.Error'
"508":
description: Loop Detected
schema:
$ref: '#/definitions/cluster.Error'
summary: Remove a lock
tags:
- v1.0.0
/v1/process:
post:
consumes:
- application/json
description: Add a process to the cluster DB
operationId: cluster-1-add-process
parameters:
- description: Process config
in: body
name: config
required: true
schema:
$ref: '#/definitions/client.AddProcessRequest'
- description: Origin ID of request
in: header
name: X-Cluster-Origin
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/cluster.Error'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/cluster.Error'
"508":
description: Loop Detected
schema:
$ref: '#/definitions/cluster.Error'
summary: Add a process
tags:
- v1.0.0
/v1/process/{id}:
delete:
description: Remove a process from the cluster DB
operationId: cluster-1-remove-process
parameters:
- description: Process ID
in: path
name: id
required: true
type: string
- description: Domain to act on
in: query
name: domain
type: string
- description: Origin ID of request
in: header
name: X-Cluster-Origin
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/cluster.Error'
"508":
description: Loop Detected
schema:
$ref: '#/definitions/cluster.Error'
summary: Remove a process
tags:
- v1.0.0
put:
consumes:
- application/json
description: Replace an existing process in the cluster DB
operationId: cluster-1-update-process
parameters:
- description: Process ID
in: path
name: id
required: true
type: string
- description: Domain to act on
in: query
name: domain
type: string
- description: Process config
in: body
name: config
required: true
schema:
$ref: '#/definitions/client.UpdateProcessRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/cluster.Error'
"508":
description: Loop Detected
schema:
$ref: '#/definitions/cluster.Error'
summary: Replace an existing process
tags:
- v1.0.0
/v1/process/{id}/metadata/{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: cluster-3-set-process-metadata
parameters:
- description: Process ID
in: path
name: id
required: true
type: string
- description: Key for data store
in: path
name: key
required: true
type: string
- description: Domain to act on
in: query
name: domain
type: string
- description: Arbitrary JSON data. The null value will remove the key and its
contents
in: body
name: data
required: true
schema:
$ref: '#/definitions/client.SetProcessMetadataRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/cluster.Error'
"508":
description: Loop Detected
schema:
$ref: '#/definitions/cluster.Error'
summary: Add JSON metadata with a process under the given key
tags:
- v1.0.0
/v1/server:
post:
consumes:
- application/json
description: Add a new server to the cluster
operationId: cluster-1-add-server
parameters:
- description: Server ID and address
in: body
name: config
required: true
schema:
$ref: '#/definitions/client.JoinRequest'
- description: Origin ID of request
in: header
name: X-Cluster-Origin
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/cluster.Error'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/cluster.Error'
"508":
description: Loop Detected
schema:
$ref: '#/definitions/cluster.Error'
summary: Add a new server
tags:
- v1.0.0
/v1/server/{id}:
delete:
description: Remove a server from the cluster
operationId: cluster-1-remove-server
parameters:
- description: Server ID
in: path
name: id
required: true
type: string
- description: Origin ID of request
in: header
name: X-Cluster-Origin
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/cluster.Error'
"508":
description: Loop Detected
schema:
$ref: '#/definitions/cluster.Error'
summary: Remove a server
tags:
- v1.0.0
/v1/snapshot:
get:
description: Current snapshot of the clusterDB
operationId: cluster-1-snapshot
produces:
- application/octet-stream
responses:
"200":
description: OK
schema:
type: file
"500":
description: Internal Server Error
schema:
items:
$ref: '#/definitions/cluster.Error'
type: array
summary: Cluster DB snapshot
tags:
- v1.0.0
swagger: "2.0"