diff --git a/openapi-administration.json b/openapi-administration.json index a83268f9d6e..d7b0a3948c2 100644 --- a/openapi-administration.json +++ b/openapi-administration.json @@ -87,6 +87,170 @@ } ] }, + "Capabilities": { + "type": "object", + "required": [ + "features", + "config", + "version" + ], + "properties": { + "features": { + "type": "array", + "items": { + "type": "string" + } + }, + "config": { + "type": "object", + "required": [ + "attachments", + "call", + "chat", + "conversations", + "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" + ], + "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" + } + } + }, + "chat": { + "type": "object", + "required": [ + "max-length", + "read-privacy", + "has-translation-providers", + "typing-privacy" + ], + "properties": { + "max-length": { + "type": "integer", + "format": "int64" + }, + "read-privacy": { + "type": "integer", + "format": "int64" + }, + "has-translation-providers": { + "type": "boolean" + }, + "typing-privacy": { + "type": "integer", + "format": "int64" + } + } + }, + "conversations": { + "type": "object", + "required": [ + "can-create" + ], + "properties": { + "can-create": { + "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" + } + } + } + } + }, + "version": { + "type": "string" + } + } + }, "OCSMeta": { "type": "object", "required": [ @@ -120,168 +284,7 @@ ], "properties": { "spreed": { - "type": "object", - "required": [ - "features", - "config", - "version" - ], - "properties": { - "features": { - "type": "array", - "items": { - "type": "string" - } - }, - "config": { - "type": "object", - "required": [ - "attachments", - "call", - "chat", - "conversations", - "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" - ], - "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" - } - } - }, - "chat": { - "type": "object", - "required": [ - "max-length", - "read-privacy", - "has-translation-providers", - "typing-privacy" - ], - "properties": { - "max-length": { - "type": "integer", - "format": "int64" - }, - "read-privacy": { - "type": "integer", - "format": "int64" - }, - "has-translation-providers": { - "type": "boolean" - }, - "typing-privacy": { - "type": "integer", - "format": "int64" - } - } - }, - "conversations": { - "type": "object", - "required": [ - "can-create" - ], - "properties": { - "can-create": { - "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" - } - } - } - } - }, - "version": { - "type": "string" - } - } + "$ref": "#/components/schemas/Capabilities" } } }, diff --git a/openapi-backend-recording.json b/openapi-backend-recording.json index 14d7d1481de..67d229ba02c 100644 --- a/openapi-backend-recording.json +++ b/openapi-backend-recording.json @@ -20,6 +20,170 @@ } }, "schemas": { + "Capabilities": { + "type": "object", + "required": [ + "features", + "config", + "version" + ], + "properties": { + "features": { + "type": "array", + "items": { + "type": "string" + } + }, + "config": { + "type": "object", + "required": [ + "attachments", + "call", + "chat", + "conversations", + "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" + ], + "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" + } + } + }, + "chat": { + "type": "object", + "required": [ + "max-length", + "read-privacy", + "has-translation-providers", + "typing-privacy" + ], + "properties": { + "max-length": { + "type": "integer", + "format": "int64" + }, + "read-privacy": { + "type": "integer", + "format": "int64" + }, + "has-translation-providers": { + "type": "boolean" + }, + "typing-privacy": { + "type": "integer", + "format": "int64" + } + } + }, + "conversations": { + "type": "object", + "required": [ + "can-create" + ], + "properties": { + "can-create": { + "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" + } + } + } + } + }, + "version": { + "type": "string" + } + } + }, "OCSMeta": { "type": "object", "required": [ @@ -53,168 +217,7 @@ ], "properties": { "spreed": { - "type": "object", - "required": [ - "features", - "config", - "version" - ], - "properties": { - "features": { - "type": "array", - "items": { - "type": "string" - } - }, - "config": { - "type": "object", - "required": [ - "attachments", - "call", - "chat", - "conversations", - "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" - ], - "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" - } - } - }, - "chat": { - "type": "object", - "required": [ - "max-length", - "read-privacy", - "has-translation-providers", - "typing-privacy" - ], - "properties": { - "max-length": { - "type": "integer", - "format": "int64" - }, - "read-privacy": { - "type": "integer", - "format": "int64" - }, - "has-translation-providers": { - "type": "boolean" - }, - "typing-privacy": { - "type": "integer", - "format": "int64" - } - } - }, - "conversations": { - "type": "object", - "required": [ - "can-create" - ], - "properties": { - "can-create": { - "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" - } - } - } - } - }, - "version": { - "type": "string" - } - } + "$ref": "#/components/schemas/Capabilities" } } }, diff --git a/openapi-backend-signaling.json b/openapi-backend-signaling.json index e39b8deee0e..0d8e8703bad 100644 --- a/openapi-backend-signaling.json +++ b/openapi-backend-signaling.json @@ -20,6 +20,170 @@ } }, "schemas": { + "Capabilities": { + "type": "object", + "required": [ + "features", + "config", + "version" + ], + "properties": { + "features": { + "type": "array", + "items": { + "type": "string" + } + }, + "config": { + "type": "object", + "required": [ + "attachments", + "call", + "chat", + "conversations", + "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" + ], + "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" + } + } + }, + "chat": { + "type": "object", + "required": [ + "max-length", + "read-privacy", + "has-translation-providers", + "typing-privacy" + ], + "properties": { + "max-length": { + "type": "integer", + "format": "int64" + }, + "read-privacy": { + "type": "integer", + "format": "int64" + }, + "has-translation-providers": { + "type": "boolean" + }, + "typing-privacy": { + "type": "integer", + "format": "int64" + } + } + }, + "conversations": { + "type": "object", + "required": [ + "can-create" + ], + "properties": { + "can-create": { + "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" + } + } + } + } + }, + "version": { + "type": "string" + } + } + }, "OCSMeta": { "type": "object", "required": [ @@ -53,168 +217,7 @@ ], "properties": { "spreed": { - "type": "object", - "required": [ - "features", - "config", - "version" - ], - "properties": { - "features": { - "type": "array", - "items": { - "type": "string" - } - }, - "config": { - "type": "object", - "required": [ - "attachments", - "call", - "chat", - "conversations", - "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" - ], - "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" - } - } - }, - "chat": { - "type": "object", - "required": [ - "max-length", - "read-privacy", - "has-translation-providers", - "typing-privacy" - ], - "properties": { - "max-length": { - "type": "integer", - "format": "int64" - }, - "read-privacy": { - "type": "integer", - "format": "int64" - }, - "has-translation-providers": { - "type": "boolean" - }, - "typing-privacy": { - "type": "integer", - "format": "int64" - } - } - }, - "conversations": { - "type": "object", - "required": [ - "can-create" - ], - "properties": { - "can-create": { - "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" - } - } - } - } - }, - "version": { - "type": "string" - } - } + "$ref": "#/components/schemas/Capabilities" } } }, diff --git a/openapi-backend-sipbridge.json b/openapi-backend-sipbridge.json index a7aeb7d66ff..4c8c76ae3e1 100644 --- a/openapi-backend-sipbridge.json +++ b/openapi-backend-sipbridge.json @@ -20,6 +20,170 @@ } }, "schemas": { + "Capabilities": { + "type": "object", + "required": [ + "features", + "config", + "version" + ], + "properties": { + "features": { + "type": "array", + "items": { + "type": "string" + } + }, + "config": { + "type": "object", + "required": [ + "attachments", + "call", + "chat", + "conversations", + "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" + ], + "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" + } + } + }, + "chat": { + "type": "object", + "required": [ + "max-length", + "read-privacy", + "has-translation-providers", + "typing-privacy" + ], + "properties": { + "max-length": { + "type": "integer", + "format": "int64" + }, + "read-privacy": { + "type": "integer", + "format": "int64" + }, + "has-translation-providers": { + "type": "boolean" + }, + "typing-privacy": { + "type": "integer", + "format": "int64" + } + } + }, + "conversations": { + "type": "object", + "required": [ + "can-create" + ], + "properties": { + "can-create": { + "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" + } + } + } + } + }, + "version": { + "type": "string" + } + } + }, "ChatMessage": { "type": "object", "required": [ @@ -155,168 +319,7 @@ ], "properties": { "spreed": { - "type": "object", - "required": [ - "features", - "config", - "version" - ], - "properties": { - "features": { - "type": "array", - "items": { - "type": "string" - } - }, - "config": { - "type": "object", - "required": [ - "attachments", - "call", - "chat", - "conversations", - "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" - ], - "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" - } - } - }, - "chat": { - "type": "object", - "required": [ - "max-length", - "read-privacy", - "has-translation-providers", - "typing-privacy" - ], - "properties": { - "max-length": { - "type": "integer", - "format": "int64" - }, - "read-privacy": { - "type": "integer", - "format": "int64" - }, - "has-translation-providers": { - "type": "boolean" - }, - "typing-privacy": { - "type": "integer", - "format": "int64" - } - } - }, - "conversations": { - "type": "object", - "required": [ - "can-create" - ], - "properties": { - "can-create": { - "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" - } - } - } - } - }, - "version": { - "type": "string" - } - } + "$ref": "#/components/schemas/Capabilities" } } }, diff --git a/openapi-bots.json b/openapi-bots.json index 035509861dd..67aa5a260bf 100644 --- a/openapi-bots.json +++ b/openapi-bots.json @@ -20,6 +20,170 @@ } }, "schemas": { + "Capabilities": { + "type": "object", + "required": [ + "features", + "config", + "version" + ], + "properties": { + "features": { + "type": "array", + "items": { + "type": "string" + } + }, + "config": { + "type": "object", + "required": [ + "attachments", + "call", + "chat", + "conversations", + "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" + ], + "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" + } + } + }, + "chat": { + "type": "object", + "required": [ + "max-length", + "read-privacy", + "has-translation-providers", + "typing-privacy" + ], + "properties": { + "max-length": { + "type": "integer", + "format": "int64" + }, + "read-privacy": { + "type": "integer", + "format": "int64" + }, + "has-translation-providers": { + "type": "boolean" + }, + "typing-privacy": { + "type": "integer", + "format": "int64" + } + } + }, + "conversations": { + "type": "object", + "required": [ + "can-create" + ], + "properties": { + "can-create": { + "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" + } + } + } + } + }, + "version": { + "type": "string" + } + } + }, "OCSMeta": { "type": "object", "required": [ @@ -53,168 +217,7 @@ ], "properties": { "spreed": { - "type": "object", - "required": [ - "features", - "config", - "version" - ], - "properties": { - "features": { - "type": "array", - "items": { - "type": "string" - } - }, - "config": { - "type": "object", - "required": [ - "attachments", - "call", - "chat", - "conversations", - "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" - ], - "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" - } - } - }, - "chat": { - "type": "object", - "required": [ - "max-length", - "read-privacy", - "has-translation-providers", - "typing-privacy" - ], - "properties": { - "max-length": { - "type": "integer", - "format": "int64" - }, - "read-privacy": { - "type": "integer", - "format": "int64" - }, - "has-translation-providers": { - "type": "boolean" - }, - "typing-privacy": { - "type": "integer", - "format": "int64" - } - } - }, - "conversations": { - "type": "object", - "required": [ - "can-create" - ], - "properties": { - "can-create": { - "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" - } - } - } - } - }, - "version": { - "type": "string" - } - } + "$ref": "#/components/schemas/Capabilities" } } }, diff --git a/openapi-federation.json b/openapi-federation.json index 85bcc7cebb2..b4e024dedd8 100644 --- a/openapi-federation.json +++ b/openapi-federation.json @@ -20,6 +20,170 @@ } }, "schemas": { + "Capabilities": { + "type": "object", + "required": [ + "features", + "config", + "version" + ], + "properties": { + "features": { + "type": "array", + "items": { + "type": "string" + } + }, + "config": { + "type": "object", + "required": [ + "attachments", + "call", + "chat", + "conversations", + "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" + ], + "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" + } + } + }, + "chat": { + "type": "object", + "required": [ + "max-length", + "read-privacy", + "has-translation-providers", + "typing-privacy" + ], + "properties": { + "max-length": { + "type": "integer", + "format": "int64" + }, + "read-privacy": { + "type": "integer", + "format": "int64" + }, + "has-translation-providers": { + "type": "boolean" + }, + "typing-privacy": { + "type": "integer", + "format": "int64" + } + } + }, + "conversations": { + "type": "object", + "required": [ + "can-create" + ], + "properties": { + "can-create": { + "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" + } + } + } + } + }, + "version": { + "type": "string" + } + } + }, "ChatMessage": { "type": "object", "required": [ @@ -214,168 +378,7 @@ ], "properties": { "spreed": { - "type": "object", - "required": [ - "features", - "config", - "version" - ], - "properties": { - "features": { - "type": "array", - "items": { - "type": "string" - } - }, - "config": { - "type": "object", - "required": [ - "attachments", - "call", - "chat", - "conversations", - "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" - ], - "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" - } - } - }, - "chat": { - "type": "object", - "required": [ - "max-length", - "read-privacy", - "has-translation-providers", - "typing-privacy" - ], - "properties": { - "max-length": { - "type": "integer", - "format": "int64" - }, - "read-privacy": { - "type": "integer", - "format": "int64" - }, - "has-translation-providers": { - "type": "boolean" - }, - "typing-privacy": { - "type": "integer", - "format": "int64" - } - } - }, - "conversations": { - "type": "object", - "required": [ - "can-create" - ], - "properties": { - "can-create": { - "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" - } - } - } - } - }, - "version": { - "type": "string" - } - } + "$ref": "#/components/schemas/Capabilities" } } }, diff --git a/openapi-full.json b/openapi-full.json index b67ab7be68c..52f81ef31a8 100644 --- a/openapi-full.json +++ b/openapi-full.json @@ -137,6 +137,170 @@ } } }, + "Capabilities": { + "type": "object", + "required": [ + "features", + "config", + "version" + ], + "properties": { + "features": { + "type": "array", + "items": { + "type": "string" + } + }, + "config": { + "type": "object", + "required": [ + "attachments", + "call", + "chat", + "conversations", + "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" + ], + "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" + } + } + }, + "chat": { + "type": "object", + "required": [ + "max-length", + "read-privacy", + "has-translation-providers", + "typing-privacy" + ], + "properties": { + "max-length": { + "type": "integer", + "format": "int64" + }, + "read-privacy": { + "type": "integer", + "format": "int64" + }, + "has-translation-providers": { + "type": "boolean" + }, + "typing-privacy": { + "type": "integer", + "format": "int64" + } + } + }, + "conversations": { + "type": "object", + "required": [ + "can-create" + ], + "properties": { + "can-create": { + "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" + } + } + } + } + }, + "version": { + "type": "string" + } + } + }, "ChatMentionSuggestion": { "type": "object", "required": [ @@ -651,168 +815,7 @@ ], "properties": { "spreed": { - "type": "object", - "required": [ - "features", - "config", - "version" - ], - "properties": { - "features": { - "type": "array", - "items": { - "type": "string" - } - }, - "config": { - "type": "object", - "required": [ - "attachments", - "call", - "chat", - "conversations", - "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" - ], - "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" - } - } - }, - "chat": { - "type": "object", - "required": [ - "max-length", - "read-privacy", - "has-translation-providers", - "typing-privacy" - ], - "properties": { - "max-length": { - "type": "integer", - "format": "int64" - }, - "read-privacy": { - "type": "integer", - "format": "int64" - }, - "has-translation-providers": { - "type": "boolean" - }, - "typing-privacy": { - "type": "integer", - "format": "int64" - } - } - }, - "conversations": { - "type": "object", - "required": [ - "can-create" - ], - "properties": { - "can-create": { - "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" - } - } - } - } - }, - "version": { - "type": "string" - } - } + "$ref": "#/components/schemas/Capabilities" } } }, @@ -15087,6 +15090,104 @@ } } }, + "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/capabilities": { + "get": { + "operationId": "room-get-capabilities", + "summary": "Get capabilities for a room", + "tags": [ + "room" + ], + "security": [ + {}, + { + "bearer_auth": [] + }, + { + "basic_auth": [] + } + ], + "parameters": [ + { + "name": "apiVersion", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "v4" + ], + "default": "v4" + } + }, + { + "name": "token", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-z0-9]{4,30}$" + } + }, + { + "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": "Get capabilities successfully", + "headers": { + "X-Nextcloud-Talk-Hash": { + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ocs" + ], + "properties": { + "ocs": { + "type": "object", + "required": [ + "meta", + "data" + ], + "properties": { + "meta": { + "$ref": "#/components/schemas/OCSMeta" + }, + "data": { + "oneOf": [ + { + "$ref": "#/components/schemas/Capabilities" + }, + { + "type": "array", + "maxLength": 0 + } + ] + } + } + } + } + } + } + } + } + } + } + }, "/ocs/v2.php/apps/spreed/api/{apiVersion}/settings/user": { "post": { "operationId": "settings-set-user-setting", diff --git a/openapi.json b/openapi.json index 81054880595..0567a94e362 100644 --- a/openapi.json +++ b/openapi.json @@ -78,6 +78,170 @@ } } }, + "Capabilities": { + "type": "object", + "required": [ + "features", + "config", + "version" + ], + "properties": { + "features": { + "type": "array", + "items": { + "type": "string" + } + }, + "config": { + "type": "object", + "required": [ + "attachments", + "call", + "chat", + "conversations", + "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" + ], + "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" + } + } + }, + "chat": { + "type": "object", + "required": [ + "max-length", + "read-privacy", + "has-translation-providers", + "typing-privacy" + ], + "properties": { + "max-length": { + "type": "integer", + "format": "int64" + }, + "read-privacy": { + "type": "integer", + "format": "int64" + }, + "has-translation-providers": { + "type": "boolean" + }, + "typing-privacy": { + "type": "integer", + "format": "int64" + } + } + }, + "conversations": { + "type": "object", + "required": [ + "can-create" + ], + "properties": { + "can-create": { + "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" + } + } + } + } + }, + "version": { + "type": "string" + } + } + }, "ChatMentionSuggestion": { "type": "object", "required": [ @@ -533,168 +697,7 @@ ], "properties": { "spreed": { - "type": "object", - "required": [ - "features", - "config", - "version" - ], - "properties": { - "features": { - "type": "array", - "items": { - "type": "string" - } - }, - "config": { - "type": "object", - "required": [ - "attachments", - "call", - "chat", - "conversations", - "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" - ], - "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" - } - } - }, - "chat": { - "type": "object", - "required": [ - "max-length", - "read-privacy", - "has-translation-providers", - "typing-privacy" - ], - "properties": { - "max-length": { - "type": "integer", - "format": "int64" - }, - "read-privacy": { - "type": "integer", - "format": "int64" - }, - "has-translation-providers": { - "type": "boolean" - }, - "typing-privacy": { - "type": "integer", - "format": "int64" - } - } - }, - "conversations": { - "type": "object", - "required": [ - "can-create" - ], - "properties": { - "can-create": { - "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" - } - } - } - } - }, - "version": { - "type": "string" - } - } + "$ref": "#/components/schemas/Capabilities" } } }, @@ -15192,6 +15195,104 @@ } } }, + "/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/capabilities": { + "get": { + "operationId": "room-get-capabilities", + "summary": "Get capabilities for a room", + "tags": [ + "room" + ], + "security": [ + {}, + { + "bearer_auth": [] + }, + { + "basic_auth": [] + } + ], + "parameters": [ + { + "name": "apiVersion", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "v4" + ], + "default": "v4" + } + }, + { + "name": "token", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[a-z0-9]{4,30}$" + } + }, + { + "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": "Get capabilities successfully", + "headers": { + "X-Nextcloud-Talk-Hash": { + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ocs" + ], + "properties": { + "ocs": { + "type": "object", + "required": [ + "meta", + "data" + ], + "properties": { + "meta": { + "$ref": "#/components/schemas/OCSMeta" + }, + "data": { + "oneOf": [ + { + "$ref": "#/components/schemas/Capabilities" + }, + { + "type": "array", + "maxLength": 0 + } + ] + } + } + } + } + } + } + } + } + } + } + }, "/ocs/v2.php/apps/spreed/api/{apiVersion}/settings/user": { "post": { "operationId": "settings-set-user-setting",