summaryrefslogtreecommitdiffstats
path: root/openapi.json
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2023-10-06 10:50:37 +0200
committerJoas Schilling <coding@schilljs.com>2023-10-06 12:41:12 +0200
commita8a21d551552ff44ee636daae3a399671938ac13 (patch)
treed508431032771dbe70ad9d2365b31e0ff42a90c5 /openapi.json
parentd6456c3bf305c0ba82229e67da32639b74452ccd (diff)
Generate OpenAPI.json
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'openapi.json')
-rw-r--r--openapi.json16314
1 files changed, 16314 insertions, 0 deletions
diff --git a/openapi.json b/openapi.json
new file mode 100644
index 000000000..c28aeaa96
--- /dev/null
+++ b/openapi.json
@@ -0,0 +1,16314 @@
+{
+ "openapi": "3.0.3",
+ "info": {
+ "title": "spreed",
+ "version": "0.0.1",
+ "description": "Chat, video & audio-conferencing using WebRTC",
+ "license": {
+ "name": "agpl"
+ }
+ },
+ "components": {
+ "securitySchemes": {
+ "basic_auth": {
+ "type": "http",
+ "scheme": "basic"
+ },
+ "bearer_auth": {
+ "type": "http",
+ "scheme": "bearer"
+ }
+ },
+ "schemas": {
+ "Bot": {
+ "type": "object",
+ "required": [
+ "description",
+ "id",
+ "name",
+ "state"
+ ],
+ "properties": {
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "id": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "name": {
+ "type": "string"
+ },
+ "state": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "BotWithDetails": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Bot"
+ },
+ {
+ "type": "object",
+ "required": [
+ "error_count",
+ "features",
+ "last_error_date",
+ "last_error_message",
+ "url",
+ "url_hash"
+ ],
+ "properties": {
+ "error_count": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "features": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "last_error_date": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "last_error_message": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ },
+ "url_hash": {
+ "type": "string"
+ }
+ }
+ }
+ ]
+ },
+ "BotWithDetailsAndSecret": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/BotWithDetails"
+ },
+ {
+ "type": "object",
+ "required": [
+ "secret"
+ ],
+ "properties": {
+ "secret": {
+ "type": "string"
+ }
+ }
+ }
+ ]
+ },
+ "CallPeer": {
+ "type": "object",
+ "required": [
+ "actorId",
+ "actorType",
+ "displayName",
+ "lastPing",
+ "sessionId",
+ "token"
+ ],
+ "properties": {
+ "actorId": {
+ "type": "string"
+ },
+ "actorType": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "lastPing": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "sessionId": {
+ "type": "string"
+ },
+ "token": {
+ "type": "string"
+ }
+ }
+ },
+ "ChatMentionSuggestion": {
+ "type": "object",
+ "required": [
+ "id",
+ "label",
+ "source",
+ "status",
+ "statusClearAt",
+ "statusIcon",
+ "statusMessage"
+ ],
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string"
+ },
+ "source": {
+ "type": "string"
+ },
+ "status": {
+ "type": "string",
+ "nullable": true
+ },
+ "statusClearAt": {
+ "type": "integer",
+ "format": "int64",
+ "nullable": true
+ },
+ "statusIcon": {
+ "type": "string",
+ "nullable": true
+ },
+ "statusMessage": {
+ "type": "string",
+ "nullable": true
+ }
+ }
+ },
+ "ChatMessage": {
+ "type": "object",
+ "required": [
+ "actorDisplayName",
+ "actorId",
+ "actorType",
+ "expirationTimestamp",
+ "id",
+ "isReplyable",
+ "markdown",
+ "message",
+ "messageParameters",
+ "messageType",
+ "reactions",
+ "referenceId",
+ "systemMessage",
+ "timestamp",
+ "token"
+ ],
+ "properties": {
+ "actorDisplayName": {
+ "type": "string"
+ },
+ "actorId": {
+ "type": "string"
+ },
+ "actorType": {
+ "type": "string"
+ },
+ "deleted": {
+ "type": "boolean"
+ },
+ "expirationTimestamp": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "id": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "isReplyable": {
+ "type": "boolean"
+ },
+ "markdown": {
+ "type": "boolean"
+ },
+ "message": {
+ "type": "string"
+ },
+ "messageParameters": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ }
+ },
+ "messageType": {
+ "type": "string"
+ },
+ "reactions": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "integer",
+ "format": "int64"
+ }
+ },
+ "referenceId": {
+ "type": "string"
+ },
+ "systemMessage": {
+ "type": "string"
+ },
+ "timestamp": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "token": {
+ "type": "string"
+ }
+ }
+ },
+ "ChatMessageWithParent": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/ChatMessage"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "parent": {
+ "$ref": "#/components/schemas/ChatMessage"
+ }
+ }
+ }
+ ]
+ },
+ "ChatReminder": {
+ "type": "object",
+ "required": [
+ "messageId",
+ "timestamp",
+ "token",
+ "userId"
+ ],
+ "properties": {
+ "messageId": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "timestamp": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "token": {
+ "type": "string"
+ },
+ "userId": {
+ "type": "string"
+ }
+ }
+ },
+ "FederationInvite": {
+ "type": "object",
+ "required": [
+ "access_token",
+ "id",
+ "remote_id",
+ "remote_server",
+ "remote_token",
+ "room_id",
+ "user_id"
+ ],
+ "properties": {
+ "access_token": {
+ "type": "string"
+ },
+ "id": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "remote_id": {
+ "type": "string"
+ },
+ "remote_server": {
+ "type": "string",
+ "nullable": true
+ },
+ "remote_token": {
+ "type": "string",
+ "nullable": true
+ },
+ "room_id": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "user_id": {
+ "type": "string"
+ }
+ }
+ },
+ "Matterbridge": {
+ "type": "object",
+ "required": [
+ "enabled",
+ "parts",
+ "pid"
+ ],
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "parts": {
+ "$ref": "#/components/schemas/MatterbridgeConfigFields"
+ },
+ "pid": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "MatterbridgeConfigFields": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ }
+ },
+ "MatterbridgeProcessState": {
+ "type": "object",
+ "required": [
+ "log",
+ "running"
+ ],
+ "properties": {
+ "log": {
+ "type": "string"
+ },
+ "running": {
+ "type": "boolean"
+ }
+ }
+ },
+ "MatterbridgeWithProcessState": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/Matterbridge"
+ },
+ {
+ "$ref": "#/components/schemas/MatterbridgeProcessState"
+ }
+ ]
+ },
+ "OCSMeta": {
+ "type": "object",
+ "required": [
+ "status",
+ "statuscode"
+ ],
+ "properties": {
+ "status": {
+ "type": "string"
+ },
+ "statuscode": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "totalitems": {
+ "type": "string"
+ },
+ "itemsperpage": {
+ "type": "string"
+ }
+ }
+ },
+ "Participant": {
+ "type": "object",
+ "required": [
+ "actorId",
+ "actorType",
+ "attendeeId",
+ "attendeePermissions",
+ "attendeePin",
+ "displayName",
+ "inCall",
+ "lastPing",
+ "participantType",
+ "permissions",
+ "roomToken",
+ "sessionIds"
+ ],
+ "properties": {
+ "actorId": {
+ "type": "string"
+ },
+ "actorType": {
+ "type": "string"
+ },
+ "attendeeId": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "attendeePermissions": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "attendeePin": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "inCall": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "lastPing": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "participantType": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "permissions": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "roomToken": {
+ "type": "string"
+ },
+ "sessionIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "status": {
+ "type": "string"
+ },
+ "statusClearAt": {
+ "type": "integer",
+ "format": "int64",
+ "nullable": true
+ },
+ "statusIcon": {
+ "type": "string",
+ "nullable": true
+ },
+ "statusMessage": {
+ "type": "string",
+ "nullable": true
+ }
+ }
+ },
+ "Poll": {
+ "type": "object",
+ "required": [
+ "actorDisplayName",
+ "actorId",
+ "actorType",
+ "id",
+ "maxVotes",
+ "options",
+ "question",
+ "resultMode",
+ "status"
+ ],
+ "properties": {
+ "actorDisplayName": {
+ "type": "string"
+ },
+ "actorId": {
+ "type": "string"
+ },
+ "actorType": {
+ "type": "string"
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/PollVote"
+ }
+ },
+ "id": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "maxVotes": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "numVoters": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "options": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "question": {
+ "type": "string"
+ },
+ "resultMode": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "status": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "votedSelf": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int64"
+ }
+ },
+ "votes": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ }
+ },
+ "PollVote": {
+ "type": "object",
+ "required": [
+ "actorDisplayName",
+ "actorId",
+ "actorType",
+ "optionId"
+ ],
+ "properties": {
+ "actorDisplayName": {
+ "type": "string"
+ },
+ "actorId": {
+ "type": "string"
+ },
+ "actorType": {
+ "type": "string"
+ },
+ "optionId": {
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "PublicCapabilities": {
+ "type": "object",
+ "required": [
+ "spreed"
+ ],
+ "properties": {
+ "spreed": {
+ "type": "o