{ "openapi": "3.0.0", "info": { "title": "Kaneo API", "description": "Kaneo Project Management API - Manage projects, tasks, labels, and more", "version": "1.0.0" }, "servers": [ { "url": "https://cloud.kaneo.app/api", "description": "Kaneo API Server" } ], "components": { "securitySchemes": { "bearerAuth": { "type": "http", "scheme": "bearer", "description": "API Key authentication" } } }, "security": [ { "bearerAuth": [] } ], "paths": { "/config": { "get": { "operationId": "getConfig", "tags": [ "Config" ], "description": "Get application settings and configuration", "responses": { "200": { "description": "Application settings", "content": { "application/json": { "schema": { "type": "object", "properties": { "disableRegistration": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] }, "isDemoMode": { "type": "boolean" }, "hasSmtp": { "type": "boolean" }, "hasGithubSignIn": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] }, "hasGoogleSignIn": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] }, "hasDiscordSignIn": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] }, "hasCustomOAuth": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] }, "hasGuestAccess": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] } }, "required": [ "disableRegistration", "isDemoMode", "hasSmtp", "hasGithubSignIn", "hasGoogleSignIn", "hasDiscordSignIn", "hasCustomOAuth", "hasGuestAccess" ] } } } } } } }, "/project": { "get": { "operationId": "listProjects", "tags": [ "Projects" ], "description": "Get all projects in a workspace", "responses": { "200": { "description": "List of projects with statistics", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "workspaceId": { "type": "string" }, "slug": { "type": "string" }, "icon": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "name": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "createdAt": {}, "isPublic": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] } }, "required": [ "id", "workspaceId", "slug", "icon", "name", "description", "createdAt", "isPublic" ] } } } } } }, "parameters": [ { "in": "query", "name": "workspaceId", "schema": { "type": "string" }, "required": true } ] }, "post": { "operationId": "createProject", "tags": [ "Projects" ], "description": "Create a new project in a workspace", "responses": { "200": { "description": "Project created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "workspaceId": { "type": "string" }, "slug": { "type": "string" }, "icon": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "name": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "createdAt": {}, "isPublic": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] } }, "required": [ "id", "workspaceId", "slug", "icon", "name", "description", "createdAt", "isPublic" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "workspaceId": { "type": "string" }, "icon": { "type": "string" }, "slug": { "type": "string" } }, "required": [ "name", "workspaceId", "icon", "slug" ] } } } } } }, "/project/{id}": { "get": { "operationId": "getProject", "tags": [ "Projects" ], "description": "Get a specific project by ID", "responses": { "200": { "description": "Project details", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "workspaceId": { "type": "string" }, "slug": { "type": "string" }, "icon": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "name": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "createdAt": {}, "isPublic": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] } }, "required": [ "id", "workspaceId", "slug", "icon", "name", "description", "createdAt", "isPublic" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true }, { "in": "query", "name": "workspaceId", "schema": { "type": "string" }, "required": true } ] }, "put": { "operationId": "updateProject", "tags": [ "Projects" ], "description": "Update an existing project", "responses": { "200": { "description": "Project updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "workspaceId": { "type": "string" }, "slug": { "type": "string" }, "icon": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "name": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "createdAt": {}, "isPublic": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] } }, "required": [ "id", "workspaceId", "slug", "icon", "name", "description", "createdAt", "isPublic" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "icon": { "type": "string" }, "slug": { "type": "string" }, "description": { "type": "string" }, "isPublic": { "type": "boolean" } }, "required": [ "name", "icon", "slug", "description", "isPublic" ] } } } } }, "delete": { "operationId": "deleteProject", "tags": [ "Projects" ], "description": "Delete a project by ID", "responses": { "200": { "description": "Project deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "workspaceId": { "type": "string" }, "slug": { "type": "string" }, "icon": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "name": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "createdAt": {}, "isPublic": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] } }, "required": [ "id", "workspaceId", "slug", "icon", "name", "description", "createdAt", "isPublic" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ] } }, "/task/tasks/{projectId}": { "get": { "operationId": "listTasks", "tags": [ "Tasks" ], "description": "Get all tasks for a specific project", "responses": { "200": { "description": "Project with tasks organized by columns", "content": { "application/json": { "schema": {} } } } }, "parameters": [ { "in": "path", "name": "projectId", "schema": { "type": "string" }, "required": true } ] } }, "/task/{projectId}": { "post": { "operationId": "createTask", "tags": [ "Tasks" ], "description": "Create a new task in a project", "responses": { "200": { "description": "Task created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "number": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "title": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "status": { "enum": [ "to-do", "in-progress", "in-review", "done", "archived", "planned" ] }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "dueDate": { "type": "string" }, "priority": { "type": "string" }, "status": { "type": "string" }, "userId": { "type": "string" } }, "required": [ "title", "description", "priority", "status" ] } } } }, "parameters": [ { "schema": { "type": "string" }, "in": "path", "name": "projectId", "required": true } ] } }, "/task/{id}": { "get": { "operationId": "getTask", "tags": [ "Tasks" ], "description": "Get a specific task by ID", "responses": { "200": { "description": "Task details", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "number": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "title": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "status": { "enum": [ "to-do", "in-progress", "in-review", "done", "archived", "planned" ] }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ] }, "put": { "operationId": "updateTask", "tags": [ "Tasks" ], "description": "Update all fields of a task", "responses": { "200": { "description": "Task updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "number": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "title": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "status": { "enum": [ "to-do", "in-progress", "in-review", "done", "archived", "planned" ] }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "dueDate": { "type": "string" }, "priority": { "type": "string" }, "status": { "type": "string" }, "projectId": { "type": "string" }, "position": { "type": "number" }, "userId": { "type": "string" } }, "required": [ "title", "description", "priority", "status", "projectId", "position" ] } } } } }, "delete": { "operationId": "deleteTask", "tags": [ "Tasks" ], "description": "Delete a task by ID", "responses": { "200": { "description": "Task deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "number": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "title": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "status": { "enum": [ "to-do", "in-progress", "in-review", "done", "archived", "planned" ] }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ] } }, "/task/export/{projectId}": { "get": { "operationId": "exportTasks", "tags": [ "Tasks" ], "description": "Export all tasks from a project", "responses": { "200": { "description": "Exported tasks data", "content": { "application/json": { "schema": {} } } } }, "parameters": [ { "in": "path", "name": "projectId", "schema": { "type": "string" }, "required": true } ] } }, "/task/import/{projectId}": { "post": { "operationId": "importTasks", "tags": [ "Tasks" ], "description": "Import multiple tasks into a project", "responses": { "200": { "description": "Tasks imported successfully", "content": { "application/json": { "schema": {} } } } }, "parameters": [ { "in": "path", "name": "projectId", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "tasks": { "type": "array", "items": { "type": "object", "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "status": { "type": "string" }, "priority": { "type": "string" }, "dueDate": { "type": "string" }, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": [ "title", "status" ] } } }, "required": [ "tasks" ] } } } } } }, "/task/status/{id}": { "put": { "operationId": "updateTaskStatus", "tags": [ "Tasks" ], "description": "Update only the status of a task", "responses": { "200": { "description": "Task status updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "number": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "title": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "status": { "enum": [ "to-do", "in-progress", "in-review", "done", "archived", "planned" ] }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "string" } }, "required": [ "status" ] } } } } } }, "/task/priority/{id}": { "put": { "operationId": "updateTaskPriority", "tags": [ "Tasks" ], "description": "Update only the priority of a task", "responses": { "200": { "description": "Task priority updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "number": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "title": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "status": { "enum": [ "to-do", "in-progress", "in-review", "done", "archived", "planned" ] }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "priority": { "type": "string" } }, "required": [ "priority" ] } } } } } }, "/task/assignee/{id}": { "put": { "operationId": "updateTaskAssignee", "tags": [ "Tasks" ], "description": "Assign or unassign a task to a user", "responses": { "200": { "description": "Task assignee updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "number": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "title": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "status": { "enum": [ "to-do", "in-progress", "in-review", "done", "archived", "planned" ] }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "userId": { "type": "string" } }, "required": [ "userId" ] } } } } } }, "/task/due-date/{id}": { "put": { "operationId": "updateTaskDueDate", "tags": [ "Tasks" ], "description": "Update only the due date of a task", "responses": { "200": { "description": "Task due date updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "number": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "title": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "status": { "enum": [ "to-do", "in-progress", "in-review", "done", "archived", "planned" ] }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "dueDate": { "type": "string" } }, "required": [] } } } } } }, "/task/title/{id}": { "put": { "operationId": "updateTaskTitle", "tags": [ "Tasks" ], "description": "Update only the title of a task", "responses": { "200": { "description": "Task title updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "number": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "title": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "status": { "enum": [ "to-do", "in-progress", "in-review", "done", "archived", "planned" ] }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "title": { "type": "string" } }, "required": [ "title" ] } } } } } }, "/task/description/{id}": { "put": { "operationId": "updateTaskDescription", "tags": [ "Tasks" ], "description": "Update only the description of a task", "responses": { "200": { "description": "Task description updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "number": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "title": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "status": { "enum": [ "to-do", "in-progress", "in-review", "done", "archived", "planned" ] }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "description": { "type": "string" } }, "required": [ "description" ] } } } } } }, "/activity/{taskId}": { "get": { "operationId": "getActivities", "tags": [ "Activity" ], "description": "Get all activities for a specific task", "responses": { "200": { "description": "List of activities for the task", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "type": { "enum": [ "comment", "task", "status_changed", "priority_changed", "unassigned", "assignee_changed", "due_date_changed", "title_changed", "description_changed", "create" ] }, "createdAt": {}, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUserName": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUserAvatar": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalSource": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": [ "id", "taskId", "type", "createdAt", "userId", "content", "externalUserName", "externalUserAvatar", "externalSource", "externalUrl" ] } } } } } }, "parameters": [ { "in": "path", "name": "taskId", "schema": { "type": "string" }, "required": true } ] } }, "/activity/create": { "post": { "operationId": "createActivity", "tags": [ "Activity" ], "description": "Create a new activity (system-generated event)", "responses": { "200": { "description": "Activity created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "type": { "enum": [ "comment", "task", "status_changed", "priority_changed", "unassigned", "assignee_changed", "due_date_changed", "title_changed", "description_changed", "create" ] }, "createdAt": {}, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUserName": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUserAvatar": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalSource": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": [ "id", "taskId", "type", "createdAt", "userId", "content", "externalUserName", "externalUserAvatar", "externalSource", "externalUrl" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "taskId": { "type": "string" }, "userId": { "type": "string" }, "message": { "type": "string" }, "type": { "type": "string" } }, "required": [ "taskId", "userId", "message", "type" ] } } } } } }, "/activity/comment": { "post": { "operationId": "createComment", "tags": [ "Activity" ], "description": "Create a new comment on a task", "responses": { "200": { "description": "Comment created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "type": { "enum": [ "comment", "task", "status_changed", "priority_changed", "unassigned", "assignee_changed", "due_date_changed", "title_changed", "description_changed", "create" ] }, "createdAt": {}, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUserName": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUserAvatar": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalSource": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": [ "id", "taskId", "type", "createdAt", "userId", "content", "externalUserName", "externalUserAvatar", "externalSource", "externalUrl" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "taskId": { "type": "string" }, "comment": { "type": "string" } }, "required": [ "taskId", "comment" ] } } } } }, "put": { "operationId": "updateComment", "tags": [ "Activity" ], "description": "Update an existing comment", "responses": { "200": { "description": "Comment updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "type": { "enum": [ "comment", "task", "status_changed", "priority_changed", "unassigned", "assignee_changed", "due_date_changed", "title_changed", "description_changed", "create" ] }, "createdAt": {}, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUserName": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUserAvatar": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalSource": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": [ "id", "taskId", "type", "createdAt", "userId", "content", "externalUserName", "externalUserAvatar", "externalSource", "externalUrl" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "activityId": { "type": "string" }, "comment": { "type": "string" } }, "required": [ "activityId", "comment" ] } } } } }, "delete": { "operationId": "deleteComment", "tags": [ "Activity" ], "description": "Delete a comment", "responses": { "200": { "description": "Comment deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "type": { "enum": [ "comment", "task", "status_changed", "priority_changed", "unassigned", "assignee_changed", "due_date_changed", "title_changed", "description_changed", "create" ] }, "createdAt": {}, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUserName": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUserAvatar": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalSource": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": [ "id", "taskId", "type", "createdAt", "userId", "content", "externalUserName", "externalUserAvatar", "externalSource", "externalUrl" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "activityId": { "type": "string" } }, "required": [ "activityId" ] } } } } } }, "/time-entry/task/{taskId}": { "get": { "operationId": "getTaskTimeEntries", "tags": [ "Time Entries" ], "description": "Get all time entries for a specific task", "responses": { "200": { "description": "List of time entries for the task", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "startTime": {}, "endTime": {}, "duration": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "createdAt": {} }, "required": [ "id", "taskId", "userId", "description", "startTime", "duration", "createdAt" ] } } } } } }, "parameters": [ { "in": "path", "name": "taskId", "schema": { "type": "string" }, "required": true } ] } }, "/time-entry/{id}": { "get": { "operationId": "getTimeEntry", "tags": [ "Time Entries" ], "description": "Get a specific time entry by ID", "responses": { "200": { "description": "Time entry details", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "startTime": {}, "endTime": {}, "duration": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "createdAt": {} }, "required": [ "id", "taskId", "userId", "description", "startTime", "duration", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ] }, "put": { "operationId": "updateTimeEntry", "tags": [ "Time Entries" ], "description": "Update an existing time entry", "responses": { "200": { "description": "Time entry updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "startTime": {}, "endTime": {}, "duration": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "createdAt": {} }, "required": [ "id", "taskId", "userId", "description", "startTime", "duration", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "startTime": { "type": "string" }, "endTime": { "type": "string" }, "description": { "type": "string" } }, "required": [ "startTime" ] } } } } } }, "/time-entry": { "post": { "operationId": "createTimeEntry", "tags": [ "Time Entries" ], "description": "Create a new time entry for a task", "responses": { "200": { "description": "Time entry created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "startTime": {}, "endTime": {}, "duration": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "createdAt": {} }, "required": [ "id", "taskId", "userId", "description", "startTime", "duration", "createdAt" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "taskId": { "type": "string" }, "startTime": { "type": "string" }, "endTime": { "type": "string" }, "description": { "type": "string" } }, "required": [ "taskId", "startTime" ] } } } } } }, "/label/task/{taskId}": { "get": { "operationId": "getTaskLabels", "tags": [ "Labels" ], "description": "Get all labels assigned to a specific task", "responses": { "200": { "description": "List of labels for the task", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "color": { "type": "string" }, "createdAt": {}, "taskId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "workspaceId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": [ "id", "name", "color", "createdAt", "taskId", "workspaceId" ] } } } } } }, "parameters": [ { "in": "path", "name": "taskId", "schema": { "type": "string" }, "required": true } ] } }, "/label/workspace/{workspaceId}": { "get": { "operationId": "getWorkspaceLabels", "tags": [ "Labels" ], "description": "Get all labels for a specific workspace", "responses": { "200": { "description": "List of labels in the workspace", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "color": { "type": "string" }, "createdAt": {}, "taskId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "workspaceId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": [ "id", "name", "color", "createdAt", "taskId", "workspaceId" ] } } } } } }, "parameters": [ { "in": "path", "name": "workspaceId", "schema": { "type": "string" }, "required": true } ] } }, "/label": { "post": { "operationId": "createLabel", "tags": [ "Labels" ], "description": "Create a new label in a workspace", "responses": { "200": { "description": "Label created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "color": { "type": "string" }, "createdAt": {}, "taskId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "workspaceId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": [ "id", "name", "color", "createdAt", "taskId", "workspaceId" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "color": { "type": "string" }, "workspaceId": { "type": "string" }, "taskId": { "type": "string" } }, "required": [ "name", "color", "workspaceId" ] } } } } } }, "/label/{id}": { "get": { "operationId": "getLabel", "tags": [ "Labels" ], "description": "Get a specific label by ID", "responses": { "200": { "description": "Label details", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "color": { "type": "string" }, "createdAt": {}, "taskId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "workspaceId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": [ "id", "name", "color", "createdAt", "taskId", "workspaceId" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ] }, "put": { "operationId": "updateLabel", "tags": [ "Labels" ], "description": "Update an existing label", "responses": { "200": { "description": "Label updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "color": { "type": "string" }, "createdAt": {}, "taskId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "workspaceId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": [ "id", "name", "color", "createdAt", "taskId", "workspaceId" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "color": { "type": "string" } }, "required": [ "name", "color" ] } } } } }, "delete": { "operationId": "deleteLabel", "tags": [ "Labels" ], "description": "Delete a label by ID", "responses": { "200": { "description": "Label deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "color": { "type": "string" }, "createdAt": {}, "taskId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "workspaceId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": [ "id", "name", "color", "createdAt", "taskId", "workspaceId" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ] } }, "/notification": { "get": { "operationId": "listNotifications", "tags": [ "Notifications" ], "description": "Get all notifications for the current user", "responses": { "200": { "description": "List of notifications", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "userId": { "type": "string" }, "title": { "type": "string" }, "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "type": { "enum": [ "info", "task_created", "workspace_created", "task_status_changed", "task_assignee_changed", "time_entry_created" ] }, "isRead": { "type": "boolean" }, "resourceId": { "type": "string" }, "resourceType": { "enum": [ "task", "workspace" ] }, "createdAt": {} }, "required": [ "id", "userId", "title", "content", "type", "createdAt" ] } } } } } } }, "post": { "operationId": "createNotification", "tags": [ "Notifications" ], "description": "Create a new notification for a user", "responses": { "200": { "description": "Notification created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "userId": { "type": "string" }, "title": { "type": "string" }, "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "type": { "enum": [ "info", "task_created", "workspace_created", "task_status_changed", "task_assignee_changed", "time_entry_created" ] }, "isRead": { "type": "boolean" }, "resourceId": { "type": "string" }, "resourceType": { "enum": [ "task", "workspace" ] }, "createdAt": {} }, "required": [ "id", "userId", "title", "content", "type", "createdAt" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "userId": { "type": "string" }, "title": { "type": "string" }, "message": { "type": "string" }, "type": { "type": "string" }, "relatedEntityId": { "type": "string" }, "relatedEntityType": { "type": "string" } }, "required": [ "userId", "title", "message", "type" ] } } } } } }, "/notification/{id}/read": { "patch": { "operationId": "markNotificationAsRead", "tags": [ "Notifications" ], "description": "Mark a specific notification as read", "responses": { "200": { "description": "Notification marked as read", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "userId": { "type": "string" }, "title": { "type": "string" }, "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "type": { "enum": [ "info", "task_created", "workspace_created", "task_status_changed", "task_assignee_changed", "time_entry_created" ] }, "isRead": { "type": "boolean" }, "resourceId": { "type": "string" }, "resourceType": { "enum": [ "task", "workspace" ] }, "createdAt": {} }, "required": [ "id", "userId", "title", "content", "type", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ] } }, "/notification/read-all": { "patch": { "operationId": "markAllNotificationsAsRead", "tags": [ "Notifications" ], "description": "Mark all notifications as read for the current user", "responses": { "200": { "description": "All notifications marked as read", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "count": { "type": "number" } }, "required": [ "success" ] } } } } } } }, "/notification/clear-all": { "delete": { "operationId": "clearAllNotifications", "tags": [ "Notifications" ], "description": "Clear all notifications for the current user", "responses": { "200": { "description": "All notifications cleared", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "count": { "type": "number" } }, "required": [ "success" ] } } } } } } }, "/search": { "get": { "operationId": "globalSearch", "tags": [ "Search" ], "description": "Search across tasks, projects, workspaces, comments, and activities", "responses": { "200": { "description": "Search results", "content": { "application/json": { "schema": { "type": "object", "properties": { "tasks": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "number": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "title": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "status": { "enum": [ "to-do", "in-progress", "in-review", "done", "archived", "planned" ] }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } }, "projects": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "workspaceId": { "type": "string" }, "slug": { "type": "string" }, "icon": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "name": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "createdAt": {}, "isPublic": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] } }, "required": [ "id", "workspaceId", "slug", "icon", "name", "description", "createdAt", "isPublic" ] } }, "workspaces": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "slug": { "type": "string" }, "logo": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "metadata": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "createdAt": {} }, "required": [ "id", "name", "slug", "logo", "metadata", "description", "createdAt" ] } }, "comments": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "type": { "enum": [ "comment", "task", "status_changed", "priority_changed", "unassigned", "assignee_changed", "due_date_changed", "title_changed", "description_changed", "create" ] }, "createdAt": {}, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUserName": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUserAvatar": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalSource": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": [ "id", "taskId", "type", "createdAt", "userId", "content", "externalUserName", "externalUserAvatar", "externalSource", "externalUrl" ] } }, "activities": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "type": { "enum": [ "comment", "task", "status_changed", "priority_changed", "unassigned", "assignee_changed", "due_date_changed", "title_changed", "description_changed", "create" ] }, "createdAt": {}, "userId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUserName": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUserAvatar": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalSource": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "externalUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": [ "id", "taskId", "type", "createdAt", "userId", "content", "externalUserName", "externalUserAvatar", "externalSource", "externalUrl" ] } } }, "required": [] } } } } }, "parameters": [ { "in": "query", "name": "q", "schema": { "type": "string", "minLength": 1 }, "required": true }, { "in": "query", "name": "type", "schema": { "enum": [ "all", "tasks", "projects", "workspaces", "comments", "activities" ], "default": "all" } }, { "in": "query", "name": "workspaceId", "schema": { "type": "string" } }, { "in": "query", "name": "projectId", "schema": { "type": "string" } }, { "in": "query", "name": "limit", "schema": { "type": "string", "minimum": 1, "maximum": 50, "default": "20" } }, { "in": "query", "name": "userEmail", "schema": { "type": "string", "format": "email" } } ] } }, "/github-integration/app-info": { "get": { "operationId": "getGitHubAppInfo", "tags": [ "GitHub" ], "description": "Get GitHub app configuration information", "responses": { "200": { "description": "GitHub app information", "content": { "application/json": { "schema": { "type": "object", "properties": { "appName": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": [ "appName" ] } } } } } } }, "/github-integration/repositories": { "get": { "operationId": "listGitHubRepositories", "tags": [ "GitHub" ], "description": "List all accessible GitHub repositories", "responses": { "200": { "description": "List of repositories", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "full_name": { "type": "string" }, "owner": { "type": "object", "properties": { "login": { "type": "string" } }, "required": [ "login" ] }, "private": { "type": "boolean" }, "html_url": { "type": "string" } }, "required": [ "id", "name", "full_name", "owner", "private", "html_url" ] } } } } } } } }, "/github-integration/verify": { "post": { "operationId": "verifyGitHubInstallation", "tags": [ "GitHub" ], "description": "Verify GitHub app installation for a repository", "responses": { "200": { "description": "Verification result", "content": { "application/json": { "schema": { "type": "object", "properties": { "installed": { "type": "boolean" }, "message": { "type": "string" } }, "required": [ "installed" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "repositoryOwner": { "type": "string", "minLength": 1 }, "repositoryName": { "type": "string", "minLength": 1 } }, "required": [ "repositoryOwner", "repositoryName" ] } } } } } }, "/github-integration/project/{projectId}": { "get": { "operationId": "getGitHubIntegration", "tags": [ "GitHub" ], "description": "Get GitHub integration for a project", "responses": { "200": { "description": "GitHub integration details", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "repositoryOwner": { "type": "string" }, "repositoryName": { "type": "string" }, "installationId": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "isActive": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] }, "createdAt": {}, "updatedAt": {} }, "required": [ "id", "projectId", "repositoryOwner", "repositoryName", "installationId", "isActive", "createdAt", "updatedAt" ] } } } } }, "parameters": [ { "in": "path", "name": "projectId", "schema": { "type": "string" }, "required": true } ] }, "post": { "operationId": "createGitHubIntegration", "tags": [ "GitHub" ], "description": "Create a new GitHub integration for a project", "responses": { "200": { "description": "Integration created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "repositoryOwner": { "type": "string" }, "repositoryName": { "type": "string" }, "installationId": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "isActive": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] }, "createdAt": {}, "updatedAt": {} }, "required": [ "id", "projectId", "repositoryOwner", "repositoryName", "installationId", "isActive", "createdAt", "updatedAt" ] } } } } }, "parameters": [ { "in": "path", "name": "projectId", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "repositoryOwner": { "type": "string", "minLength": 1 }, "repositoryName": { "type": "string", "minLength": 1 } }, "required": [ "repositoryOwner", "repositoryName" ] } } } } }, "patch": { "operationId": "updateGitHubIntegration", "tags": [ "GitHub" ], "description": "Update GitHub integration settings", "responses": { "200": { "description": "Integration updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "repositoryOwner": { "type": "string" }, "repositoryName": { "type": "string" }, "installationId": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "isActive": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] }, "createdAt": {}, "updatedAt": {} }, "required": [ "id", "projectId", "repositoryOwner", "repositoryName", "installationId", "isActive", "createdAt", "updatedAt" ] } } } }, "404": { "description": "Integration not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "parameters": [ { "in": "path", "name": "projectId", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "isActive": { "type": "boolean" } }, "required": [] } } } } }, "delete": { "operationId": "deleteGitHubIntegration", "tags": [ "GitHub" ], "description": "Delete GitHub integration for a project", "responses": { "200": { "description": "Integration deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "repositoryOwner": { "type": "string" }, "repositoryName": { "type": "string" }, "installationId": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "isActive": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] }, "createdAt": {}, "updatedAt": {} }, "required": [ "id", "projectId", "repositoryOwner", "repositoryName", "installationId", "isActive", "createdAt", "updatedAt" ] } } } } }, "parameters": [ { "in": "path", "name": "projectId", "schema": { "type": "string" }, "required": true } ] } }, "/github-integration/import-issues": { "post": { "operationId": "importGitHubIssues", "tags": [ "GitHub" ], "description": "Import GitHub issues as tasks", "responses": { "200": { "description": "Issues imported successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "imported": { "type": "number" }, "skipped": { "type": "number" }, "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "imported", "skipped" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "projectId": { "type": "string" } }, "required": [ "projectId" ] } } } } } }, "/external-link/task/{taskId}": { "get": { "operationId": "getExternalLinksByTask", "tags": [ "External Links" ], "description": "Get all external links for a task", "responses": { "200": { "description": "External links for the task", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "integrationId": { "type": "string" }, "resourceType": { "type": "string" }, "externalId": { "type": "string" }, "url": { "type": "string" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "metadata": {}, "createdAt": {}, "updatedAt": {} }, "required": [ "id", "taskId", "integrationId", "resourceType", "externalId", "url", "title", "metadata", "createdAt", "updatedAt" ] } } } } } }, "parameters": [ { "in": "path", "name": "taskId", "schema": { "type": "string" }, "required": true } ] } }, "/invitation/pending": { "get": { "operationId": "getUserPendingInvitations", "tags": [ "Invitations" ], "description": "Get all pending invitations for the current user", "responses": { "200": { "description": "List of pending invitations", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "workspaceId": { "type": "string" }, "workspaceName": { "type": "string" }, "inviterName": { "type": "string" }, "expiresAt": { "type": "string" }, "createdAt": { "type": "string" }, "status": { "type": "string" } }, "required": [ "id", "email", "workspaceId", "workspaceName", "inviterName", "expiresAt", "createdAt", "status" ] } } } } } } } }, "/invitation/{id}": { "get": { "operationId": "getInvitationDetails", "tags": [ "Invitations" ], "description": "Get details of a specific invitation by ID", "responses": { "200": { "description": "Invitation details", "content": { "application/json": { "schema": { "type": "object", "properties": { "valid": { "type": "boolean" }, "invitation": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "workspaceName": { "type": "string" }, "inviterName": { "type": "string" }, "expiresAt": { "type": "string" }, "status": { "type": "string" }, "expired": { "type": "boolean" } }, "required": [ "id", "email", "workspaceName", "inviterName", "expiresAt", "status", "expired" ] }, "error": { "type": "string" } }, "required": [ "valid" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ] } } } }