{
    "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"
                        },
                        "minItems": 1
                    },
                    "features-local": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "minItems": 1
                    },
                    "config": {
                        "type": "object",
                        "required": [
                            "attachments",
                            "call",
                            "chat",
                            "conversations",
                            "federation",
                            "previews",
                            "signaling",
                            "experiments"
                        ],
                        "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",
                                    "predefined-backgrounds-v2",
                                    "can-upload-background",
                                    "sip-enabled",
                                    "sip-dialout-enabled",
                                    "can-enable-sip",
                                    "start-without-media",
                                    "max-duration",
                                    "blur-virtual-background",
                                    "end-to-end-encryption",
                                    "live-transcription"
                                ],
                                "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",
                                        "description": "List of file names relative to the spreed/img/backgrounds/ web path, e.g. `2_home.jpg`",
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "predefined-backgrounds-v2": {
                                        "type": "array",
                                        "description": "List of file paths relative to the server web root with leading slash, e.g. `/apps/spreed/img/backgrounds/2_home.jpg`",
                                        "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"
                                    },
                                    "end-to-end-encryption": {
                                        "type": "boolean"
                                    },
                                    "live-transcription": {
                                        "type": "boolean"
                                    }
                                }
                            },
                            "chat": {
                                "type": "object",
                                "required": [
                                    "max-length",
                                    "read-privacy",
                                    "has-translation-providers",
                                    "has-translation-task-providers",
                                    "typing-privacy",
                                    "summary-threshold"
                                ],
                                "properties": {
                                    "max-length": {
                                        "type": "integer",
                                        "format": "int64"
                                    },
                                    "read-privacy": {
                                        "type": "integer",
                                        "format": "int64"
                                    },
                                    "has-translation-providers": {
                                        "type": "boolean"
                                    },
                                    "has-translation-task-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",
                                    "list-style",
                                    "description-length",
                                    "retention-event",
                                    "retention-phone",
                                    "retention-instant-meetings"
                                ],
                                "properties": {
                                    "can-create": {
                                        "type": "boolean"
                                    },
                                    "force-passwords": {
                                        "type": "boolean"
                                    },
                                    "list-style": {
                                        "type": "string",
                                        "enum": [
                                            "two-lines",
                                            "compact"
                                        ]
                                    },
                                    "description-length": {
                                        "type": "integer",
                                        "format": "int64",
                                        "minimum": 1
                                    },
                                    "retention-event": {
                                        "type": "integer",
                                        "format": "int64",
                                        "minimum": 0
                                    },
                                    "retention-phone": {
                                        "type": "integer",
                                        "format": "int64",
                                        "minimum": 0
                                    },
                                    "retention-instant-meetings": {
                                        "type": "integer",
                                        "format": "int64",
                                        "minimum": 0
                                    }
                                }
                            },
                            "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"
                                    }
                                }
                            },
                            "experiments": {
                                "type": "object",
                                "required": [
                                    "enabled"
                                ],
                                "properties": {
                                    "enabled": {
                                        "type": "integer",
                                        "format": "int64",
                                        "minimum": 0
                                    }
                                }
                            }
                        }
                    },
                    "config-local": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            },
                            "minItems": 1
                        }
                    },
                    "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"
                            },
                            "threadId": {
                                "type": "integer",
                                "format": "int64"
                            },
                            "isThread": {
                                "type": "boolean"
                            },
                            "threadTitle": {
                                "type": "string"
                            },
                            "threadReplies": {
                                "type": "integer",
                                "format": "int64"
                            }
                        }
                    }
                ]
            },
            "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": {
                "type": "object",
                "properties": {
                    "spreed": {
                        "$ref": "#/components/schemas/Capabilities"
                    }
                }
            },
            "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"
                        ]
                    },
                    "hide-download": {
                        "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",
                    "lastPing",
                    "lastReadMessage",
                    "listable",
                    "liveTranscriptionLanguageId",
                    "lobbyState",
                    "lobbyTimer",
                    "mentionPermissions",
                    "messageExpiration",
                    "name",
                    "notificationCalls",
                    "notificationLevel",
                    "objectId",
                    "objectType",
                    "participantFlags",
                    "participantType",
                    "permissions",
                    "readOnly",
                    "recordingConsent",
                    "sessionId",
                    "sipEnabled",
                    "token",
                    "type",
                    "unreadMention",
                    "unreadMentionDirect",
                    "unreadMessages",
                    "isArchived",
                    "isImportant",
                    "isSensitive"
                ],
                "properties": {
                    "actorId": {
                        "type": "string",
                        "description": "The unique identifier for the given actor type"
                    },
                    "invitedActorId": {
                        "type": "string",
                        "description": "The cloud id of the invited user"
                    },
                    "actorType": {
                        "type": "string",
                        "description": "Actor type of the current user (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#attendee-types))"
                    },
                    "attendeeId": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Unique attendee id"
                    },
                    "attendeePermissions": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Dedicated permissions for the current participant, if not `Custom` this are not the resulting permissions (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#attendee-permissions))"
                    },
                    "attendeePin": {
                        "type": "string",
                        "nullable": true,
                        "description": "Unique dial-in authentication code for this user, when the conversation has SIP enabled (see `sipEnabled` attribute)"
                    },
                    "avatarVersion": {
                        "type": "string",
                        "description": "Version of conversation avatar used to easier expiration of the avatar in case a moderator updates it, since the avatar endpoint should be cached for 24 hours. (only available with `avatar` capability)"
                    },
                    "breakoutRoomMode": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Breakout room configuration mode (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#breakout-room-modes)) (only available with `breakout-rooms-v1` capability)"
                    },
                    "breakoutRoomStatus": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Breakout room status (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#breakout-room-status)) (only available with `breakout-rooms-v1` capability)"
                    },
                    "callFlag": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Combined flag of all participants in the current call (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#participant-in-call-flag), only available with `conversation-call-flags` capability)"
                    },
                    "callPermissions": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Call permissions, if not `Custom` this are not the resulting permissions, if set they will reset after the end of the call (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#attendee-permissions))"
                    },
                    "callRecording": {
                        "type": "integer",
                        "format": "int64",
                        "enum": [
                            0,
                            1,
                            2,
                            3,
                            4,
                            5
                        ],
                        "description": "Type of call recording (see [Constants - Call recording status](https://nextcloud-talk.readthedocs.io/en/latest/constants#call-recording-status)) (only available with `recording-v1` capability)"
                    },
                    "callStartTime": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Timestamp when the call was started (only available with `recording-v1` capability)"
                    },
                    "canDeleteConversation": {
                        "type": "boolean",
                        "description": "Flag if the user can delete the conversation for everyone (not possible without moderator permissions or in one-to-one conversations)"
                    },
                    "canEnableSIP": {
                        "type": "boolean",
                        "description": "Whether the given user can enable SIP for this conversation. Note that when the token is not-numeric only, SIP can not be enabled even if the user is permitted and a moderator of the conversation"
                    },
                    "canLeaveConversation": {
                        "type": "boolean",
                        "description": "Flag if the user can leave the conversation (not possible for the last user with moderator permissions)"
                    },
                    "canStartCall": {
                        "type": "boolean",
                        "description": "Flag if the user can start a new call in this conversation (joining is always possible) (only available with `start-call-flag` capability)"
                    },
                    "defaultPermissions": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Default permissions for new participants (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#attendee-permissions))"
                    },
                    "description": {
                        "type": "string",
                        "description": "Description of the conversation (can also be empty) (only available with `room-description` capability)"
                    },
                    "displayName": {
                        "type": "string",
                        "description": "`name` if non-empty, otherwise it falls back to a list of participants"
                    },
                    "hasCall": {
                        "type": "boolean",
                        "description": "Flag if the conversation has an active call"
                    },
                    "hasPassword": {
                        "type": "boolean",
                        "description": "Flag if the conversation has a password"
                    },
                    "id": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Numeric identifier of the conversation"
                    },
                    "isCustomAvatar": {
                        "type": "boolean",
                        "description": "Flag if the conversation has a custom avatar (only available with `avatar` capability)"
                    },
                    "isFavorite": {
                        "type": "boolean",
                        "description": "Flag if the conversation is favorited by the user"
                    },
                    "lastActivity": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Timestamp of the last activity in the conversation, in seconds and UTC time zone"
                    },
                    "lastCommonReadMessage": {
                        "type": "integer",
                        "format": "int64",
                        "description": "ID of the last message read by every user that has read privacy set to public in a room. When the user themself has it set to private the value is `0` (only available with `chat-read-status` capability)"
                    },
                    "lastMessage": {
                        "$ref": "#/components/schemas/RoomLastMessage",
                        "description": "Last message in a conversation if available, otherwise empty. **Note:** Even when given the message will not contain the `parent` or `reactionsSelf` attribute due to performance reasons"
                    },
                    "lastPing": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Timestamp of the user's session making the request"
                    },
                    "lastReadMessage": {
                        "type": "integer",
                        "format": "int64",
                        "description": "ID of the last read message in a room (only available with `chat-read-marker` capability)"
                    },
                    "listable": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Listable scope for the room (only available with `listable-rooms` capability)"
                    },
                    "liveTranscriptionLanguageId": {
                        "type": "string",
                        "description": "ID of the language to use for live transcriptions in the room,"
                    },
                    "lobbyState": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Webinar lobby restriction (0-1), if the participant is a moderator they can always join the conversation (only available with `webinary-lobby` capability) (See [Webinar lobby states](https://nextcloud-talk.readthedocs.io/en/latest/constants#webinar-lobby-states))"
                    },
                    "lobbyTimer": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Timestamp when the lobby will be automatically disabled (only available with `webinary-lobby` capability)"
                    },
                    "mentionPermissions": {
                        "type": "integer",
                        "format": "int64",
                        "enum": [
                            0,
                            1
                        ],
                        "description": "Whether all participants can mention using `@all` or only moderators (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#mention-permissions)) (only available with `mention-permissions` capability)"
                    },
                    "messageExpiration": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The message expiration time in seconds in this chat. Zero if disabled. (only available with `message-expiration` capability)"
                    },
                    "name": {
                        "type": "string",
                        "description": "Name of the conversation (can also be empty)"
                    },
                    "notificationCalls": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "notificationLevel": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The notification level for the user (See [Participant notification levels](https://nextcloud-talk.readthedocs.io/en/latest/constants#participant-notification-levels))"
                    },
                    "objectId": {
                        "type": "string",
                        "description": "See [Object types](https://nextcloud-talk.readthedocs.io/en/latest/constants#object-types) documentation for explanation"
                    },
                    "objectType": {
                        "type": "string",
                        "description": "The type of object that the conversation is associated with (See [Object types](https://nextcloud-talk.readthedocs.io/en/latest/constants#object-types))"
                    },
                    "participantFlags": {
                        "type": "integer",
                        "format": "int64",
                        "description": "\"In call\" flags of the user's session making the request (only available with `in-call-flags` capability)"
                    },
                    "participantType": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Permissions level of the current user"
                    },
                    "permissions": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Combined final permissions for the current participant, permissions are picked in order of attendee then call then default and the first which is `Custom` will apply (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#attendee-permissions))"
                    },
                    "readOnly": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Read-only state for the current user (only available with `read-only-rooms` capability)"
                    },
                    "recordingConsent": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Whether recording consent is required before joining a call (Only 0 and 1 will be returned, see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#recording-consent-required)) (only available with `recording-consent` capability)"
                    },
                    "remoteServer": {
                        "type": "string"
                    },
                    "remoteToken": {
                        "type": "string"
                    },
                    "sessionId": {
                        "type": "string",
                        "description": "`'0'` if not connected, otherwise an up to 512 character long string that is the identifier of the user's session making the request. Should only be used to pre-check if the user joined already with this session, but this might be outdated by the time of usage, so better check via [Get list of participants in a conversation](https://nextcloud-talk.readthedocs.io/en/latest/participant/#get-list-of-participants-in-a-conversation)"
                    },
                    "sipEnabled": {
                        "type": "integer",
                        "format": "int64",
                        "description": "SIP enable status (see [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants#sip-states))"
                    },
                    "status": {
                        "type": "string",
                        "description": "Optional: Only available for one-to-one conversations, when `includeStatus=true` is set and the user has a status"
                    },
                    "statusClearAt": {
                        "type": "integer",
                        "format": "int64",
                        "nullable": true,
                        "description": "Optional: Only available for one-to-one conversations, when `includeStatus=true` is set and the user has a status, can still be null even with a status"
                    },
                    "statusIcon": {
                        "type": "string",
                        "nullable": true,
                        "description": "Optional: Only available for one-to-one conversations, when `includeStatus=true` is set and the user has a status, can still be null even with a status"
                    },
                    "statusMessage": {
                        "type": "string",
                        "nullable": true,
                        "description": "Optional: Only available for one-to-one conversations, when `includeStatus=true` is set and the user has a status, can still be null even with a status"
                    },
                    "token": {
                        "type": "string",
                        "description": "Token identifier of the conversation which is used for further interaction"
                    },
                    "type": {
                        "type": "integer",
                        "format": "int64",
                        "description": "See list of conversation types in the [constants list](https://nextcloud-talk.readthedocs.io/en/latest/constants/#conversation-types)"
                    },
                    "unreadMention": {
                        "type": "boolean",
                        "description": "Flag if the user was mentioned since their last visit"
                    },
                    "unreadMentionDirect": {
                        "type": "boolean",
                        "description": "Flag if the user was mentioned directly (ignoring `@all` mentions) since their last visit (only available with `direct-mention-flag` capability)"
                    },
                    "unreadMessages": {
                        "type": "integer",
                        "format": "int64",
                        "description": "Number of unread chat messages in the conversation (only available with `chat-v2` capability)"
                    },
                    "isArchived": {
                        "type": "boolean",
                        "description": "Flag if the conversation is archived by the user (only available with `archived-conversations-v2` capability)"
                    },
                    "isImportant": {
                        "type": "boolean",
                        "description": "Required capability: `important-conversations`"
                    },
                    "isSensitive": {
                        "type": "boolean",
                        "description": "Required capability: `sensitive-conversations`"
                    }
                }
            },
            "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": "boolean",
                            "default": false
                        }
                    },
                    {
                        "name": "x-nextcloud-federation",
                        "in": "header",
                        "description": "Set to 1 when the request is performed by another Nextcloud Server to indicate a federation request",
                        "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"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Current user is not logged in",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "ocs"
                                    ],
                                    "properties": {
                                        "ocs": {
                                            "type": "object",
                                            "required": [
                                                "meta",
                                                "data"
                                            ],
                                            "properties": {
                                                "meta": {
                                                    "$ref": "#/components/schemas/OCSMeta"
                                                },
                                                "data": {}
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/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": "x-nextcloud-federation",
                        "in": "header",
                        "description": "Set to 1 when the request is performed by another Nextcloud Server to indicate a federation request",
                        "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"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Current user is not logged in",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "ocs"
                                    ],
                                    "properties": {
                                        "ocs": {
                                            "type": "object",
                                            "required": [
                                                "meta",
                                                "data"
                                            ],
                                            "properties": {
                                                "meta": {
                                                    "$ref": "#/components/schemas/OCSMeta"
                                                },
                                                "data": {}
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/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": "boolean",
                            "default": false
                        }
                    },
                    {
                        "name": "x-nextcloud-federation",
                        "in": "header",
                        "description": "Set to 1 when the request is performed by another Nextcloud Server to indicate a federation request",
                        "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}/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": "x-nextcloud-federation",
                        "in": "header",
                        "description": "Set to 1 when the request is performed by another Nextcloud Server to indicate a federation request",
                        "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"
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "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",
                                                    "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"
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Current user is not logged in",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "ocs"
                                    ],
                                    "properties": {
                                        "ocs": {
                                            "type": "object",
                                            "required": [
                                                "meta",
                                                "data"
                                            ],
                                            "properties": {
                                                "meta": {
                                                    "$ref": "#/components/schemas/OCSMeta"
                                                },
                                                "data": {}
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "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": {
                                                    "nullable": true
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "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",
                                                    "required": [
                                                        "error"
                                                    ],
                                                    "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",
                                                    "required": [
                                                        "error"
                                                    ],
                                                    "properties": {
                                                        "error": {
                                                            "type": "string"
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Current user is not logged in",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "ocs"
                                    ],
                                    "properties": {
                                        "ocs": {
                                            "type": "object",
                                            "required": [
                                                "meta",
                                                "data"
                                            ],
                                            "properties": {
                                                "meta": {
                                                    "$ref": "#/components/schemas/OCSMeta"
                                                },
                                                "data": {}
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/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"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Current user is not logged in",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "ocs"
                                    ],
                                    "properties": {
                                        "ocs": {
                                            "type": "object",
                                            "required": [
                                                "meta",
                                                "data"
                                            ],
                                            "properties": {
                                                "meta": {
                                                    "$ref": "#/components/schemas/OCSMeta"
                                                },
                                                "data": {}
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/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": "x-nextcloud-federation",
                        "in": "header",
                        "description": "Set to 1 when the request is performed by another Nextcloud Server to indicate a federation request",
                        "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": "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": "x-nextcloud-federation",
                        "in": "header",
                        "description": "Set to 1 when the request is performed by another Nextcloud Server to indicate a federation request",
                        "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": {
                                                    "nullable": true
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "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": []
}
