Files
dumpsterChat/docs/swagger.json
T
hobokenchicken 72ca99b58d Add swaggo annotations to all handlers and regenerate full Swagger docs
- Added @Summary/@Router/@Param/@Success/@Security annotations to all API handlers
- Regenerated docs/swagger.json, docs/swagger.yaml, docs/docs.go with full endpoint definitions
- Fixed generated docs.go to remove unsupported LeftDelim/RightDelim fields
2026-06-28 19:16:42 -04:00

3462 lines
114 KiB
JSON

{
"schemes": [
"http",
"https"
],
"swagger": "2.0",
"info": {
"description": "A chaotic, self-hosted Discord-like platform API",
"title": "Dumpster API",
"contact": {},
"version": "1.0"
},
"host": "localhost:8080",
"basePath": "/api/v1",
"paths": {
"/auth/login/password": {
"post": {
"description": "Authenticate with email and password",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Login with email and password",
"parameters": [
{
"description": "Login credentials",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/auth.loginRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/auth/logout": {
"post": {
"description": "End the current session",
"tags": [
"auth"
],
"summary": "Logout",
"responses": {
"204": {
"description": "No Content"
}
}
}
},
"/auth/me": {
"get": {
"security": [
{
"SessionAuth": []
}
],
"description": "Get the authenticated user's profile",
"produces": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Get current user profile",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/auth.UserProfile"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"patch": {
"security": [
{
"SessionAuth": []
}
],
"description": "Update the authenticated user's profile",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Update current user profile",
"parameters": [
{
"description": "Profile update data",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/auth.updateProfileRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/auth.UserProfile"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/auth/register": {
"post": {
"description": "Create a new user account",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Register a new user",
"parameters": [
{
"description": "Registration data",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/auth.registerRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"409": {
"description": "Conflict",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/auth/webauthn/login/begin": {
"post": {
"description": "Start passkey authentication",
"produces": [
"application/json"
],
"tags": [
"webauthn"
],
"summary": "Begin passkey login",
"responses": {
"200": {
"description": "WebAuthn login options",
"schema": {
"type": "object"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/auth/webauthn/login/finish": {
"post": {
"description": "Complete passkey authentication",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"webauthn"
],
"summary": "Finish passkey login",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/auth/webauthn/register/begin": {
"post": {
"security": [
{
"SessionAuth": []
}
],
"description": "Start passkey registration for an authenticated user",
"produces": [
"application/json"
],
"tags": [
"webauthn"
],
"summary": "Begin passkey registration",
"responses": {
"200": {
"description": "WebAuthn registration options",
"schema": {
"type": "object"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/auth/webauthn/register/finish": {
"post": {
"security": [
{
"SessionAuth": []
}
],
"description": "Complete passkey registration",
"produces": [
"application/json"
],
"tags": [
"webauthn"
],
"summary": "Finish passkey registration",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/bots": {
"get": {
"security": [
{
"SessionAuth": []
}
],
"description": "List all bots owned by the current user",
"produces": [
"application/json"
],
"tags": [
"bots"
],
"summary": "List bots",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/bot.botResponse"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"SessionAuth": []
}
],
"description": "Create a new bot",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"bots"
],
"summary": "Create a bot",
"parameters": [
{
"description": "Bot data",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/bot.createBotRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/bot.botWithToken"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/bots/servers/{serverID}/commands": {
"get": {
"description": "List all slash commands registered in a server (public)",
"produces": [
"application/json"
],
"tags": [
"bot commands"
],
"summary": "List server commands",
"parameters": [
{
"type": "string",
"description": "Server ID",
"name": "serverID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/bot.slashCommandResponse"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/bots/{botID}": {
"get": {
"security": [
{
"SessionAuth": []
}
],
"description": "Get a bot by ID (owner only)",
"produces": [
"application/json"
],
"tags": [
"bots"
],
"summary": "Get a bot",
"parameters": [
{
"type": "string",
"description": "Bot ID",
"name": "botID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/bot.botResponse"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"SessionAuth": []
}
],
"description": "Delete a bot (owner only)",
"tags": [
"bots"
],
"summary": "Delete a bot",
"parameters": [
{
"type": "string",
"description": "Bot ID",
"name": "botID",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"patch": {
"security": [
{
"SessionAuth": []
}
],
"description": "Update a bot's name, description, or avatar (owner only)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"bots"
],
"summary": "Update a bot",
"parameters": [
{
"type": "string",
"description": "Bot ID",
"name": "botID",
"in": "path",
"required": true
},
{
"description": "Bot update data",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/bot.updateBotRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/bot.botResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/bots/{botID}/commands": {
"get": {
"security": [
{
"SessionAuth": []
}
],
"description": "List all slash commands for a bot",
"produces": [
"application/json"
],
"tags": [
"bot commands"
],
"summary": "List bot commands",
"parameters": [
{
"type": "string",
"description": "Bot ID",
"name": "botID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/bot.slashCommandResponse"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"SessionAuth": []
}
],
"description": "Create a new slash command for a bot",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"bot commands"
],
"summary": "Create a slash command",
"parameters": [
{
"type": "string",
"description": "Bot ID",
"name": "botID",
"in": "path",
"required": true
},
{
"description": "Command data",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/bot.createCommandRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/bot.slashCommandResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"409": {
"description": "Conflict",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/bots/{botID}/commands/{cmdID}": {
"delete": {
"security": [
{
"SessionAuth": []
}
],
"description": "Delete a slash command",
"tags": [
"bot commands"
],
"summary": "Delete a slash command",
"parameters": [
{
"type": "string",
"description": "Bot ID",
"name": "botID",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Command ID",
"name": "cmdID",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/bots/{botID}/regenerate-token": {
"post": {
"security": [
{
"SessionAuth": []
}
],
"description": "Regenerate a bot's API token (owner only)",
"produces": [
"application/json"
],
"tags": [
"bots"
],
"summary": "Regenerate bot token",
"parameters": [
{
"type": "string",
"description": "Bot ID",
"name": "botID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/bot.botWithToken"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/bots/{botID}/servers": {
"post": {
"security": [
{
"SessionAuth": []
}
],
"description": "Add a bot to a server",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"bots"
],
"summary": "Add bot to server",
"parameters": [
{
"type": "string",
"description": "Bot ID",
"name": "botID",
"in": "path",
"required": true
},
{
"description": "Server data",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/bot.addToServerRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/bots/{botID}/servers/{serverID}": {
"delete": {
"security": [
{
"SessionAuth": []
}
],
"description": "Remove a bot from a server",
"tags": [
"bots"
],
"summary": "Remove bot from server",
"parameters": [
{
"type": "string",
"description": "Bot ID",
"name": "botID",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Server ID",
"name": "serverID",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/channels/{channelID}/messages": {
"get": {
"security": [
{
"SessionAuth": []
}
],
"description": "List messages in a channel with pagination",
"produces": [
"application/json"
],
"tags": [
"messages"
],
"summary": "List messages",
"parameters": [
{
"type": "string",
"description": "Channel ID",
"name": "channelID",
"in": "path",
"required": true
},
{
"type": "integer",
"description": "Max messages to return (1-100, default 50)",
"name": "limit",
"in": "query"
},
{
"type": "string",
"description": "Message ID to fetch messages before",
"name": "before",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/message.messageResponse"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"SessionAuth": []
}
],
"description": "Send a message to a channel",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"messages"
],
"summary": "Create a message",
"parameters": [
{
"type": "string",
"description": "Channel ID",
"name": "channelID",
"in": "path",
"required": true
},
{
"description": "Message data",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/message.createMessageRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/message.messageResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/channels/{channelID}/messages/{messageID}": {
"delete": {
"security": [
{
"SessionAuth": []
}
],
"description": "Delete a message (author only)",
"tags": [
"messages"
],
"summary": "Delete a message",
"parameters": [
{
"type": "string",
"description": "Channel ID",
"name": "channelID",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Message ID",
"name": "messageID",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"patch": {
"security": [
{
"SessionAuth": []
}
],
"description": "Edit a message (author only)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"messages"
],
"summary": "Update a message",
"parameters": [
{
"type": "string",
"description": "Channel ID",
"name": "channelID",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Message ID",
"name": "messageID",
"in": "path",
"required": true
},
{
"description": "Message update data",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/message.updateMessageRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/message.messageResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/channels/{channelID}/webhooks": {
"get": {
"security": [
{
"SessionAuth": []
}
],
"description": "List webhooks for a channel",
"produces": [
"application/json"
],
"tags": [
"webhooks"
],
"summary": "List webhooks",
"parameters": [
{
"type": "string",
"description": "Channel ID",
"name": "channelID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/webhook.webhookResponse"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"SessionAuth": []
}
],
"description": "Create a new webhook for a channel",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"webhooks"
],
"summary": "Create a webhook",
"parameters": [
{
"type": "string",
"description": "Channel ID",
"name": "channelID",
"in": "path",
"required": true
},
{
"description": "Webhook data",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/webhook.createWebhookRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/webhook.webhookWithToken"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/invites/{code}": {
"get": {
"description": "Get information about an invite by code",
"produces": [
"application/json"
],
"tags": [
"invites"
],
"summary": "Get invite info",
"parameters": [
{
"type": "string",
"description": "Invite code",
"name": "code",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/invite.inviteResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/invites/{code}/join": {
"post": {
"security": [
{
"SessionAuth": []
}
],
"description": "Join a server using an invite code",
"produces": [
"application/json"
],
"tags": [
"invites"
],
"summary": "Join server via invite",
"parameters": [
{
"type": "string",
"description": "Invite code",
"name": "code",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"409": {
"description": "Conflict",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/messages/{messageID}/reactions": {
"get": {
"security": [
{
"SessionAuth": []
}
],
"description": "List reactions on a message grouped by emoji",
"produces": [
"application/json"
],
"tags": [
"reactions"
],
"summary": "List reactions",
"parameters": [
{
"type": "string",
"description": "Message ID",
"name": "messageID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/reaction.emojiGroup"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"SessionAuth": []
}
],
"description": "Add a reaction to a message",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"reactions"
],
"summary": "Add a reaction",
"parameters": [
{
"type": "string",
"description": "Message ID",
"name": "messageID",
"in": "path",
"required": true
},
{
"description": "Reaction data",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/reaction.addReactionRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/reaction.reactionResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/messages/{messageID}/reactions/{emoji}": {
"delete": {
"security": [
{
"SessionAuth": []
}
],
"description": "Remove a reaction from a message",
"tags": [
"reactions"
],
"summary": "Remove a reaction",
"parameters": [
{
"type": "string",
"description": "Message ID",
"name": "messageID",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Emoji to remove",
"name": "emoji",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/push/subscribe": {
"post": {
"security": [
{
"SessionAuth": []
}
],
"description": "Subscribe to push notifications",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"push"
],
"summary": "Subscribe to push notifications",
"parameters": [
{
"description": "Push subscription with endpoint, p256dh, and auth",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/push/unsubscribe": {
"post": {
"security": [
{
"SessionAuth": []
}
],
"description": "Unsubscribe from push notifications",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"push"
],
"summary": "Unsubscribe from push notifications",
"parameters": [
{
"description": "Endpoint to unsubscribe",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/push/vapid-public-key": {
"get": {
"description": "Get the VAPID public key for push notification subscriptions",
"produces": [
"application/json"
],
"tags": [
"push"
],
"summary": "Get VAPID public key",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/servers": {
"get": {
"security": [
{
"SessionAuth": []
}
],
"description": "List all servers the current user is a member of",
"produces": [
"application/json"
],
"tags": [
"servers"
],
"summary": "List servers",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/server.serverResponse"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"SessionAuth": []
}
],
"description": "Create a new server",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"servers"
],
"summary": "Create a server",
"parameters": [
{
"description": "Server data",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/server.createServerRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/server.serverResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/servers/{serverID}": {
"get": {
"security": [
{
"SessionAuth": []
}
],
"description": "Get a server by ID",
"produces": [
"application/json"
],
"tags": [
"servers"
],
"summary": "Get a server",
"parameters": [
{
"type": "string",
"description": "Server ID",
"name": "serverID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/server.serverResponse"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"SessionAuth": []
}
],
"description": "Delete a server (owner only)",
"tags": [
"servers"
],
"summary": "Delete a server",
"parameters": [
{
"type": "string",
"description": "Server ID",
"name": "serverID",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"patch": {
"security": [
{
"SessionAuth": []
}
],
"description": "Update a server's name or icon (owner only)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"servers"
],
"summary": "Update a server",
"parameters": [
{
"type": "string",
"description": "Server ID",
"name": "serverID",
"in": "path",
"required": true
},
{
"description": "Server update data",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/server.updateServerRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/server.serverResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/servers/{serverID}/channels": {
"get": {
"security": [
{
"SessionAuth": []
}
],
"description": "List channels in a server",
"produces": [
"application/json"
],
"tags": [
"channels"
],
"summary": "List channels",
"parameters": [
{
"type": "string",
"description": "Server ID",
"name": "server_id",
"in": "query",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/channel.channelResponse"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"SessionAuth": []
}
],
"description": "Create a new channel in a server",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"channels"
],
"summary": "Create a channel",
"parameters": [
{
"description": "Channel data",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/channel.createChannelRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/channel.channelResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/servers/{serverID}/channels/{channelID}": {
"get": {
"security": [
{
"SessionAuth": []
}
],
"description": "Get a channel by ID",
"produces": [
"application/json"
],
"tags": [
"channels"
],
"summary": "Get a channel",
"parameters": [
{
"type": "string",
"description": "Channel ID",
"name": "channelID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/channel.channelResponse"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"SessionAuth": []
}
],
"description": "Delete a channel (server owner only)",
"tags": [
"channels"
],
"summary": "Delete a channel",
"parameters": [
{
"type": "string",
"description": "Channel ID",
"name": "channelID",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"patch": {
"security": [
{
"SessionAuth": []
}
],
"description": "Update a channel's properties",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"channels"
],
"summary": "Update a channel",
"parameters": [
{
"type": "string",
"description": "Channel ID",
"name": "channelID",
"in": "path",
"required": true
},
{
"description": "Channel update data",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/channel.updateChannelRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/channel.channelResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/servers/{serverID}/invites": {
"post": {
"security": [
{
"SessionAuth": []
}
],
"description": "Create an invite code for a server",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"invites"
],
"summary": "Create an invite",
"parameters": [
{
"type": "string",
"description": "Server ID",
"name": "serverID",
"in": "path",
"required": true
},
{
"description": "Invite options",
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/invite.createInviteRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/invite.inviteResponse"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/voice/rooms/{roomID}/participants": {
"get": {
"description": "Get participants in a voice room",
"produces": [
"application/json"
],
"tags": [
"voice"
],
"summary": "Get voice room participants",
"parameters": [
{
"type": "string",
"description": "Room ID",
"name": "roomID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "object"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/voice/token": {
"post": {
"security": [
{
"SessionAuth": []
}
],
"description": "Get a LiveKit access token for a voice room",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"voice"
],
"summary": "Get voice token",
"parameters": [
{
"description": "Room data",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/voice.tokenRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/voice.tokenResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/webhooks/{webhookID}": {
"delete": {
"security": [
{
"SessionAuth": []
}
],
"description": "Delete a webhook",
"tags": [
"webhooks"
],
"summary": "Delete a webhook",
"parameters": [
{
"type": "string",
"description": "Webhook ID",
"name": "webhookID",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/webhooks/{webhookID}/{token}": {
"post": {
"description": "Execute a webhook to send a message (no auth required)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"webhooks"
],
"summary": "Execute a webhook",
"parameters": [
{
"type": "string",
"description": "Webhook ID",
"name": "webhookID",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Webhook token",
"name": "token",
"in": "path",
"required": true
},
{
"description": "Message data",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/webhook.executeWebhookRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
}
},
"definitions": {
"auth.UserProfile": {
"type": "object",
"properties": {
"accent_color": {
"type": "string"
},
"avatar": {
"type": "string"
},
"bio": {
"type": "string"
},
"created_at": {
"type": "string"
},
"display_name": {
"type": "string"
},
"email": {
"type": "string"
},
"id": {
"type": "string"
},
"status": {
"type": "string"
},
"status_text": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"auth.loginRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"password": {
"type": "string"
}
}
},
"auth.registerRequest": {
"type": "object",
"properties": {
"display_name": {
"type": "string"
},
"email": {
"type": "string"
},
"password": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"auth.updateProfileRequest": {
"type": "object",
"properties": {
"accent_color": {
"type": "string"
},
"bio": {
"type": "string"
},
"display_name": {
"type": "string"
},
"status_text": {
"type": "string"
}
}
},
"bot.addToServerRequest": {
"type": "object",
"properties": {
"server_id": {
"type": "string"
}
}
},
"bot.botResponse": {
"type": "object",
"properties": {
"avatar": {
"type": "string"
},
"created_at": {
"type": "string"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"owner_id": {
"type": "string"
}
}
},
"bot.botWithToken": {
"type": "object",
"properties": {
"avatar": {
"type": "string"
},
"created_at": {
"type": "string"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"owner_id": {
"type": "string"
},
"token": {
"type": "string"
}
}
},
"bot.createBotRequest": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"bot.createCommandRequest": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"name": {
"type": "string"
},
"options": {},
"server_id": {
"type": "string"
}
}
},
"bot.slashCommandResponse": {
"type": "object",
"properties": {
"bot_id": {
"type": "string"
},
"created_at": {
"type": "string"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"options": {},
"server_id": {
"type": "string"
}
}
},
"bot.updateBotRequest": {
"type": "object",
"properties": {
"avatar": {
"type": "string"
},
"description": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"channel.channelResponse": {
"type": "object",
"properties": {
"category": {
"type": "string"
},
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"position": {
"type": "integer"
},
"server_id": {
"type": "string"
},
"type": {
"type": "string"
}
}
},
"channel.createChannelRequest": {
"type": "object",
"properties": {
"category": {
"type": "string"
},
"name": {
"type": "string"
},
"position": {
"type": "integer"
},
"server_id": {
"type": "string"
},
"type": {
"type": "string"
}
}
},
"channel.updateChannelRequest": {
"type": "object",
"properties": {
"category": {
"type": "string"
},
"name": {
"type": "string"
},
"position": {
"type": "integer"
},
"type": {
"type": "string"
}
}
},
"invite.createInviteRequest": {
"type": "object",
"properties": {
"expires_hours": {
"type": "integer"
},
"max_uses": {
"type": "integer"
}
}
},
"invite.inviteResponse": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"created_at": {
"type": "string"
},
"creator_id": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"id": {
"type": "string"
},
"max_uses": {
"type": "integer"
},
"server_id": {
"type": "string"
},
"server_name": {
"type": "string"
},
"use_count": {
"type": "integer"
}
}
},
"message.createMessageRequest": {
"type": "object",
"properties": {
"content": {
"type": "string"
},
"reply_to": {
"type": "string"
}
}
},
"message.messageResponse": {
"type": "object",
"properties": {
"author_display_name": {
"type": "string"
},
"author_id": {
"type": "string"
},
"author_username": {
"type": "string"
},
"channel_id": {
"type": "string"
},
"content": {
"type": "string"
},
"created_at": {
"type": "string"
},
"edited_at": {
"type": "string"
},
"id": {
"type": "string"
}
}
},
"message.updateMessageRequest": {
"type": "object",
"properties": {
"content": {
"type": "string"
}
}
},
"reaction.addReactionRequest": {
"type": "object",
"properties": {
"emoji": {
"type": "string"
}
}
},
"reaction.emojiGroup": {
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"details": {
"type": "array",
"items": {
"$ref": "#/definitions/reaction.reactionResponse"
}
},
"emoji": {
"type": "string"
},
"users": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"reaction.reactionResponse": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"emoji": {
"type": "string"
},
"id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"user_id": {
"type": "string"
}
}
},
"server.createServerRequest": {
"type": "object",
"properties": {
"icon": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"server.serverResponse": {
"type": "object",
"properties": {
"icon": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"owner_id": {
"type": "string"
}
}
},
"server.updateServerRequest": {
"type": "object",
"properties": {
"icon": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"voice.tokenRequest": {
"type": "object",
"properties": {
"room_name": {
"type": "string"
}
}
},
"voice.tokenResponse": {
"type": "object",
"properties": {
"livekit_url": {
"type": "string"
},
"token": {
"type": "string"
}
}
},
"webhook.createWebhookRequest": {
"type": "object",
"properties": {
"avatar": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"webhook.executeWebhookRequest": {
"type": "object",
"properties": {
"avatar": {
"type": "string"
},
"content": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"webhook.webhookResponse": {
"type": "object",
"properties": {
"avatar": {
"type": "string"
},
"channel_id": {
"type": "string"
},
"created_at": {
"type": "string"
},
"created_by": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"webhook.webhookWithToken": {
"type": "object",
"properties": {
"avatar": {
"type": "string"
},
"channel_id": {
"type": "string"
},
"created_at": {
"type": "string"
},
"created_by": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"token": {
"type": "string"
}
}
}
},
"securityDefinitions": {
"SessionAuth": {
"type": "apiKey",
"name": "dumpster_session",
"in": "cookie"
}
}
}