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"