spreed/openapi-federation.json

1881 строка
73 KiB
JSON

{
"openapi": "3.0.3",
"info": {
"title": "spreed-federation",
"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": {
"BaseMessage": {
"type": "object",
"required": [
"actorDisplayName",
"actorId",
"actorType",
"expirationTimestamp",
"message",
"messageParameters",
"messageType",
"systemMessage"
],
"properties": {
"actorDisplayName": {
"type": "string"
},
"actorId": {
"type": "string"
},
"actorType": {
"type": "string"
},
"expirationTimestamp": {
"type": "integer",
"format": "int64"
},
"message": {
"type": "string"
},
"messageParameters": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/RichObjectParameter"
}
},
"messageType": {
"type": "string"
},
"systemMessage": {
"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"
],
"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"
}
}
},
"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"
}
}
},
"ChatMessage": {
"allOf": [
{
"$ref": "#/components/schemas/BaseMessage"
},
{
"type": "object",
"required": [
"id",
"isReplyable",
"markdown",
"reactions",
"referenceId",
"timestamp",
"token"
],
"properties": {
"deleted": {
"type": "boolean",
"enum": [
true
]
},
"id": {
"type": "integer",
"format": "int64"
},
"isReplyable": {
"type": "boolean"
},
"markdown": {
"type": "boolean"
},
"reactions": {
"type": "object",
"additionalProperties": {
"type": "integer",
"format": "int64"
}
},
"reactionsSelf": {
"type": "array",
"items": {
"type": "string"
}
},
"referenceId": {
"type": "string"
},
"timestamp": {
"type": "integer",
"format": "int64"
},
"token": {
"type": "string"
},
"lastEditActorDisplayName": {
"type": "string"
},
"lastEditActorId": {
"type": "string"
},
"lastEditActorType": {
"type": "string"
},
"lastEditTimestamp": {
"type": "integer",
"format": "int64"
},
"silent": {
"type": "boolean"
}
}
}
]
},
"ChatProxyMessage": {
"$ref": "#/components/schemas/BaseMessage"
},
"FederationInvite": {
"type": "object",
"required": [
"id",
"state",
"localCloudId",
"localToken",
"remoteAttendeeId",
"remoteServerUrl",
"remoteToken",
"roomName",
"userId",
"inviterCloudId",
"inviterDisplayName"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"state": {
"type": "integer",
"format": "int64"
},
"localCloudId": {
"type": "string"
},
"localToken": {
"type": "string"
},
"remoteAttendeeId": {
"type": "integer",
"format": "int64"
},
"remoteServerUrl": {
"type": "string"
},
"remoteToken": {
"type": "string"
},
"roomName": {
"type": "string"
},
"userId": {
"type": "string"
},
"inviterCloudId": {
"type": "string"
},
"inviterDisplayName": {
"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": {
"oneOf": [
{
"type": "object",
"required": [
"spreed"
],
"properties": {
"spreed": {
"$ref": "#/components/schemas/Capabilities"
}
}
},
{
"type": "array",
"maxItems": 0
}
]
},
"RichObjectParameter": {
"type": "object",
"required": [
"type",
"id",
"name"
],
"properties": {
"type": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"server": {
"type": "string"
},
"link": {
"type": "string"
},
"call-type": {
"type": "string",
"enum": [
"one2one",
"group",
"public"
]
},
"icon-url": {
"type": "string"
},
"message-id": {
"type": "string"
},
"boardname": {
"type": "string"
},
"stackname": {
"type": "string"
},
"size": {
"type": "string"
},
"path": {
"type": "string"
},
"mimetype": {
"type": "string"
},
"preview-available": {
"type": "string",
"enum": [
"yes",
"no"
]
},
"mtime": {
"type": "string"
},
"latitude": {
"type": "string"
},
"longitude": {
"type": "string"
},
"description": {
"type": "string"
},
"thumb": {
"type": "string"
},
"website": {
"type": "string"
},
"visibility": {
"type": "string",
"enum": [
"0",
"1"
]
},
"assignable": {
"type": "string",
"enum": [
"0",
"1"
]
},
"conversation": {
"type": "string"
},
"etag": {
"type": "string"
},
"permissions": {
"type": "string"
},
"width": {
"type": "string"
},
"height": {
"type": "string"
},
"blurhash": {
"type": "string"
}
}
},
"Room": {
"type": "object",
"required": [
"actorId",
"actorType",
"attendeeId",
"attendeePermissions",
"attendeePin",
"avatarVersion",
"breakoutRoomMode",
"breakoutRoomStatus",
"callFlag",
"callPermissions",
"callRecording",
"callStartTime",
"canDeleteConversation",
"canEnableSIP",
"canLeaveConversation",
"canStartCall",
"defaultPermissions",
"description",
"displayName",
"hasCall",
"hasPassword",
"id",
"isCustomAvatar",
"isFavorite",
"lastActivity",
"lastCommonReadMessage",
"lastMessage",
"lastPing",
"lastReadMessage",
"listable",
"lobbyState",
"lobbyTimer",
"mentionPermissions",
"messageExpiration",
"name",
"notificationCalls",
"notificationLevel",
"objectId",
"objectType",
"participantFlags",
"participantType",
"permissions",
"readOnly",
"recordingConsent",
"sessionId",
"sipEnabled",
"token",
"type",
"unreadMention",
"unreadMentionDirect",
"unreadMessages"
],
"properties": {
"actorId": {
"type": "string"
},
"actorType": {
"type": "string"
},
"attendeeId": {
"type": "integer",
"format": "int64"
},
"attendeePermissions": {
"type": "integer",
"format": "int64"
},
"attendeePin": {
"type": "string",
"nullable": true
},
"avatarVersion": {
"type": "string"
},
"breakoutRoomMode": {
"type": "integer",
"format": "int64"
},
"breakoutRoomStatus": {
"type": "integer",
"format": "int64"
},
"callFlag": {
"type": "integer",
"format": "int64"
},
"callPermissions": {
"type": "integer",
"format": "int64"
},
"callRecording": {
"type": "integer",
"format": "int64"
},
"callStartTime": {
"type": "integer",
"format": "int64"
},
"canDeleteConversation": {
"type": "boolean"
},
"canEnableSIP": {
"type": "boolean"
},
"canLeaveConversation": {
"type": "boolean"
},
"canStartCall": {
"type": "boolean"
},
"defaultPermissions": {
"type": "integer",
"format": "int64"
},
"description": {
"type": "string"
},
"displayName": {
"type": "string"
},
"hasCall": {
"type": "boolean"
},
"hasPassword": {
"type": "boolean"
},
"id": {
"type": "integer",
"format": "int64"
},
"isCustomAvatar": {
"type": "boolean"
},
"isFavorite": {
"type": "boolean"
},
"lastActivity": {
"type": "integer",
"format": "int64"
},
"lastCommonReadMessage": {
"type": "integer",
"format": "int64"
},
"lastMessage": {
"anyOf": [
{
"$ref": "#/components/schemas/RoomLastMessage"
},
{
"type": "array",
"maxItems": 0
}
]
},
"lastPing": {
"type": "integer",
"format": "int64"
},
"lastReadMessage": {
"type": "integer",
"format": "int64"
},
"listable": {
"type": "integer",
"format": "int64"
},
"lobbyState": {
"type": "integer",
"format": "int64"
},
"lobbyTimer": {
"type": "integer",
"format": "int64"
},
"mentionPermissions": {
"type": "integer",
"format": "int64"
},
"messageExpiration": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"notificationCalls": {
"type": "integer",
"format": "int64"
},
"notificationLevel": {
"type": "integer",
"format": "int64"
},
"objectId": {
"type": "string"
},
"objectType": {
"type": "string"
},
"participantFlags": {
"type": "integer",
"format": "int64"
},
"participantType": {
"type": "integer",
"format": "int64"
},
"permissions": {
"type": "integer",
"format": "int64"
},
"readOnly": {
"type": "integer",
"format": "int64"
},
"recordingConsent": {
"type": "integer",
"format": "int64"
},
"remoteServer": {
"type": "string"
},
"remoteToken": {
"type": "string"
},
"sessionId": {
"type": "string"
},
"sipEnabled": {
"type": "integer",
"format": "int64"
},
"status": {
"type": "string"
},
"statusClearAt": {
"type": "integer",
"format": "int64",
"nullable": true
},
"statusIcon": {
"type": "string",
"nullable": true
},
"statusMessage": {
"type": "string",
"nullable": true
},
"token": {
"type": "string"
},
"type": {
"type": "integer",
"format": "int64"
},
"unreadMention": {
"type": "boolean"
},
"unreadMentionDirect": {
"type": "boolean"
},
"unreadMessages": {
"type": "integer",
"format": "int64"
}
}
},
"RoomLastMessage": {
"anyOf": [
{
"$ref": "#/components/schemas/ChatMessage"
},
{
"$ref": "#/components/schemas/ChatProxyMessage"
}
]
}
}
},
"paths": {
"/ocs/v2.php/apps/spreed/api/{apiVersion}/proxy/new/user-avatar/{size}": {
"get": {
"operationId": "avatar-get-user-proxy-avatar-without-room",
"summary": "Get the avatar of a cloudId user when inviting users while creating a conversation",
"tags": [
"avatar"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "size",
"in": "path",
"description": "Avatar size",
"required": true,
"schema": {
"type": "integer",
"format": "int64",
"enum": [
64,
512
]
}
},
{
"name": "cloudId",
"in": "query",
"description": "Federation CloudID to get the avatar for",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "darkTheme",
"in": "query",
"description": "Theme used for background",
"schema": {
"type": "integer",
"default": 0,
"enum": [
0,
1
]
}
},
{
"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": "User avatar returned",
"content": {
"*/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
}
}
}
},
"/ocs/v2.php/apps/spreed/api/{apiVersion}/proxy/new/user-avatar/{size}/dark": {
"get": {
"operationId": "avatar-get-user-proxy-avatar-dark-without-room",
"summary": "Get the dark mode avatar of a cloudId user when inviting users while creating a conversation",
"tags": [
"avatar"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "size",
"in": "path",
"description": "Avatar size",
"required": true,
"schema": {
"type": "integer",
"format": "int64",
"enum": [
64,
512
]
}
},
{
"name": "cloudId",
"in": "query",
"description": "Federation CloudID to get the avatar for",
"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": "User avatar returned",
"content": {
"*/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
}
}
}
},
"/ocs/v2.php/apps/spreed/api/{apiVersion}/proxy/{token}/user-avatar/{size}": {
"get": {
"operationId": "avatar-get-user-proxy-avatar",
"summary": "Get the avatar of a cloudId user",
"tags": [
"avatar"
],
"security": [
{},
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "token",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^[a-z0-9]{4,30}$"
}
},
{
"name": "size",
"in": "path",
"description": "Avatar size",
"required": true,
"schema": {
"type": "integer",
"format": "int64",
"enum": [
64,
512
]
}
},
{
"name": "cloudId",
"in": "query",
"description": "Federation CloudID to get the avatar for",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "darkTheme",
"in": "query",
"description": "Theme used for background",
"schema": {
"type": "integer",
"default": 0,
"enum": [
0,
1
]
}
},
{
"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": "User avatar returned",
"content": {
"*/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
}
}
}
},
"/ocs/v2.php/apps/spreed/api/{apiVersion}/proxy/{token}/user-avatar/{size}/dark": {
"get": {
"operationId": "avatar-get-user-proxy-avatar-dark",
"summary": "Get the dark mode avatar of a cloudId user",
"tags": [
"avatar"
],
"security": [
{},
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "token",
"in": "path",
"required": true,
"schema": {
"type": "string",
"pattern": "^[a-z0-9]{4,30}$"
}
},
{
"name": "size",
"in": "path",
"description": "Avatar size",
"required": true,
"schema": {
"type": "integer",
"format": "int64",
"enum": [
64,
512
]
}
},
{
"name": "cloudId",
"in": "query",
"description": "Federation CloudID to get the avatar for",
"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": "User avatar returned",
"content": {
"*/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
}
}
}
},
"/ocs/v2.php/apps/spreed/api/{apiVersion}/federation/invitation/{id}": {
"post": {
"operationId": "federation-accept-share",
"summary": "Accept a federation invites",
"description": "🚧 Draft: Still work in progress",
"tags": [
"federation"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "id",
"in": "path",
"description": "ID of the share",
"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": "Invite accepted successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"$ref": "#/components/schemas/Room"
}
}
}
}
}
}
}
},
"400": {
"description": "Invite can not be accepted (maybe it was accepted already)",
"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"
}
}
}
}
}
}
}
}
}
},
"410": {
"description": "Remote server could not be reached to notify about the acceptance",
"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"
}
}
}
}
}
}
}
}
}
},
"404": {
"description": "Invite can not be found",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"properties": {
"error": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
},
"delete": {
"operationId": "federation-reject-share",
"summary": "Decline a federation invites",
"description": "🚧 Draft: Still work in progress",
"tags": [
"federation"
],
"security": [
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v1"
],
"default": "v1"
}
},
{
"name": "id",
"in": "path",
"description": "ID of the share",
"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": "Invite declined successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {}
}
}
}
}
}
}
},
"404": {
"description": "Invite can not be found",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"properties": {
"error": {
"type": "string"
}
}
}
}
}
}
}
}
}
},
"400": {
"description": "Invite was already accepted, use the \"Remove the current user from a room\" endpoint instead",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"type": "object",
"properties": {
"error": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/spreed/api/{apiVersion}/federation/invitation": {
"get": {
"operationId": "federation-get-shares",
"summary": "Get a list of federation invites",
"description": "🚧 Draft: Still work in progress",
"tags": [
"federation"
],
"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": "Get list of received federation invites successfully",
"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/FederationInvite"
}
}
}
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/apps/spreed/api/{apiVersion}/room/{token}/federation/active": {
"post": {
"operationId": "room-join-federated-room",
"summary": "Join room on the host server using the session id of the federated user.",
"description": "The session id can be null only for requests from Talk < 20.",
"tags": [
"room"
],
"security": [
{},
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"sessionId": {
"type": "string",
"nullable": true,
"description": "Federated session id to join with"
}
}
}
}
}
},
"parameters": [
{
"name": "apiVersion",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"v4"
],
"default": "v4"
}
},
{
"name": "token",
"in": "path",
"description": "Token of the room",
"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": "Federated user joined the room",
"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": {
"$ref": "#/components/schemas/Room"
}
}
}
}
}
}
}
},
"404": {
"description": "Room 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
}
}
}
}
}
}
}
}
}
},
"delete": {
"operationId": "room-leave-federated-room",
"summary": "Leave room on the host server using the session id of the federated user.",
"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",
"description": "Token of the room",
"required": true,
"schema": {
"type": "string",
"pattern": "^[a-z0-9]{4,30}$"
}
},
{
"name": "sessionId",
"in": "query",
"description": "Federated session id to leave with",
"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": "Successfully left the room",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {}
}
}
}
}
}
}
},
"404": {
"description": "Room not found (non-federation request)",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
"nullable": true
}
}
}
}
}
}
}
}
}
}
}
},
"tags": []
}