spreed/openapi-administration.json

1536 строки
67 KiB
JSON

{
"openapi": "3.0.3",
"info": {
"title": "spreed-administration",
"version": "0.0.1",
"description": "Chat, video & audio-conferencing using WebRTC",
"license": {
"name": "agpl"
}
},
"components": {
"securitySchemes": {
"basic_auth": {
"type": "http",
"scheme": "basic"
},
"bearer_auth": {
"type": "http",
"scheme": "bearer"
}
},
"schemas": {
"Bot": {
"type": "object",
"required": [
"description",
"id",
"name",
"state"
],
"properties": {
"description": {
"type": "string",
"nullable": true
},
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"state": {
"type": "integer",
"format": "int64"
}
}
},
"BotWithDetails": {
"allOf": [
{
"$ref": "#/components/schemas/Bot"
},
{
"type": "object",
"required": [
"error_count",
"features",
"last_error_date",
"last_error_message",
"url",
"url_hash"
],
"properties": {
"error_count": {
"type": "integer",
"format": "int64"
},
"features": {
"type": "integer",
"format": "int64"
},
"last_error_date": {
"type": "integer",
"format": "int64"
},
"last_error_message": {
"type": "string"
},
"url": {
"type": "string"
},
"url_hash": {
"type": "string"
}
}
}
]
},
"Capabilities": {
"type": "object",
"required": [
"features",
"features-local",
"config",
"config-local",
"version"
],
"properties": {
"features": {
"type": "array",
"items": {
"type": "string"
}
},
"features-local": {
"type": "array",
"items": {
"type": "string"
}
},
"config": {
"type": "object",
"required": [
"attachments",
"call",
"chat",
"conversations",
"federation",
"previews",
"signaling"
],
"properties": {
"attachments": {
"type": "object",
"required": [
"allowed"
],
"properties": {
"allowed": {
"type": "boolean"
},
"folder": {
"type": "string"
}
}
},
"call": {
"type": "object",
"required": [
"enabled",
"breakout-rooms",
"recording",
"recording-consent",
"supported-reactions",
"predefined-backgrounds",
"can-upload-background",
"sip-enabled",
"sip-dialout-enabled",
"can-enable-sip",
"start-without-media",
"max-duration",
"blur-virtual-background"
],
"properties": {
"enabled": {
"type": "boolean"
},
"breakout-rooms": {
"type": "boolean"
},
"recording": {
"type": "boolean"
},
"recording-consent": {
"type": "integer",
"format": "int64"
},
"supported-reactions": {
"type": "array",
"items": {
"type": "string"
}
},
"predefined-backgrounds": {
"type": "array",
"items": {
"type": "string"
}
},
"can-upload-background": {
"type": "boolean"
},
"sip-enabled": {
"type": "boolean"
},
"sip-dialout-enabled": {
"type": "boolean"
},
"can-enable-sip": {
"type": "boolean"
},
"start-without-media": {
"type": "boolean"
},
"max-duration": {
"type": "integer",
"format": "int64"
},
"blur-virtual-background": {
"type": "boolean"
}
}
},
"chat": {
"type": "object",
"required": [
"max-length",
"read-privacy",
"has-translation-providers",
"typing-privacy",
"summary-threshold"
],
"properties": {
"max-length": {
"type": "integer",
"format": "int64"
},
"read-privacy": {
"type": "integer",
"format": "int64"
},
"has-translation-providers": {
"type": "boolean"
},
"typing-privacy": {
"type": "integer",
"format": "int64"
},
"summary-threshold": {
"type": "integer",
"format": "int64",
"minimum": 1
}
}
},
"conversations": {
"type": "object",
"required": [
"can-create",
"force-passwords"
],
"properties": {
"can-create": {
"type": "boolean"
},
"force-passwords": {
"type": "boolean"
}
}
},
"federation": {
"type": "object",
"required": [
"enabled",
"incoming-enabled",
"outgoing-enabled",
"only-trusted-servers"
],
"properties": {
"enabled": {
"type": "boolean"
},
"incoming-enabled": {
"type": "boolean"
},
"outgoing-enabled": {
"type": "boolean"
},
"only-trusted-servers": {
"type": "boolean"
}
}
},
"previews": {
"type": "object",
"required": [
"max-gif-size"
],
"properties": {
"max-gif-size": {
"type": "integer",
"format": "int64"
}
}
},
"signaling": {
"type": "object",
"required": [
"session-ping-limit"
],
"properties": {
"session-ping-limit": {
"type": "integer",
"format": "int64"
},
"hello-v2-token-key": {
"type": "string"
}
}
}
}
},
"config-local": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
},
"version": {
"type": "string"
}
}
},
"OCSMeta": {
"type": "object",
"required": [
"status",
"statuscode"
],
"properties": {
"status": {
"type": "string"
},
"statuscode": {
"type": "integer"
},
"message": {
"type": "string"
},
"totalitems": {
"type": "string"
},
"itemsperpage": {
"type": "string"
}
}
},
"PublicCapabilities": {
"type": "object",
"properties": {
"spreed": {
"$ref": "#/components/schemas/Capabilities"
}
}
}
}
},
"paths": {
"/ocs/v2.php/apps/spreed/api/{apiVersion}/bot/admin": {
"get": {
"operationId": "bot-admin-list-bots",
"summary": "List admin bots",
"description": "This endpoint requires admin access",
"tags": [
"settings"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
"required": true,
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Bot list returned",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BotWithDetails"
}
}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/spreed/api/{apiVersion}/certificate/expiration": {
"get": {
"operationId": "certificate-get-certificate-expiration",
"summary": "Get the certificate expiration for a host",
"description": "This endpoint requires admin access",
"tags": [
"settings"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "host",
"in": "query",
"description": "Host to check",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
"required": true,
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Certificate expiration returned",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"expiration_in_days"
],
"properties": {
"expiration_in_days": {
"type": "integer",
"format": "int64",
"nullable": true
}
}
}
}
}
}
}
}
}
},
"400": {
"description": "Getting certificate expiration is not possible",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/spreed/api/{apiVersion}/hostedsignalingserver/requesttrial": {
"post": {
"operationId": "hosted_signaling_server-request-trial",
"summary": "Request a trial account",
"description": "This endpoint requires admin access",
"tags": [
"hosted_signaling_server"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"url",
"name",
"email",
"language",
"country"
],
"properties": {
"url": {
"type": "string",
"description": "Server URL"
},
"name": {
"type": "string",
"description": "Display name of the user"
},
"email": {
"type": "string",
"description": "Email of the user"
},
"language": {
"type": "string",
"description": "Language of the user"
},
"country": {
"type": "string",
"description": "Country of the user"
}
}
}
}
}
},
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
"required": true,
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Trial requested successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"additionalProperties": {
"type": "object"
}
}
}
}
}
}
}
}
},
"400": {
"description": "Requesting trial is not possible",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string"
}
}
}
}
}
}
}
}
}
},
"500": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/spreed/api/{apiVersion}/hostedsignalingserver/delete": {
"delete": {
"operationId": "hosted_signaling_server-delete-account",
"summary": "Delete the account",
"description": "This endpoint requires admin access",
"tags": [
"hosted_signaling_server"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
"required": true,
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"204": {
"description": "Account deleted successfully"
},
"400": {
"description": "Deleting account is not possible",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string"
}
}
}
}
}
}
}
}
}
},
"500": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/spreed/api/{apiVersion}/bridge": {
"delete": {
"operationId": "matterbridge_settings-stop-all-bridges",
"summary": "Stop all bridges",
"description": "This endpoint requires admin access",
"tags": [
"matterbridge"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
"required": true,
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "All bridges stopped successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "boolean"
}
}
}
}
}
}
}
},
"406": {
"description": "Stopping all bridges is not possible",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/spreed/api/{apiVersion}/bridge/version": {
"get": {
"operationId": "matterbridge_settings-get-matterbridge-version",
"summary": "Get Matterbridge version",
"description": "This endpoint requires admin access",
"tags": [
"matterbridge"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
"required": true,
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Bridge version returned",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"version"
],
"properties": {
"version": {
"type": "string"
}
}
}
}
}
}
}
}
}
},
"400": {
"description": "Getting bridge version is not possible",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/spreed/api/{apiVersion}/recording/welcome/{serverId}": {
"get": {
"operationId": "recording-get-welcome-message",
"summary": "Get the welcome message of a recording server",
"description": "This endpoint requires admin access",
"tags": [
"settings"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "serverId",
"in": "path",
"description": "ID of the server",
"required": true,
"schema": {
"type": "integer",
"format": "int64",
"minimum": 0
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
"required": true,
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Welcome message returned",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"version"
],
"properties": {
"version": {
"type": "number",
"format": "double"
}
}
}
}
}
}
}
}
}
},
"404": {
"description": "Recording server not found or not configured",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"nullable": true
}
}
}
}
}
}
}
},
"500": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/spreed/api/{apiVersion}/settings/sip": {
"post": {
"operationId": "settings-setsip-settings",
"summary": "Update SIP bridge settings",
"description": "This endpoint requires admin access",
"tags": [
"settings"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"sipGroups": {
"type": "array",
"default": [],
"description": "New SIP groups",
"items": {
"type": "string"
}
},
"dialInInfo": {
"type": "string",
"default": "",
"description": "New dial info"
},
"sharedSecret": {
"type": "string",
"default": "",
"description": "New shared secret"
}
}
}
}
}
},
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
"required": true,
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Successfully set new SIP settings",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"nullable": true
}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/spreed/api/{apiVersion}/signaling/welcome/{serverId}": {
"get": {
"operationId": "signaling-get-welcome-message",
"summary": "Get the welcome message from a signaling server",
"description": "Only available for logged-in users because guests can not use the apps right now.\nThis endpoint requires admin access",
"tags": [
"settings"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v3"
],
"default": "v3"
}
},
{
"name": "serverId",
"in": "path",
"description": "ID of the signaling server",
"required": true,
"schema": {
"type": "integer",
"format": "int64",
"minimum": 0
}
},
{
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
"required": true,
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Welcome message returned",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"additionalProperties": {
"type": "object"
}
}
}
}
}
}
}
}
},
"404": {
"description": "Signaling server not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"nullable": true
}
}
}
}
}
}
}
},
"500": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "string"
},
"version": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
}
}
},
"tags": []
}