{ "openapi": "3.0.0", "paths": { "/boards/{boardPublicId}/members": { "get": { "operationId": "getBoardMembers", "parameters": [ { "name": "boardPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BoardMemberDto" } } } } } }, "security": [ { "bearer": [] } ], "summary": "List a board's members", "tags": [ "Board Members" ] }, "post": { "operationId": "addBoardMember", "parameters": [ { "name": "boardPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddBoardMemberDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BoardMemberRoleResultDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Add a workspace member to a board", "tags": [ "Board Members" ] } }, "/boards/{boardPublicId}/members/{workspaceMemberPublicId}": { "put": { "operationId": "updateBoardMemberRole", "parameters": [ { "name": "boardPublicId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "workspaceMemberPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateBoardMemberRoleDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BoardMemberRoleResultDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Update a board member's role", "tags": [ "Board Members" ] }, "delete": { "operationId": "removeBoardMember", "parameters": [ { "name": "boardPublicId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "workspaceMemberPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BoardMemberRemoveResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Remove a member from a board", "tags": [ "Board Members" ] } }, "/checklists/{checklistPublicId}": { "put": { "operationId": "updateChecklist", "parameters": [ { "name": "checklistPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateChecklistDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChecklistResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Update a checklist", "tags": [ "Cards" ] }, "delete": { "operationId": "deleteChecklist", "parameters": [ { "name": "checklistPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteChecklistResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Delete a checklist", "tags": [ "Cards" ] } }, "/checklists/{checklistPublicId}/items": { "post": { "operationId": "createChecklistItem", "parameters": [ { "name": "checklistPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateChecklistItemDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChecklistItemResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Add an item to a checklist", "tags": [ "Cards" ] } }, "/checklists/items/{checklistItemPublicId}": { "patch": { "operationId": "updateChecklistItem", "parameters": [ { "name": "checklistItemPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateChecklistItemDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChecklistItemResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Update a checklist item", "tags": [ "Cards" ] }, "delete": { "operationId": "deleteChecklistItem", "parameters": [ { "name": "checklistItemPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteChecklistResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Delete a checklist item", "tags": [ "Cards" ] } }, "/cards/{cardPublicId}/checklists": { "post": { "operationId": "createChecklist", "parameters": [ { "name": "cardPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateChecklistDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChecklistResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Add a checklist to a card", "tags": [ "Cards" ] } }, "/feedback": { "post": { "operationId": "createFeedback", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateFeedbackDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateFeedbackResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Submit feedback", "tags": [ "Feedback" ] } }, "/labels/{labelPublicId}": { "get": { "operationId": "getLabel", "parameters": [ { "name": "labelPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LabelResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Get a label by public ID", "tags": [ "Labels" ] }, "put": { "operationId": "updateLabel", "parameters": [ { "name": "labelPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateLabelDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LabelResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Update a label", "tags": [ "Labels" ] }, "delete": { "operationId": "deleteLabel", "parameters": [ { "name": "labelPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteLabelResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Delete a label", "tags": [ "Labels" ] } }, "/labels": { "post": { "operationId": "createLabel", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateLabelDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LabelResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Create a label", "tags": [ "Labels" ] } }, "/lists": { "post": { "operationId": "createList", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateListDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Create a list", "tags": [ "Lists" ] } }, "/lists/{listPublicId}": { "delete": { "operationId": "deleteList", "parameters": [ { "name": "listPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteListResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Delete a list", "tags": [ "Lists" ] }, "put": { "operationId": "updateList", "parameters": [ { "name": "listPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateListDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Update a list", "tags": [ "Lists" ] } }, "/mcp": { "post": { "operationId": "StreamableHttpController_handlePostRequest", "parameters": [], "responses": { "201": { "description": "" } }, "tags": [ "StreamableHttp" ] }, "get": { "operationId": "StreamableHttpController_handleGetRequest", "parameters": [], "responses": { "200": { "description": "" } }, "tags": [ "StreamableHttp" ] }, "delete": { "operationId": "StreamableHttpController_handleDeleteRequest", "parameters": [], "responses": { "200": { "description": "" } }, "tags": [ "StreamableHttp" ] } }, "/workspaces/{workspacePublicId}/members/invite": { "post": { "operationId": "inviteMember", "parameters": [ { "name": "workspacePublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InviteMemberDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MemberInviteResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Invite a member to a workspace", "tags": [ "Workspaces" ] } }, "/workspaces/{workspacePublicId}/members/{memberPublicId}": { "delete": { "operationId": "deleteMember", "parameters": [ { "name": "workspacePublicId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "memberPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteMemberResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Delete a member from a workspace", "tags": [ "Workspaces" ] } }, "/workspaces/{workspacePublicId}/members/{memberPublicId}/role": { "put": { "operationId": "updateMemberRole", "parameters": [ { "name": "workspacePublicId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "memberPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateMemberRoleDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateMemberRoleResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Update member role", "tags": [ "Workspaces" ] } }, "/workspaces/{workspacePublicId}/invite": { "get": { "operationId": "getActiveInviteLink", "parameters": [ { "name": "workspacePublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActiveInviteLinkResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Get active invite link for workspace", "tags": [ "Workspaces" ] } }, "/workspaces/{workspacePublicId}/invites": { "post": { "operationId": "createInviteLink", "parameters": [ { "name": "workspacePublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInviteLinkResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Create invite link for workspace", "tags": [ "Workspaces" ] }, "delete": { "operationId": "deactivateInviteLink", "parameters": [ { "name": "workspacePublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeactivateInviteLinkResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Deactivate invite link for workspace", "tags": [ "Workspaces" ] } }, "/invites/{inviteCode}": { "get": { "operationId": "getInviteByCode", "parameters": [ { "name": "inviteCode", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InviteByCodeResponseDto" } } } } }, "summary": "Get invite information by code", "tags": [ "Invite" ] } }, "/invites/accept": { "post": { "operationId": "acceptInviteLink", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AcceptInviteLinkDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AcceptInviteLinkResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Accept an invite link", "tags": [ "Invites" ] } }, "/workspaces/{workspacePublicId}/permissions/me": { "get": { "operationId": "getMyPermissions", "parameters": [ { "name": "workspacePublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetMyPermissionsResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Get my permissions", "tags": [ "Permissions" ] } }, "/workspaces/{workspacePublicId}/members/{memberPublicId}/permissions": { "get": { "operationId": "getMemberPermissions", "parameters": [ { "name": "workspacePublicId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "memberPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetMemberPermissionsResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Get member permissions", "tags": [ "Permissions" ] } }, "/workspaces/{workspacePublicId}/members/{memberPublicId}/permissions/grant": { "post": { "operationId": "grantPermission", "parameters": [ { "name": "workspacePublicId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "memberPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PermissionActionDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Grant permission to member", "tags": [ "Permissions" ] } }, "/workspaces/{workspacePublicId}/members/{memberPublicId}/permissions/revoke": { "post": { "operationId": "revokePermission", "parameters": [ { "name": "workspacePublicId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "memberPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PermissionActionDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Revoke permission from member", "tags": [ "Permissions" ] } }, "/workspaces/{workspacePublicId}/members/{memberPublicId}/permissions/reset": { "post": { "operationId": "resetMemberPermissions", "parameters": [ { "name": "workspacePublicId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "memberPublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Reset member permissions to role defaults", "tags": [ "Permissions" ] } }, "/workspaces/{workspacePublicId}/members/permissions/reset": { "post": { "operationId": "resetWorkspaceMemberPermissions", "parameters": [ { "name": "workspacePublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Reset all member permission overrides in a workspace", "tags": [ "Permissions" ] } }, "/workspaces/{workspacePublicId}/roles": { "get": { "operationId": "getWorkspaceRoles", "parameters": [ { "name": "workspacePublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetWorkspaceRolesResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Get workspace roles", "tags": [ "Permissions" ] } }, "/workspaces/{workspacePublicId}/roles/permissions": { "get": { "operationId": "getWorkspaceRolePermissions", "parameters": [ { "name": "workspacePublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetWorkspaceRolePermissionsResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Get workspace role permissions", "tags": [ "Permissions" ] } }, "/workspaces/{workspacePublicId}/roles/{rolePublicId}/permissions": { "get": { "operationId": "getRolePermissions", "parameters": [ { "name": "workspacePublicId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "rolePublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetRolePermissionsResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Get role permissions", "tags": [ "Permissions" ] } }, "/workspaces/{workspacePublicId}/roles/{rolePublicId}/permissions/grant": { "post": { "operationId": "grantRolePermission", "parameters": [ { "name": "workspacePublicId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "rolePublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PermissionActionDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Grant permission to role", "tags": [ "Permissions" ] } }, "/workspaces/{workspacePublicId}/roles/{rolePublicId}/permissions/revoke": { "post": { "operationId": "revokeRolePermission", "parameters": [ { "name": "workspacePublicId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "rolePublicId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PermissionActionDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessResponseDto" } } } } }, "security": [ { "bearer": [] } ], "summary": "Revoke permission from role", "tags": [ "Permissions" ] } } }, "info": { "title": "Kan API", "description": "OpenAPI compliant REST API", "version": "1.0.0", "contact": {} }, "tags": [], "servers": [], "components": { "securitySchemes": { "bearer": { "scheme": "bearer", "bearerFormat": "JWT", "type": "http" } }, "schemas": { "BoardMemberDto": { "type": "object", "properties": { "publicId": { "type": "string" }, "email": { "type": "string" }, "status": { "type": "string" }, "role": { "type": "string", "enum": [ "admin", "member" ] }, "workspaceRole": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" }, "user": { "type": "object", "properties": { "id": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "email": { "type": "string" }, "image": { "type": "string", "nullable": true } }, "required": [ "id", "name", "email", "image" ], "nullable": true } }, "required": [ "publicId", "email", "status", "role", "workspaceRole", "createdAt", "user" ] }, "AddBoardMemberDto": { "type": "object", "properties": { "workspaceMemberPublicId": { "type": "string", "minLength": 12 }, "role": { "default": "member", "type": "string", "enum": [ "admin", "member" ] } }, "required": [ "workspaceMemberPublicId" ] }, "BoardMemberRoleResultDto": { "type": "object", "properties": { "publicId": { "type": "string" }, "role": { "type": "string", "enum": [ "admin", "member" ] } }, "required": [ "publicId", "role" ] }, "UpdateBoardMemberRoleDto": { "type": "object", "properties": { "role": { "type": "string", "enum": [ "admin", "member" ] } }, "required": [ "role" ] }, "BoardMemberRemoveResponseDto": { "type": "object", "properties": { "publicId": { "type": "string" } }, "required": [ "publicId" ] }, "UpdateChecklistDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 255 } }, "required": [ "name" ] }, "ChecklistResponseDto": { "type": "object", "properties": { "publicId": { "type": "string" }, "name": { "type": "string" } }, "required": [ "publicId", "name" ] }, "DeleteChecklistResponseDto": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, "CreateChecklistItemDto": { "type": "object", "properties": { "title": { "type": "string", "minLength": 1, "maxLength": 500 } }, "required": [ "title" ] }, "ChecklistItemResponseDto": { "type": "object", "properties": { "publicId": { "type": "string" }, "title": { "type": "string" }, "completed": { "type": "boolean" } }, "required": [ "publicId", "title", "completed" ] }, "UpdateChecklistItemDto": { "type": "object", "properties": { "title": { "type": "string", "minLength": 1, "maxLength": 500 }, "completed": { "type": "boolean" }, "index": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 } } }, "CreateChecklistDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 255 } }, "required": [ "name" ] }, "CreateFeedbackDto": { "type": "object", "properties": { "feedback": { "type": "string", "minLength": 1 }, "url": { "type": "string", "minLength": 1 } }, "required": [ "feedback", "url" ] }, "CreateFeedbackResponseDto": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, "LabelResponseDto": { "type": "object", "properties": { "publicId": { "type": "string" }, "name": { "type": "string" }, "colourCode": { "type": "string", "nullable": true } }, "required": [ "publicId", "name", "colourCode" ] }, "CreateLabelDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 36 }, "boardPublicId": { "type": "string", "minLength": 12 }, "colourCode": { "type": "string", "minLength": 7, "maxLength": 7 } }, "required": [ "name", "boardPublicId", "colourCode" ] }, "UpdateLabelDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 36 }, "colourCode": { "type": "string", "minLength": 7, "maxLength": 7 } }, "required": [ "name", "colourCode" ] }, "DeleteLabelResponseDto": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, "CreateListDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1 }, "boardPublicId": { "type": "string", "minLength": 12 } }, "required": [ "name", "boardPublicId" ] }, "ListResponseDto": { "type": "object", "properties": { "publicId": { "type": "string" }, "name": { "type": "string" } }, "required": [ "publicId", "name" ] }, "DeleteListResponseDto": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, "UpdateListDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1 }, "index": { "type": "number" } } }, "InviteMemberDto": { "type": "object", "properties": { "email": { "type": "string", "format": "email", "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" } }, "required": [ "email" ] }, "MemberInviteResponseDto": { "type": "object", "properties": { "publicId": { "type": "string" } }, "required": [ "publicId" ] }, "DeleteMemberResponseDto": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, "UpdateMemberRoleDto": { "type": "object", "properties": { "role": { "type": "string", "enum": [ "admin", "member", "guest" ] } }, "required": [ "role" ] }, "UpdateMemberRoleResponseDto": { "type": "object", "properties": { "success": { "type": "boolean" }, "role": { "type": "string" } }, "required": [ "success", "role" ] }, "ActiveInviteLinkResponseDto": { "type": "object", "properties": { "id": { "type": "number" }, "inviteCode": { "type": "string" }, "inviteLink": { "type": "string" }, "isActive": { "type": "boolean" }, "expiresAt": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$" } }, "required": [ "isActive" ] }, "CreateInviteLinkResponseDto": { "type": "object", "properties": { "publicId": { "type": "string" }, "inviteCode": { "type": "string" }, "inviteLink": { "type": "string" }, "expiresAt": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$", "nullable": true } }, "required": [ "publicId", "inviteCode", "inviteLink", "expiresAt" ] }, "DeactivateInviteLinkResponseDto": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, "InviteByCodeResponseDto": { "type": "object", "properties": { "publicId": { "type": "string" }, "status": { "type": "string" }, "expiresAt": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$", "nullable": true } }, "required": [ "publicId", "status", "expiresAt" ] }, "AcceptInviteLinkDto": { "type": "object", "properties": { "inviteCode": { "type": "string", "minLength": 12 } }, "required": [ "inviteCode" ] }, "AcceptInviteLinkResponseDto": { "type": "object", "properties": { "success": { "type": "boolean" }, "workspacePublicId": { "type": "string" }, "workspaceSlug": { "type": "string" } }, "required": [ "success" ] }, "GetMyPermissionsResponseDto": { "type": "object", "properties": { "permissions": { "type": "array", "items": { "type": "string" } }, "role": { "type": "string" } }, "required": [ "permissions", "role" ] }, "GetMemberPermissionsResponseDto": { "type": "object", "properties": { "memberPublicId": { "type": "string" }, "role": { "type": "string" }, "permissions": { "type": "array", "items": { "type": "string" } }, "overrides": { "type": "array", "items": { "type": "object", "properties": { "permission": { "type": "string" }, "granted": { "type": "boolean" } }, "required": [ "permission", "granted" ] } } }, "required": [ "memberPublicId", "role", "permissions", "overrides" ] }, "PermissionActionDto": { "type": "object", "properties": { "permission": { "type": "string", "enum": [ "workspace:view", "workspace:edit", "workspace:delete", "workspace:manage", "board:view", "board:create", "board:edit", "board:delete", "list:view", "list:create", "list:edit", "list:delete", "card:view", "card:create", "card:edit", "card:delete", "comment:view", "comment:create", "comment:edit", "comment:delete", "member:view", "member:invite", "member:edit", "member:remove" ] } }, "required": [ "permission" ] }, "SuccessResponseDto": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, "GetWorkspaceRolesResponseDto": { "type": "object", "properties": { "roles": { "type": "array", "items": { "type": "object", "properties": { "publicId": { "type": "string", "minLength": 12 }, "name": { "type": "string" }, "description": { "type": "string", "nullable": true }, "hierarchyLevel": { "type": "number" }, "isSystem": { "type": "boolean" } }, "required": [ "publicId", "name", "description", "hierarchyLevel", "isSystem" ] } } }, "required": [ "roles" ] }, "GetWorkspaceRolePermissionsResponseDto": { "type": "object", "properties": { "roles": { "type": "array", "items": { "type": "object", "properties": { "publicId": { "type": "string", "minLength": 12 }, "name": { "type": "string" }, "permissions": { "type": "array", "items": { "type": "string" } } }, "required": [ "publicId", "name", "permissions" ] } } }, "required": [ "roles" ] }, "GetRolePermissionsResponseDto": { "type": "object", "properties": { "rolePublicId": { "type": "string" }, "name": { "type": "string" }, "permissions": { "type": "array", "items": { "type": "string" } } }, "required": [ "rolePublicId", "name", "permissions" ] } } } }